gitnexus 1.6.10-rc.21 → 1.6.10-rc.211
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/README.md +212 -22
- package/dist/_shared/graph/types.d.ts +27 -8
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +4 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +19 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +23 -10
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts +110 -0
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +6 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +316 -37
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +124 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +297 -5
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +10 -2
- package/dist/cli/ai-context.js +128 -61
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +25 -114
- package/dist/cli/analyze.js +194 -36
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +23 -0
- package/dist/cli/doctor.js +72 -9
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.d.ts +23 -1
- package/dist/cli/eval-server.js +128 -9
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +23 -2
- package/dist/cli/help-i18n.js +3 -0
- package/dist/cli/i18n/en.d.ts +17 -8
- package/dist/cli/i18n/en.js +19 -8
- package/dist/cli/i18n/resources.d.ts +26 -8
- package/dist/cli/i18n/zh-CN.d.ts +9 -0
- package/dist/cli/i18n/zh-CN.js +17 -8
- package/dist/cli/index.js +16 -9
- package/dist/cli/lazy-action.d.ts +7 -0
- package/dist/cli/lazy-action.js +27 -0
- package/dist/cli/mcp.js +6 -3
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +30 -7
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/skill-gen.js +88 -18
- package/dist/cli/standard-skills.d.ts +76 -0
- package/dist/cli/standard-skills.js +45 -0
- package/dist/cli/status.d.ts +4 -1
- package/dist/cli/status.js +57 -4
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +75 -7
- package/dist/cli/uninstall.js +7 -2
- package/dist/cli/wiki.d.ts +1 -0
- package/dist/cli/wiki.js +59 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +31 -4
- package/dist/core/analysis-features.d.ts +21 -0
- package/dist/core/analysis-features.js +59 -0
- package/dist/core/analyzer-identity.d.ts +154 -0
- package/dist/core/analyzer-identity.js +2158 -0
- package/dist/core/augmentation/engine.js +95 -76
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedder.d.ts +3 -2
- package/dist/core/embeddings/embedder.js +8 -5
- package/dist/core/embeddings/embedding-identity.d.ts +11 -0
- package/dist/core/embeddings/embedding-identity.js +24 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +24 -1
- package/dist/core/embeddings/embedding-pipeline.js +341 -19
- package/dist/core/embeddings/http-client.d.ts +10 -2
- package/dist/core/embeddings/http-client.js +282 -47
- package/dist/core/embeddings/node-module-compat.d.ts +4 -2
- package/dist/core/embeddings/node-module-compat.js +4 -2
- package/dist/core/embeddings/onnxruntime-common-resolver.js +5 -5
- package/dist/core/embeddings/onnxruntime-node-resolver.js +2 -2
- package/dist/core/embeddings/runtime-install.js +1 -1
- package/dist/core/git-staleness.js +1 -1
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.js +5 -27
- package/dist/core/group/cross-impact.d.ts +21 -0
- package/dist/core/group/cross-impact.js +128 -15
- package/dist/core/group/cross-trace.js +27 -16
- package/dist/core/group/extractors/http-patterns/java.js +91 -14
- package/dist/core/group/extractors/http-patterns/node.js +19 -0
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/service.js +10 -1
- package/dist/core/group/storage.js +2 -33
- package/dist/core/group/types.d.ts +18 -0
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +80 -0
- package/dist/core/index-freshness.js +120 -0
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/class-extractors/configs/jvm.js +29 -0
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +88 -83
- package/dist/core/ingestion/di-extractors/index.d.ts +22 -34
- package/dist/core/ingestion/di-extractors/index.js +17 -18
- package/dist/core/ingestion/di-extractors/spring.d.ts +27 -5
- package/dist/core/ingestion/di-extractors/spring.js +87 -3
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/emit-references.js +4 -0
- package/dist/core/ingestion/filesystem-walker.js +16 -12
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +9 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +41 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.d.ts +30 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.js +182 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.d.ts +12 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +27 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.d.ts +24 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.js +115 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +48 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +379 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +428 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +27 -8
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +20 -1
- package/dist/core/ingestion/language-config.js +18 -23
- package/dist/core/ingestion/language-provider.d.ts +133 -7
- package/dist/core/ingestion/languages/c/captures.js +63 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +26 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +34 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +222 -3
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +62 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +44 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +686 -16
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.d.ts +7 -0
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.js +30 -0
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +8 -1
- package/dist/core/ingestion/languages/go/captures.js +142 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +7 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +25 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +38 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +124 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
- package/dist/core/ingestion/languages/java/captures.js +321 -49
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/java/package-facts.js +9 -0
- package/dist/core/ingestion/languages/java/package-siblings.d.ts +3 -16
- package/dist/core/ingestion/languages/java/package-siblings.js +8 -147
- package/dist/core/ingestion/languages/java/query.js +39 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +35 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.js +8 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/java/spring-di.js +160 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +76 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +278 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +232 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-facts.d.ts +35 -0
- package/dist/core/ingestion/languages/jvm/package-facts.js +40 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.d.ts +14 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.js +197 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +40 -3
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +111 -8
- package/dist/core/ingestion/languages/kotlin/captures.js +112 -0
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.js +9 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.d.ts +4 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.js +8 -0
- package/dist/core/ingestion/languages/kotlin/query.js +47 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +36 -3
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.js +8 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +299 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/kotlin.js +5 -6
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +359 -51
- package/dist/core/ingestion/languages/php/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/php/import-target.d.ts +2 -1
- package/dist/core/ingestion/languages/php/import-target.js +229 -7
- package/dist/core/ingestion/languages/php/interpret.js +10 -0
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +3 -4
- package/dist/core/ingestion/languages/python/captures.js +53 -5
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -3
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +17 -2
- package/dist/core/ingestion/languages/python/receiver-binding.js +192 -2
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
- package/dist/core/ingestion/languages/python/simple-hooks.js +9 -5
- package/dist/core/ingestion/languages/ruby/captures.js +200 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +52 -1
- package/dist/core/ingestion/languages/rust/interpret.js +18 -0
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +48 -6
- package/dist/core/ingestion/languages/rust/range-binding.d.ts +1 -11
- package/dist/core/ingestion/languages/rust/range-binding.js +149 -63
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +99 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +288 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/nuxt-auto-imports.js +2 -1
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +340 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +291 -0
- package/dist/core/ingestion/languages/typescript.js +87 -1
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/parsing-processor.js +32 -1
- package/dist/core/ingestion/pipeline-phases/di.d.ts +8 -33
- package/dist/core/ingestion/pipeline-phases/di.js +275 -157
- package/dist/core/ingestion/pipeline-phases/index.d.ts +3 -0
- package/dist/core/ingestion/pipeline-phases/index.js +3 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +158 -3
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +11 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +102 -7
- package/dist/core/ingestion/pipeline-phases/routes.js +56 -10
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.js +433 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -3
- package/dist/core/ingestion/pipeline.js +62 -12
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +78 -6
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +25 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +864 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +109 -24
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +617 -59
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +381 -22
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +15 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +53 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +275 -41
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +56 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +130 -32
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +46 -3
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1233 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +19 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +160 -4
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +118 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +109 -8
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +82 -38
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +61 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +384 -48
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +968 -56
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/taint/typescript-model.js +34 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +688 -5
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +17 -2
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +311 -14
- package/dist/core/ingestion/utils/ast-helpers.js +745 -48
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +153 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +928 -0
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +72 -0
- package/dist/core/ingestion/workers/callable-id.js +116 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +409 -39
- package/dist/core/ingestion/workers/worker-pool.d.ts +34 -27
- package/dist/core/ingestion/workers/worker-pool.js +133 -25
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +80 -17
- package/dist/core/lbug/extension-load-error.d.ts +2 -2
- package/dist/core/lbug/extension-load-error.js +44 -27
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +32 -7
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +337 -3
- package/dist/core/lbug/lbug-adapter.js +772 -67
- package/dist/core/lbug/lbug-config.d.ts +93 -6
- package/dist/core/lbug/lbug-config.js +269 -9
- package/dist/core/lbug/native-check.d.ts +39 -0
- package/dist/core/lbug/native-check.js +323 -46
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +23 -1
- package/dist/core/lbug/pool-adapter.js +115 -7
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +162 -3
- package/dist/core/lbug/schema.js +392 -157
- package/dist/core/lbug/sidecar-recovery.d.ts +1 -0
- package/dist/core/lbug/sidecar-recovery.js +1 -1
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
- package/dist/core/platform/capabilities.d.ts +0 -1
- package/dist/core/platform/capabilities.js +12 -7
- package/dist/core/run-analyze.d.ts +150 -3
- package/dist/core/run-analyze.js +1562 -151
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +167 -2
- package/dist/core/search/fts-indexes.js +264 -10
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +37 -5
- package/dist/core/wiki/llm-client.js +88 -17
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/http-transport.d.ts +5 -0
- package/dist/mcp/http-transport.js +19 -5
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +3 -0
- package/dist/mcp/local/bean-metadata.js +46 -0
- package/dist/mcp/local/local-backend.d.ts +167 -6
- package/dist/mcp/local/local-backend.js +1756 -405
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/output-budget.d.ts +5 -0
- package/dist/mcp/output-budget.js +52 -0
- package/dist/mcp/read-only-policy.d.ts +12 -0
- package/dist/mcp/read-only-policy.js +102 -0
- package/dist/mcp/repository-policy.d.ts +35 -0
- package/dist/mcp/repository-policy.js +333 -0
- package/dist/mcp/resources.js +34 -7
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.js +48 -18
- package/dist/mcp/tools.d.ts +8 -8
- package/dist/mcp/tools.js +91 -20
- package/dist/server/analyze-job.d.ts +40 -2
- package/dist/server/analyze-job.js +30 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +3 -2
- package/dist/server/analyze-worker-core.js +15 -3
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/analyze-worker.js +29 -6
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +200 -155
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/mcp-http.d.ts +1 -1
- package/dist/server/mcp-http.js +4 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/server/upload-ingest.js +2 -1
- package/dist/server/validation.js +2 -1
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +165 -0
- package/dist/storage/git.js +352 -3
- package/dist/storage/index-lock.d.ts +83 -0
- package/dist/storage/index-lock.js +654 -0
- package/dist/storage/parse-cache.js +482 -1
- package/dist/storage/parsedfile-store.d.ts +8 -0
- package/dist/storage/parsedfile-store.js +235 -1
- package/dist/storage/repo-manager.d.ts +29 -309
- package/dist/storage/repo-manager.js +187 -165
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +20 -12
- package/scripts/cross-platform-shard.ts +143 -0
- package/scripts/cross-platform-tests.ts +94 -0
- package/scripts/ensure-fts.ts +14 -3
- package/scripts/run-cross-platform.ts +36 -10
- package/scripts/sync-plugin-manifests.mjs +192 -0
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-lfg/README.md +55 -0
- package/skills/gitnexus-lfg/SKILL.md +86 -0
- package/skills/gitnexus-plan/README.md +147 -0
- package/skills/gitnexus-plan/SKILL.md +348 -0
- package/skills/gitnexus-plan/references/context-ledger.md +137 -0
- package/skills/gitnexus-plan/references/context-pack.md +126 -0
- package/skills/gitnexus-plan/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-plan/references/pdg-slice.md +109 -0
- package/skills/gitnexus-plan/references/plan-template.md +201 -0
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +2366 -0
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +279 -0
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +39 -0
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +37 -0
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +40 -0
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +39 -0
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/README.md +71 -0
- package/skills/gitnexus-work/SKILL.md +272 -0
- package/skills/gitnexus-work/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2366 -0
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-DIzEQ1JJ.js +626 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +132 -0
- package/web/assets/{c4Diagram-Y2BXMSZH-DOXVs7-C.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +6 -6
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/chunk-6L755F7B-CMhLBxi2.js +1 -0
- package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +2 -0
- package/web/assets/chunk-A7VWPJGB-B4O3oQdQ.js +1 -0
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/chunk-SZD42YQK-ijyKKVr1.js +70 -0
- package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +231 -0
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/chunk-VJFVEZTB-CX66F2ep.js +206 -0
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/diagram-KFBZAVDW-Dfmf_4ti.js +3 -0
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-B4eB4dNZ.js → index-BBNl0qfX.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-BLjivjXL.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +6 -6
- package/web/assets/{journeyDiagram-M6C3CM3L-Cetgs3NH.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +6 -6
- package/web/assets/{kanban-definition-75IXJCU3-DMlCaIpf.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +27 -27
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-B4GbXQBc.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +29 -29
- package/web/assets/node-Ct_zna8U.js +8 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/preload-helper-Czpn1I53.js +1 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-B1TQnlm0.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +6 -6
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/requirementDiagram-RASO5HTO-B-l8InpK.js +84 -0
- package/web/assets/sankeyDiagram-F32LOJ6L-Kd7zjJgX.js +40 -0
- package/web/assets/sdk-CzHHH8tD.js +37 -0
- package/web/assets/sequenceDiagram-URATNSBD-BlcdY9DS.js +162 -0
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/timeline-definition-WJXWRH4I-DUfp1R3E.js +120 -0
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +17 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/skills/gitnexus-pr-review.md +0 -163
- package/web/assets/ProcessFlowModal-Dna7GkwO.js +0 -22
- package/web/assets/agent-DNYDy-KA.js +0 -660
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +0 -36
- package/web/assets/blockDiagram-7IZFK4PR-Dut1BpTV.js +0 -132
- package/web/assets/chunk-2T2R6R2M-pkw2oXHH.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-zxhDWgyF.js +0 -124
- package/web/assets/chunk-7J6CGLKN-AmkN8jJN.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-INKRHTLW-D9BM9HWZ.js +0 -70
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-tD2F6wxK.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LCXTWHL2-Ba9JK-6F.js +0 -231
- package/web/assets/chunk-LII3EMHJ-EGx-eBIu.js +0 -1
- package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +0 -1
- package/web/assets/chunk-QA3QBVWF-D4cSJBf6.js +0 -2
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RG4AUYOV-OqBBMwuQ.js +0 -206
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BJusEiGe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-BCpUlARQ.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +0 -2
- package/web/assets/chunk-ZXARS5L4-BI_qR2Nm.js +0 -1
- package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +0 -4
- package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +0 -43
- package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +0 -24
- package/web/assets/diagram-HNR7UZ2L-DxKW2a2Y.js +0 -3
- package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-D0fvpWEX.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-TzODrLzv.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-DIPVUIQ6.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-D3YC_xyg.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/requirementDiagram-JXO7QTGE-f8wczLQf.js +0 -84
- package/web/assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js +0 -40
- package/web/assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js +0 -162
- package/web/assets/src-BNCXICdA.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +0 -1
- package/web/assets/timeline-definition-O6YCAMPW-07BR8R8G.js +0 -120
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BQX2ossk.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -0,0 +1,626 @@
|
|
|
1
|
+
import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{o as n,r}from"./src-C5sx_gMp.js";import{i,t as a}from"./sdk-CzHHH8tD.js";import{CHAT_ONLY_PROMPT_NOTE as o,buildDynamicSystemPrompt as s}from"./context-builder-BHiFUA8O.js";var c=`File.Folder.Function.Class.Interface.Method.CodeElement.Community.Process.Section.Struct.Enum.Macro.Typedef.Union.Namespace.Trait.Impl.TypeAlias.Const.Static.Variable.Property.Record.Delegate.Annotation.Constructor.Template.Module.Route.Tool.BasicBlock`.split(`.`),l=`CONTAINS.DEFINES.IMPORTS.CALLS.EXTENDS.IMPLEMENTS.HAS_METHOD.HAS_PROPERTY.ACCESSES.METHOD_OVERRIDES.OVERRIDES.METHOD_IMPLEMENTS.MEMBER_OF.STEP_IN_PROCESS.HANDLES_ROUTE.FETCHES.HANDLES_TOOL.ENTRY_POINT_OF.WRAPS.QUERIES.INJECTS.CONDITIONAL_ON.DECLARES.ADVISED_BY.CFG.REACHING_DEF.TAINTED.SANITIZES.TAINT_PATH.CDG.POST_DOMINATE`.split(`.`),u=new Set([`date-time`,`time`,`date`,`duration`,`email`,`hostname`,`uri`,`ipv4`,`ipv6`,`uuid`]);function d(e){return JSON.parse(JSON.stringify(e))}function f(e){return p(d(e))}function p(e){let t={},n=i(e,`$ref`);if(n!==void 0)return t.$ref=n,t;let r=i(e,`$defs`);if(r!==void 0){let e={};t.$defs=e;for(let[t,n]of Object.entries(r))e[t]=p(n)}let a=i(e,`type`),o=i(e,`anyOf`),s=i(e,`oneOf`),c=i(e,`allOf`);if(Array.isArray(o))t.anyOf=o.map(e=>p(e));else if(Array.isArray(s))t.anyOf=s.map(e=>p(e));else if(Array.isArray(c))t.allOf=c.map(e=>p(e));else{if(a===void 0)throw Error(`JSON schema must have a type defined if anyOf/oneOf/allOf are not used`);t.type=a}let l=i(e,`description`);l!==void 0&&(t.description=l);let d=i(e,`title`);if(d!==void 0&&(t.title=d),a===`object`){let n=i(e,`properties`)||{};t.properties=Object.fromEntries(Object.entries(n).map(([e,t])=>[e,p(t)])),i(e,`additionalProperties`),t.additionalProperties=!1;let r=i(e,`required`);r!==void 0&&(t.required=r)}else if(a===`string`){let n=i(e,`format`);n!==void 0&&u.has(n)?t.format=n:n!==void 0&&(e.format=n)}else if(a===`array`){let n=i(e,`items`);n!==void 0&&(t.items=p(n));let r=i(e,`minItems`);r!==void 0&&(r===0||r===1)?t.minItems=r:r!==void 0&&(e.minItems=r)}if(Object.keys(e).length>0){let n=t.description;t.description=(n?n+`
|
|
2
|
+
|
|
3
|
+
`:``)+`{`+Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`, `)+`}`}return t}var m=Object.defineProperty,h=(e,t)=>{let n={};for(var r in e)m(n,r,{get:e[r],enumerable:!0});return t||m(n,Symbol.toStringTag,{value:`Module`}),n};function g(e){let t=Symbol.for(e);return{brand(n,r){let i=r?Symbol.for(`${e}.${r}`):t;class a extends n{[i]=!0;constructor(...e){super(...e)}static isInstance(e){return typeof e==`object`&&!!e&&i in e&&e[i]===!0}}return Object.defineProperty(a,"name",{value:n.name}),a},sub(t){return g(`${e}.${t}`)},isInstance(e){return typeof e==`object`&&!!e&&t in e&&e[t]===!0}}}var _=g(`langchain`),v=h({ContextOverflowError:()=>ee,LangChainError:()=>x,ModelAbortError:()=>S,addLangChainErrorFields:()=>y,ns:()=>b});function y(e,t){return e.lc_error_code=t,e.message=`${e.message}\n\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${t}/\n`,e}var b=_.sub(`error`),x=class extends b.brand(Error){name=`LangChainError`;constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},S=class extends b.brand(x,`model-abort`){name=`ModelAbortError`;partialOutput;constructor(e,t){super(e),this.partialOutput=t}},ee=class e extends b.brand(x,`context-overflow`){name=`ContextOverflowError`;cause;constructor(e){super(e??`Input exceeded the model's context window.`)}static fromError(t){let n=new e(t.message);return n.cause=t,n}};function C(e){return!!(e&&typeof e==`object`&&`type`in e&&e.type===`tool_call`)}function te(e){return!!(e&&typeof e==`object`&&`toolCall`in e&&e.toolCall!=null&&typeof e.toolCall==`object`&&`id`in e.toolCall&&typeof e.toolCall.id==`string`)}var ne=class extends Error{output;constructor(e,t){super(e),this.output=t}};function re(e,t=ae){e=e.trim();let n=e.indexOf("```");if(n===-1)return t(e);let r=e.substring(n+3);r.startsWith(`json
|
|
4
|
+
`)?r=r.substring(5):r.startsWith(`json`)?r=r.substring(4):r.startsWith(`
|
|
5
|
+
`)&&(r=r.substring(1));let i=r.indexOf("```"),a=r;return i!==-1&&(a=r.substring(0,i)),t(a.trim())}function ie(e){try{return JSON.parse(e)}catch{}let t=e.trim();if(t.length===0)throw Error(`Unexpected end of JSON input`);let n=0;function r(){for(;n<t.length&&/\s/.test(t[n]);)n+=1}function i(){if(t[n]!==`"`)throw Error(`Expected '"' at position ${n}, got '${t[n]}'`);n+=1;let e=``,r=!1;for(;n<t.length;){let i=t[n];if(r){if(i===`n`)e+=`
|
|
6
|
+
`;else if(i===`t`)e+=` `;else if(i===`r`)e+=`\r`;else if(i===`\\`)e+=`\\`;else if(i===`"`)e+=`"`;else if(i===`b`)e+=`\b`;else if(i===`f`)e+=`\f`;else if(i===`/`)e+=`/`;else if(i===`u`){let r=t.substring(n+1,n+5);if(/^[0-9A-Fa-f]{0,4}$/.test(r))r.length===4?e+=String.fromCharCode(Number.parseInt(r,16)):e+=`u${r}`,n+=r.length;else throw Error(`Invalid unicode escape sequence '\\u${r}' at position ${n}`)}else throw Error(`Invalid escape sequence '\\${i}' at position ${n}`);r=!1}else if(i===`\\`)r=!0;else if(i===`"`)return n+=1,e;else e+=i;n+=1}return r&&(e+=`\\`),e}function a(){let e=n,r=``;if(t[n]===`-`&&(r+=`-`,n+=1),n<t.length&&t[n]===`0`&&(r+=`0`,n+=1,t[n]>=`0`&&t[n]<=`9`))throw Error(`Invalid number at position ${e}`);if(n<t.length&&t[n]>=`1`&&t[n]<=`9`)for(;n<t.length&&t[n]>=`0`&&t[n]<=`9`;)r+=t[n],n+=1;if(n<t.length&&t[n]===`.`)for(r+=`.`,n+=1;n<t.length&&t[n]>=`0`&&t[n]<=`9`;)r+=t[n],n+=1;if(n<t.length&&(t[n]===`e`||t[n]===`E`))for(r+=t[n],n+=1,n<t.length&&(t[n]===`+`||t[n]===`-`)&&(r+=t[n],n+=1);n<t.length&&t[n]>=`0`&&t[n]<=`9`;)r+=t[n],n+=1;if(r===`-`)return-0;let i=Number.parseFloat(r);if(Number.isNaN(i))throw n=e,Error(`Invalid number '${r}' at position ${e}`);return i}function o(){if(r(),n>=t.length)throw Error(`Unexpected end of input at position ${n}`);let e=t[n];if(e===`{`)return c();if(e===`[`)return s();if(e===`"`)return i();if(`null`.startsWith(t.substring(n,n+4)))return n+=Math.min(4,t.length-n),null;if(`true`.startsWith(t.substring(n,n+4)))return n+=Math.min(4,t.length-n),!0;if(`false`.startsWith(t.substring(n,n+5)))return n+=Math.min(5,t.length-n),!1;if(e===`-`||e>=`0`&&e<=`9`)return a();throw Error(`Unexpected character '${e}' at position ${n}`)}function s(){if(t[n]!==`[`)throw Error(`Expected '[' at position ${n}, got '${t[n]}'`);let e=[];if(n+=1,r(),n>=t.length)return e;if(t[n]===`]`)return n+=1,e;for(;n<t.length;){if(r(),n>=t.length||(e.push(o()),r(),n>=t.length))return e;if(t[n]===`]`)return n+=1,e;if(t[n]===`,`){n+=1;continue}throw Error(`Expected ',' or ']' at position ${n}, got '${t[n]}'`)}return e}function c(){if(t[n]!==`{`)throw Error(`Expected '{' at position ${n}, got '${t[n]}'`);let e={};if(n+=1,r(),n>=t.length)return e;if(t[n]===`}`)return n+=1,e;for(;n<t.length;){if(r(),n>=t.length)return e;let a=i();if(r(),n>=t.length)return e;if(t[n]!==`:`)throw Error(`Expected ':' at position ${n}, got '${t[n]}'`);if(n+=1,r(),n>=t.length||(e[a]=o(),r(),n>=t.length))return e;if(t[n]===`}`)return n+=1,e;if(t[n]===`,`){n+=1;continue}throw Error(`Expected ',' or '}' at position ${n}, got '${t[n]}'`)}return e}let l=o();if(r(),n<t.length)throw Error(`Unexpected character '${t[n]}' at position ${n}`);return l}function ae(e){try{return e===void 0?null:ie(e)}catch{return null}}var oe=/([A-Z]+)([A-Z][a-z0-9]+)/g,se=/([a-z0-9])([A-Z])/g,w=/[-_\s]+/g;function ce(e){return e.replace(oe,`$1_$2`).replace(se,`$1_$2`).replace(w,`_`).toLowerCase()}function le(e){let t=e.trim();return/[-_\s]/.test(t)?t.replace(w,`_`).toLowerCase().replace(/_+([a-z0-9])/g,(e,t)=>t.toUpperCase()):t}function ue(e,t){return t?.[e]||ce(e)}function de(e,t){return t?.[e]||le(e)}function fe(e,t,n){let r={};for(let i in e)Object.hasOwn(e,i)&&(r[t(i,n)]=e[i]);return r}var pe=`__lc_escaped__`;function me(e){return`lc`in e||Object.keys(e).length===1&&`__lc_escaped__`in e}function he(e){return{[pe]:e}}function ge(e){return Object.keys(e).length===1&&`__lc_escaped__`in e}function _e(e){return typeof e==`object`&&!!e&&`lc_serializable`in e&&typeof e.toJSON==`function`}function ve(e){let t;return t=typeof e==`object`&&e?`lc_id`in e&&Array.isArray(e.lc_id)?e.lc_id:[e.constructor?.name??`Object`]:[typeof e],{lc:1,type:`not_implemented`,id:t}}function ye(e,t=new WeakSet){if(typeof e==`object`&&e&&!Array.isArray(e)){if(t.has(e))return ve(e);if(_e(e))return e;t.add(e);let n=e;if(me(n))return t.delete(e),he(n);let r={};for(let[e,i]of Object.entries(n))r[e]=ye(i,t);return t.delete(e),r}return Array.isArray(e)?e.map(e=>ye(e,t)):e}function be(e){if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e;if(ge(t))return t[pe];let n={};for(let[e,r]of Object.entries(t))n[e]=be(r);return n}return Array.isArray(e)?e.map(e=>be(e)):e}var xe=h({Serializable:()=>Te,get_lc_unique_name:()=>we});function Se(e){return Array.isArray(e)?[...e]:{...e}}function Ce(e,t){let n=Se(e);for(let[e,r]of Object.entries(t)){let[t,...i]=e.split(`.`).reverse(),a=n;for(let e of i.reverse()){if(a[e]===void 0)break;a[e]=Se(a[e]),a=a[e]}a[t]!==void 0&&(a[t]={lc:1,type:`secret`,id:[r]})}return n}function we(e){let t=Object.getPrototypeOf(e);return typeof e.lc_name==`function`&&(typeof t.lc_name!=`function`||e.lc_name()!==t.lc_name())?e.lc_name():e.name}var Te=class e{lc_serializable=!1;lc_kwargs;static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,we(this.constructor)]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}constructor(e,...t){this.lc_serializable_keys===void 0?this.lc_kwargs=e??{}:this.lc_kwargs=Object.fromEntries(Object.entries(e||{}).filter(([e])=>this.lc_serializable_keys?.includes(e)))}toJSON(){if(!this.lc_serializable||this.lc_kwargs instanceof e||typeof this.lc_kwargs!=`object`||Array.isArray(this.lc_kwargs))return this.toJSONNotImplemented();let t={},n={},r=Object.keys(this.lc_kwargs).reduce((e,t)=>(e[t]=t in this?this[t]:this.lc_kwargs[t],e),{});for(let e=Object.getPrototypeOf(this);e;e=Object.getPrototypeOf(e))Object.assign(t,Reflect.get(e,`lc_aliases`,this)),Object.assign(n,Reflect.get(e,`lc_secrets`,this)),Object.assign(r,Reflect.get(e,`lc_attributes`,this));Object.keys(n).forEach(e=>{let t=this,n=r,[i,...a]=e.split(`.`).reverse();for(let e of a.reverse()){if(!(e in t)||t[e]===void 0)return;(!(e in n)||n[e]===void 0)&&(typeof t[e]==`object`&&t[e]!=null?n[e]={}:Array.isArray(t[e])&&(n[e]=[])),t=t[e],n=n[e]}i in t&&t[i]!==void 0&&(n[i]=n[i]||t[i])});let i={},a=new WeakSet;a.add(this);for(let[e,t]of Object.entries(r))i[e]=ye(t,a);let o=fe(Object.keys(n).length?Ce(i,n):i,ue,t);return{lc:1,type:`constructor`,id:this.lc_id,kwargs:o}}toJSONNotImplemented(){return{lc:1,type:`not_implemented`,id:this.lc_id}}};function Ee(e){return typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&`source_type`in e&&(e.source_type===`url`||e.source_type===`base64`||e.source_type===`text`||e.source_type===`id`)}function De(e){return Ee(e)&&e.source_type===`url`&&`url`in e&&typeof e.url==`string`}function Oe(e){return Ee(e)&&e.source_type===`base64`&&`data`in e&&typeof e.data==`string`}function ke(e){return Ee(e)&&e.source_type===`text`&&`text`in e&&typeof e.text==`string`}function Ae(e){return Ee(e)&&e.source_type===`id`&&`id`in e&&typeof e.id==`string`}function T(e){if(Ee(e)){if(e.source_type===`url`)return{type:`image_url`,image_url:{url:e.url}};if(e.source_type===`base64`){if(!e.mime_type)throw Error(`mime_type key is required for base64 data.`);return{type:`image_url`,image_url:{url:`data:${e.mime_type};base64,${e.data}`}}}}throw Error(`Unsupported source type. Only 'url' and 'base64' are supported.`)}function je(e){let t=e.split(`;`)[0].split(`/`);if(t.length!==2)throw Error(`Invalid mime type: "${e}" - does not match type/subtype format.`);let n=t[0].trim(),r=t[1].trim();if(n===``||r===``)throw Error(`Invalid mime type: "${e}" - type or subtype is empty.`);let i={};for(let t of e.split(`;`).slice(1)){let n=t.split(`=`);if(n.length!==2)throw Error(`Invalid parameter syntax in mime type: "${e}".`);let r=n[0].trim(),a=n[1].trim();if(r===``)throw Error(`Invalid parameter syntax in mime type: "${e}".`);i[r]=a}return{type:n,subtype:r,parameters:i}}function Me({dataUrl:e,asTypedArray:t=!1}){let n=e.match(/^data:(\w+\/\w+);base64,([A-Za-z0-9+/]+=*)$/),r;if(n){r=n[1].toLowerCase();let e=t?Uint8Array.from(atob(n[2]),e=>e.charCodeAt(0)):n[2];return{mime_type:r,data:e}}}function Ne(e,t){if(e.type===`text`){if(!t.fromStandardTextBlock)throw Error(`Converter for ${t.providerName} does not implement \`fromStandardTextBlock\` method.`);return t.fromStandardTextBlock(e)}if(e.type===`image`){if(!t.fromStandardImageBlock)throw Error(`Converter for ${t.providerName} does not implement \`fromStandardImageBlock\` method.`);return t.fromStandardImageBlock(e)}if(e.type===`audio`){if(!t.fromStandardAudioBlock)throw Error(`Converter for ${t.providerName} does not implement \`fromStandardAudioBlock\` method.`);return t.fromStandardAudioBlock(e)}if(e.type===`file`){if(!t.fromStandardFileBlock)throw Error(`Converter for ${t.providerName} does not implement \`fromStandardFileBlock\` method.`);return t.fromStandardFileBlock(e)}throw Error(`Unable to convert content block type '${e.type}' to provider-specific format: not recognized.`)}function E(e,t){return D(e)&&e.type===t}function D(e){return typeof e==`object`&&!!e}function Pe(e){return Array.isArray(e)}function O(e){return typeof e==`string`}function Fe(e){return typeof e==`number`}function Ie(e){return e instanceof Uint8Array}function Le(e){try{return JSON.parse(e)}catch{return}}var Re=e=>e();function ze(e){if(e.type===`char_location`&&O(e.document_title)&&Fe(e.start_char_index)&&Fe(e.end_char_index)&&O(e.cited_text)){let{document_title:t,start_char_index:n,end_char_index:r,cited_text:i,...a}=e;return{...a,type:`citation`,source:`char`,title:t??void 0,startIndex:n,endIndex:r,citedText:i}}if(e.type===`page_location`&&O(e.document_title)&&Fe(e.start_page_number)&&Fe(e.end_page_number)&&O(e.cited_text)){let{document_title:t,start_page_number:n,end_page_number:r,cited_text:i,...a}=e;return{...a,type:`citation`,source:`page`,title:t??void 0,startIndex:n,endIndex:r,citedText:i}}if(e.type===`content_block_location`&&O(e.document_title)&&Fe(e.start_block_index)&&Fe(e.end_block_index)&&O(e.cited_text)){let{document_title:t,start_block_index:n,end_block_index:r,cited_text:i,...a}=e;return{...a,type:`citation`,source:`block`,title:t??void 0,startIndex:n,endIndex:r,citedText:i}}if(e.type===`web_search_result_location`&&O(e.url)&&O(e.title)&&O(e.encrypted_index)&&O(e.cited_text)){let{url:t,title:n,encrypted_index:r,cited_text:i,...a}=e;return{...a,type:`citation`,source:`url`,url:t,title:n,startIndex:Number(r),endIndex:Number(r),citedText:i}}if(e.type===`search_result_location`&&O(e.source)&&O(e.title)&&Fe(e.start_block_index)&&Fe(e.end_block_index)&&O(e.cited_text)){let{source:t,title:n,start_block_index:r,end_block_index:i,cited_text:a,...o}=e;return{...o,type:`citation`,source:`search`,url:t,title:n??void 0,startIndex:r,endIndex:i,citedText:a}}}function Be(e){if(E(e,`document`)&&D(e.source)&&`type`in e.source){if(e.source.type===`base64`&&O(e.source.media_type)&&O(e.source.data))return{type:`file`,mimeType:e.source.media_type,data:e.source.data};if(e.source.type===`url`&&O(e.source.url))return{type:`file`,url:e.source.url};if(e.source.type===`file`&&O(e.source.file_id))return{type:`file`,fileId:e.source.file_id};if(e.source.type===`text`&&O(e.source.data))return{type:`file`,mimeType:String(e.source.media_type??`text/plain`),data:e.source.data}}else if(E(e,`image`)&&D(e.source)&&`type`in e.source){if(e.source.type===`base64`&&O(e.source.media_type)&&O(e.source.data))return{type:`image`,mimeType:e.source.media_type,data:e.source.data};if(e.source.type===`url`&&O(e.source.url))return{type:`image`,url:e.source.url};if(e.source.type===`file`&&O(e.source.file_id))return{type:`image`,fileId:e.source.file_id}}}function Ve(e){function*t(){for(let t of e){let e=Be(t);e?yield e:yield t}}return Array.from(t())}function He(e){function*t(){let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let n of t){if(E(n,`text`)&&O(n.text)){let{text:e,citations:t,...r}=n;if(Pe(t)&&t.length){let n=t.reduce((e,t)=>{let n=ze(t);return n?[...e,n]:e},[]);yield{...r,type:`text`,text:e,annotations:n};continue}else{yield{...r,type:`text`,text:e};continue}}else if(E(n,`thinking`)&&O(n.thinking)){let{thinking:e,signature:t,...r}=n;yield{...r,type:`reasoning`,reasoning:e,signature:t};continue}else if(E(n,`redacted_thinking`)){yield{type:`non_standard`,value:n};continue}else if(E(n,`tool_use`)&&O(n.name)&&O(n.id)){yield{type:`tool_call`,id:n.id,name:n.name,args:n.input};continue}else if(E(n,`input_json_delta`)){if(We(e)&&e.tool_call_chunks?.length){let t=e.tool_call_chunks[0];yield{type:`tool_call_chunk`,id:t.id,name:t.name,args:t.args,index:t.index};continue}}else if(E(n,`server_tool_use`)&&O(n.name)&&O(n.id)){let{name:e,id:t}=n;if(e===`web_search`){yield{id:t,type:`server_tool_call`,name:`web_search`,args:{query:Re(()=>{if(typeof n.input==`string`)return n.input;if(D(n.input)&&O(n.input.query))return n.input.query;if(O(n.partial_json)){let e=Le(n.partial_json);if(e?.query)return e.query}return``})}};continue}else if(n.name===`code_execution`){yield{id:t,type:`server_tool_call`,name:`code_execution`,args:{code:Re(()=>{if(typeof n.input==`string`)return n.input;if(D(n.input)&&O(n.input.code))return n.input.code;if(O(n.partial_json)){let e=Le(n.partial_json);if(e?.code)return e.code}return``})}};continue}}else if(E(n,`web_search_tool_result`)&&O(n.tool_use_id)&&Pe(n.content)){let{content:e,tool_use_id:t}=n;yield{type:`server_tool_call_result`,name:`web_search`,toolCallId:t,status:`success`,output:{urls:e.reduce((e,t)=>E(t,`web_search_result`)?[...e,t.url]:e,[])}};continue}else if(E(n,`code_execution_tool_result`)&&O(n.tool_use_id)&&D(n.content)){yield{type:`server_tool_call_result`,name:`code_execution`,toolCallId:n.tool_use_id,status:`success`,output:n.content};continue}else if(E(n,`mcp_tool_use`)){yield{id:n.id,type:`server_tool_call`,name:`mcp_tool_use`,args:n.input};continue}else if(E(n,`mcp_tool_result`)&&O(n.tool_use_id)&&D(n.content)){yield{type:`server_tool_call_result`,name:`mcp_tool_use`,toolCallId:n.tool_use_id,status:`success`,output:n.content};continue}else if(E(n,`container_upload`)){yield{type:`server_tool_call`,name:`container_upload`,args:n.input};continue}else if(E(n,`search_result`)){yield{id:n.id,type:`non_standard`,value:n};continue}else if(E(n,`tool_result`)){yield{id:n.id,type:`non_standard`,value:n};continue}else{let e=Be(n);if(e){yield e;continue}}yield{type:`non_standard`,value:n}}}return Array.from(t())}var Ue={translateContent:He,translateContentChunk:He};function We(e){return typeof e?._getType==`function`&&typeof e.concat==`function`&&e._getType()===`ai`}function Ge(e){return De(e)?{type:e.type,mimeType:e.mime_type,url:e.url,metadata:e.metadata}:Oe(e)?{type:e.type,mimeType:e.mime_type??`application/octet-stream`,data:e.data,metadata:e.metadata}:Ae(e)?{type:e.type,mimeType:e.mime_type,fileId:e.id,metadata:e.metadata}:e}function Ke(e){return e.map(Ge)}function qe(e){return!!(E(e,`image_url`)&&D(e.image_url)||E(e,`input_audio`)&&D(e.input_audio)||E(e,`file`)&&D(e.file))}function Je(e){if(E(e,`image_url`)&&D(e.image_url)&&O(e.image_url.url)){let t=Me({dataUrl:e.image_url.url});return t?{type:`image`,mimeType:t.mime_type,data:t.data}:{type:`image`,url:e.image_url.url}}else if(E(e,`input_audio`)&&D(e.input_audio)&&O(e.input_audio.data)&&O(e.input_audio.format))return{type:`audio`,data:e.input_audio.data,mimeType:`audio/${e.input_audio.format}`};else if(E(e,`file`)&&D(e.file)&&O(e.file.data)){let t=Me({dataUrl:e.file.data});if(t)return{type:`file`,data:t.data,mimeType:t.mime_type};if(O(e.file.file_id))return{type:`file`,fileId:e.file.file_id}}return e}function Ye(e){let t=[];typeof e.content==`string`?e.content.length>0&&t.push({type:`text`,text:e.content}):t.push(...Ze(e.content));for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}function Xe(e){let t=[];typeof e.content==`string`?e.content.length>0&&t.push({type:`text`,text:e.content}):t.push(...Ze(e.content));for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}function Ze(e){let t=[];for(let n of e)qe(n)?t.push(Je(n)):t.push(n);return t}function Qe(e){if(e.type===`url_citation`){let{url:t,title:n,start_index:r,end_index:i}=e;return{type:`citation`,url:t,title:n,startIndex:r,endIndex:i}}if(e.type===`file_citation`){let{file_id:t,filename:n,index:r}=e;return{type:`citation`,title:n,startIndex:r,endIndex:r,fileId:t}}return e}function $e(e){function*t(){D(e.additional_kwargs?.reasoning)&&Pe(e.additional_kwargs.reasoning.summary)&&(yield{type:`reasoning`,reasoning:e.additional_kwargs.reasoning.summary.reduce((e,t)=>D(t)&&O(t.text)?`${e}${t.text}`:e,``)});let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let e of t)if(E(e,`text`)){let{text:t,annotations:n,phase:r,extras:i,...a}=e,o=D(i)?{...i}:{};O(r)&&(o.phase=r);let s=Object.keys(o).length>0?{extras:o}:{};Array.isArray(n)?yield{...a,...s,type:`text`,text:String(t),annotations:n.map(Qe)}:yield{...a,...s,type:`text`,text:String(t)}}for(let t of e.tool_calls??[])yield{type:`tool_call`,id:t.id,name:t.name,args:t.args};if(D(e.additional_kwargs)&&Pe(e.additional_kwargs.tool_outputs))for(let t of e.additional_kwargs.tool_outputs){if(E(t,`web_search_call`)){let e={};if(D(t.action)&&O(t.action.query)&&(e.query=t.action.query),yield{id:t.id,type:`server_tool_call`,name:`web_search`,args:e},t.status===`completed`||t.status===`failed`){let e={};D(t.action)&&(e.action=t.action),yield{type:`server_tool_call_result`,toolCallId:O(t.id)?t.id:``,status:t.status===`completed`?`success`:`error`,output:e}}continue}else if(E(t,`file_search_call`)){yield{id:t.id,type:`server_tool_call`,name:`file_search`,args:{queries:Pe(t.queries)?t.queries:[]}},(t.status===`completed`||t.status===`failed`)&&(yield{type:`server_tool_call_result`,toolCallId:O(t.id)?t.id:``,status:t.status===`completed`?`success`:`error`,output:Pe(t.results)?{results:t.results}:{}});continue}else if(E(t,`computer_call`)){yield{type:`non_standard`,value:t};continue}else if(E(t,`code_interpreter_call`)){if(O(t.code)&&(yield{id:t.id,type:`server_tool_call`,name:`code_interpreter`,args:{code:t.code}}),Pe(t.outputs)){let e=Re(()=>{if(t.status!==`in_progress`){if(t.status===`completed`)return 0;if(t.status===`incomplete`)return 127;if(t.status!==`interpreting`&&t.status===`failed`)return 1}});for(let n of t.outputs)if(E(n,`logs`)){yield{type:`server_tool_call_result`,toolCallId:t.id??``,status:`success`,output:{type:`code_interpreter_output`,returnCode:e??0,stderr:[0,void 0].includes(e)?void 0:String(n.logs),stdout:[0,void 0].includes(e)?String(n.logs):void 0}};continue}}continue}else if(E(t,`mcp_call`)){yield{id:t.id,type:`server_tool_call`,name:`mcp_call`,args:t.input};continue}else if(E(t,`mcp_list_tools`)){yield{id:t.id,type:`server_tool_call`,name:`mcp_list_tools`,args:t.input};continue}else if(E(t,`mcp_approval_request`)){yield{type:`non_standard`,value:t};continue}else if(E(t,`tool_search_call`)){let e={};D(t.arguments)&&Object.assign(e,t.arguments);let n={};O(t.execution)&&(n.execution=t.execution),O(t.status)&&(n.status=t.status),O(t.call_id)&&(n.call_id=t.call_id),yield{id:O(t.id)?t.id:``,type:`server_tool_call`,name:`tool_search`,args:e,...Object.keys(n).length>0?{extras:n}:{}};continue}else if(E(t,`tool_search_output`)){let e={name:`tool_search`};O(t.execution)&&(e.execution=t.execution),yield{type:`server_tool_call_result`,toolCallId:O(t.id)?t.id:``,status:t.status===`completed`?`success`:t.status===`failed`?`error`:`success`,output:{tools:Pe(t.tools)?t.tools:[]},extras:e};continue}else if(E(t,`image_generation_call`)){O(t.result)&&(yield{type:`image`,mimeType:`image/png`,data:t.result,id:O(t.id)?t.id:void 0,metadata:{status:O(t.status)?t.status:void 0}}),yield{type:`non_standard`,value:t};continue}D(t)&&(yield{type:`non_standard`,value:t})}}return Array.from(t())}function et(e){function*t(){yield*$e(e);for(let t of e.tool_call_chunks??[])yield{type:`tool_call_chunk`,id:t.id,name:t.name,args:t.args}}return Array.from(t())}var tt={translateContent:e=>typeof e.content==`string`?Ye(e):$e(e),translateContentChunk:e=>typeof e.content==`string`?Xe(e):et(e)};function nt(e){return typeof e==`object`&&!!e&&`type`in e&&`content`in e&&(typeof e.content==`string`||Array.isArray(e.content))}function rt(e,t=`pretty`){return t===`pretty`?it(e):JSON.stringify(e)}function it(e){let t=[],n=` ${e.type.charAt(0).toUpperCase()+e.type.slice(1)} Message `,r=Math.floor((80-n.length)/2),i=`=`.repeat(r),a=n.length%2==0?i:`${i}=`;if(t.push(`${i}${n}${a}`),e.type===`ai`){let n=e;if(n.tool_calls&&n.tool_calls.length>0){t.push(`Tool Calls:`);for(let e of n.tool_calls){t.push(` ${e.name} (${e.id})`),t.push(` Call ID: ${e.id}`),t.push(` Args:`);for(let[n,r]of Object.entries(e.args))t.push(` ${n}: ${typeof r==`object`?JSON.stringify(r):r}`)}}}if(e.type===`tool`){let n=e;n.name&&t.push(`Name: ${n.name}`)}return typeof e.content==`string`&&e.content.trim()&&(t.length>1&&t.push(``),t.push(e.content)),t.join(`
|
|
7
|
+
`)}var at=Symbol.for(`langchain.message`);function ot(e){return Array.isArray(e)?e:typeof e==`string`?e===``?[]:[{type:`text`,text:e}]:e==null?[]:[e]}function st(e,t){if(typeof e==`string`)return e===``?t:typeof t==`string`?e+t:Array.isArray(t)&&t.length===0?e:Array.isArray(t)&&t.some(e=>Ee(e))?[{type:`text`,source_type:`text`,text:e},...t]:[{type:`text`,text:e},...t];if(Array.isArray(t)){let n=ot(e);return bt(n,t)??[...n,...t]}else if(t===``)return e;else if(Array.isArray(e)&&e.some(e=>Ee(e)))return[...e,{type:`file`,source_type:`text`,text:t}];else return[...ot(e),{type:`text`,text:t}]}function ct(e,t){return e===`error`||t===`error`?`error`:`success`}function lt(e,t){function n(e,r){if(typeof e!=`object`||!e||e===void 0)return e;if(r>=t)return Array.isArray(e)?`[Array]`:`[Object]`;if(Array.isArray(e))return e.map(e=>n(e,r+1));let i={};for(let t of Object.keys(e))i[t]=n(e[t],r+1);return i}return JSON.stringify(n(e,0),null,2)}var ut=class extends Te{lc_namespace=[`langchain_core`,`messages`];lc_serializable=!0;get lc_aliases(){return{additional_kwargs:`additional_kwargs`,response_metadata:`response_metadata`}}[at]=!0;id;name;content;additional_kwargs;response_metadata;_getType(){return this.type}getType(){return this._getType()}constructor(e){let t=typeof e==`string`||Array.isArray(e)?{content:e}:e;t.additional_kwargs||={},t.response_metadata||={},super(t),this.name=t.name,t.content===void 0&&t.contentBlocks!==void 0?(this.content=t.contentBlocks,this.response_metadata={output_version:`v1`,...t.response_metadata}):t.content===void 0?(this.content=[],this.response_metadata=t.response_metadata):(this.content=t.content??[],this.response_metadata=t.response_metadata),this.additional_kwargs=t.additional_kwargs,this.id=t.id}get text(){return typeof this.content==`string`?this.content:Array.isArray(this.content)?this.content.map(e=>typeof e==`string`?e:e.type===`text`?e.text:``).join(``):``}get contentBlocks(){let e=typeof this.content==`string`?[{type:`text`,text:this.content}]:this.content;return[Ke,Ze,Ve].reduce((e,t)=>t(e),e)}toDict(){return{type:this.getType(),data:this.toJSON().kwargs}}static lc_name(){return`BaseMessage`}get _printableFields(){return{id:this.id,content:this.content,name:this.name,additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata}}static isInstance(e){return typeof e==`object`&&!!e&&at in e&&e[at]===!0&&nt(e)}_updateId(e){this.id=e,this.lc_kwargs.id=e}get[Symbol.toStringTag](){return this.constructor.lc_name()}[Symbol.for(`nodejs.util.inspect.custom`)](e){if(e===null)return this;let t=lt(this._printableFields,Math.max(4,e));return`${this.constructor.lc_name()} ${t}`}toFormattedString(e=`pretty`){return rt(this,e)}};function dt(e){return Array.isArray(e)&&e.every(e=>typeof e.index==`number`)}var ft=[`index`,`created`,`timestamp`];function pt(e,t,n){let r=n?.ignoreKeys??ft;if(e==null&&t==null)return;if(e==null||t==null)return e??t;let i={...e};for(let[e,a]of Object.entries(t))if(i[e]==null)i[e]=a;else if(a==null)continue;else if(typeof i[e]!=typeof a||Array.isArray(i[e])!==Array.isArray(a))throw Error(`field[${e}] already exists in the message chunk, but with a different type.`);else if(typeof i[e]==`string`){if(e===`type`)continue;if([`id`,`name`,`output_version`,`model_provider`].includes(e))a&&(i[e]=a);else if(r.includes(e))continue;else i[e]+=a}else if(typeof i[e]==`number`){if(r.includes(e))continue;i[e]=i[e]+a}else if(typeof i[e]==`object`&&!Array.isArray(i[e]))i[e]=pt(i[e],a,n);else if(Array.isArray(i[e]))i[e]=bt(i[e],a,n);else if(i[e]===a)continue;else console.warn(`field[${e}] already exists in this message chunk and value has unsupported type.`);return i}function mt(e){return typeof e==`number`||typeof e==`string`}function ht(e){return typeof e!=`object`||!e||!(`index`in e)?!1:mt(e.index)}function gt(e){if(typeof e!=`object`||!e||!(`id`in e))return!1;let t=e.id;return t!=null&&t!==``}function _t(e){return e.endsWith(`_delta`)?e.slice(0,-6):e}function vt(e,t){return typeof e!=`object`||!e||typeof t!=`object`||!t||!(`type`in e)||!(`type`in t)?!1:typeof e.type==`string`&&typeof t.type==`string`&&_t(e.type)!==_t(t.type)}function yt(e,t){let n=ht(t),r=gt(t);return!n&&!r?-1:e.findIndex(e=>{let i=ht(e),a=gt(e);return n&&i?e.index!==t.index||vt(e,t)?!1:a&&r?e.id===t.id:!0:!n&&!i&&r&&a?e.id===t.id:!1})}function bt(e,t,n){if(!(e==null&&t==null)){if(e==null||t==null)return e||t;{let r=[...e];for(let e of t){let t=yt(r,e);if(t!==-1)r[t]=pt(r[t],e,n);else if(typeof e==`object`&&e&&`text`in e&&e.text===``)continue;else r.push(e)}return r}}}function xt(e,t,n){if(!(e==null&&t==null)){if(e==null||t==null)return e??t;if(typeof e!=typeof t)throw Error(`Cannot merge objects of different types.\nLeft ${typeof e}\nRight ${typeof t}`);if(typeof e==`string`&&typeof t==`string`)return e+t;if(Array.isArray(e)&&Array.isArray(t))return bt(e,t,n);if(typeof e==`object`&&typeof t==`object`)return pt(e,t,n);if(e===t)return e;throw Error(`Can not merge objects of different types.\nLeft ${e}\nRight ${t}`)}}var St=class e extends ut{static isInstance(t){if(!super.isInstance(t))return!1;let n=Object.getPrototypeOf(t);for(;n!==null;){if(n===e.prototype)return!0;n=Object.getPrototypeOf(n)}return!1}};function Ct(e){return typeof e.role==`string`}function wt(e){return typeof e?._getType==`function`}function Tt(e){return St.isInstance(e)}var Et=h({ToolMessage:()=>Ot,ToolMessageChunk:()=>kt,defaultToolCallParser:()=>At,isDirectToolOutput:()=>Dt,isToolMessage:()=>jt,isToolMessageChunk:()=>Mt});function Dt(e){return typeof e==`object`&&!!e&&`lc_direct_tool_output`in e&&e.lc_direct_tool_output===!0}var Ot=class extends ut{static lc_name(){return`ToolMessage`}get lc_aliases(){return{tool_call_id:`tool_call_id`}}lc_direct_tool_output=!0;type=`tool`;status;tool_call_id;metadata;artifact;constructor(e,t,n){let r=typeof e==`string`||Array.isArray(e)?{content:e,name:n,tool_call_id:t}:e;super(r),this.tool_call_id=r.tool_call_id,this.artifact=r.artifact,this.status=r.status,this.metadata=r.metadata}static isInstance(e){return super.isInstance(e)&&e.type===`tool`}get _printableFields(){return{...super._printableFields,tool_call_id:this.tool_call_id,artifact:this.artifact}}},kt=class extends St{type=`tool`;tool_call_id;status;artifact;constructor(e){super(e),this.tool_call_id=e.tool_call_id,this.artifact=e.artifact,this.status=e.status}static lc_name(){return`ToolMessageChunk`}concat(e){let t=this.constructor;return new t({content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:pt(this.response_metadata,e.response_metadata),artifact:xt(this.artifact,e.artifact),tool_call_id:this.tool_call_id,id:this.id??e.id,status:ct(this.status,e.status)})}get _printableFields(){return{...super._printableFields,tool_call_id:this.tool_call_id,artifact:this.artifact}}};function At(e){let t=[],n=[];for(let r of e)if(r.function){let e=r.function.name;try{let n=JSON.parse(r.function.arguments);t.push({name:e||``,args:n||{},id:r.id})}catch{n.push({name:e,args:r.function.arguments,id:r.id,error:`Malformed args.`})}}else continue;return[t,n]}function jt(e){return typeof e==`object`&&!!e&&`getType`in e&&typeof e.getType==`function`&&e.getType()===`tool`}function Mt(e){return e._getType()===`tool`}function Nt(e){switch(e){case`csv`:return`text/csv`;case`doc`:return`application/vnd.openxmlformats-officedocument.wordprocessingml.document`;case`docx`:return`application/vnd.openxmlformats-officedocument.wordprocessingml.document`;case`html`:return`text/html`;case`md`:return`text/markdown`;case`pdf`:return`application/pdf`;case`txt`:return`text/plain`;case`xls`:return`application/vnd.ms-excel`;case`xlsx`:return`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`;case`gif`:return`image/gif`;case`jpeg`:return`image/jpeg`;case`jpg`:return`image/jpeg`;case`png`:return`image/png`;case`webp`:return`image/webp`;case`flv`:return`video/flv`;case`mkv`:return`video/mkv`;case`mov`:return`video/mov`;case`mp4`:return`video/mp4`;case`mpeg`:return`video/mpeg`;case`mpg`:return`video/mpg`;case`three_gp`:return`video/three_gp`;case`webm`:return`video/webm`;case`wmv`:return`video/wmv`;default:return`application/octet-stream`}}function Pt(e){if(D(e.document)&&D(e.document.source)){let t=Nt(D(e.document)&&O(e.document.format)?e.document.format:``);if(D(e.document.source)){if(D(e.document.source.s3Location)&&O(e.document.source.s3Location.uri))return{type:`file`,mimeType:t,fileId:e.document.source.s3Location.uri};if(Ie(e.document.source.bytes))return{type:`file`,mimeType:t,data:e.document.source.bytes};if(O(e.document.source.text))return{type:`file`,mimeType:t,data:Buffer.from(e.document.source.text).toString(`base64`)};if(Pe(e.document.source.content))return{type:`file`,mimeType:t,data:e.document.source.content.reduce((e,t)=>D(t)&&O(t.text)?e+t.text:e,``)}}}return{type:`non_standard`,value:e}}function Ft(e){if(E(e,`image`)&&D(e.image)){let t=Nt(D(e.image)&&O(e.image.format)?e.image.format:``);if(D(e.image.source)){if(D(e.image.source.s3Location)&&O(e.image.source.s3Location.uri))return{type:`image`,mimeType:t,fileId:e.image.source.s3Location.uri};if(Ie(e.image.source.bytes))return{type:`image`,mimeType:t,data:e.image.source.bytes}}}return{type:`non_standard`,value:e}}function It(e){if(E(e,`video`)&&D(e.video)){let t=Nt(D(e.video)&&O(e.video.format)?e.video.format:``);if(D(e.video.source)){if(D(e.video.source.s3Location)&&O(e.video.source.s3Location.uri))return{type:`video`,mimeType:t,fileId:e.video.source.s3Location.uri};if(Ie(e.video.source.bytes))return{type:`video`,mimeType:t,data:e.video.source.bytes}}}return{type:`non_standard`,value:e}}function Lt(e){function*t(){let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let e of t){if(E(e,`reasoning`)&&O(e.reasoning)){yield{...e,type:`reasoning`,reasoning:e.reasoning};continue}else if(E(e,`cache_point`)){yield{type:`non_standard`,value:e};continue}else if(E(e,`citations_content`)&&D(e.citationsContent)){yield{type:`text`,text:Pe(e.citationsContent.content)?e.citationsContent.content.reduce((e,t)=>D(t)&&O(t.text)?e+t.text:e,``):``,annotations:Pe(e.citationsContent.citations)?e.citationsContent.citations.reduce((e,t)=>{if(D(t)){let n=Pe(t.sourceContent)?t.sourceContent.reduce((e,t)=>D(t)&&O(t.text)?e+t.text:e,``):``,r=Re(()=>{if(D(t.location)){let e=t.location.documentChar||t.location.documentPage||t.location.documentChunk;if(D(e))return{source:Fe(e.documentIndex)?e.documentIndex.toString():void 0,startIndex:Fe(e.start)?e.start:void 0,endIndex:Fe(e.end)?e.end:void 0}}return{}});e.push({type:`citation`,citedText:n,...r})}return e},[]):[]};continue}else if(E(e,`document`)&&D(e.document)){yield Pt(e);continue}else if(E(e,`guard_content`)){yield{type:`non_standard`,value:e};continue}else if(E(e,`image`)&&D(e.image)){yield Ft(e);continue}else if(E(e,`reasoning_content`)&&D(e.reasoningText)&&O(e.reasoningText.text)){yield{type:`reasoning`,reasoning:e.reasoningText.text,...O(e.reasoningText.signature)?{signature:e.reasoningText.signature}:{}};continue}else if(E(e,`reasoning_content`)&&O(e.reasoningText)){yield{type:`reasoning`,reasoning:e.reasoningText};continue}else if(E(e,`text`)&&O(e.text)){yield{type:`text`,text:e.text};continue}else if(E(e,`tool_result`)){yield{type:`non_standard`,value:e};continue}else if(E(e,`tool_call`))continue;else if(E(e,`video`)&&D(e.video)){yield It(e);continue}yield{type:`non_standard`,value:e}}}return Array.from(t())}var Rt={translateContent:Lt,translateContentChunk:Lt};function zt(e){let t=[],n=e.additional_kwargs?.reasoning_content;if(O(n)&&n.length>0&&t.push({type:`reasoning`,reasoning:n}),typeof e.content==`string`)e.content.length>0&&t.push({type:`text`,text:e.content});else for(let n of e.content)typeof n==`object`&&`type`in n&&n.type===`text`&&`text`in n&&O(n.text)&&t.push({type:`text`,text:n.text});for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}var Bt={translateContent:zt,translateContentChunk:zt};function Vt(e){function*t(){let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let n of t){if(E(n,`text`)&&O(n.text)){yield{type:`text`,text:n.text};continue}else if(E(n,`thinking`)&&O(n.thinking)){yield{type:`reasoning`,reasoning:n.thinking,...n.signature?{signature:n.signature}:{}};continue}else if(E(n,`inlineData`)&&D(n.inlineData)&&O(n.inlineData.mimeType)&&O(n.inlineData.data)){yield{type:`file`,mimeType:n.inlineData.mimeType,data:n.inlineData.data};continue}else if(E(n,`functionCall`)&&D(n.functionCall)&&O(n.functionCall.name)&&D(n.functionCall.args)){yield{type:`tool_call`,id:e.id,name:n.functionCall.name,args:n.functionCall.args};continue}else if(E(n,`functionResponse`)){yield{type:`non_standard`,value:n};continue}else if(E(n,`fileData`)&&D(n.fileData)&&O(n.fileData.mimeType)&&O(n.fileData.fileUri)){yield{type:`file`,mimeType:n.fileData.mimeType,fileId:n.fileData.fileUri};continue}else if(E(n,`executableCode`)){yield{type:`non_standard`,value:n};continue}else if(E(n,`codeExecutionResult`)){yield{type:`non_standard`,value:n};continue}yield{type:`non_standard`,value:n}}}return Array.from(t())}var Ht={translateContent:Vt,translateContentChunk:Vt};function Ut(e){function*t(){let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let n of t){if(E(n,`reasoning`)&&O(n.reasoning)){let r=Re(()=>{let r=t.indexOf(n);if(Pe(e.additional_kwargs?.signatures)&&r>=0)return e.additional_kwargs.signatures.at(r)});O(r)?yield{type:`reasoning`,reasoning:n.reasoning,signature:r}:yield{type:`reasoning`,reasoning:n.reasoning};continue}else if(E(n,`thinking`)&&O(n.thinking)){yield{type:`reasoning`,reasoning:n.thinking,...n.signature?{signature:n.signature}:{}};continue}else if(E(n,`text`)&&O(n.text)){yield{type:`text`,text:n.text};continue}else if(E(n,`image_url`)){if(O(n.image_url))if(n.image_url.startsWith(`data:`)){let e=n.image_url.match(/^data:([^;]+);base64,(.+)$/);e?yield{type:`image`,data:e[2],mimeType:e[1]}:yield{type:`image`,url:n.image_url}}else yield{type:`image`,url:n.image_url};continue}else if(E(n,`media`)&&O(n.mimeType)&&O(n.data)){yield{type:`file`,mimeType:n.mimeType,data:n.data};continue}yield{type:`non_standard`,value:n}}}return Array.from(t())}var Wt={translateContent:Ut,translateContentChunk:Ut};function Gt(e){let t=[],n=e.additional_kwargs?.reasoning;if(O(n)&&n.length>0&&t.push({type:`reasoning`,reasoning:n}),typeof e.content==`string`){let n=e.content,r=n.match(/<think>([\s\S]*?)<\/think>/);if(r){let e=r[1].trim();e.length>0&&t.push({type:`reasoning`,reasoning:e}),n=n.replace(/<think>[\s\S]*?<\/think>/,``).trim()}n.length>0&&t.push({type:`text`,text:n})}else for(let n of e.content)if(typeof n==`object`&&`type`in n&&n.type===`text`&&`text`in n&&O(n.text)){let e=n.text,r=e.match(/<think>([\s\S]*?)<\/think>/);if(r){let n=r[1].trim();n.length>0&&t.push({type:`reasoning`,reasoning:n}),e=e.replace(/<think>[\s\S]*?<\/think>/,``).trim()}e.length>0&&t.push({type:`text`,text:e})}for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}var Kt={translateContent:Gt,translateContentChunk:Gt};function qt(e){let t=[],n=e.additional_kwargs?.reasoning_content;if(O(n)&&n.length>0&&t.push({type:`reasoning`,reasoning:n}),typeof e.content==`string`)e.content.length>0&&t.push({type:`text`,text:e.content});else for(let n of e.content)typeof n==`object`&&`type`in n&&n.type===`text`&&`text`in n&&O(n.text)&&t.push({type:`text`,text:n.text});for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}var Jt={translateContent:qt,translateContentChunk:qt};function Yt(e){let t=[],n=e.additional_kwargs?.reasoning_details,r=!1;if(Array.isArray(n)&&n.length>0)for(let e of n){if(typeof e!=`object`||!e)continue;let n=e.type;if(n===`reasoning.summary`){let n=e.summary;O(n)&&n.length>0&&(t.push({type:`reasoning`,reasoning:n}),r=!0)}else if(n===`reasoning.text`){let n=e.text;O(n)&&n.length>0&&(t.push({type:`reasoning`,reasoning:n}),r=!0)}}if(!r){let n=e.additional_kwargs?.reasoning_content;O(n)&&n.length>0&&t.push({type:`reasoning`,reasoning:n})}if(typeof e.content==`string`)e.content.length>0&&t.push({type:`text`,text:e.content});else for(let n of e.content)typeof n==`object`&&`type`in n&&n.type===`text`&&`text`in n&&O(n.text)&&t.push({type:`text`,text:n.text});for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}var Xt={translateContent:Yt,translateContentChunk:Yt};function Zt(e){let t=[];if(D(e.additional_kwargs?.reasoning)){let n=e.additional_kwargs.reasoning;if(Pe(n.summary)){let e=n.summary.reduce((e,t)=>D(t)&&O(t.text)?`${e}${t.text}`:e,``);e.length>0&&t.push({type:`reasoning`,reasoning:e})}}let n=e.additional_kwargs?.reasoning_content;if(O(n)&&n.length>0&&t.push({type:`reasoning`,reasoning:n}),typeof e.content==`string`)e.content.length>0&&t.push({type:`text`,text:e.content});else for(let n of e.content)typeof n==`object`&&`type`in n&&n.type===`text`&&`text`in n&&O(n.text)&&t.push({type:`text`,text:n.text});for(let n of e.tool_calls??[])t.push({type:`tool_call`,id:n.id,name:n.name,args:n.args});return t}var Qt={translateContent:Zt,translateContentChunk:Zt};function $t(e){function*t(){let t=Re(()=>{if(typeof e.content==`string`)return e.additional_kwargs.originalTextContentBlock?[{...e.additional_kwargs.originalTextContentBlock,type:`text`}]:[{type:`text`,text:e.content}];{let t=e.additional_kwargs?.originalTextContentBlock;if(t?.thoughtSignature&&!e.content.some(e=>`thoughtSignature`in e)){let n=[...e.content];for(let e=n.length-1;e>=0;e--){let r=n[e];if(r.type===`text`&&!r.thought)return r.thoughtSignature=t.thoughtSignature,n}}return e.content}});for(let n of t){let t=Re(()=>E(n,`text`)&&O(n.text)?{type:`text`,text:n.text}:E(n,`inlineData`)&&D(n.inlineData)&&O(n.inlineData.mimeType)&&O(n.inlineData.data)?{type:`file`,mimeType:n.inlineData.mimeType,data:n.inlineData.data}:E(n,`functionCall`)&&D(n.functionCall)&&O(n.functionCall.name)&&D(n.functionCall.args)?{type:`tool_call`,id:e.id,name:n.functionCall.name,args:n.functionCall.args}:E(n,`functionResponse`)?{type:`non_standard`,value:n}:E(n,`fileData`)&&D(n.fileData)&&O(n.fileData.mimeType)&&O(n.fileData.fileUri)?{type:`file`,mimeType:n.fileData.mimeType,fileId:n.fileData.fileUri}:(E(n,`executableCode`)||E(n,`codeExecutionResult`),{type:`non_standard`,value:n})),r=Re(()=>`thought`in n&&n.thought?{type:`reasoning`,reasoning:t.type===`text`?t.text:``,reasoningContentBlock:t}:t),i={thought:n.thought,thoughtSignature:n.thoughtSignature,partMetadata:n.partMetadata,...r};for(let e in i)i[e]===void 0&&delete i[e];yield i}}return Array.from(t())}globalThis.lc_block_translators_registry??=new Map([[`anthropic`,Ue],[`bedrock-converse`,Rt],[`deepseek`,Bt],[`google`,{translateContent:$t,translateContentChunk:$t}],[`google-genai`,Ht],[`google-vertexai`,Wt],[`groq`,Kt],[`ollama`,Jt],[`openai`,tt],[`openrouter`,Xt],[`xai`,Qt]]);function en(e){return globalThis.lc_block_translators_registry.get(e)}function tn(e,t){return pt(e,t)??{}}function nn(e,t){let n={};return(e?.audio!==void 0||t?.audio!==void 0)&&(n.audio=(e?.audio??0)+(t?.audio??0)),(e?.image!==void 0||t?.image!==void 0)&&(n.image=(e?.image??0)+(t?.image??0)),(e?.video!==void 0||t?.video!==void 0)&&(n.video=(e?.video??0)+(t?.video??0)),(e?.document!==void 0||t?.document!==void 0)&&(n.document=(e?.document??0)+(t?.document??0)),(e?.text!==void 0||t?.text!==void 0)&&(n.text=(e?.text??0)+(t?.text??0)),n}function rn(e,t){let n={...nn(e,t)};return(e?.cache_read!==void 0||t?.cache_read!==void 0)&&(n.cache_read=(e?.cache_read??0)+(t?.cache_read??0)),(e?.cache_creation!==void 0||t?.cache_creation!==void 0)&&(n.cache_creation=(e?.cache_creation??0)+(t?.cache_creation??0)),n}function an(e,t){let n={...nn(e,t)};return(e?.reasoning!==void 0||t?.reasoning!==void 0)&&(n.reasoning=(e?.reasoning??0)+(t?.reasoning??0)),n}function on(e,t){return{input_tokens:(e?.input_tokens??0)+(t?.input_tokens??0),output_tokens:(e?.output_tokens??0)+(t?.output_tokens??0),total_tokens:(e?.total_tokens??0)+(t?.total_tokens??0),input_token_details:rn(e?.input_token_details,t?.input_token_details),output_token_details:an(e?.output_token_details,t?.output_token_details)}}function sn(e){return typeof e==`string`?e.length>0?[{type:`text`,text:e}]:[]:Array.isArray(e)?e:e==null?[]:[e]}var k=class extends ut{type=`ai`;tool_calls=[];invalid_tool_calls=[];usage_metadata;get lc_aliases(){return{...super.lc_aliases,tool_calls:`tool_calls`,invalid_tool_calls:`invalid_tool_calls`,usage_metadata:`usage_metadata`}}constructor(e){let t;if(typeof e==`string`||Array.isArray(e))t={content:e,tool_calls:[],invalid_tool_calls:[],additional_kwargs:{}};else{t=e;let n=t.additional_kwargs?.tool_calls,r=t.tool_calls;n!=null&&n.length>0&&(r===void 0||r.length===0)&&console.warn([`New LangChain packages are available that more efficiently handle`,`tool calling.
|
|
8
|
+
|
|
9
|
+
Please upgrade your packages to versions that set`,"message tool calls. e.g., `pnpm install @langchain/anthropic`,","pnpm install @langchain/openai`, etc."].join(` `));try{if(n!=null&&r===void 0){let[e,r]=At(n);t.tool_calls=e??[],t.invalid_tool_calls=r??[]}else t.tool_calls=t.tool_calls??[],t.invalid_tool_calls=t.invalid_tool_calls??[]}catch{t.tool_calls=[],t.invalid_tool_calls=[]}if(t.response_metadata!==void 0&&`output_version`in t.response_metadata&&t.response_metadata.output_version===`v1`&&t.content!==void 0&&(t.contentBlocks=sn(t.content),t.content=void 0),t.contentBlocks!==void 0){if(Array.isArray(t.contentBlocks)||(t.contentBlocks=sn(t.contentBlocks)),t.tool_calls){let e=t.tool_calls.filter(e=>!t.contentBlocks?.some(t=>t.type===`tool_call`&&t.id===e.id&&t.name===e.name));t.contentBlocks.push(...e.map(e=>({type:`tool_call`,id:e.id,name:e.name,args:e.args})))}let e=t.contentBlocks.filter(e=>e.type===`tool_call`).filter(e=>!t.tool_calls?.some(t=>t.id===e.id&&t.name===e.name));e.length>0&&(t.tool_calls=[...t.tool_calls??[],...e.map(e=>({type:`tool_call`,id:e.id,name:e.name,args:e.args}))])}}super(t),typeof t!=`string`&&(this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls),this.usage_metadata=t.usage_metadata}static lc_name(){return`AIMessage`}get contentBlocks(){if(this.response_metadata&&`output_version`in this.response_metadata&&this.response_metadata.output_version===`v1`)return this.content;if(this.response_metadata&&`model_provider`in this.response_metadata&&typeof this.response_metadata.model_provider==`string`){let e=en(this.response_metadata.model_provider);if(e)return e.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls){let t=this.tool_calls.filter(t=>!e.some(e=>e.id===t.id&&e.name===t.name));e.push(...t.map(e=>({type:`tool_call`,id:e.id,name:e.name,args:e.args})))}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}static isInstance(e){return super.isInstance(e)&&e.type===`ai`}};function cn(e){return e._getType()===`ai`}function ln(e){return e._getType()===`ai`}var un=class extends St{type=`ai`;tool_calls=[];invalid_tool_calls=[];tool_call_chunks=[];usage_metadata;constructor(e){let t;if(typeof e==`string`||Array.isArray(e))t={content:e,tool_calls:[],invalid_tool_calls:[],tool_call_chunks:[]};else if(e.tool_call_chunks===void 0||e.tool_call_chunks.length===0)t={...e,tool_calls:e.tool_calls??[],invalid_tool_calls:[],tool_call_chunks:[],usage_metadata:e.usage_metadata===void 0?void 0:e.usage_metadata};else{let n=Vn(e.tool_call_chunks??[]);t={...e,tool_call_chunks:n.tool_call_chunks,tool_calls:n.tool_calls,invalid_tool_calls:n.invalid_tool_calls,usage_metadata:e.usage_metadata===void 0?void 0:e.usage_metadata}}super(t),this.tool_call_chunks=t.tool_call_chunks??this.tool_call_chunks,this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls,this.usage_metadata=t.usage_metadata}get lc_aliases(){return{...super.lc_aliases,tool_calls:`tool_calls`,invalid_tool_calls:`invalid_tool_calls`,tool_call_chunks:`tool_call_chunks`,usage_metadata:`usage_metadata`}}static lc_name(){return`AIMessageChunk`}get contentBlocks(){if(this.response_metadata&&`output_version`in this.response_metadata&&this.response_metadata.output_version===`v1`)return this.content;if(this.response_metadata&&`model_provider`in this.response_metadata&&typeof this.response_metadata.model_provider==`string`){let e=en(this.response_metadata.model_provider);if(e)return e.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls&&typeof this.content!=`string`){let t=this.content.filter(e=>e.type===`tool_call`).map(e=>e.id);for(let n of this.tool_calls)n.id&&!t.includes(n.id)&&e.push({...n,type:`tool_call`,id:n.id,name:n.name,args:n.args})}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,tool_call_chunks:this.tool_call_chunks,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}concat(e){let t={content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:tn(this.response_metadata,e.response_metadata),tool_call_chunks:[],tool_calls:[],id:this.id??e.id};if(this.tool_call_chunks!==void 0||e.tool_call_chunks!==void 0){let n=bt(this.tool_call_chunks,e.tool_call_chunks);n!==void 0&&n.length>0&&(t.tool_call_chunks=n)}if(this.tool_calls!==void 0||e.tool_calls!==void 0){let n=bt(this.tool_calls,e.tool_calls);n!==void 0&&n.length>0&&(t.tool_calls=n)}(this.usage_metadata!==void 0||e.usage_metadata!==void 0)&&(t.usage_metadata=on(this.usage_metadata,e.usage_metadata));let n=this.constructor;return new n(t)}static isInstance(e){return super.isInstance(e)&&e.type===`ai`}},dn=class e extends ut{static lc_name(){return`ChatMessage`}type=`generic`;role;static _chatMessageClass(){return e}constructor(e,t){(typeof e==`string`||Array.isArray(e))&&(e={content:e,role:t}),super(e),this.role=e.role}static isInstance(e){return super.isInstance(e)&&e.type===`generic`}get _printableFields(){return{...super._printableFields,role:this.role}}},fn=class extends St{static lc_name(){return`ChatMessageChunk`}type=`generic`;role;constructor(e,t){(typeof e==`string`||Array.isArray(e))&&(e={content:e,role:t}),super(e),this.role=e.role}concat(e){let t=this.constructor;return new t({content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:pt(this.response_metadata,e.response_metadata),role:this.role,id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type===`generic`}get _printableFields(){return{...super._printableFields,role:this.role}}};function pn(e){return e._getType()===`generic`}function mn(e){return e._getType()===`generic`}var hn=class extends ut{static lc_name(){return`FunctionMessage`}type=`function`;name;constructor(e){super(e),this.name=e.name}},gn=class extends St{static lc_name(){return`FunctionMessageChunk`}type=`function`;concat(e){let t=this.constructor;return new t({content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:pt(this.response_metadata,e.response_metadata),name:this.name??``,id:this.id??e.id})}};function _n(e){return e._getType()===`function`}function vn(e){return e._getType()===`function`}var yn=class extends ut{static lc_name(){return`HumanMessage`}type=`human`;constructor(e){super(e)}static isInstance(e){return super.isInstance(e)&&e.type===`human`}},bn=class extends St{static lc_name(){return`HumanMessageChunk`}type=`human`;constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:pt(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type===`human`}};function xn(e){return e.getType()===`human`}function Sn(e){return e.getType()===`human`}var Cn=class extends ut{type=`remove`;id;constructor(e){super({...e,content:[]}),this.id=e.id}get _printableFields(){return{...super._printableFields,id:this.id}}static isInstance(e){return super.isInstance(e)&&e.type===`remove`}},wn=class e extends ut{static lc_name(){return`SystemMessage`}type=`system`;constructor(e){super(e)}concat(t){if(typeof t==`string`)return new e({content:st(this.content,t),additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata,id:this.id,name:this.name});if(e.isInstance(t))return new e({content:st(this.content,t.content),additional_kwargs:{...this.additional_kwargs,...t.additional_kwargs},response_metadata:{...this.response_metadata,...t.response_metadata},id:this.id??t.id,name:this.name??t.name});throw Error(`Unexpected chunk type for system message`)}static isInstance(e){return super.isInstance(e)&&e.type===`system`}},Tn=class extends St{static lc_name(){return`SystemMessageChunk`}type=`system`;constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:st(this.content,e.content),additional_kwargs:pt(this.additional_kwargs,e.additional_kwargs),response_metadata:pt(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type===`system`}};function En(e){return e._getType()===`system`}function Dn(e){return e._getType()===`system`}function On(e){return e.isCustomTool===!0}var kn=e=>e();function An(e){return C(e)?e:typeof e.id==`string`&&e.type===`function`&&typeof e.function==`object`&&e.function!==null&&`arguments`in e.function&&typeof e.function.arguments==`string`&&`name`in e.function&&typeof e.function.name==`string`?{id:e.id,args:JSON.parse(e.function.arguments),name:e.function.name,type:`tool_call`}:e}function jn(e){return typeof e==`object`&&!!e&&e.lc===1&&Array.isArray(e.id)&&e.kwargs!=null&&typeof e.kwargs==`object`}function Mn(e){let t,n;if(jn(e)){let r=e.id.at(-1);t=r===`HumanMessage`||r===`HumanMessageChunk`?`user`:r===`AIMessage`||r===`AIMessageChunk`?`assistant`:r===`SystemMessage`||r===`SystemMessageChunk`?`system`:r===`FunctionMessage`||r===`FunctionMessageChunk`?`function`:r===`ToolMessage`||r===`ToolMessageChunk`?`tool`:`unknown`,n=e.kwargs}else{let{type:r,...i}=e;t=r,n=i}if(t===`human`||t===`user`)return new yn(n);if(t===`ai`||t===`assistant`){let{tool_calls:e,...t}=n;if(!Array.isArray(e))return new k(n);let r=e.map(An);return new k({...t,tool_calls:r})}else if(t===`system`)return new wn(n);else if(t===`developer`)return new wn({...n,additional_kwargs:{...n.additional_kwargs,__openai_role__:`developer`}});else if(t===`tool`&&`tool_call_id`in n)return new Ot({...n,content:n.content,tool_call_id:n.tool_call_id,name:n.name});else if(t===`remove`&&`id`in n&&typeof n.id==`string`)return new Cn({...n,id:n.id});else throw y(Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.\n\nReceived: ${JSON.stringify(e,null,2)}`),`MESSAGE_COERCION_FAILURE`)}function Nn(e){if(typeof e==`string`)return new yn(e);if(wt(e))return e;if(Array.isArray(e)){let[t,n]=e;return Mn({type:t,content:n})}else if(Ct(e)){let{role:t,...n}=e;return Mn({...n,type:t})}else return Mn(e)}function Pn(e){if(typeof e==`string`)return e;switch(e.type){case`text`:return e.text??``;case`text-plain`:return e.text??`[text-plain file]`;case`image`:case`image_url`:return`[image]`;case`audio`:case`input_audio`:return`[audio]`;case`video`:return`[video]`;case`file`:return`[file]`;case`reasoning`:case`tool_call`:case`tool_call_chunk`:case`invalid_tool_call`:case`server_tool_call`:case`server_tool_call_chunk`:case`server_tool_call_result`:case`non_standard`:return``;default:return e.type?`[${e.type}]`:``}}function Fn(e,t=`Human`,n=`AI`){let r=[];for(let i of e){let e;if(i.type===`human`)e=t;else if(i.type===`ai`)e=n;else if(i.type===`system`)e=`System`;else if(i.type===`tool`)e=`Tool`;else if(i.type===`generic`)e=i.role;else throw Error(`Got unsupported message type: ${i.type}`);let a=i.name?`${i.name}, `:``,o=typeof i.content==`string`?i.content:Array.isArray(i.content)?i.content.map(Pn).filter(Boolean).join(``):``,s=`${e}: ${a}${o}`;if(i.type===`ai`){let e=i;e.tool_calls&&e.tool_calls.length>0?s+=JSON.stringify(e.tool_calls):e.additional_kwargs&&`function_call`in e.additional_kwargs&&(s+=JSON.stringify(e.additional_kwargs.function_call))}r.push(s)}return r.join(`
|
|
10
|
+
`)}function In(e){if(e.data!==void 0)return e;{let t=e;return{type:t.type,data:{content:t.text,role:t.role,name:void 0,tool_call_id:void 0}}}}function Ln(e){let t=In(e);switch(t.type){case`human`:return new yn(t.data);case`ai`:return new k(t.data);case`system`:return new wn(t.data);case`function`:if(t.data.name===void 0)throw Error(`Name must be defined for function messages`);return new hn(t.data);case`tool`:if(t.data.tool_call_id===void 0)throw Error(`Tool call ID must be defined for tool messages`);return new Ot(t.data);case`generic`:if(t.data.role===void 0)throw Error(`Role must be defined for chat messages`);return new dn(t.data);default:throw Error(`Got unexpected type: ${t.type}`)}}function Rn(e){return e.map(Ln)}function zn(e){return e.map(e=>e.toDict())}function Bn(e){let t=e._getType();if(t===`human`)return new bn({...e});if(t===`ai`){let t={...e};return`tool_calls`in t&&(t={...t,tool_call_chunks:t.tool_calls?.map(e=>({...e,type:`tool_call_chunk`,index:void 0,args:JSON.stringify(e.args)}))}),new un({...t})}else if(t===`system`)return new Tn({...e});else if(t===`function`)return new gn({...e});else if(dn.isInstance(e))return new fn({...e});else throw Error(`Unknown message type.`)}function Vn(e){let t=e.reduce((e,t)=>{let n=e.findIndex(([e])=>`id`in t&&t.id&&`index`in t&&t.index!==void 0?t.id===e.id&&t.index===e.index:`id`in t&&t.id?t.id===e.id:`index`in t&&t.index!==void 0&&t.index===e.index);return n===-1?e.push([t]):e[n].push(t),e},[]),n=[],r=[];for(let e of t){let t=null,i=e.some(On),a=e[0]?.name??``,o=e.map(e=>e.args||``).join(``),s=i?o:o.trim(),c=s.length?s:`{}`,l=e.find(e=>e.id)?.id??e[0]?.id;if(i&&l){n.push({name:a,args:{input:s},id:l,type:`tool_call`});continue}try{if(t=ae(c),!l||typeof t!=`object`||!t||Array.isArray(t))throw Error(`Malformed tool call chunk args.`);n.push({name:a,args:t,id:l,type:`tool_call`})}catch{r.push({name:a,args:c,id:l,error:`Malformed args.`,type:`invalid_tool_call`})}}return{tool_call_chunks:e,tool_calls:n,invalid_tool_calls:r}}var Hn=`ffffffff-ffff-ffff-ffff-ffffffffffff`,Un=`00000000-0000-0000-0000-000000000000`,Wn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Gn(e){return typeof e==`string`&&Wn.test(e)}function Kn(e){if(!Gn(e))throw TypeError(`Invalid UUID`);let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var qn=[];for(let e=0;e<256;++e)qn.push((e+256).toString(16).slice(1));function Jn(e,t=0){return(qn[e[t+0]]+qn[e[t+1]]+qn[e[t+2]]+qn[e[t+3]]+`-`+qn[e[t+4]]+qn[e[t+5]]+`-`+qn[e[t+6]]+qn[e[t+7]]+`-`+qn[e[t+8]]+qn[e[t+9]]+`-`+qn[e[t+10]]+qn[e[t+11]]+qn[e[t+12]]+qn[e[t+13]]+qn[e[t+14]]+qn[e[t+15]]).toLowerCase()}function Yn(e,t=0){let n=Jn(e,t);if(!Gn(n))throw TypeError(`Stringified UUID is invalid`);return n}var Xn=new Uint8Array(16);function Zn(){return crypto.getRandomValues(Xn)}var Qn={};function $n(e,t,n){let r,i=e?._v6??!1;if(e){let t=Object.keys(e);t.length===1&&t[0]===`_v6`&&(e=void 0)}if(e)r=tr(e.random??e.rng?.()??Zn(),e.msecs,e.nsecs,e.clockseq,e.node,t,n);else{let e=Date.now(),a=Zn();er(Qn,e,a),r=tr(a,Qn.msecs,Qn.nsecs,i?void 0:Qn.clockseq,i?void 0:Qn.node,t,n)}return t??Jn(r)}function er(e,t,n){return e.msecs??=-1/0,e.nsecs??=0,t===e.msecs?(e.nsecs++,e.nsecs>=1e4&&(e.node=void 0,e.nsecs=0)):t>e.msecs?e.nsecs=0:t<e.msecs&&(e.node=void 0),e.node||(e.node=n.slice(10,16),e.node[0]|=1,e.clockseq=(n[8]<<8|n[9])&16383),e.msecs=t,e}function tr(e,t,n,r,i,a,o=0){if(e.length<16)throw Error(`Random bytes length must be >= 16`);if(!a)a=new Uint8Array(16),o=0;else if(o<0||o+16>a.length)throw RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`);t??=Date.now(),n??=0,r??=(e[8]<<8|e[9])&16383,i??=e.slice(10,16),t+=0xb1d069b5400;let s=((t&268435455)*1e4+n)%4294967296;a[o++]=s>>>24&255,a[o++]=s>>>16&255,a[o++]=s>>>8&255,a[o++]=s&255;let c=t/4294967296*1e4&268435455;a[o++]=c>>>8&255,a[o++]=c&255,a[o++]=c>>>24&15|16,a[o++]=c>>>16&255,a[o++]=r>>>8|128,a[o++]=r&255;for(let e=0;e<6;++e)a[o++]=i[e];return a}function nr(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():rr(e,t,n)}function rr(e,t,n){e||={};let r=e.random??e.rng?.()??Zn();if(r.length<16)throw Error(`Random bytes length must be >= 16`);if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){if(n||=0,n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=r[e];return t}return Jn(r)}function ir(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:return t^n^r;case 2:return t&n^t&r^n&r;case 3:return t^n^r}}function ar(e,t){return e<<t|e>>>32-t}function or(e){let t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520],r=new Uint8Array(e.length+1);r.set(e),r[e.length]=128,e=r;let i=e.length/4+2,a=Math.ceil(i/16),o=Array(a);for(let t=0;t<a;++t){let n=new Uint32Array(16);for(let r=0;r<16;++r)n[r]=e[t*64+r*4]<<24|e[t*64+r*4+1]<<16|e[t*64+r*4+2]<<8|e[t*64+r*4+3];o[t]=n}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let e=0;e<a;++e){let r=new Uint32Array(80);for(let t=0;t<16;++t)r[t]=o[e][t];for(let e=16;e<80;++e)r[e]=ar(r[e-3]^r[e-8]^r[e-14]^r[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let e=0;e<80;++e){let n=Math.floor(e/20),o=ar(i,5)+ir(n,a,s,c)+l+t[n]+r[e]>>>0;l=c,c=s,s=ar(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return Uint8Array.of(n[0]>>24,n[0]>>16,n[0]>>8,n[0],n[1]>>24,n[1]>>16,n[1]>>8,n[1],n[2]>>24,n[2]>>16,n[2]>>8,n[2],n[3]>>24,n[3]>>16,n[3]>>8,n[3],n[4]>>24,n[4]>>16,n[4]>>8,n[4])}function sr(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t}var cr=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,lr=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function ur(e,t,n,r,i,a){let o=typeof n==`string`?sr(n):n,s=typeof r==`string`?Kn(r):r;if(typeof r==`string`&&(r=Kn(r)),r?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,i){if(a??=0,a<0||a+16>i.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let e=0;e<16;++e)i[a+e]=c[e];return i}return Jn(c)}function dr(e,t,n,r){return ur(80,or,e,t,n,r)}dr.DNS=cr,dr.URL=lr;function fr(e){let t=pr(typeof e==`string`?Kn(e):e);return typeof e==`string`?Jn(t):t}function pr(e){return Uint8Array.of((e[6]&15)<<4|e[7]>>4&15,(e[7]&15)<<4|(e[4]&240)>>4,(e[4]&15)<<4|(e[5]&240)>>4,(e[5]&15)<<4|(e[0]&240)>>4,(e[0]&15)<<4|(e[1]&240)>>4,(e[1]&15)<<4|(e[2]&240)>>4,96|e[2]&15,e[3],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function mr(e,t,n){e??={},n??=0;let r=$n({...e,_v6:!0},new Uint8Array(16));if(r=fr(r),t){if(n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;e++)t[n+e]=r[e];return t}return Jn(r)}var hr={};function gr(e,t,n){let r;if(e)r=vr(e.random??e.rng?.()??Zn(),e.msecs,e.seq,t,n);else{let e=Date.now(),i=Zn();_r(hr,e,i),r=vr(i,hr.msecs,hr.seq,t,n)}return t??Jn(r)}function _r(e,t,n){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function vr(e,t,n,r,i=0){if(e.length<16)throw Error(`Random bytes length must be >= 16`);if(!r)r=new Uint8Array(16),i=0;else if(i<0||i+16>r.length)throw RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);return t??=Date.now(),n??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],r[i++]=t/1099511627776&255,r[i++]=t/4294967296&255,r[i++]=t/16777216&255,r[i++]=t/65536&255,r[i++]=t/256&255,r[i++]=t&255,r[i++]=112|n>>>28&15,r[i++]=n>>>20&255,r[i++]=128|n>>>14&63,r[i++]=n>>>6&255,r[i++]=n<<2&255|e[10]&3,r[i++]=e[11],r[i++]=e[12],r[i++]=e[13],r[i++]=e[14],r[i++]=e[15],r}function yr(e){if(!Gn(e))throw TypeError(`Invalid UUID`);return parseInt(e.slice(14,15),16)}var br=h({MAX:()=>xr,NIL:()=>Sr,parse:()=>Cr,stringify:()=>wr,v1:()=>Tr,v4:()=>Er,v5:()=>Dr,v6:()=>Or,v7:()=>kr,validate:()=>Ar,version:()=>jr}),xr=Hn,Sr=Un,Cr=Kn,wr=Yn,Tr=$n,Er=nr,Dr=dr,Or=mr,kr=gr,Ar=Gn,jr=yr,Mr=h({getEnv:()=>Rr,getEnvironmentVariable:()=>Vr,getRuntimeEnvironment:()=>Br,isBrowser:()=>Nr,isDeno:()=>Ir,isJsDom:()=>Fr,isNode:()=>Lr,isWebWorker:()=>Pr}),Nr=()=>typeof window<`u`&&window.document!==void 0,Pr=()=>typeof globalThis==`object`&&globalThis.constructor&&globalThis.constructor.name===`DedicatedWorkerGlobalScope`,Fr=()=>typeof window<`u`&&window.name===`nodejs`||typeof navigator<`u`&&navigator.userAgent.includes(`jsdom`),Ir=()=>typeof Deno<`u`,Lr=()=>typeof process<`u`&&process.versions!==void 0&&process.versions.node!==void 0&&!Ir(),Rr=()=>{let e;return e=Nr()?`browser`:Lr()?`node`:Pr()?`webworker`:Fr()?`jsdom`:Ir()?`deno`:`other`,e},zr;function Br(){return zr===void 0&&(zr={library:`langchain-js`,runtime:Rr()}),zr}function Vr(e){try{return typeof process<`u`?{}[e]:Ir()?Deno?.env.get(e):void 0}catch{return}}var Hr=h({BaseCallbackHandler:()=>Kr,callbackHandlerPrefersChatModelStreamEvents:()=>Gr,callbackHandlerPrefersStreaming:()=>Wr,isBaseCallbackHandler:()=>qr}),Ur=class{};function Wr(e){return`lc_prefer_streaming`in e&&e.lc_prefer_streaming}function Gr(e){return`lc_prefer_chat_model_stream_events`in e&&e.lc_prefer_chat_model_stream_events}var Kr=class extends Ur{lc_serializable=!1;get lc_namespace(){return[`langchain_core`,`callbacks`,this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,we(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=Vr(`LANGCHAIN_CALLBACKS_BACKGROUND`)===`false`;constructor(e){super(),this.lc_kwargs=e||{},e&&(this.ignoreLLM=e.ignoreLLM??this.ignoreLLM,this.ignoreChain=e.ignoreChain??this.ignoreChain,this.ignoreAgent=e.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=e.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=e.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=e.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(e._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return Te.prototype.toJSON.call(this)}toJSONNotImplemented(){return Te.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends Kr{name=kr();constructor(){super(),Object.assign(this,e)}}return new t}},qr=e=>{let t=e;return t!==void 0&&typeof t.copy==`function`&&typeof t.name==`string`&&typeof t.awaitHandlers==`boolean`},Jr=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Yr(e){return typeof e==`string`&&Jr.test(e)}function Xr(e){if(!Yr(e))throw TypeError(`Invalid UUID`);let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var Zr=[];for(let e=0;e<256;++e)Zr.push((e+256).toString(16).slice(1));function Qr(e,t=0){return(Zr[e[t+0]]+Zr[e[t+1]]+Zr[e[t+2]]+Zr[e[t+3]]+`-`+Zr[e[t+4]]+Zr[e[t+5]]+`-`+Zr[e[t+6]]+Zr[e[t+7]]+`-`+Zr[e[t+8]]+Zr[e[t+9]]+`-`+Zr[e[t+10]]+Zr[e[t+11]]+Zr[e[t+12]]+Zr[e[t+13]]+Zr[e[t+14]]+Zr[e[t+15]]).toLowerCase()}var $r=new Uint8Array(16);function ei(){return crypto.getRandomValues($r)}function ti(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():ni(e,t,n)}function ni(e,t,n){e||={};let r=e.random??e.rng?.()??ei();if(r.length<16)throw Error(`Random bytes length must be >= 16`);if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){if(n||=0,n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=r[e];return t}return Qr(r)}function ri(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:return t^n^r;case 2:return t&n^t&r^n&r;case 3:return t^n^r}}function ii(e,t){return e<<t|e>>>32-t}function ai(e){let t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520],r=new Uint8Array(e.length+1);r.set(e),r[e.length]=128,e=r;let i=e.length/4+2,a=Math.ceil(i/16),o=Array(a);for(let t=0;t<a;++t){let n=new Uint32Array(16);for(let r=0;r<16;++r)n[r]=e[t*64+r*4]<<24|e[t*64+r*4+1]<<16|e[t*64+r*4+2]<<8|e[t*64+r*4+3];o[t]=n}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let e=0;e<a;++e){let r=new Uint32Array(80);for(let t=0;t<16;++t)r[t]=o[e][t];for(let e=16;e<80;++e)r[e]=ii(r[e-3]^r[e-8]^r[e-14]^r[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let e=0;e<80;++e){let n=Math.floor(e/20),o=ii(i,5)+ri(n,a,s,c)+l+t[n]+r[e]>>>0;l=c,c=s,s=ii(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return Uint8Array.of(n[0]>>24,n[0]>>16,n[0]>>8,n[0],n[1]>>24,n[1]>>16,n[1]>>8,n[1],n[2]>>24,n[2]>>16,n[2]>>8,n[2],n[3]>>24,n[3]>>16,n[3]>>8,n[3],n[4]>>24,n[4]>>16,n[4]>>8,n[4])}function oi(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t}var si=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,ci=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function li(e,t,n,r,i,a){let o=typeof n==`string`?oi(n):n,s=typeof r==`string`?Xr(r):r;if(typeof r==`string`&&(r=Xr(r)),r?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,i){if(a??=0,a<0||a+16>i.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let e=0;e<16;++e)i[a+e]=c[e];return i}return Qr(c)}function ui(e,t,n,r){return li(80,ai,e,t,n,r)}ui.DNS=si,ui.URL=ci;var di={};function fi(e,t,n){let r;if(e)r=mi(e.random??e.rng?.()??ei(),e.msecs,e.seq,t,n);else{let e=Date.now(),i=ei();pi(di,e,i),r=mi(i,di.msecs,di.seq,t,n)}return t??Qr(r)}function pi(e,t,n){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function mi(e,t,n,r,i=0){if(e.length<16)throw Error(`Random bytes length must be >= 16`);if(!r)r=new Uint8Array(16),i=0;else if(i<0||i+16>r.length)throw RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);return t??=Date.now(),n??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],r[i++]=t/1099511627776&255,r[i++]=t/4294967296&255,r[i++]=t/16777216&255,r[i++]=t/65536&255,r[i++]=t/256&255,r[i++]=t&255,r[i++]=112|n>>>28&15,r[i++]=n>>>20&255,r[i++]=128|n>>>14&63,r[i++]=n>>>6&255,r[i++]=n<<2&255|e[10]&3,r[i++]=e[11],r[i++]=e[12],r[i++]=e[13],r[i++]=e[14],r[i++]=e[15],r}var hi=`gen_ai.operation.name`,gi=`gen_ai.system`,_i=`gen_ai.request.model`,vi=`gen_ai.response.model`,yi=`gen_ai.usage.input_tokens`,bi=`gen_ai.usage.output_tokens`,xi=`gen_ai.usage.total_tokens`,Si=`gen_ai.request.max_tokens`,Ci=`gen_ai.request.temperature`,wi=`gen_ai.request.top_p`,Ti=`gen_ai.request.frequency_penalty`,Ei=`gen_ai.request.presence_penalty`,Di=`gen_ai.response.finish_reasons`,Oi=`gen_ai.prompt`,ki=`gen_ai.completion`,Ai=`gen_ai.request.extra_query`,ji=`gen_ai.request.extra_body`,Mi=`gen_ai.serialized.name`,Ni=`gen_ai.serialized.signature`,Pi=`gen_ai.serialized.doc`,Fi=`gen_ai.response.id`,Ii=`gen_ai.response.service_tier`,Li=`gen_ai.response.system_fingerprint`,Ri=`gen_ai.usage.input_token_details`,zi=`gen_ai.usage.output_token_details`,Bi=`langsmith.trace.session_id`,Vi=`langsmith.trace.session_name`,Hi=`langsmith.span.kind`,Ui=`langsmith.trace.name`,Wi=`langsmith.metadata`,Gi=`langsmith.span.tags`,Ki=`langsmith.request.streaming`,qi=`langsmith.request.headers`,Ji=`langsmith.usage_metadata`,Yi=(...e)=>fetch(...e),Xi=void 0,Zi=Symbol.for(`ls:fetch_implementation`),Qi=()=>globalThis[Zi]===void 0?!0:Xi??!1,$i=e=>async(...t)=>{if(e||ko(`DEBUG`)===`true`){let[e,n]=t;console.log(`→ ${n?.method||`GET`} ${e}`)}let n=await(globalThis[Zi]??Yi)(...t);return(e||ko(`DEBUG`)===`true`)&&console.log(`← ${n.status} ${n.statusText} ${n.url}`),n},ea=()=>ko(`PROJECT`)??Oo(`LANGCHAIN_SESSION`)??`default`,ta={};function na(e){ta[e]||(console.warn(e),ta[e]=!0)}var A=e=>BigInt(e),ra=A(`0x9E3779B1`),ia=A(`0x85EBCA77`),aa=A(`0xC2B2AE3D`),oa=A(`0x9E3779B185EBCA87`),sa=A(`0xC2B2AE3D27D4EB4F`),ca=A(`0x165667B19E3779F9`),la=A(`0x85EBCA77C2B2AE63`),ua=A(`0x27D4EB2F165667C5`),da=A(`0x165667919E3779F9`),fa=A(`0x9FB21C651E98DF25`);function pa(e){let t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.substring(n,n+2),16);return t}var ma=pa(`b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e`),ha=(A(1)<<A(128))-A(1),j=(A(1)<<A(64))-A(1),ga=(A(1)<<A(32))-A(1),_a=64,va=_a/8,ya=8,ba=4;function xa(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function Sa(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function Ca(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function wa(e,t=0){return e[t]}var Ta=e=>(e&A(255))<<A(56)|(e&A(65280))<<A(40)|(e&A(16711680))<<A(24)|(e&A(4278190080))<<A(8)|(e&A(0xff00000000))>>A(8)|(e&A(0xff0000000000))>>A(24)|(e&A(0xff000000000000))>>A(40)|(e&A(0xff00000000000000))>>A(56),Ea=e=>(e=(e&A(65535))<<A(16)|(e&A(4294901760))>>A(16),e=(e&A(16711935))<<A(8)|(e&A(4278255360))>>A(8),e),Da=(e,t)=>(e&ga)*(t&ga)&j,Oa=e=>{if(!e)throw Error(`Assert failed`)};function ka(e,t){return(e<<t|e>>A(32)-t)&ga}function Aa(e,t,n){for(let r=0;r<va;r++){let i=Sa(t,r*8),a=i^Sa(n,r*8);e[r^1]+=i,e[r]+=Da(a,a>>A(32))}return e}function ja(e,t,n,r){for(let i=0;i<r;i++)Aa(e,xa(t,i*_a),xa(n,i*8));return e}function Ma(e,t){for(let n=0;n<va;n++){let r=Sa(t,n*8),i=e[n];i=Ua(i,A(47)),i^=r,i*=ra,e[n]=i&j}return e}function Na(e,t){return La(e[0]^Sa(t,0),e[1]^Sa(t,ya))}function Pa(e,t,n){let r=n;return r+=Na(e.slice(0),xa(t,0*ba)),r+=Na(e.slice(2),xa(t,4*ba)),r+=Na(e.slice(4),xa(t,8*ba)),r+=Na(e.slice(6),xa(t,12*ba)),Ba(r&j)}function Fa(e,t,n,r,i){let a=Math.floor((n.byteLength-_a)/8),o=_a*a,s=Math.floor((t.byteLength-1)/o);for(let r=0;r<s;r++)e=ja(e,xa(t,r*o),n,a),e=i(e,xa(n,n.byteLength-_a));{let i=Math.floor((t.byteLength-1-o*s)/_a);e=ja(e,xa(t,s*o),n,i),e=r(e,xa(t,t.byteLength-_a),xa(n,n.byteLength-_a-7))}return e}function Ia(e,t,n){let r=new BigUint64Array([aa,oa,sa,ca,la,ia,ua,ra]);Oa(e.length>128),r=Fa(r,e,t,Aa,Ma),Oa(r.length*8==64);{let n=Pa(r,xa(t,11),A(e.byteLength)*oa&j);return Pa(r,xa(t,t.byteLength-_a-11),~(A(e.byteLength)*sa)&j)<<A(64)|n}}function La(e,t){let n=e*t&ha;return n&j^n>>A(64)}function Ra(e,t,n){return La((Sa(e,0)^Sa(t,0)+n)&j,(Sa(e,8)^Sa(t,8)-n)&j)}function za(e,t,n,r,i){let a=e&j,o=e>>A(64)&j;return a+=Ra(t,r,i),a^=Sa(n,0)+Sa(n,8),a&=j,o+=Ra(n,xa(r,16),i),o^=Sa(t,0)+Sa(t,8),o&=j,o<<A(64)|a}function Ba(e){return e^=e>>A(37),e*=da,e&=j,e^=e>>A(32),e}function Va(e){return e^=e>>A(33),e*=sa,e&=j,e^=e>>A(29),e*=ca,e&=j,e^=e>>A(32),e}function Ha(e,t,n){let r=e.byteLength;Oa(r>0&&r<=3);let i=A(wa(e,r-1))|A(r<<8)|A(wa(e,0)<<16)|A(wa(e,r>>1)<<24),a=(i^(A(Ca(t,0))^A(Ca(t,4)))+n)&j,o=(A(Ca(t,8))^A(Ca(t,12)))-n;return(Va((ka(Ea(i),A(13))^o)&j)&j)<<A(64)|Va(a)}function Ua(e,t){return e^e>>t}function Wa(e,t,n){let r=e.byteLength;Oa(r>=4&&r<=8);{let i=Ca(e,0),a=Ca(e,r-4),o=((A(i)|A(a)<<A(32))^(Sa(t,16)^Sa(t,24))+n&j)*(oa+(A(r)<<A(2)))&ha;return o+=(o&j)<<A(65),o&=ha,o^=o>>A(67),Ua(Ua(o&j,A(35))*fa&j,A(28))|Ba(o>>A(64))<<A(64)}}function Ga(e,t,n){let r=e.byteLength;Oa(r>=9&&r<=16);{let i=(Sa(t,32)^Sa(t,40))+n&j,a=(Sa(t,48)^Sa(t,56))-n&j,o=Sa(e),s=Sa(e,r-8),c=(o^s^i)*oa,l=(c&j)+(A(r-1)<<A(54));c=c&(ha^j)|l,s^=a,c+=s+(s&ga)*(ia-A(1))<<A(64),c&=ha,c^=Ta(c>>A(64));let u=(c&j)*sa;return u+=(c>>A(64))*sa<<A(64),u&=ha,Ba(u&j)|Ba(u>>A(64))<<A(64)}}function Ka(e,t){let n=e.byteLength;return Oa(n<=16),n>8?Ga(e,ma,t):n>=4?Wa(e,ma,t):n>0?Ha(e,ma,t):Va(t^Sa(ma,64)^Sa(ma,72))|Va(t^Sa(ma,80)^Sa(ma,88))<<A(64)}function qa(e){return~e+A(1)&j}function Ja(e,t,n){let r=A(e.byteLength)*oa&j,i=A(e.byteLength-1)/A(32);for(;i>=0;){let a=Number(i);r=za(r,xa(e,16*a),xa(e,e.byteLength-16*(a+1)),xa(t,32*a),n),i--}let a=r+(r>>A(64))&j;a=Ba(a);let o=(r&j)*oa+(r>>A(64))*la+(A(e.byteLength)-n&j)*sa;return o&=j,o=qa(Ba(o)),a|o<<A(64)}function Ya(e,t,n){let r=A(e.byteLength)*oa&j;for(let i=32;i<160;i+=32)r=za(r,xa(e,i-32),xa(e,i-16),xa(t,i-32),n);r=Ba(r&j)|Ba(r>>A(64))<<A(64);for(let i=160;i<=e.byteLength;i+=32)r=za(r,xa(e,i-32),xa(e,i-16),xa(t,3+i-160),n);r=za(r,xa(e,e.byteLength-16),xa(e,e.byteLength-32),xa(t,103),qa(n));let i=r+(r>>A(64))&j;i=Ba(i);let a=(r&j)*oa+(r>>A(64))*la+(A(e.byteLength)-n&j)*sa;return a&=j,a=qa(Ba(a)),i|a<<A(64)}function Xa(e,t=A(0)){let n=e.byteLength;return n<=16?Ka(e,t):n<=128?Ja(e,ma,t):n<=240?Ya(e,ma,t):Ia(e,ma,t)}function Za(e){let t=new Uint8Array(16),n=new DataView(t.buffer),r=e&j,i=e>>A(64);return n.setBigUint64(0,i,!1),n.setBigUint64(8,r,!1),t}var Qa=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function M(e,t){if(!Qa.test(e)){let n=t===void 0?`Invalid UUID: ${e}`:`Invalid UUID for ${t}: ${e}`;throw Error(n)}return e}function $a(e){return fi({msecs:typeof e==`string`?Date.parse(e):e,seq:0})}function eo(e){if(!Qa.test(e))return null;let t=e[14];return parseInt(t,16)}function to(e){let t=e.replace(/-/g,``),n=new Uint8Array(16);for(let e=0;e<16;e++)n[e]=parseInt(t.slice(e*2,e*2+2),16);return n}function no(e){let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var ro=new TextEncoder;function io(e){return Za(Xa(ro.encode(e)))}function ao(e,t){let n=io(`${e}:${t}`),r=new Uint8Array(16);if(eo(e)===7){let t=to(e);r.set(t.slice(0,6),0)}else{let e=Date.now();r[0]=e/1099511627776&255,r[1]=e/4294967296&255,r[2]=e/16777216&255,r[3]=e/65536&255,r[4]=e/256&255,r[5]=e&255}return r[6]=112|n[0]&15,r[7]=n[1],r[8]=128|n[2]&63,r.set(n.slice(3,10),9),no(r)}var oo={join:(...e)=>e.join(`/`),dirname:e=>e.split(`/`).slice(0,-1).join(`/`)};async function so(e){}async function co(e,t){}async function lo(e){return[]}async function uo(e){return{size:0}}function fo(e){return!1}function po(e){return``}function mo(e,t){return t!==null&&Date.now()-e.createdAt>t*1e3}var ho=new class{constructor(e={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(e)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let e=this.totalRequests;return e>0?this._metrics.hits/e:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(e,t){if(this.maxSize===0)return;let n=this.cache.get(e);if(!n){this._metrics.misses+=1;return}return this.cache.delete(e),this.cache.set(e,{...n,refreshFunc:t}),this._metrics.hits+=1,n.value}set(e,t,n){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(e)&&this.cache.size>=this.maxSize){let e=this.cache.keys().next().value;e!==void 0&&this.cache.delete(e)}let r={value:t,createdAt:Date.now(),refreshFunc:n};this.cache.delete(e),this.cache.set(e,r)}invalidate(e){this.cache.delete(e)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&=(clearInterval(this.refreshTimer),void 0)}dump(e){let t={};for(let[e,n]of this.cache.entries())t[e]=n.value;oo.dirname(e),`${e}`;try{JSON.stringify({entries:t},null,2)}catch(e){throw e}}load(e){if(!fo(e))return 0;let t;try{let n=po(e);t=JSON.parse(n).entries??null}catch{return 0}if(!t)return 0;let n=0,r=Date.now();for(let[e,i]of Object.entries(t)){if(this.cache.size>=this.maxSize)break;let t={value:i,createdAt:r};this.cache.set(e,t),n+=1}return n}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(e=>{console.warn(`Unexpected error in cache refresh loop:`,e)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let e=[];for(let[t,n]of this.cache.entries())mo(n,this.ttlSeconds)&&e.push([t,n]);return e}async refreshStaleEntries(){let e=this.getStaleEntries();if(e.length!==0){for(let[t,n]of e)if(n.refreshFunc!==void 0)try{let e=await n.refreshFunc();this.set(t,e,n.refreshFunc),this._metrics.refreshes+=1}catch(e){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${t}:`,e)}}}configure(e){this.stop(),this.refreshIntervalSeconds=e.refreshIntervalSeconds??60,this.maxSize=e.maxSize??100,this.ttlSeconds=e.ttlSeconds??300}},go=`0.6.3`,_o,vo=()=>typeof window<`u`&&window.document!==void 0,yo=()=>typeof globalThis==`object`&&globalThis.constructor&&globalThis.constructor.name===`DedicatedWorkerGlobalScope`,bo=()=>typeof window<`u`&&window.name===`nodejs`||typeof navigator<`u`&&navigator.userAgent.includes(`jsdom`),xo=()=>typeof Deno<`u`,So=()=>typeof process<`u`&&process.versions!==void 0&&process.versions.node!==void 0&&!xo(),Co=()=>_o||(_o=typeof Bun<`u`?`bun`:vo()?`browser`:So()?`node`:yo()?`webworker`:bo()?`jsdom`:xo()?`deno`:`other`,_o),wo;function To(){return wo===void 0&&(wo={library:`langsmith`,runtime:Co(),sdk:`langsmith-js`,sdk_version:go,...jo()}),wo}function Eo(){let e=Do(),t={},n=[`LANGCHAIN_API_KEY`,`LANGCHAIN_ENDPOINT`,`LANGCHAIN_TRACING_V2`,`LANGCHAIN_PROJECT`,`LANGCHAIN_SESSION`,`LANGSMITH_API_KEY`,`LANGSMITH_ENDPOINT`,`LANGSMITH_TRACING_V2`,`LANGSMITH_CONFIG_FILE`,`LANGSMITH_PROJECT`,`LANGSMITH_SESSION`];for(let[r,i]of Object.entries(e))typeof i==`string`&&!n.includes(r)&&!r.toLowerCase().includes(`key`)&&!r.toLowerCase().includes(`secret`)&&!r.toLowerCase().includes(`token`)&&(r===`LANGCHAIN_REVISION_ID`?t.revision_id=i:t[r]=i);return t}function Do(){let e={};try{if(typeof process<`u`)for(let[t,n]of Object.entries({}))(t.startsWith(`LANGCHAIN_`)||t.startsWith(`LANGSMITH_`))&&n!=null&&((t.toLowerCase().includes(`key`)||t.toLowerCase().includes(`secret`)||t.toLowerCase().includes(`token`))&&typeof n==`string`?e[t]=n.slice(0,2)+`*`.repeat(n.length-4)+n.slice(-2):e[t]=n)}catch{}return e}function Oo(e){try{return typeof process<`u`?{}[e]:void 0}catch{return}}function ko(e){return Oo(`LANGSMITH_${e}`)||Oo(`LANGCHAIN_${e}`)}var Ao;function jo(){if(Ao!==void 0)return Ao;let e=[`VERCEL_GIT_COMMIT_SHA`,`NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA`,`COMMIT_REF`,`RENDER_GIT_COMMIT`,`CI_COMMIT_SHA`,`CIRCLE_SHA1`,`CF_PAGES_COMMIT_SHA`,`REACT_APP_GIT_SHA`,`SOURCE_VERSION`,`GITHUB_SHA`,`TRAVIS_COMMIT`,`GIT_COMMIT`,`BUILD_VCS_NUMBER`,`bamboo_planRepository_revision`,`Build.SourceVersion`,`BITBUCKET_COMMIT`,`DRONE_COMMIT_SHA`,`SEMAPHORE_GIT_SHA`,`BUILDKITE_COMMIT`],t={};for(let n of e){let e=Oo(n);e!==void 0&&(t[n]=e)}return Ao=t,t}function Mo(){return Oo(`OTEL_ENABLED`)===`true`||ko(`OTEL_ENABLED`)===`true`}var No=new Set([`langsmith`,`otel`]);function Po(e){if(e!==void 0)return e;let t=ko(`TRACING_MODE`);if(t!==void 0&&t!==``){let e=t.toLowerCase();if(!No.has(e))throw Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...No].sort().join(`, `)}`);return Mo()&&console.warn(`Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence.`),e}return Mo()?`otel`:`langsmith`}var Fo=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(e,...t){!this.hasWarned&&Po()===`otel`&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let n;if(t.length===1&&typeof t[0]==`function`?n=t[0]:t.length===2&&typeof t[1]==`function`?n=t[1]:t.length===3&&typeof t[2]==`function`&&(n=t[2]),typeof n==`function`)return n()}},Io=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new Fo})}getTracer(e,t){return this.mockTracer}getActiveSpan(){}setSpan(e,t){return e}getSpan(e){}setSpanContext(e,t){return e}getTracerProvider(){}setGlobalTracerProvider(e){return!1}},Lo=class{active(){return{}}with(e,t){return t()}},Ro=Symbol.for(`ls:otel_trace`),zo=Symbol.for(`ls:otel_context`),Bo=Symbol.for(`ls:otel_get_default_otlp_tracer_provider`),Vo=new Io,Ho=new Lo,Uo=new class{getTraceInstance(){return globalThis[Ro]??Vo}getContextInstance(){return globalThis[zo]??Ho}initializeGlobalInstances(e){globalThis[Ro]===void 0&&(globalThis[Ro]=e.trace),globalThis[zo]===void 0&&(globalThis[zo]=e.context)}setDefaultOTLPTracerComponents(e){globalThis[Bo]=e}getDefaultOTLPTracerComponents(){return globalThis[Bo]??void 0}};function Wo(){return Uo.getTraceInstance()}function Go(){return Uo.getContextInstance()}function Ko(){return Uo.getDefaultOTLPTracerComponents()}var qo={llm:`chat`,tool:`execute_tool`,retriever:`embeddings`,embedding:`embeddings`,prompt:`chat`};function Jo(e){return qo[e]||e}function Yo(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var Xo=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(e,t){for(let n of e)try{if(!n.run)continue;if(n.operation===`post`){let e=this.createSpanForRun(n,n.run,t.get(n.id));e&&!n.run.end_time&&this.spans.set(n.id,e)}else this.updateSpanForRun(n,n.run)}catch(e){console.error(`Error processing operation ${n.id}:`,e)}}createSpanForRun(e,t,n){let r=n&&Wo().getSpan(n);if(r)try{return this.finishSpanSetup(r,t,e)}catch(t){console.error(`Failed to create span for run ${e.id}:`,t);return}}finishSpanSetup(e,t,n){return this.setSpanAttributes(e,t,n),t.error?(e.setStatus({code:2}),e.recordException(Error(t.error))):e.setStatus({code:1}),t.end_time&&e.end(new Date(t.end_time)),e}updateSpanForRun(e,t){try{let n=this.spans.get(e.id);if(!n){console.debug(`No span found for run ${e.id} during update`);return}this.setSpanAttributes(n,t,e),t.error?(n.setStatus({code:2}),n.recordException(Error(t.error))):n.setStatus({code:1});let r=t.end_time;r&&(n.end(new Date(r)),this.spans.delete(e.id))}catch(t){console.error(`Failed to update span for run ${e.id}:`,t)}}extractModelName(e){if(e.extra?.metadata){let t=e.extra.metadata;if(t.ls_model_name)return t.ls_model_name;if(t.invocation_params){let e=t.invocation_params;if(e.model)return e.model;if(e.model_name)return e.model_name}}}setSpanAttributes(e,t,n){if(`run_type`in t&&t.run_type){e.setAttribute(Hi,t.run_type);let n=Jo(t.run_type||`chain`);e.setAttribute(hi,n)}`name`in t&&t.name&&e.setAttribute(Ui,t.name),`session_id`in t&&t.session_id&&e.setAttribute(Bi,t.session_id),`session_name`in t&&t.session_name&&e.setAttribute(Vi,t.session_name),this.setGenAiSystem(e,t);let r=this.extractModelName(t);r&&e.setAttribute(_i,r),t.extra?.metadata?.usage_metadata&&typeof t.extra.metadata.usage_metadata==`object`&&e.setAttribute(Ji,JSON.stringify(t.extra.metadata.usage_metadata)),`prompt_tokens`in t&&typeof t.prompt_tokens==`number`&&e.setAttribute(yi,t.prompt_tokens),`completion_tokens`in t&&typeof t.completion_tokens==`number`&&e.setAttribute(bi,t.completion_tokens),`total_tokens`in t&&typeof t.total_tokens==`number`&&e.setAttribute(xi,t.total_tokens),this.setInvocationParameters(e,t);let i=t.extra?.metadata||{};for(let[t,n]of Object.entries(i))n!=null&&e.setAttribute(`${Wi}.${t}`,Yo(n)?String(n):JSON.stringify(n));let a=t.tags;if(a&&Array.isArray(a)?e.setAttribute(Gi,a.join(`, `)):a&&e.setAttribute(Gi,String(a)),`serialized`in t&&typeof t.serialized==`object`){let n=t.serialized;n.name&&e.setAttribute(Mi,String(n.name)),n.signature&&e.setAttribute(Ni,String(n.signature)),n.doc&&e.setAttribute(Pi,String(n.doc))}this.setIOAttributes(e,n)}setGenAiSystem(e,t){let n=`langchain`,r=this.extractModelName(t);if(r){let e=r.toLowerCase();e.includes(`anthropic`)||e.startsWith(`claude`)?n=`anthropic`:e.includes(`bedrock`)?n=`aws.bedrock`:e.includes(`azure`)&&e.includes(`openai`)?n=`az.ai.openai`:e.includes(`azure`)&&e.includes(`inference`)?n=`az.ai.inference`:e.includes(`cohere`)?n=`cohere`:e.includes(`deepseek`)?n=`deepseek`:e.includes(`gemini`)?n=`gemini`:e.includes(`groq`)?n=`groq`:e.includes(`watson`)||e.includes(`ibm`)?n=`ibm.watsonx.ai`:e.includes(`mistral`)?n=`mistral_ai`:e.includes(`gpt`)||e.includes(`openai`)?n=`openai`:e.includes(`perplexity`)||e.includes(`sonar`)?n=`perplexity`:e.includes(`vertex`)?n=`vertex_ai`:(e.includes(`xai`)||e.includes(`grok`))&&(n=`xai`)}e.setAttribute(gi,n)}setInvocationParameters(e,t){if(!t.extra?.metadata?.invocation_params)return;let n=t.extra.metadata.invocation_params;n.max_tokens!==void 0&&e.setAttribute(Si,n.max_tokens),n.temperature!==void 0&&e.setAttribute(Ci,n.temperature),n.top_p!==void 0&&e.setAttribute(wi,n.top_p),n.frequency_penalty!==void 0&&e.setAttribute(Ti,n.frequency_penalty),n.presence_penalty!==void 0&&e.setAttribute(Ei,n.presence_penalty)}setIOAttributes(e,t){if(t.run.inputs)try{let n=t.run.inputs;typeof n==`object`&&n&&(n.model&&Array.isArray(n.messages)&&e.setAttribute(_i,n.model),n.stream!==void 0&&e.setAttribute(Ki,n.stream),n.extra_headers&&e.setAttribute(qi,JSON.stringify(n.extra_headers)),n.extra_query&&e.setAttribute(Ai,JSON.stringify(n.extra_query)),n.extra_body&&e.setAttribute(ji,JSON.stringify(n.extra_body))),e.setAttribute(Oi,JSON.stringify(n))}catch(e){console.debug(`Failed to process inputs for run ${t.id}`,e)}if(t.run.outputs)try{let n=t.run.outputs,r=this.getUnifiedRunTokens(n);if(r&&(e.setAttribute(yi,r[0]),e.setAttribute(bi,r[1]),e.setAttribute(xi,r[0]+r[1])),n&&typeof n==`object`){if(n.model&&e.setAttribute(vi,String(n.model)),n.id&&e.setAttribute(Fi,n.id),n.choices&&Array.isArray(n.choices)){let t=n.choices.map(e=>e.finish_reason).filter(e=>e).map(String);t.length>0&&e.setAttribute(Di,t.join(`, `))}if(n.service_tier&&e.setAttribute(Ii,n.service_tier),n.system_fingerprint&&e.setAttribute(Li,n.system_fingerprint),n.usage_metadata&&typeof n.usage_metadata==`object`){let t=n.usage_metadata;e.setAttribute(Ji,JSON.stringify(t)),t.input_token_details&&e.setAttribute(Ri,JSON.stringify(t.input_token_details)),t.output_token_details&&e.setAttribute(zi,JSON.stringify(t.output_token_details))}}e.setAttribute(ki,JSON.stringify(n))}catch(e){console.debug(`Failed to process outputs for run ${t.id}`,e)}}getUnifiedRunTokens(e){if(!e)return null;let t=this.extractUnifiedRunTokens(e.usage_metadata);if(t)return t;let n=Object.keys(e);for(let r of n){let n=e[r];if(!(!n||typeof n!=`object`)&&(t=this.extractUnifiedRunTokens(n.usage_metadata),t||n.lc===1&&n.kwargs&&typeof n.kwargs==`object`&&(t=this.extractUnifiedRunTokens(n.kwargs.usage_metadata),t)))return t}let r=e.generations||[];if(!Array.isArray(r))return null;let i=Array.isArray(r[0])?r.flat():r;for(let e of i)if(typeof e==`object`&&e.message&&typeof e.message==`object`&&e.message.kwargs&&typeof e.message.kwargs==`object`&&(t=this.extractUnifiedRunTokens(e.message.kwargs.usage_metadata),t))return t;return null}extractUnifiedRunTokens(e){return!e||typeof e!=`object`||typeof e.input_tokens!=`number`||typeof e.output_tokens!=`number`?null:[e.input_tokens,e.output_tokens]}},Zo=Object.prototype.toString,Qo=e=>Zo.call(e)===`[object Error]`,$o=new Set([`network error`,`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`,`fetch failed`,`terminated`,` A network error occurred.`,`Network connection lost`]);function es(e){if(!(e&&Qo(e)&&e.name===`TypeError`&&typeof e.message==`string`))return!1;let{message:t,stack:n}=e;return t===`Load failed`?n===void 0||`__sentry_captured__`in e:t.startsWith(`error sending request for url`)?!0:$o.has(t)}function ts(e){if(typeof e==`number`){if(e<0)throw TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw TypeError("Expected `retries` to be a number or Infinity.")}function ns(e,t,{min:n=0,allowInfinity:r=!1}={}){if(t!==void 0){if(typeof t!=`number`||Number.isNaN(t))throw TypeError(`Expected \`${e}\` to be a number${r?` or Infinity`:``}.`);if(!r&&!Number.isFinite(t))throw TypeError(`Expected \`${e}\` to be a finite number.`);if(t<n)throw TypeError(`Expected \`${e}\` to be \u2265 ${n}.`)}}var rs=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}};function is(e,t){let n=Math.max(1,e+1),r=t.randomize?Math.random()+1:1,i=Math.round(r*t.minTimeout*t.factor**(n-1));return i=Math.min(i,t.maxTimeout),i}function as(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function os({error:e,attemptNumber:t,retriesConsumed:n,startTime:r,options:i}){let a=e instanceof Error?e:TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof rs)throw a.originalError;let o=Number.isFinite(i.retries)?Math.max(0,i.retries-n):i.retries,s=i.maxRetryTime??1/0,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n});if(await i.onFailedAttempt(c),as(r,s)<=0)throw a;let l=await i.shouldConsumeRetry(c),u=as(r,s);if(u<=0||o<=0)throw a;if(a instanceof TypeError&&!es(a)){if(l)throw a;return i.signal?.throwIfAborted(),!1}if(!await i.shouldRetry(c))throw a;if(!l)return i.signal?.throwIfAborted(),!1;let d=is(n,i),f=Math.min(d,u);return f>0&&await new Promise((e,t)=>{let n=()=>{clearTimeout(r),i.signal?.removeEventListener(`abort`,n),t(i.signal.reason)},r=setTimeout(()=>{i.signal?.removeEventListener(`abort`,n),e()},f);i.unref&&r.unref?.(),i.signal?.addEventListener(`abort`,n,{once:!0})}),i.signal?.throwIfAborted(),!0}async function ss(e,t={}){if(t={...t},ts(t.retries),Object.hasOwn(t,`forever`))throw Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=1/0,t.maxRetryTime??=1/0,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,ns(`factor`,t.factor,{min:0,allowInfinity:!1}),ns(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),ns(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),ns(`maxRetryTime`,t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let n=0,r=0,i=performance.now();for(;!Number.isFinite(t.retries)||r<=t.retries;){n++;try{t.signal?.throwIfAborted();let r=await e(n);return t.signal?.throwIfAborted(),r}catch(e){await os({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var cs=t(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)})),ls=t(((e,t)=>{t.exports=(e,t)=>(t||=(()=>{}),e.then(e=>new Promise(e=>{e(t())}).then(()=>e),e=>new Promise(e=>{e(t())}).then(()=>{throw e})))})),us=t(((e,t)=>{var n=ls(),r=class extends Error{constructor(e){super(e),this.name=`TimeoutError`}},i=(e,t,i)=>new Promise((a,o)=>{if(typeof t!=`number`||t<0)throw TypeError("Expected `milliseconds` to be a positive number");if(t===1/0){a(e);return}let s=setTimeout(()=>{if(typeof i==`function`){try{a(i())}catch(e){o(e)}return}let n=typeof i==`string`?i:`Promise timed out after ${t} milliseconds`,s=i instanceof Error?i:new r(n);typeof e.cancel==`function`&&e.cancel(),o(s)},t);n(e.then(a,o),()=>{clearTimeout(s)})});t.exports=i,t.exports.default=i,t.exports.TimeoutError=r})),ds=t((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e,t,n){let r=0,i=e.length;for(;i>0;){let a=i/2|0,o=r+a;n(e[o],t)<=0?(r=++o,i-=a+1):i=a}return r}e.default=t})),fs=t((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ds();e.default=class{constructor(){this._queue=[]}enqueue(e,n){n=Object.assign({priority:0},n);let r={priority:n.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=n.priority){this._queue.push(r);return}let i=t.default(this._queue,r,(e,t)=>t.priority-e.priority);this._queue.splice(i,0,r)}dequeue(){return this._queue.shift()?.run}filter(e){return this._queue.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this._queue.length}}})),ps=e(t((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cs(),n=us(),r=fs(),i=()=>{},a=new n.TimeoutError;e.default=class extends t{constructor(e){if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=i,this._resolveIdle=i,e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:r.default},e),!(typeof e.intervalCap==`number`&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??``}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??``}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||e.interval===0,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=e.throwOnTimeout===!0,this._isPaused=e.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit(`next`)}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=i,this._pendingCount===0&&(this._resolveIdle(),this._resolveIdle=i,this.emit(`idle`))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let e=Date.now();if(this._intervalId===void 0){let t=this._intervalEnd-e;if(t<0)this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0;else return this._timeoutId===void 0&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},t)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let t=this._queue.dequeue();return t?(this.emit(`active`),t(),e&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e==`number`&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={}){return new Promise((r,i)=>{this._queue.enqueue(async()=>{this._pendingCount++,this._intervalCount++;try{r(await(this._timeout===void 0&&t.timeout===void 0?e():n.default(Promise.resolve(e()),t.timeout===void 0?this._timeout:t.timeout,()=>{(t.throwOnTimeout===void 0?this._throwOnTimeout:t.throwOnTimeout)&&i(a)})))}catch(e){i(e)}this._next()},t),this._tryToStartAnother(),this.emit(`add`)})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(e=>{let t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}})}async onIdle(){if(!(this._pendingCount===0&&this._queue.size===0))return new Promise(e=>{let t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}}}))(),1),ms=`default`in ps.default?ps.default.default:ps.default,hs=[408,425,429,500,502,503,504],gs=class{constructor(e){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=e.maxConcurrency??1/0,this.maxRetries=e.maxRetries??6,this.maxQueueSizeBytes=e.maxQueueSizeBytes,this.queue=new ms({concurrency:this.maxConcurrency}),this.onFailedResponseHook=e?.onFailedResponseHook}call(e,...t){return this.callWithOptions({},e,...t)}callWithOptions(e,t,...n){let r=e.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&r>0&&this.queueSizeBytes+r>this.maxQueueSizeBytes)return Promise.reject(Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${r} bytes.`));r>0&&(this.queueSizeBytes+=r);let i=this.onFailedResponseHook,a=this.queue.add(()=>ss(()=>t(...n).catch(e=>{throw e instanceof Error?e:Error(e)}),{async onFailedAttempt({error:e}){if(typeof e!=`object`||!e)throw e;let t=`message`in e&&typeof e.message==`string`?e.message:void 0;if(t?.startsWith(`Cancel`)||t?.startsWith(`TimeoutError`)||t?.startsWith(`AbortError`)||`name`in e&&e.name===`TimeoutError`||`code`in e&&e.code===`ECONNABORTED`)throw e;let n=`response`in e?e.response:void 0;if(i&&await i(n))return;let r=n?.status??(`status`in e?e.status:void 0);if(r!=null&&(typeof r==`number`||typeof r==`string`)&&!hs.includes(+r))throw e},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return r>0&&(a=a.finally(()=>{this.queueSizeBytes-=r})),e.signal?Promise.race([a,new Promise((t,n)=>{e.signal?.addEventListener(`abort`,()=>{n(Error(`AbortError`))})})]):a}};function _s(e){return typeof e?._getType==`function`}function vs(e){let t={type:e._getType(),data:{content:e.content}};return e?.additional_kwargs&&Object.keys(e.additional_kwargs).length>0&&(t.data.additional_kwargs={...e.additional_kwargs}),t}function ys(e){return`Invalid prompt identifier format: "${e}". Expected one of:\n - "prompt-name" (for private prompts)\n - "owner/prompt-name" (for prompts with explicit owner)\n - "prompt-name:commit-hash" (with commit reference)\n - "owner/prompt-name:commit-hash" (with owner and commit)`}var bs=class extends Error{constructor(e){super(e),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=`LangSmithConflictError`,this.status=409}},xs=class extends Error{constructor(e){super(e),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=`LangSmithNotFoundError`,this.status=404}};function Ss(e){return typeof e==`object`&&!!e&&`name`in e&&e?.name===`LangSmithNotFoundError`}function Cs(e){return typeof e==`object`&&!!e&&`name`in e&&e?.name===`LangSmithConflictError`}async function N(e,t,n){let r;if(e.ok){n&&(r=await e.text());return}if(e.status===403)try{(await e.json())?.error===`org_scoped_key_requires_workspace`&&(r=`This API key is org-scoped and requires workspace specification. Please provide 'workspaceId' parameter, or set LANGSMITH_WORKSPACE_ID environment variable.`)}catch{let t=Error(`${e.status} ${e.statusText}`);throw t.status=e?.status,t}if(r===void 0)try{r=await e.text()}catch{r=``}let i=`Failed to ${t}. Received status [${e.status}]: ${e.statusText}. Message: ${r}`;if(e.status===404)throw new xs(i);if(e.status===409)throw new bs(i);let a=Error(i);throw a.status=e.status,a}var ws=`ERR_CONFLICTING_ENDPOINTS`,Ts=class extends Error{constructor(){super(`You cannot provide both LANGSMITH_ENDPOINT / LANGCHAIN_ENDPOINT and LANGSMITH_RUNS_ENDPOINTS.`),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:ws}),this.name=`ConflictingEndpointsError`}};function Es(e){return typeof e==`object`&&!!e&&e.code===ws}function Ds(e){if(!e||e.split(`/`).length>2||e.startsWith(`/`)||e.endsWith(`/`)||e.split(`:`).length>2)throw Error(ys(e));let[t,n]=e.split(`:`),r=n||`latest`;if(t.includes(`/`)){let[n,i]=t.split(`/`,2);if(!n||!i)throw Error(ys(e));return[n,i,r]}else{if(!t)throw Error(ys(e));return[`-`,t,r]}}var Os=`langsmith-cli`,ks=6e4,As=1e4;function js(){let e=Co();return e===`browser`||e===`webworker`}function Ms(){let e=Oo(`LANGSMITH_CONFIG_FILE`);if(e)return e;let t=Oo(`HOME`)??Oo(`USERPROFILE`);if(t)return oo.join(t,`.langsmith`,`config.json`)}function Ns(e){let t=Oo(`LANGSMITH_PROFILE`);if(t)return t;if(e.current_profile)return e.current_profile;if(e.profiles?.default)return`default`}function Ps(){if(js())return;let e=Ms();if(!(!e||!fo(e)))try{let t=JSON.parse(po(e)),n=Ns(t),r=n?t.profiles?.[n]:void 0;return!n||!r?void 0:{configPath:e,config:t,profileName:n,profile:r}}catch{return}}function Fs(e){return e!=null&&e.trim()!==``}function Is(e){return e?.trim().replace(/^["']|["']$/g,``)}function Ls(e){let t=e.oauth;if(!t?.refresh_token)return!1;if(!t.access_token)return!0;if(!t.expires_at)return!1;let n=Date.parse(t.expires_at);return!Number.isNaN(n)&&n<=Date.now()+ks}function Rs(e){let t=e;for(;t.endsWith(`/`);)t=t.slice(0,-1);return t.endsWith(`/api/v1`)?t.slice(0,-7):t}function zs(e,t){e.oauth??={},t.access_token&&(e.oauth.access_token=t.access_token),t.refresh_token&&(e.oauth.refresh_token=t.refresh_token),typeof t.expires_in==`number`&&t.expires_in>0&&(e.oauth.expires_at=new Date(Date.now()+t.expires_in*1e3).toISOString())}function Bs(e){return e.reason??Error(`The operation was aborted.`)}async function Vs(e,t){if(!t)return e;if(t.aborted)throw Bs(t);let n,r=new Promise((e,r)=>{let i=()=>{r(Bs(t))};t.addEventListener(`abort`,i,{once:!0}),n=()=>{t.removeEventListener(`abort`,i)}});try{return await Promise.race([e,r])}finally{n?.()}}function Hs(){let e=Ps(),t=e?.profile;if(!e||!t)return{};let n=Is(t.api_key),r=Is(t.oauth?.access_token),i=Is(t.oauth?.refresh_token);return{apiUrl:t.api_url,apiKey:n,workspaceId:t.workspace_id,oauthAccessToken:r,oauthRefreshToken:i,profileAuth:n||r||i?new Us(e):void 0}}var Us=class{constructor(e){Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"refreshPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"managedAuthorizationValue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.rememberProfileAuthHeader(this.currentAuthHeader())}currentAuthHeader(){let e=Ws(this.state.profile);return this.rememberProfileAuthHeader(e),e}async getAuthHeader(e,t){Ls(this.state.profile)&&(this.refreshPromise||=this.refreshOAuthToken(e).finally(()=>{this.refreshPromise=void 0}),await Vs(this.refreshPromise,t));let n=Gs(this.state.profile);return this.rememberProfileAuthHeader(n),n}isProfileAuthorizationHeader(e){return e===this.managedAuthorizationValue}async refreshOAuthToken(e){let t=this.state.profile.oauth?.refresh_token;if(!t)return;let n=Is(this.state.profile.api_url)??`https://api.smith.langchain.com`;try{let r=new URLSearchParams({grant_type:`refresh_token`,client_id:Os,refresh_token:t}),i=await e(`${Rs(n)}/oauth/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:r.toString(),signal:AbortSignal.timeout(As)});if(!i.ok)return;let a=await i.json();if(!a.access_token)return;zs(this.state.profile,a),this.state.config.profiles??={},this.state.config.profiles[this.state.profileName]=this.state.profile,await co(this.state.configPath,`${JSON.stringify(this.state.config,null,2)}\n`)}catch{return}}rememberProfileAuthHeader(e){this.managedAuthorizationValue=e?.name===`Authorization`?e.value:void 0}};function Ws(e){let t=Is(e.oauth?.access_token);if(t)return{name:`Authorization`,value:`Bearer ${t}`};if(!Is(e.oauth?.refresh_token))return Gs(e)}function Gs(e){let t=Is(e.oauth?.access_token);if(t)return{name:`Authorization`,value:`Bearer ${t}`};let n=Is(e.api_key);if(n)return{name:`x-api-key`,value:n}}var Ks=`[...]`,qs={result:`[Circular]`},Js=[],Ys=[],Xs=new TextEncoder;function Zs(){return{depthLimit:2**53-1,edgesLimit:2**53-1}}function Qs(e){return Xs.encode(e)}function $s(e){if(e&&typeof e==`object`&&e){if(e instanceof Map)return Object.fromEntries(e);if(e instanceof Set)return Array.from(e);if(e instanceof Date)return e.toISOString();if(e instanceof RegExp)return e.toString();if(e instanceof Error)return{name:e.name,message:e.message}}else if(typeof e==`bigint`)return e.toString();return e}function ec(e){return function(t,n){if(e){let r=e.call(this,t,n);if(r!==void 0)return r}return $s(n)}}function tc(e){try{let t=new Set,n=0,r=typeof Buffer<`u`&&typeof Buffer.byteLength==`function`?e=>Buffer.byteLength(e,`utf8`):e=>e.length;function i(e){let t=r(e);return t>n&&(n=t),t+2}function a(e){return e===0?2:2+e*4}function o(e){return e===void 0||typeof e==`function`||typeof e==`symbol`}function s(e){return e===void 0||typeof e==`function`||typeof e==`symbol`?4:c(e)}function c(e){if(e===null)return 4;if(e===void 0)return 0;let n=typeof e;if(n===`boolean`)return 5;if(n===`number`)return Number.isFinite(e)?e.toString().length:4;if(n===`bigint`)return e.toString().length+2;if(n===`string`)return i(e);if(n===`function`||n===`symbol`)return 0;let l=e;if(l instanceof Date)return 26;if(l instanceof RegExp)return r(l.toString())+2;if(l instanceof Error){let e=l.name??``,t=l.message??``;return 22+r(e)+r(t)}if(typeof Buffer<`u`&&l instanceof Buffer)return 28+a(l.byteLength);if(ArrayBuffer.isView(l))return l instanceof DataView?2:2+(l.length??0)*(l instanceof Float32Array||l instanceof Float64Array?30:12);if(l instanceof ArrayBuffer)return 2;if(t.has(l))return 24;if(typeof l.toJSON==`function`){let e;try{e=l.toJSON(``)}catch{return 16}t.add(l);let n=c(e);return t.delete(l),n}t.add(l);let u;if(Array.isArray(l)){u=2;let e=l.length;for(let t=0;t<e;t++)u+=s(l[t]),t<e-1&&(u+=1)}else if(l instanceof Map){u=2;let e=0;for(let[t,n]of l)o(n)||(e>0&&(u+=1),u+=r(typeof t==`string`?t:String(t))+3,u+=c(n),e++)}else if(l instanceof Set){u=2;let e=0;for(let t of l)e>0&&(u+=1),u+=s(t),e++}else{u=2;let e=0,t=Object.keys(l);for(let n=0;n<t.length;n++){let i=t[n],a=l[i];o(a)||(e>0&&(u+=1),u+=r(i)+3,u+=c(a),e++)}}return t.delete(l),u}return{size:c(e),maxStringLen:n}}catch{return{size:nc(e).length,maxStringLen:0}}}function nc(e,t,n,r,i){try{return Qs(JSON.stringify(e,ec(n),r))}catch(a){if(!a.message?.includes(`Converting circular structure to JSON`))return console.warn(`[WARNING]: LangSmith received unserializable value.${t?`\nContext: ${t}`:``}`),Qs(`[Unserializable]`);ko(`SUPPRESS_CIRCULAR_JSON_WARNINGS`)!==`true`&&console.warn(`[WARNING]: LangSmith received circular JSON. This will decrease tracer performance. ${t?`\nContext: ${t}`:``}`),i===void 0&&(i=Zs()),ic(e,``,0,[],void 0,0,i);let o;try{o=Ys.length===0?JSON.stringify(e,n,r):JSON.stringify(e,ac(n),r)}catch{return Qs(`[unable to serialize, circular reference is too complex to analyze]`)}finally{for(;Js.length!==0;){let e=Js.pop();e.length===4?Object.defineProperty(e[0],e[1],e[3]):e[0][e[1]]=e[2]}}return Qs(o)}}function rc(e,t,n,r){var i=Object.getOwnPropertyDescriptor(r,n);i.get===void 0?(r[n]=e,Js.push([r,n,t])):i.configurable?(Object.defineProperty(r,n,{value:e}),Js.push([r,n,t,i])):Ys.push([t,n,e])}function ic(e,t,n,r,i,a,o){a+=1;var s;if(typeof e==`object`&&e){for(s=0;s<r.length;s++)if(r[s]===e){rc(qs,e,t,i);return}if(o.depthLimit!==void 0&&a>o.depthLimit){rc(Ks,e,t,i);return}if(o.edgesLimit!==void 0&&n+1>o.edgesLimit){rc(Ks,e,t,i);return}if(r.push(e),Array.isArray(e))for(s=0;s<e.length;s++)ic(e[s],s,s,r,e,a,o);else{e=$s(e);var c=Object.keys(e);for(s=0;s<c.length;s++){var l=c[s];ic(e[l],l,s,r,e,a,o)}}r.pop()}}function ac(e){return e=e===void 0?function(e,t){return t}:e,function(t,n){if(Ys.length>0)for(var r=0;r<Ys.length;r++){var i=Ys[r];if(i[1]===t&&i[0]===n){n=i[2],Ys.splice(r,1);break}}return e.call(this,t,n)}}var oc=class{constructor(){Object.defineProperty(this,"worker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nextId",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"pending",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"startPromise",{enumerable:!0,configurable:!0,writable:!0,value:null})}async ensureStarted(){if(this.disabled)return!1;if(this.worker!==null)return!0;if(this.startPromise!==null)return this.startPromise;this.startPromise=this._start();try{return await this.startPromise}finally{this.startPromise=null}}async _start(){return this.disabled=!0,!1}async serialize(e){if(!await this.ensureStarted())return null;let t=this.nextId++;return new Promise((n,r)=>{this.pending.set(t,{resolve:n,reject:r});try{this.worker.postMessage({id:t,op:`serialize`,payload:e})}catch(e){this.pending.delete(t),r(e)}})}async terminate(){this.worker&&=(await this.worker.terminate(),null);for(let[,e]of this.pending)e.reject(Error(`worker terminated`));this.pending.clear()}},sc=null;function cc(){return sc===null&&(sc=new oc),sc}var lc=64*1024,uc=2048;function dc(e,t=lc,n=uc){if(typeof e!=`object`||!e)return typeof e==`string`&&e.length>=t;let r=[e],i=new Set,a=0;for(;r.length>0;){if(a++>=n)return!1;let e=r.pop();if(e==null)continue;let o=typeof e;if(o===`string`){if(e.length>=t)return!0;continue}if(o!==`object`)continue;let s=e;if(i.has(s)||(i.add(s),s instanceof Date||s instanceof RegExp||s instanceof Error||s instanceof ArrayBuffer||ArrayBuffer.isView(s)))continue;if(Array.isArray(s)){for(let e=s.length-1;e>=0;e--)r.push(s[e]);continue}if(s instanceof Map){for(let[,e]of s)r.push(e);continue}if(s instanceof Set){for(let e of s)r.push(e);continue}let c=Object.keys(s);for(let e=c.length-1;e>=0;e--)r.push(s[c[e]])}return!1}function fc(e,t){let[n]=Ds(e);if(n!==`-`&&!t)throw Error("Pulling a public prompt by owner/name is disabled by default because prompts may contain untrusted serialized LangChain objects. If you trust this prompt, set `dangerouslyPullPublicPrompt: true` to acknowledge the risk.")}function pc(e){return typeof e==`string`&&e.length>0&&!e.includes(`Z`)&&!e.includes(`+`)&&!e.includes(`-`,10)?e+`Z`:e}function mc(e){return{...e,start_time:pc(e.start_time),end_time:pc(e.end_time)}}function hc(e,t,n){if(n)return e;let r=To(),i=t??Eo(),a=e.extra??{},o=a.metadata;return e.extra={...a,runtime:{...r,...a?.runtime},metadata:{...i,...i.revision_id||`revision_id`in e&&e.revision_id?{revision_id:(`revision_id`in e?e.revision_id:void 0)??i.revision_id}:{},...o}},e}var gc=e=>{let t=e?.toString()??ko(`TRACING_SAMPLING_RATE`);if(t===void 0)return;let n=parseFloat(t);if(n<0||n>1)throw Error(`LANGSMITH_TRACING_SAMPLING_RATE must be between 0 and 1 if set. Got: ${n}`);return n},_c=e=>{let t=e.replace(`http://`,``).replace(`https://`,``).split(`/`)[0].split(`:`)[0];return t===`localhost`||t===`127.0.0.1`||t===`::1`};async function vc(e){let t=[];for await(let n of e)t.push(n);return t}function yc(e){if(e!==void 0)return e.trim().replace(/^"(.*)"$/,`$1`).replace(/^'(.*)'$/,`$1`)}var bc=async e=>{if(e?.status===429){let t=parseInt(e.headers.get(`retry-after`)??`10`,10)*1e3;if(t>0)return await new Promise(e=>setTimeout(e,t)),!0}return!1};function xc(e){return typeof e==`number`?Number(e.toFixed(4)):e}var Sc=1e4,Cc=100,wc=class{constructor(e){Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"sizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSizeBytes=e??1073741824}peek(){return this.items[0]}push(e){let t,n=new Promise(e=>{t=e}),r=tc(e.item).size;return this.sizeBytes+r>this.maxSizeBytes&&this.items.length>0?(console.warn(`AutoBatchQueue size limit (${this.maxSizeBytes} bytes) exceeded. Dropping run with id: ${e.item.id}. Current queue size: ${this.sizeBytes} bytes, attempted addition: ${r} bytes.`),t(),n):(this.items.push({action:e.action,payload:e.item,otelContext:e.otelContext,apiKey:e.apiKey,apiUrl:e.apiUrl,itemPromiseResolve:t,itemPromise:n,size:r}),this.sizeBytes+=r,n)}pop({upToSizeBytes:e,upToSize:t}){if(e<1)throw Error(`Number of bytes to pop off may not be less than 1.`);let n=[],r=0;for(;r+(this.peek()?.size??0)<e&&this.items.length>0&&n.length<t;){let e=this.items.shift();e&&(n.push(e),r+=e.size,this.sizeBytes-=e.size)}if(n.length===0&&this.items.length>0){let e=this.items.shift();n.push(e),r+=e.size,this.sizeBytes-=e.size}return[n.map(e=>({action:e.action,item:e.payload,otelContext:e.otelContext,apiKey:e.apiKey,apiUrl:e.apiUrl,size:e.size})),()=>n.forEach(e=>e.itemPromiseResolve())]}},Tc=class e{get tracingMode(){return this._tracingMode}get _fetch(){let e=this.fetchImplementation||$i(this.debug);return(async(t,n)=>{let r,i=this.getProfileManagedAuthorizationHeader(n);return this.apiKey===void 0?this.hasExplicitAuthHeader(n,i)||(r=await this.profileAuth?.getAuthHeader(e,n?.signal)):r={name:`x-api-key`,value:`${this.apiKey}`},e(t,this.applyCurrentAuthHeaders(n,r,i))})}getProfileManagedAuthorizationHeader(e){if(!e?.headers||!this.profileAuth)return;let t=new Headers(e.headers).get(`Authorization`);if(Fs(t))return this.profileAuth.isProfileAuthorizationHeader(t??``)?t??void 0:void 0}isProfileManagedAuthorizationHeader(e,t){return e===t||this.profileAuth?.isProfileAuthorizationHeader(e)===!0}hasExplicitAuthHeader(e,t){if(!e?.headers)return!1;let n=new Headers(e.headers);if(Fs(n.get(`x-api-key`)))return!0;let r=n.get(`Authorization`);return Fs(r)?!this.isProfileManagedAuthorizationHeader(r??``,t):!1}applyCurrentAuthHeaders(e,t,n){if(!t)return e;let r=e=>{if(this.apiKey!==void 0&&t.name===`x-api-key`)return e.delete(`Authorization`),e.has(`x-api-key`)||e.set(`x-api-key`,t.value),e;if(t.name===`Authorization`){if(Fs(e.get(`x-api-key`)))return e;let r=e.get(`Authorization`);return Fs(r)&&!this.isProfileManagedAuthorizationHeader(r??``,n)||e.set(`Authorization`,t.value),e}let r=e.get(`Authorization`);return Fs(r)&&!this.isProfileManagedAuthorizationHeader(r??``,n)?e:(Fs(r)&&e.delete(`Authorization`),e.has(`x-api-key`)||e.set(`x-api-key`,t.value),e)};if(!e)return{headers:{[t.name]:t.value}};if(e.headers instanceof Headers||Array.isArray(e.headers))return{...e,headers:r(new Headers(e.headers))};let i={...e.headers??{}},a=e=>Object.keys(i).find(t=>t.toLowerCase()===e),o=e=>{let t=a(e);return t?i[t]:void 0},s=Fs(o(`x-api-key`)),c=o(`authorization`),l=Fs(c)&&!this.isProfileManagedAuthorizationHeader(c??``,n);if(this.apiKey!==void 0&&t.name===`x-api-key`){let n=a(`authorization`);return n&&delete i[n],s||(i[`x-api-key`]=t.value),{...e,headers:i}}if(t.name===`Authorization`){if(!s&&!l){let e=a(`authorization`);e&&e!==`Authorization`&&delete i[e],i.Authorization=t.value}return{...e,headers:i}}if(!l){let e=a(`authorization`);e&&delete i[e],s||(i[`x-api-key`]=t.value)}return{...e,headers:i}}_trackDrain(e){this._pendingDrains.add(e),e.finally(()=>{this._pendingDrains.delete(e)})}async _serializeBody(e,t){if(this.manualFlushMode||!dc(e)||(this._serializeWorker===void 0&&(this._serializeWorker=cc()),this._serializeWorker===null))return nc(e,t);try{let n=await this._serializeWorker.serialize(e);return n===null?(this._serializeWorker=null,nc(e,t)):n}catch{return nc(e,t)}}constructor(t={}){Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"webUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"workspaceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchIngestCaller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout_ms",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tenantId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hideInputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hideOutputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hideMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"omitTracedRuntimeInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingSampleRate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filteredPostUuids",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"autoBatchTracing",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"autoBatchQueue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoBatchTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoBatchAggregationDelayMs",{enumerable:!0,configurable:!0,writable:!0,value:250}),Object.defineProperty(this,"batchSizeBytesLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchSizeLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fetchOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"blockOnRootRunFinalization",{enumerable:!0,configurable:!0,writable:!0,value:Oo(`LANGSMITH_TRACING_BACKGROUND`)===`false`}),Object.defineProperty(this,"traceBatchConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:5}),Object.defineProperty(this,"_serverInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_getServerInfoPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manualFlushMode",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_serializeWorker",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pendingDrains",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"langSmithToOTELTranslator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tracingMode",{enumerable:!0,configurable:!0,writable:!0,value:`langsmith`}),Object.defineProperty(this,"fetchImplementation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachedLSEnvVarsForMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_promptCache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"profileAuth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"multipartStreamingDisabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_multipartDisabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_runCompressionDisabled",{enumerable:!0,configurable:!0,writable:!0,value:ko(`DISABLE_RUN_COMPRESSION`)===`true`}),Object.defineProperty(this,"failedTracesDir",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"failedTracesMaxBytes",{enumerable:!0,configurable:!0,writable:!0,value:100*1024*1024}),Object.defineProperty(this,"_customHeaders",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:Oo(`LANGSMITH_DEBUG`)===`true`});let n=e.getDefaultClientConfig();this.tracingSampleRate=gc(t.tracingSamplingRate),this.apiUrl=yc(t.apiUrl??n.apiUrl)??``,this.apiUrl.endsWith(`/`)&&(this.apiUrl=this.apiUrl.slice(0,-1));let r=yc(t.apiKey??n.apiKey);if(this.apiKey=Fs(r)?r:void 0,this.profileAuth=this.apiKey===void 0?n.profileAuth:void 0,this.webUrl=yc(t.webUrl??n.webUrl),this.webUrl?.endsWith(`/`)&&(this.webUrl=this.webUrl.slice(0,-1)),this.workspaceId=yc(t.workspaceId??n.workspaceId),this.timeout_ms=t.timeout_ms??9e4,this.caller=new gs({...t.callerOptions??{},maxRetries:4,debug:t.debug??this.debug}),this.traceBatchConcurrency=t.traceBatchConcurrency??this.traceBatchConcurrency,this.traceBatchConcurrency<1)throw Error(`Trace batch concurrency must be positive.`);this.debug=t.debug??this.debug,this.fetchImplementation=t.fetchImplementation,this.failedTracesDir=ko(`FAILED_TRACES_DIR`)||void 0;let i=ko(`FAILED_TRACES_MAX_MB`);if(i){let e=parseInt(i,10);Number.isFinite(e)&&e>0&&(this.failedTracesMaxBytes=e*1024*1024)}let a=t.maxIngestMemoryBytes??1073741824;this.batchIngestCaller=new gs({maxRetries:4,maxConcurrency:this.traceBatchConcurrency,maxQueueSizeBytes:a,...t.callerOptions??{},onFailedResponseHook:bc,debug:t.debug??this.debug}),this.hideInputs=t.hideInputs??t.anonymizer??n.hideInputs,this.hideOutputs=t.hideOutputs??t.anonymizer??n.hideOutputs,this.hideMetadata=t.hideMetadata??n.hideMetadata,this.omitTracedRuntimeInfo=t.omitTracedRuntimeInfo??!1,this.autoBatchTracing=t.autoBatchTracing??this.autoBatchTracing,this.autoBatchQueue=new wc(a),this.blockOnRootRunFinalization=t.blockOnRootRunFinalization??this.blockOnRootRunFinalization,this.batchSizeBytesLimit=t.batchSizeBytesLimit,this.batchSizeLimit=t.batchSizeLimit,this.fetchOptions=t.fetchOptions||{},this.manualFlushMode=t.manualFlushMode??this.manualFlushMode,this._tracingMode=Po(t.tracingMode),this._tracingMode===`otel`&&(this.langSmithToOTELTranslator=new Xo),this.cachedLSEnvVarsForMetadata=Eo(),t.cache!==void 0&&t.disablePromptCache&&na(`Both 'cache' and 'disablePromptCache' were provided. The 'cache' parameter is deprecated and will be removed in a future version. Using 'cache' parameter value.`),t.cache===void 0?t.disablePromptCache||(this._promptCache=ho):(na(`The 'cache' parameter is deprecated and will be removed in a future version. Use 'configureGlobalPromptCache()' to configure the global cache, or 'disablePromptCache: true' to disable caching for this client.`),t.cache===!1?this._promptCache=void 0:t.cache===!0?this._promptCache=ho:this._promptCache=t.cache),this._customHeaders=t.headers??{}}static getDefaultClientConfig(){let e=Hs(),t=ko(`API_KEY`),n=ko(`ENDPOINT`),r=ko(`WORKSPACE_ID`),i=Fs(t),a=n??e.apiUrl??`https://api.smith.langchain.com`,o=r??e.workspaceId;return{apiUrl:a,apiKey:t,webUrl:void 0,hideInputs:ko(`HIDE_INPUTS`)===`true`,hideOutputs:ko(`HIDE_OUTPUTS`)===`true`,hideMetadata:ko(`HIDE_METADATA`)===`true`,workspaceId:o,oauthAccessToken:i?void 0:e.oauthAccessToken,oauthRefreshToken:i?void 0:e.oauthRefreshToken,profileAuth:i?void 0:e.profileAuth}}getHostUrl(){return this.webUrl?this.webUrl:_c(this.apiUrl)?(this.webUrl=`http://localhost:3000`,this.webUrl):this.apiUrl.endsWith(`/api/v1`)?(this.webUrl=this.apiUrl.replace(`/api/v1`,``),this.webUrl):this.apiUrl.includes(`/api`)&&!this.apiUrl.split(`.`,1)[0].endsWith(`api`)?(this.webUrl=this.apiUrl.replace(`/api`,``),this.webUrl):this.apiUrl.split(`.`,1)[0].includes(`dev`)?(this.webUrl=`https://dev.smith.langchain.com`,this.webUrl):this.apiUrl.split(`.`,1)[0].includes(`eu`)?(this.webUrl=`https://eu.smith.langchain.com`,this.webUrl):this.apiUrl.split(`.`,1)[0].includes(`aws`)?(this.webUrl=`https://aws.smith.langchain.com`,this.webUrl):this.apiUrl.split(`.`,1)[0].includes(`apac`)?(this.webUrl=`https://apac.smith.langchain.com`,this.webUrl):this.apiUrl.split(`.`,1)[0].includes(`beta`)?(this.webUrl=`https://beta.smith.langchain.com`,this.webUrl):(this.webUrl=`https://smith.langchain.com`,this.webUrl)}get _mergedHeaders(){let e={"User-Agent":`langsmith-js/${go}`,...this._customHeaders};if(this.apiKey!==void 0)e[`x-api-key`]=`${this.apiKey}`;else{let t=this.profileAuth?.currentAuthHeader();t&&(e[t.name]=t.value)}return this.workspaceId&&(e[`x-tenant-id`]=this.workspaceId),e}get headers(){return this._customHeaders}set headers(e){this._customHeaders=e??{}}_getPlatformEndpointPath(e){return this.apiUrl.slice(-3)!==`/v1`&&this.apiUrl.slice(-4)!==`/v1/`?`/v1/platform/${e}`:`/platform/${e}`}async processInputs(e){return this.hideInputs===!1?e:this.hideInputs===!0?{}:typeof this.hideInputs==`function`?this.hideInputs(e):e}async processOutputs(e){return this.hideOutputs===!1?e:this.hideOutputs===!0?{}:typeof this.hideOutputs==`function`?this.hideOutputs(e):e}async processMetadata(e){return this.hideMetadata===!1?e:this.hideMetadata===!0?{}:typeof this.hideMetadata==`function`?this.hideMetadata(e):e}_filterNewTokenEvents(e){return!e||e.length===0?e:e.map(e=>{if(e.name===`new_token`){let{kwargs:t,...n}=e;return n}return e})}async prepareRunCreateOrUpdateInputs(e){let t={...e};return t.inputs!==void 0&&(t.inputs=await this.processInputs(t.inputs)),t.outputs!==void 0&&(t.outputs=await this.processOutputs(t.outputs)),t.extra!=null&&`metadata`in t.extra&&(t.extra={...t.extra,metadata:await this.processMetadata(t.extra.metadata)}),t.events!==void 0&&(t.events=this._filterNewTokenEvents(t.events)),t}async _getResponse(e,t){let n=t?.toString()??``,r=`${this.apiUrl}${e}?${n}`;return await this.caller.call(async()=>{let t=await this._fetch(r,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`fetch ${e}`),t})}async _get(e,t){return(await this._getResponse(e,t)).json()}async*_getPaginated(e,t=new URLSearchParams,n){let r=Number(t.get(`offset`))||0,i=Number(t.get(`limit`))||100;for(;;){t.set(`offset`,String(r)),t.set(`limit`,String(i));let a=`${this.apiUrl}${e}?${t}`,o=await this.caller.call(async()=>{let t=await this._fetch(a,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`fetch ${e}`),t}),s=n?n(await o.json()):await o.json();if(s.length===0||(yield s,s.length<i))break;r+=s.length}}async*_getCursorPaginatedList(e,t=null,n=`POST`,r=`runs`){let i=t?{...t}:{};for(;;){let t=JSON.stringify(i),a=await(await this.caller.call(async()=>{let r=await this._fetch(`${this.apiUrl}${e}`,{method:n,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:t});return await N(r,`fetch ${e}`),r})).json();if(!a||!a[r])break;yield a[r];let o=a.cursors;if(!o||!o.next)break;i.cursor=o.next}}_shouldSample(){return this.tracingSampleRate===void 0||Math.random()<this.tracingSampleRate}_filterForSampling(e,t=!1){if(this.tracingSampleRate===void 0)return e;if(t){let t=[];for(let n of e)this.filteredPostUuids.has(n.trace_id)?n.id===n.trace_id&&this.filteredPostUuids.delete(n.trace_id):t.push(n);return t}else{let t=[];for(let n of e){let e=n.trace_id??n.id;this.filteredPostUuids.has(e)||(n.id===e?this._shouldSample()?t.push(n):this.filteredPostUuids.add(e):t.push(n))}return t}}async _getBatchSizeLimitBytes(){let e=await this._ensureServerInfo();return this.batchSizeBytesLimit??e?.batch_ingest_config?.size_limit_bytes??25165824}async _getBatchSizeLimit(){let e=await this._ensureServerInfo();return this.batchSizeLimit??e?.batch_ingest_config?.size_limit??Cc}async _getDatasetExamplesMultiPartSupport(){return(await this._ensureServerInfo()).instance_flags?.dataset_examples_multipart_enabled??!1}drainAutoBatchQueue({batchSizeLimitBytes:e,batchSizeLimit:t}){let n=[];for(;this.autoBatchQueue.items.length>0;){let[r,i]=this.autoBatchQueue.pop({upToSizeBytes:e,upToSize:t});if(!r.length){i();break}let a=r.reduce((e,t)=>{let n=t.apiUrl??this.apiUrl,r=t.apiKey??this.apiKey,i=t.apiKey===this.apiKey&&t.apiUrl===this.apiUrl?`default`:`${n}|${r}`;return e[i]||(e[i]=[]),e[i].push(t),e},{}),o=[];for(let[e,t]of Object.entries(a)){let n=this._processBatch(t,{apiUrl:e==="default"?void 0:e.split(`|`)[0],apiKey:e==="default"?void 0:e.split(`|`)[1]});o.push(n)}let s=Promise.all(o).finally(i);n.push(s)}return Promise.all(n)}static async _writeTraceToFallbackDir(t,n,r,i,a){try{let o=typeof n==`string`?Buffer.from(n,`utf8`):Buffer.from(n),s=JSON.stringify({version:1,endpoint:i,headers:r,body_base64:o.toString(`base64`)}),c=`trace_${Date.now()}_${ti().slice(0,8)}.json`,l=oo.join(t,c);if(e._fallbackDirsCreated.has(t)||(await so(t),e._fallbackDirsCreated.add(t)),a!==void 0&&a>0)try{let e=(await lo(t)).filter(e=>e.startsWith(`trace_`)&&e.endsWith(`.json`)),n=0;for(let r of e){let{size:e}=await uo(oo.join(t,r));n+=e}if(n>=a){console.warn(`Could not write trace to fallback dir ${t} as it's already over size limit (${n} bytes >= ${a} bytes). Increase LANGSMITH_FAILED_TRACES_MAX_MB if possible.`);return}}catch{}await co(l,s),console.warn(`LangSmith trace upload failed; data saved to ${l} for later replay.`)}catch(e){console.error(`LangSmith tracing error: could not write trace to fallback dir ${t}:`,e)}}async _processBatch(e,t){if(!e.length)return;let n=e.reduce((e,t)=>e+(t.size??0),0);try{if(this.langSmithToOTELTranslator!==void 0)this._sendBatchToOTELTranslator(e);else{let r={runCreates:e.filter(e=>e.action===`create`).map(e=>e.item),runUpdates:e.filter(e=>e.action===`update`).map(e=>e.item)},i=await this._ensureServerInfo();if(!this._multipartDisabled&&(i?.batch_ingest_config?.use_multipart_endpoint??!0)){let e=!this._runCompressionDisabled&&i?.instance_flags?.gzip_body_enabled;try{await this.multipartIngestRuns(r,{...t,useGzip:e,sizeBytes:n})}catch(e){if(Ss(e))this._multipartDisabled=!0,await this.batchIngestRuns(r,{...t,sizeBytes:n});else throw e}}else await this.batchIngestRuns(r,{...t,sizeBytes:n})}}catch(e){console.error(`Error exporting batch:`,e)}}_sendBatchToOTELTranslator(e){if(this.langSmithToOTELTranslator!==void 0){let t=new Map,n=[];for(let r of e)r.item.id&&r.otelContext&&(t.set(r.item.id,r.otelContext),r.action===`create`?n.push({operation:`post`,id:r.item.id,trace_id:r.item.trace_id??r.item.id,run:r.item}):n.push({operation:`patch`,id:r.item.id,trace_id:r.item.trace_id??r.item.id,run:r.item}));this.langSmithToOTELTranslator.exportBatch(n,t)}}async processRunOperation(e){clearTimeout(this.autoBatchTimeout),this.autoBatchTimeout=void 0,e.item=hc(e.item,this.cachedLSEnvVarsForMetadata,this.omitTracedRuntimeInfo);let t=this.autoBatchQueue.push(e);if(this.manualFlushMode)return t;let n=await this._getBatchSizeLimitBytes(),r=await this._getBatchSizeLimit();return(this.autoBatchQueue.sizeBytes>n||this.autoBatchQueue.items.length>r)&&this._trackDrain(this.drainAutoBatchQueue({batchSizeLimitBytes:n,batchSizeLimit:r})),this.autoBatchQueue.items.length>0&&(this.autoBatchTimeout=setTimeout(()=>{this.autoBatchTimeout=void 0,this._trackDrain(this.drainAutoBatchQueue({batchSizeLimitBytes:n,batchSizeLimit:r}))},this.autoBatchAggregationDelayMs)),t}async _getServerInfo(){let e=await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/info`,{method:`GET`,headers:{...this._mergedHeaders,Accept:`application/json`},signal:AbortSignal.timeout(Sc),...this.fetchOptions});return await N(e,`get server info`),e})).json();return this.debug&&console.log(`
|
|
11
|
+
=== LangSmith Server Configuration ===
|
|
12
|
+
`+JSON.stringify(e,null,2)+`
|
|
13
|
+
`),e}async _ensureServerInfo(){return this._getServerInfoPromise===void 0&&(this._getServerInfoPromise=(async()=>{if(this._serverInfo===void 0)try{this._serverInfo=await this._getServerInfo()}catch(e){console.warn(`[LANGSMITH]: Failed to fetch info on supported operations. Falling back to batch operations and default limits. Info: ${e.status??`Unspecified status code`} ${e.message}`)}return this._serverInfo??{}})()),this._getServerInfoPromise.then(e=>(this._serverInfo===void 0&&(this._getServerInfoPromise=void 0),e))}async _getSettings(){return this.settings||=this._get(`/settings`),await this.settings}async flush(){let e=await this._getBatchSizeLimitBytes(),t=await this._getBatchSizeLimit();await this.drainAutoBatchQueue({batchSizeLimitBytes:e,batchSizeLimit:t})}_cloneCurrentOTELContext(){let e=Wo(),t=Go();if(this.langSmithToOTELTranslator!==void 0){let n=e.getActiveSpan();if(n)return e.setSpan(t.active(),n)}}async createRun(e,t){if(!this._filterForSampling([e]).length)return;let n={...this._mergedHeaders,"Content-Type":`application/json`},r=e.project_name;delete e.project_name;let i=await this.prepareRunCreateOrUpdateInputs({session_name:r,...e,start_time:e.start_time??Date.now()});if(this.autoBatchTracing&&i.trace_id!==void 0&&i.dotted_order!==void 0){let e=this._cloneCurrentOTELContext();this.processRunOperation({action:`create`,item:i,otelContext:e,apiKey:t?.apiKey,apiUrl:t?.apiUrl}).catch(console.error);return}let a=hc(i,this.cachedLSEnvVarsForMetadata,this.omitTracedRuntimeInfo);t?.apiKey!==void 0&&(n[`x-api-key`]=t.apiKey),t?.workspaceId!==void 0&&(n[`x-tenant-id`]=t.workspaceId);let o=nc(a,`Creating run with id: ${a.id}`);await this.caller.call(async()=>{let e=await this._fetch(`${t?.apiUrl??this.apiUrl}/runs`,{method:`POST`,headers:n,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await N(e,`create run`,!0),e})}async batchIngestRuns({runCreates:e,runUpdates:t},n){if(e===void 0&&t===void 0)return;let r=await Promise.all(e?.map(e=>this.prepareRunCreateOrUpdateInputs(e))??[]),i=await Promise.all(t?.map(e=>this.prepareRunCreateOrUpdateInputs(e))??[]);if(r.length>0&&i.length>0){let e=r.reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),t=[];for(let n of i)n.id!==void 0&&e[n.id]?e[n.id]={...e[n.id],...n}:t.push(n);r=Object.values(e),i=t}let a={post:r,patch:i};if(!a.post.length&&!a.patch.length)return;let o={post:[],patch:[]};for(let e of[`post`,`patch`]){let t=e,n=a[t].reverse(),r=n.pop();for(;r!==void 0;)o[t].push(r),r=n.pop()}if(o.post.length>0||o.patch.length>0){let e=o.post.map(e=>e.id).concat(o.patch.map(e=>e.id)).join(`,`);await this._postBatchIngestRuns(await this._serializeBody(o,`Ingesting runs with ids: ${e}`),n)}}async _postBatchIngestRuns(e,t){let n={...this._mergedHeaders,"Content-Type":`application/json`,Accept:`application/json`};t?.apiKey!==void 0&&(n[`x-api-key`]=t.apiKey),await this.batchIngestCaller.callWithOptions({sizeBytes:t?.sizeBytes},async()=>{let r=await this._fetch(`${t?.apiUrl??this.apiUrl}/runs/batch`,{method:`POST`,headers:n,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:e});return await N(r,`batch create run`,!0),r})}async multipartIngestRuns({runCreates:e,runUpdates:t},n){if(e===void 0&&t===void 0)return;let r={},i=[];for(let t of e??[]){let e=await this.prepareRunCreateOrUpdateInputs(t);e.id!==void 0&&e.attachments!==void 0&&(r[e.id]=e.attachments),delete e.attachments,i.push(e)}let a=[];for(let e of t??[])a.push(await this.prepareRunCreateOrUpdateInputs(e));if(i.find(e=>e.trace_id===void 0||e.dotted_order===void 0)!==void 0)throw Error(`Multipart ingest requires "trace_id" and "dotted_order" to be set when creating a run`);if(a.find(e=>e.trace_id===void 0||e.dotted_order===void 0)!==void 0)throw Error(`Multipart ingest requires "trace_id" and "dotted_order" to be set when updating a run`);if(i.length>0&&a.length>0){let e=i.reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),t=[];for(let n of a)n.id!==void 0&&e[n.id]?e[n.id]={...e[n.id],...n}:t.push(n);i=Object.values(e),a=t}if(i.length===0&&a.length===0)return;let o=[],s=[];for(let[e,t]of[[`post`,i],[`patch`,a]])for(let n of t){let{inputs:t,outputs:i,events:a,extra:c,error:l,serialized:u,attachments:d,...f}=n,p={inputs:t,outputs:i,events:a,extra:c,error:l,serialized:u},m=await this._serializeBody(f,`Serializing for multipart ingestion of run with id: ${f.id}`);s.push({name:`${e}.${f.id}`,payload:new Blob([m],{type:`application/json; length=${m.length}`})});for(let[t,n]of Object.entries(p)){if(n===void 0)continue;let r=await this._serializeBody(n,`Serializing ${t} for multipart ingestion of run with id: ${f.id}`);s.push({name:`${e}.${f.id}.${t}`,payload:new Blob([r],{type:`application/json; length=${r.length}`})})}if(f.id!==void 0){let e=r[f.id];if(e){delete r[f.id];for(let[t,n]of Object.entries(e)){let e,r;if(Array.isArray(n)?[e,r]=n:(e=n.mimeType,r=n.data),t.includes(`.`)){console.warn(`Skipping attachment '${t}' for run ${f.id}: Invalid attachment name. Attachment names must not contain periods ('.'). Please rename the attachment and try again.`);continue}s.push({name:`attachment.${f.id}.${t}`,payload:new Blob([r],{type:`${e}; length=${r.byteLength}`})})}}}o.push(`trace=${f.trace_id},id=${f.id}`)}await this._sendMultipartRequest(s,o.join(`; `),n)}async _createNodeFetchBody(e,t){let n=[];for(let r of e)n.push(new Blob([`--${t}\r\n`])),n.push(new Blob([`Content-Disposition: form-data; name="${r.name}"\r\n`,`Content-Type: ${r.payload.type}\r\n\r\n`])),n.push(r.payload),n.push(new Blob([`\r
|
|
14
|
+
`]));return n.push(new Blob([`--${t}--\r\n`])),await new Blob(n).arrayBuffer()}async _createMultipartStream(e,t){let n=new TextEncoder;return new ReadableStream({async start(r){let i=async e=>{typeof e==`string`?r.enqueue(n.encode(e)):r.enqueue(e)};for(let n of e){await i(`--${t}\r\n`),await i(`Content-Disposition: form-data; name="${n.name}"\r\n`),await i(`Content-Type: ${n.payload.type}\r\n\r\n`);let e=n.payload.stream().getReader();try{let t;for(;!(t=await e.read()).done;)r.enqueue(t.value)}finally{e.releaseLock()}await i(`\r
|
|
15
|
+
`)}await i(`--${t}--\r\n`),r.close()}})}async _sendMultipartRequest(t,n,r){let i=`----LangSmithFormBoundary`+Math.random().toString(36).slice(2),a=()=>this._createNodeFetchBody(t,i),o=()=>this._createMultipartStream(t,i),s=async e=>this.batchIngestCaller.callWithOptions({sizeBytes:r?.sizeBytes},async()=>{let t=await e(),n={...this._mergedHeaders,"Content-Type":`multipart/form-data; boundary=${i}`};r?.apiKey!==void 0&&(n[`x-api-key`]=r.apiKey);let a=t;r?.useGzip&&typeof t==`object`&&`pipeThrough`in t&&(a=t.pipeThrough(new CompressionStream(`gzip`)),n[`Content-Encoding`]=`gzip`);let o=await this._fetch(`${r?.apiUrl??this.apiUrl}/runs/multipart`,{method:`POST`,headers:n,body:a,duplex:`half`,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(o,`Failed to send multipart request`,!0),o});try{let e,t=!1;Qi()&&!this.multipartStreamingDisabled&&Co()!==`bun`?(t=!0,e=await s(o)):e=await s(a),(!this.multipartStreamingDisabled||t)&&e.status===422&&(r?.apiUrl??this.apiUrl)!==`https://api.smith.langchain.com`&&(console.warn(`Streaming multipart upload to ${r?.apiUrl??this.apiUrl}/runs/multipart failed. This usually means the host does not support chunked uploads. Retrying with a buffered upload for operation "${n}".`),this.multipartStreamingDisabled=!0,e=await s(a))}catch(r){if(Ss(r))throw r;if(console.warn(`${r.message.trim()}\n\nContext: ${n}`),this.failedTracesDir){let n=await this._createNodeFetchBody(t,i).catch(()=>null);n&&await e._writeTraceToFallbackDir(this.failedTracesDir,n,{"Content-Type":`multipart/form-data; boundary=${i}`},`runs/multipart`,this.failedTracesMaxBytes)}}}async updateRun(e,t,n){M(e),t.inputs&&=await this.processInputs(t.inputs),t.outputs&&=await this.processOutputs(t.outputs),t.extra!=null&&`metadata`in t.extra&&(t.extra={...t.extra,metadata:await this.processMetadata(t.extra.metadata)}),t.events&&=this._filterNewTokenEvents(t.events);let r={...t,id:e};if(!this._filterForSampling([r],!0).length)return;if(this.autoBatchTracing&&r.trace_id!==void 0&&r.dotted_order!==void 0){let e=this._cloneCurrentOTELContext();if(t.end_time!==void 0&&r.parent_run_id===void 0&&this.blockOnRootRunFinalization&&!this.manualFlushMode){await this.processRunOperation({action:`update`,item:r,otelContext:e,apiKey:n?.apiKey,apiUrl:n?.apiUrl}).catch(console.error);return}else this.processRunOperation({action:`update`,item:r,otelContext:e,apiKey:n?.apiKey,apiUrl:n?.apiUrl}).catch(console.error);return}let i={...this._mergedHeaders,"Content-Type":`application/json`};n?.apiKey!==void 0&&(i[`x-api-key`]=n.apiKey),n?.workspaceId!==void 0&&(i[`x-tenant-id`]=n.workspaceId);let a=nc(t,`Serializing payload to update run with id: ${e}`);await this.caller.call(async()=>{let t=await this._fetch(`${n?.apiUrl??this.apiUrl}/runs/${e}`,{method:`PATCH`,headers:i,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:a});return await N(t,`update run`,!0),t})}async readRun(e,{loadChildRuns:t}={loadChildRuns:!1}){M(e);let n=mc(await this._get(`/runs/${e}`));return t&&(n=await this._loadChildRuns(n)),n}async getRunUrl({runId:e,run:t,projectOpts:n}){if(t!==void 0){let e;e=t.session_id?t.session_id:n?.projectName?(await this.readProject({projectName:n?.projectName})).id:n?.projectId?n?.projectId:(await this.readProject({projectName:ko(`PROJECT`)||`default`})).id;let r=await this._getTenantId();return`${this.getHostUrl()}/o/${r}/projects/p/${e}/r/${t.id}?poll=true`}else if(e!==void 0){let t=await this.readRun(e);if(!t.app_path)throw Error(`Run ${e} has no app_path`);return`${this.getHostUrl()}${t.app_path}`}else throw Error(`Must provide either runId or run`)}async _loadChildRuns(e){let t=await vc(this.listRuns({isRoot:!1,projectId:e.session_id,traceId:e.trace_id})),n={},r={};t.sort((e,t)=>(e?.dotted_order??``).localeCompare(t?.dotted_order??``));for(let i of t){if(i.parent_run_id===null||i.parent_run_id===void 0)throw Error(`Child run ${i.id} has no parent`);i.dotted_order?.startsWith(e.dotted_order??``)&&i.id!==e.id&&(i.parent_run_id in n||(n[i.parent_run_id]=[]),n[i.parent_run_id].push(i),r[i.id]=i)}e.child_runs=n[e.id]||[];for(let t in n)t!==e.id&&(r[t].child_runs=n[t]);return e}async*listRuns(e){let{projectId:t,projectName:n,parentRunId:r,traceId:i,referenceExampleId:a,startTime:o,executionOrder:s,isRoot:c,runType:l,error:u,id:d,query:f,filter:p,traceFilter:m,treeFilter:h,limit:g,select:_,order:v}=e,y=[];if(t&&(y=Array.isArray(t)?t:[t]),n){let e=Array.isArray(n)?n:[n],t=await Promise.all(e.map(e=>this.readProject({projectName:e}).then(e=>e.id)));y.push(...t)}let b={session:y.length?y:null,run_type:l,reference_example:a,query:f,filter:p,trace_filter:m,tree_filter:h,execution_order:s,parent_run:r,start_time:o?o.toISOString():null,error:u,id:d,limit:g,trace:i,select:_||`app_path.completion_cost.completion_tokens.dotted_order.end_time.error.events.extra.feedback_stats.first_token_time.id.inputs.name.outputs.parent_run_id.parent_run_ids.prompt_cost.prompt_tokens.reference_example_id.run_type.session_id.start_time.status.tags.total_cost.total_tokens.trace_id`.split(`.`),is_root:c,order:v};b.select.includes(`child_run_ids`)&&na(`Deprecated: 'child_run_ids' in the listRuns select parameter is deprecated and will be removed in a future version.`);let x=0;for await(let e of this._getCursorPaginatedList(`/runs/query`,b)){let t=e.map(mc);if(g){if(x>=g)break;if(t.length+x>g){yield*t.slice(0,g-x);break}x+=t.length,yield*t}else yield*t}}async*listGroupRuns(e){let{projectId:t,projectName:n,groupBy:r,filter:i,startTime:a,endTime:o,limit:s,offset:c}=e,l={session_id:t||(await this.readProject({projectName:n})).id,group_by:r,filter:i,start_time:a?a.toISOString():null,end_time:o?o.toISOString():null,limit:Number(s)||100},u=Number(c)||0,d=`/runs/group`,f=`${this.apiUrl}${d}`;for(;;){let e={...l,offset:u},t=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!==void 0)),n=JSON.stringify(t),{groups:r,total:i}=await(await this.caller.call(async()=>{let e=await this._fetch(f,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await N(e,`Failed to fetch ${d}`),e})).json();if(r.length===0)break;for(let e of r)yield e;if(u+=r.length,u>=i)break}}async*readThread(e){let{threadId:t,projectId:n,projectName:r,isRoot:i=!0,limit:a,filter:o,order:s=`asc`}=e;if(!n&&!r)throw Error(`threadId requires projectId or projectName`);let c=`eq(thread_id, ${JSON.stringify(t)})`,l=o?`and(${c}, ${o})`:c;yield*this.listRuns({projectId:n??void 0,projectName:r??void 0,isRoot:i,limit:a,filter:l,order:s})}async listThreads(e){let{projectId:t,projectName:n,limit:r,offset:i=0,filter:a,startTime:o,isRoot:s=!0}=e;if(!t&&!n)throw Error(`Either projectId or projectName must be provided`);if(t&&n)throw Error(`Provide exactly one of projectId or projectName`);let c=t??(await this.readProject({projectName:n})).id,l=o??new Date(Date.now()-1440*60*1e3),u={session:[c],is_root:s,limit:100,order:`desc`,select:[`id`,`name`,`status`,`start_time`,`end_time`,`thread_id`,`trace_id`,`run_type`,`error`,`tags`,`session_id`,`parent_run_id`,`total_tokens`,`total_cost`,`dotted_order`,`reference_example_id`,`feedback_stats`,`app_path`,`completion_cost`,`completion_tokens`,`prompt_cost`,`prompt_tokens`,`first_token_time`],start_time:l.toISOString()};a!=null&&(u.filter=a);let d=new Map;for await(let e of this._getCursorPaginatedList(`/runs/query`,u))for(let t of e){let e=mc(t),n=e.thread_id;if(n){let t=d.get(n)??[];t.push(e),d.set(n,t)}}let f=[];for(let[e,t]of d.entries()){t.sort((e,t)=>{let n=e,r=t,i=n.start_time??``,a=r.start_time??``;if(i!==a)return i.localeCompare(a);let o=n.dotted_order??``,s=r.dotted_order??``;return o.localeCompare(s)});let n=[...t.map(e=>e.start_time).filter(Boolean)].sort(),r=n.length?n[0]:``,i=n.length?n[n.length-1]:``;f.push({thread_id:e,runs:t,count:t.length,filter:``,total_tokens:0,total_cost:null,min_start_time:r,max_start_time:i,latency_p50:0,latency_p99:0,feedback_stats:null,first_inputs:``,last_outputs:``,last_error:null})}f.sort((e,t)=>{let n=e.max_start_time??``;return(t.max_start_time??``).localeCompare(n)});let p=i>0?f.slice(i):f;return r===void 0?p:p.slice(0,r)}async getRunStats({id:e,trace:t,parentRun:n,runType:r,projectNames:i,projectIds:a,referenceExampleIds:o,startTime:s,endTime:c,error:l,query:u,filter:d,traceFilter:f,treeFilter:p,isRoot:m,dataSourceType:h}){let g=a||[];i&&(g=[...a||[],...await Promise.all(i.map(e=>this.readProject({projectName:e}).then(e=>e.id)))]);let _=Object.fromEntries(Object.entries({id:e,trace:t,parent_run:n,run_type:r,session:g,reference_example:o,start_time:s,end_time:c,error:l,query:u,filter:d,trace_filter:f,tree_filter:p,is_root:m,data_source_type:h}).filter(([e,t])=>t!==void 0)),v=JSON.stringify(_);return await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/runs/stats`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:v});return await N(e,`get run stats`),e})).json()}async shareRun(e,{shareId:t}={}){let n={run_id:e,share_token:t||ti()};M(e);let r=JSON.stringify(n),i=await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:`PUT`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:r});return await N(t,`share run`),t})).json();if(i===null||!(`share_token`in i))throw Error(`Invalid response from server`);return`${this.getHostUrl()}/public/${i.share_token}/r`}async unshareRun(e){M(e),await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`unshare run`,!0),t})}async readRunSharedLink(e){M(e);let t=await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`read run shared link`),t})).json();if(!(t===null||!(`share_token`in t)))return`${this.getHostUrl()}/public/${t.share_token}/r`}async listSharedRuns(e,{runIds:t}={}){let n=new URLSearchParams({share_token:e});if(t!==void 0)for(let e of t)n.append(`id`,e);return M(e),(await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/public/${e}/runs${n}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`list shared runs`),t})).json()).map(mc)}async readDatasetSharedSchema(e,t){if(!e&&!t)throw Error(`Either datasetId or datasetName must be given`);e||=(await this.readDataset({datasetName:t})).id,M(e);let n=await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`read dataset shared schema`),t})).json();return n.url=`${this.getHostUrl()}/public/${n.share_token}/d`,n}async shareDataset(e,t){if(!e&&!t)throw Error(`Either datasetId or datasetName must be given`);e||=(await this.readDataset({datasetName:t})).id;let n={dataset_id:e};M(e);let r=JSON.stringify(n),i=await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:`PUT`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:r});return await N(t,`share dataset`),t})).json();return i.url=`${this.getHostUrl()}/public/${i.share_token}/d`,i}async unshareDataset(e){M(e),await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`unshare dataset`,!0),t})}async readSharedDataset(e){return M(e),await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/public/${e}/datasets`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`read shared dataset`),t})).json()}async listSharedExamples(e,t){let n={};t?.exampleIds&&(n.id=t.exampleIds);let r=new URLSearchParams;Object.entries(n).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>r.append(e,t)):r.append(e,t)});let i=await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/public/${e}/examples?${r.toString()}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`list shared examples`),t}),a=await i.json();if(!i.ok)throw`detail`in a?Error(`Failed to list shared examples.\nStatus: ${i.status}\nMessage: ${Array.isArray(a.detail)?a.detail.join(`
|
|
16
|
+
`):`Unspecified error`}`):Error(`Failed to list shared examples: ${i.status} ${i.statusText}`);return a.map(e=>({...e,_hostUrl:this.getHostUrl()}))}async createProject({projectName:e,description:t=null,metadata:n=null,upsert:r=!1,projectExtra:i=null,referenceDatasetId:a=null}){let o=r?`?upsert=true`:``,s=`${this.apiUrl}/sessions${o}`,c=i||{};n&&(c.metadata=n);let l={name:e,extra:c,description:t};a!==null&&(l.reference_dataset_id=a);let u=JSON.stringify(l);return await(await this.caller.call(async()=>{let e=await this._fetch(s,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await N(e,`create project`),e})).json()}async updateProject(e,{name:t=null,description:n=null,metadata:r=null,projectExtra:i=null,endTime:a=null}){let o=`${this.apiUrl}/sessions/${e}`,s=i;r&&(s={...s||{},metadata:r});let c=JSON.stringify({name:t,extra:s,description:n,end_time:a?new Date(a).toISOString():null});return await(await this.caller.call(async()=>{let e=await this._fetch(o,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await N(e,`update project`),e})).json()}async hasProject({projectId:e,projectName:t}){let n=`/sessions`,r=new URLSearchParams;if(e!==void 0&&t!==void 0)throw Error(`Must provide either projectName or projectId, not both`);if(e!==void 0)M(e),n+=`/${e}`;else if(t!==void 0)r.append(`name`,t);else throw Error(`Must provide projectName or projectId`);let i=await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}${n}?${r}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`has project`),e});try{let e=await i.json();return i.ok?!Array.isArray(e)||e.length>0:!1}catch{return!1}}async readProject({projectId:e,projectName:t,includeStats:n}){let r=`/sessions`,i=new URLSearchParams;if(e!==void 0&&t!==void 0)throw Error(`Must provide either projectName or projectId, not both`);if(e!==void 0)M(e),r+=`/${e}`;else if(t!==void 0)i.append(`name`,t);else throw Error(`Must provide projectName or projectId`);n!==void 0&&i.append(`include_stats`,n.toString());let a=await this._get(r,i),o;if(Array.isArray(a)){if(a.length===0)throw Error(`Project[id=${e}, name=${t}] not found`);o=a[0]}else o=a;return o}async getProjectUrl({projectId:e,projectName:t}){if(e===void 0&&t===void 0)throw Error(`Must provide either projectName or projectId`);let n=await this.readProject({projectId:e,projectName:t}),r=await this._getTenantId();return`${this.getHostUrl()}/o/${r}/projects/p/${n.id}`}async getDatasetUrl({datasetId:e,datasetName:t}){if(e===void 0&&t===void 0)throw Error(`Must provide either datasetName or datasetId`);let n=await this.readDataset({datasetId:e,datasetName:t}),r=await this._getTenantId();return`${this.getHostUrl()}/o/${r}/datasets/${n.id}`}async _getTenantId(){if(this._tenantId!==null)return this._tenantId;let e=new URLSearchParams({limit:`1`});for await(let t of this._getPaginated(`/sessions`,e))return this._tenantId=t[0].tenant_id,t[0].tenant_id;throw Error(`No projects found to resolve tenant.`)}async*listProjects({projectIds:e,name:t,nameContains:n,referenceDatasetId:r,referenceDatasetName:i,includeStats:a,datasetVersion:o,referenceFree:s,metadata:c}={}){let l=new URLSearchParams;if(e!==void 0)for(let t of e)l.append(`id`,t);if(t!==void 0&&l.append(`name`,t),n!==void 0&&l.append(`name_contains`,n),r!==void 0)l.append(`reference_dataset`,r);else if(i!==void 0){let e=await this.readDataset({datasetName:i});l.append(`reference_dataset`,e.id)}a!==void 0&&l.append(`include_stats`,a.toString()),o!==void 0&&l.append(`dataset_version`,o),s!==void 0&&l.append(`reference_free`,s.toString()),c!==void 0&&l.append(`metadata`,JSON.stringify(c));for await(let e of this._getPaginated(`/sessions`,l))yield*e}async deleteProject({projectId:e,projectName:t}){let n;if(e===void 0&&t===void 0)throw Error(`Must provide projectName or projectId`);if(e!==void 0&&t!==void 0)throw Error(`Must provide either projectName or projectId, not both`);n=e===void 0?(await this.readProject({projectName:t})).id:e,M(n),await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/sessions/${n}`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete session ${n} (${t})`,!0),e})}async uploadCsv({csvFile:e,fileName:t,inputKeys:n,outputKeys:r,description:i,dataType:a,name:o}){let s=`${this.apiUrl}/datasets/upload`,c=new FormData,l=new Blob([e],{type:`text/csv`});return c.append(`file`,l,t),n.forEach(e=>{c.append(`input_keys`,e)}),r.forEach(e=>{c.append(`output_keys`,e)}),i&&c.append(`description`,i),a&&c.append(`data_type`,a),o&&c.append(`name`,o),await(await this.caller.call(async()=>{let e=await this._fetch(s,{method:`POST`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await N(e,`upload CSV`),e})).json()}async createDataset(e,{description:t,dataType:n,inputsSchema:r,outputsSchema:i,metadata:a}={}){let o={name:e,description:t,extra:{source:`sdk`,...a?{metadata:a}:{}}};n&&(o.data_type=n),r&&(o.inputs_schema_definition=r),i&&(o.outputs_schema_definition=i);let s=JSON.stringify(o);return await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await N(e,`create dataset`),e})).json()}async readDataset({datasetId:e,datasetName:t}){let n=`/datasets`,r=new URLSearchParams({limit:`1`});if(e&&t)throw Error(`Must provide either datasetName or datasetId, not both`);if(e)M(e),n+=`/${e}`;else if(t)r.append(`name`,t);else throw Error(`Must provide datasetName or datasetId`);let i=await this._get(n,r),a;if(Array.isArray(i)){if(i.length===0)throw Error(`Dataset[id=${e}, name=${t}] not found`);a=i[0]}else a=i;return a}async hasDataset({datasetId:e,datasetName:t}){try{return await this.readDataset({datasetId:e,datasetName:t}),!0}catch(e){if(e instanceof Error&&e.message.toLocaleLowerCase().includes(`not found`))return!1;throw e}}async diffDatasetVersions({datasetId:e,datasetName:t,fromVersion:n,toVersion:r}){let i=e;if(i===void 0&&t===void 0)throw Error(`Must provide either datasetName or datasetId`);if(i!==void 0&&t!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);i===void 0&&(i=(await this.readDataset({datasetName:t})).id);let a=new URLSearchParams({from_version:typeof n==`string`?n:n.toISOString(),to_version:typeof r==`string`?r:r.toISOString()});return await this._get(`/datasets/${i}/versions/diff`,a)}async readDatasetOpenaiFinetuning({datasetId:e,datasetName:t}){if(e===void 0)if(t!==void 0)e=(await this.readDataset({datasetName:t})).id;else throw Error(`Must provide either datasetName or datasetId`);return(await(await this._getResponse(`/datasets/${e}/openai_ft`)).text()).trim().split(`
|
|
17
|
+
`).map(e=>JSON.parse(e))}async*listDatasets({limit:e=100,offset:t=0,datasetIds:n,datasetName:r,datasetNameContains:i,metadata:a}={}){let o=new URLSearchParams({limit:e.toString(),offset:t.toString()});if(n!==void 0)for(let e of n)o.append(`id`,e);r!==void 0&&o.append(`name`,r),i!==void 0&&o.append(`name_contains`,i),a!==void 0&&o.append(`metadata`,JSON.stringify(a));for await(let e of this._getPaginated(`/datasets`,o))yield*e}async updateDataset(e){let{datasetId:t,datasetName:n,...r}=e;if(!t&&!n)throw Error(`Must provide either datasetName or datasetId`);let i=t??(await this.readDataset({datasetName:n})).id;M(i);let a=JSON.stringify(r);return await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets/${i}`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:a});return await N(e,`update dataset`),e})).json()}async updateDatasetTag(e){let{datasetId:t,datasetName:n,asOf:r,tag:i}=e;if(!t&&!n)throw Error(`Must provide either datasetName or datasetId`);let a=t??(await this.readDataset({datasetName:n})).id;M(a);let o=JSON.stringify({as_of:typeof r==`string`?r:r.toISOString(),tag:i});await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets/${a}/tags`,{method:`PUT`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await N(e,`update dataset tags`,!0),e})}async deleteDataset({datasetId:e,datasetName:t}){let n=`/datasets`,r=e;if(e!==void 0&&t!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);if(t!==void 0&&(r=(await this.readDataset({datasetName:t})).id),r!==void 0)M(r),n+=`/${r}`;else throw Error(`Must provide datasetName or datasetId`);await this.caller.call(async()=>{let e=await this._fetch(this.apiUrl+n,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete ${n}`,!0),e})}async createExample(e,t,n){if(Ec(e)&&(t!==void 0||n!==void 0))throw Error(`Cannot provide outputs or options when using ExampleCreate object`);let r=t?n?.datasetId:e.dataset_id,i=t?n?.datasetName:e.dataset_name;if(r===void 0&&i===void 0)throw Error(`Must provide either datasetName or datasetId`);if(r!==void 0&&i!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);r===void 0&&(r=(await this.readDataset({datasetName:i})).id);let a=(t?n?.createdAt:e.created_at)||new Date,o;o=Ec(e)?e:{inputs:e,outputs:t,created_at:a?.toISOString(),id:n?.exampleId,metadata:n?.metadata,split:n?.split,source_run_id:n?.sourceRunId,use_source_run_io:n?.useSourceRunIO,use_source_run_attachments:n?.useSourceRunAttachments,attachments:n?.attachments};let s=await this._uploadExamplesMultipart(r,[o]);return await this.readExample(s.example_ids?.[0]??ti())}async createExamples(e){if(Array.isArray(e)){if(e.length===0)return[];let t=e,n=t[0].dataset_id,r=t[0].dataset_name;if(n===void 0&&r===void 0)throw Error(`Must provide either datasetName or datasetId`);if(n!==void 0&&r!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);n===void 0&&(n=(await this.readDataset({datasetName:r})).id);let i=await this._uploadExamplesMultipart(n,t);return await Promise.all(i.example_ids.map(e=>this.readExample(e)))}let{inputs:t,outputs:n,metadata:r,splits:i,sourceRunIds:a,useSourceRunIOs:o,useSourceRunAttachments:s,attachments:c,exampleIds:l,datasetId:u,datasetName:d}=e;if(t===void 0)throw Error(`Must provide inputs when using legacy parameters`);let f=u,p=d;if(f===void 0&&p===void 0)throw Error(`Must provide either datasetName or datasetId`);if(f!==void 0&&p!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);f===void 0&&(f=(await this.readDataset({datasetName:p})).id);let m=t.map((e,t)=>({dataset_id:f,inputs:e,outputs:n?.[t],metadata:r?.[t],split:i?.[t],id:l?.[t],attachments:c?.[t],source_run_id:a?.[t],use_source_run_io:o?.[t],use_source_run_attachments:s?.[t]})),h=await this._uploadExamplesMultipart(f,m);return await Promise.all(h.example_ids.map(e=>this.readExample(e)))}async createLLMExample(e,t,n){return this.createExample({input:e},{output:t},n)}async createChatExample(e,t,n){let r=e.map(e=>_s(e)?vs(e):e),i=_s(t)?vs(t):t;return this.createExample({input:r},{output:i},n)}async readExample(e){M(e);let t=`/examples/${e}`,{attachment_urls:n,...r}=await this._get(t),i=r;return n&&(i.attachments=Object.entries(n).reduce((e,[t,n])=>(e[t.slice(11)]={presigned_url:n.presigned_url,mime_type:n.mime_type},e),{})),i}async*listExamples({datasetId:e,datasetName:t,exampleIds:n,asOf:r,splits:i,inlineS3Urls:a,metadata:o,limit:s,offset:c,filter:l,includeAttachments:u}={}){let d;if(e!==void 0&&t!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);if(e!==void 0)d=e;else if(t!==void 0)d=(await this.readDataset({datasetName:t})).id;else throw Error(`Must provide a datasetName or datasetId`);let f=new URLSearchParams({dataset:d}),p=r?typeof r==`string`?r:r?.toISOString():void 0;p&&f.append(`as_of`,p);let m=a??!0;if(f.append(`inline_s3_urls`,m.toString()),n!==void 0)for(let e of n)f.append(`id`,e);if(i!==void 0)for(let e of i)f.append(`splits`,e);if(o!==void 0){let e=JSON.stringify(o);f.append(`metadata`,e)}s!==void 0&&f.append(`limit`,s.toString()),c!==void 0&&f.append(`offset`,c.toString()),l!==void 0&&f.append(`filter`,l),u===!0&&[`attachment_urls`,`outputs`,`metadata`].forEach(e=>f.append(`select`,e));let h=0;for await(let e of this._getPaginated(`/examples`,f)){for(let t of e){let{attachment_urls:e,...n}=t,r=n;e&&(r.attachments=Object.entries(e).reduce((e,[t,n])=>(e[t.slice(11)]={presigned_url:n.presigned_url,mime_type:n.mime_type||void 0},e),{})),yield r,h++}if(s!==void 0&&h>=s)break}}async deleteExample(e){M(e);let t=`/examples/${e}`;await this.caller.call(async()=>{let e=await this._fetch(this.apiUrl+t,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete ${t}`,!0),e})}async deleteExamples(e,t){if(e.forEach(e=>M(e)),t?.hardDelete){let t=this._getPlatformEndpointPath(`datasets/examples/delete`);await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}${t}`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},body:JSON.stringify({example_ids:e,hard_delete:!0}),signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(n,`hard delete examples`,!0),n})}else{let t=new URLSearchParams;e.forEach(e=>t.append(`example_ids`,e)),await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/examples?${t.toString()}`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete examples`,!0),e})}}async updateExample(e,t){let n;n=t?e:e.id,M(n);let r;r=t?{id:n,...t}:e;let i;return i=r.dataset_id===void 0?(await this.readExample(n)).dataset_id:r.dataset_id,this._updateExamplesMultipart(i,[r])}async updateExamples(e){let t;return t=e[0].dataset_id===void 0?(await this.readExample(e[0].id)).dataset_id:e[0].dataset_id,this._updateExamplesMultipart(t,e)}async readDatasetVersion({datasetId:e,datasetName:t,asOf:n,tag:r}){let i;if(i=e||(await this.readDataset({datasetName:t})).id,M(i),n&&r||!n&&!r)throw Error(`Exactly one of asOf and tag must be specified.`);let a=new URLSearchParams;return n!==void 0&&a.append(`as_of`,typeof n==`string`?n:n.toISOString()),r!==void 0&&a.append(`tag`,r),await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets/${i}/version?${a.toString()}`,{method:`GET`,headers:{...this._mergedHeaders},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`read dataset version`),e})).json()}async listDatasetSplits({datasetId:e,datasetName:t,asOf:n}){let r;if(e===void 0&&t===void 0)throw Error(`Must provide dataset name or ID`);if(e!==void 0&&t!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);r=e===void 0?(await this.readDataset({datasetName:t})).id:e,M(r);let i=new URLSearchParams,a=n?typeof n==`string`?n:n?.toISOString():void 0;return a&&i.append(`as_of`,a),await this._get(`/datasets/${r}/splits`,i)}async updateDatasetSplits({datasetId:e,datasetName:t,splitName:n,exampleIds:r,remove:i=!1}){let a;if(e===void 0&&t===void 0)throw Error(`Must provide dataset name or ID`);if(e!==void 0&&t!==void 0)throw Error(`Must provide either datasetName or datasetId, not both`);a=e===void 0?(await this.readDataset({datasetName:t})).id:e,M(a);let o={split_name:n,examples:r.map(e=>(M(e),e)),remove:i},s=JSON.stringify(o);await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets/${a}/splits`,{method:`PUT`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await N(e,`update dataset splits`,!0),e})}async createFeedback(e,t,{score:n,value:r,correction:i,comment:a,sourceInfo:o,feedbackSourceType:s=`api`,sourceRunId:c,feedbackId:l,feedbackConfig:u,projectId:d,comparativeExperimentId:f,sessionId:p,startTime:m}){if(!e&&!d)throw Error(`One of runId or projectId must be provided`);if(e&&d)throw Error(`Only one of runId or projectId can be provided`);let h={type:s??`api`,metadata:o??{}};c!==void 0&&h?.metadata!==void 0&&!h.metadata.__run&&(h.metadata.__run={run_id:c}),h?.metadata!==void 0&&h.metadata.__run?.run_id!==void 0&&M(h.metadata.__run.run_id);let g={id:l??fi(),run_id:e,key:t,score:xc(n),value:r,correction:i,comment:a,feedback_source:h,comparative_experiment_id:f,feedbackConfig:u,session_id:p??d,start_time:m},_=JSON.stringify(g),v=`${this.apiUrl}/feedback`;return await this.caller.call(async()=>{let e=await this._fetch(v,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:_});return await N(e,`create feedback`,!0),e}),g}async updateFeedback(e,{score:t,value:n,correction:r,comment:i}){let a={};t!=null&&(a.score=xc(t)),n!=null&&(a.value=n),r!=null&&(a.correction=r),i!=null&&(a.comment=i),M(e);let o=JSON.stringify(a);await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/feedback/${e}`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await N(t,`update feedback`,!0),t})}async readFeedback(e){M(e);let t=`/feedback/${e}`;return await this._get(t)}async deleteFeedback(e){M(e);let t=`/feedback/${e}`;await this.caller.call(async()=>{let e=await this._fetch(this.apiUrl+t,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete ${t}`,!0),e})}async*listFeedback({runIds:e,feedbackKeys:t,feedbackSourceTypes:n}={}){let r=new URLSearchParams;if(e)for(let t of e)M(t),r.append(`run`,t);if(t)for(let e of t)r.append(`key`,e);if(n)for(let e of n)r.append(`source`,e);for await(let e of this._getPaginated(`/feedback`,r))yield*e}async createPresignedFeedbackToken(e,t,{expiration:n,feedbackConfig:r}={}){let i={run_id:e,feedback_key:t,feedback_config:r};n?typeof n==`string`?i.expires_at=n:(n?.hours||n?.minutes||n?.days)&&(i.expires_in=n):i.expires_in={hours:3};let a=JSON.stringify(i);return await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/feedback/tokens`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:a});return await N(e,`create presigned feedback token`),e})).json()}async createComparativeExperiment({name:e,experimentIds:t,referenceDatasetId:n,createdAt:r,description:i,metadata:a,id:o}){if(t.length===0)throw Error(`At least one experiment is required`);if(n||=(await this.readProject({projectId:t[0]})).reference_dataset_id,!n==null)throw Error(`A reference dataset is required`);let s={id:o,name:e,experiment_ids:t,reference_dataset_id:n,description:i,created_at:(r??new Date)?.toISOString(),extra:{}};a&&(s.extra.metadata=a);let c=JSON.stringify(s);return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/datasets/comparative`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await N(e,`create comparative experiment`),e})).json()}async*listPresignedFeedbackTokens(e){M(e);let t=new URLSearchParams({run_id:e});for await(let e of this._getPaginated(`/feedback/tokens`,t))yield*e}_selectEvalResults(e){let t;return t=`results`in e?e.results:Array.isArray(e)?e:[e],t}async _logEvaluationFeedback(e,t,n){let r=this._selectEvalResults(e),i=[];for(let e of r){let r=n||{};e.evaluatorInfo&&(r={...e.evaluatorInfo,...r});let a=null;e.targetRunId?a=e.targetRunId:t&&(a=t.id),i.push(await this.createFeedback(a,e.key,{score:e.score,value:e.value,comment:e.comment,correction:e.correction,sourceInfo:r,sourceRunId:e.sourceRunId,feedbackConfig:e.feedbackConfig,feedbackSourceType:`model`,sessionId:t?.session_id,startTime:t?.start_time}))}return[r,i]}async logEvaluationFeedback(e,t,n){let[r]=await this._logEvaluationFeedback(e,t,n);return r}async createFeedbackConfig(e){let{feedbackKey:t,feedbackConfig:n,isLowerScoreBetter:r=!1}=e,i={feedback_key:t,feedback_config:n,is_lower_score_better:r};return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/feedback-configs`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(i)});return await N(e,`create feedback config`),e})).json()}async*listFeedbackConfigs(e={}){let{feedbackKeys:t,nameContains:n,limit:r}=e,i=new URLSearchParams;t&&t.forEach(e=>{i.append(`key`,e)}),n&&i.append(`name_contains`,n),i.append(`limit`,(r===void 0?100:Math.min(r,100)).toString());let a=0;for await(let e of this._getPaginated(`/feedback-configs`,i))if(yield*e,a+=e.length,r!==void 0&&a>=r)break}async updateFeedbackConfig(e,t={}){let{feedbackConfig:n,isLowerScoreBetter:r}=t,i={feedback_key:e};return n!==void 0&&(i.feedback_config=n),r!==void 0&&(i.is_lower_score_better=r),(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/feedback-configs`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(i)});return await N(e,`update feedback config`),e})).json()}async deleteFeedbackConfig(e){let t=new URLSearchParams({feedback_key:e});await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/feedback-configs?${t}`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete feedback config`,!0),e})}async*listAnnotationQueues(e={}){let{queueIds:t,name:n,nameContains:r,limit:i}=e,a=new URLSearchParams;t&&t.forEach((e,t)=>{M(e,`queueIds[${t}]`),a.append(`ids`,e)}),n&&a.append(`name`,n),r&&a.append(`name_contains`,r),a.append(`limit`,(i===void 0?100:Math.min(i,100)).toString());let o=0;for await(let e of this._getPaginated(`/annotation-queues`,a))if(yield*e,o++,i!==void 0&&o>=i)break}async createAnnotationQueue(e){let{name:t,description:n,queueId:r,rubricInstructions:i,rubricItems:a}=e,o={name:t,description:n,id:r||ti(),rubric_instructions:i,rubric_items:a},s=JSON.stringify(Object.fromEntries(Object.entries(o).filter(([e,t])=>t!==void 0)));return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/annotation-queues`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await N(e,`create annotation queue`),e})).json()}async readAnnotationQueue(e){return(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`read annotation queue`),t})).json()}async updateAnnotationQueue(e,t){let{name:n,description:r,rubricInstructions:i,rubricItems:a}=t,o={};n!==void 0&&(o.name=n),r!==void 0&&(o.description=r),i!==void 0&&(o.rubric_instructions=i),a!==void 0&&(o.rubric_items=a);let s=JSON.stringify(o);await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await N(t,`update annotation queue`,!0),t})}async deleteAnnotationQueue(e){await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}`,{method:`DELETE`,headers:{...this._mergedHeaders,Accept:`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`delete annotation queue`,!0),t})}async addRunsToAnnotationQueue(e,t){let n=JSON.stringify(t.map((e,t)=>M(e,`runIds[${t}]`).toString()));await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}/runs`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await N(t,`add runs to annotation queue`,!0),t})}async getRunFromAnnotationQueue(e,t){let n=`/annotation-queues/${M(e,`queueId`)}/run`;return mc(await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}${n}/${t}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`get run from annotation queue`),e})).json())}async deleteRunFromAnnotationQueue(e,t){await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}/runs/${M(t,`queueRunId`)}`,{method:`DELETE`,headers:{...this._mergedHeaders,Accept:`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(n,`delete run from annotation queue`,!0),n})}async getSizeFromAnnotationQueue(e){return(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/annotation-queues/${M(e,`queueId`)}/size`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`get size from annotation queue`),t})).json()}async _currentTenantIsOwner(e){let t=await this._getSettings();return e==`-`||t.tenant_handle===e}async _ownerConflictError(e,t){let n=await this._getSettings();return Error(`Cannot ${e} for another tenant.\n
|
|
18
|
+
Current tenant: ${n.tenant_handle}\n
|
|
19
|
+
Requested tenant: ${t}`)}async _getLatestCommitHash(e){let t=await(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}/commits/${e}/?limit=1&offset=0`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(t,`get latest commit hash`),t})).json();if(t.commits.length!==0)return t.commits[0].commit_hash}async _likeOrUnlikePrompt(e,t){let[n,r,i]=Ds(e),a=JSON.stringify({like:t});return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/likes/${n}/${r}`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:a});return await N(e,`${t?`like`:`unlike`} prompt`),e})).json()}async _getPromptUrl(e){let[t,n,r]=Ds(e);if(await this._currentTenantIsOwner(t)){let e=await this._getSettings();return r===`latest`?`${this.getHostUrl()}/prompts/${n}?organizationId=${e.id}`:`${this.getHostUrl()}/prompts/${n}/${r.substring(0,8)}?organizationId=${e.id}`}else return r===`latest`?`${this.getHostUrl()}/hub/${t}/${n}`:`${this.getHostUrl()}/hub/${t}/${n}/${r.substring(0,8)}`}async promptExists(e){return!!await this.getPrompt(e)}async likePrompt(e){return this._likeOrUnlikePrompt(e,!0)}async unlikePrompt(e){return this._likeOrUnlikePrompt(e,!1)}async*listCommits(e){let[t,n,r]=Ds(e);for await(let e of this._getPaginated(`/commits/${t}/${n}/`,new URLSearchParams,e=>e.commits))yield*e}async*listPrompts(e){let t=new URLSearchParams;t.append(`sort_field`,e?.sortField??`updated_at`),t.append(`sort_direction`,`desc`),t.append(`is_archived`,(!!e?.isArchived).toString()),e?.isPublic!==void 0&&t.append(`is_public`,e.isPublic.toString()),e?.query&&t.append(`query`,e.query);for await(let e of this._getPaginated(`/repos`,t,e=>e.repos))yield*e}async getPrompt(e){let[t,n,r]=Ds(e),i=await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/repos/${t}/${n}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return e?.status===404?null:(await N(e,`get prompt`),e)}))?.json();return i?.repo?i.repo:null}async createPrompt(e,t){let n=await this._getSettings();if(t?.isPublic&&!n.tenant_handle)throw Error(`Cannot create a public prompt without first
|
|
20
|
+
|
|
21
|
+
creating a LangChain Hub handle.
|
|
22
|
+
You can add a handle by creating a public prompt at:
|
|
23
|
+
|
|
24
|
+
https://smith.langchain.com/prompts`);let[r,i,a]=Ds(e);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError(`create a prompt`,r);let o={repo_handle:i,...t?.description&&{description:t.description},...t?.readme&&{readme:t.readme},...t?.tags&&{tags:t.tags},is_public:!!t?.isPublic},s=JSON.stringify(o),{repo:c}=await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/repos/`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await N(e,`create prompt`),e})).json();return c}async createCommit(e,t,n){if(!await this.promptExists(e))throw Error(`Prompt does not exist, you must create it first.`);let[r,i,a]=Ds(e),o=n?.parentCommitHash===`latest`||!n?.parentCommitHash?await this._getLatestCommitHash(`${r}/${i}`):n?.parentCommitHash,s={manifest:JSON.parse(JSON.stringify(t)),parent_commit:o,...n?.description!==void 0&&{description:n.description}},c=JSON.stringify(s),l=await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/commits/${r}/${i}`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await N(e,`create commit`),e})).json();return this._getPromptUrl(`${r}/${i}${l.commit_hash?`:${l.commit_hash}`:``}`)}async updateExamplesMultipart(e,t=[]){return this._updateExamplesMultipart(e,t)}async _updateExamplesMultipart(e,t=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error(`Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.`);let n=new FormData;for(let e of t){let t=e.id,r=nc({...e.metadata&&{metadata:e.metadata},...e.split&&{split:e.split}},`Serializing body for example with id: ${t}`),i=new Blob([r],{type:`application/json`});if(n.append(t,i),e.inputs){let r=nc(e.inputs,`Serializing inputs for example with id: ${t}`),i=new Blob([r],{type:`application/json`});n.append(`${t}.inputs`,i)}if(e.outputs){let r=nc(e.outputs,`Serializing outputs whle updating example with id: ${t}`),i=new Blob([r],{type:`application/json`});n.append(`${t}.outputs`,i)}if(e.attachments)for(let[r,i]of Object.entries(e.attachments)){let e,a;Array.isArray(i)?[e,a]=i:(e=i.mimeType,a=i.data);let o=new Blob([a],{type:`${e}; length=${a.byteLength}`});n.append(`${t}.attachment.${r}`,o)}if(e.attachments_operations){let r=nc(e.attachments_operations,`Serializing attachments while updating example with id: ${t}`),i=new Blob([r],{type:`application/json`});n.append(`${t}.attachments_operations`,i)}}let r=e??t[0]?.dataset_id;return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${r}/examples`)}`,{method:`PATCH`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await N(e,`update examples`),e})).json()}async uploadExamplesMultipart(e,t=[]){return this._uploadExamplesMultipart(e,t)}async _uploadExamplesMultipart(e,t=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error(`Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.`);let n=new FormData;for(let e of t){let t=(e.id??ti()).toString(),r=nc({created_at:e.created_at,...e.metadata&&{metadata:e.metadata},...e.split&&{split:e.split},...e.source_run_id&&{source_run_id:e.source_run_id},...e.use_source_run_io&&{use_source_run_io:e.use_source_run_io},...e.use_source_run_attachments&&{use_source_run_attachments:e.use_source_run_attachments}},`Serializing body for uploaded example with id: ${t}`),i=new Blob([r],{type:`application/json`});if(n.append(t,i),e.inputs){let r=nc(e.inputs,`Serializing inputs for uploaded example with id: ${t}`),i=new Blob([r],{type:`application/json`});n.append(`${t}.inputs`,i)}if(e.outputs){let r=nc(e.outputs,`Serializing outputs for uploaded example with id: ${t}`),i=new Blob([r],{type:`application/json`});n.append(`${t}.outputs`,i)}if(e.attachments)for(let[r,i]of Object.entries(e.attachments)){let e,a;Array.isArray(i)?[e,a]=i:(e=i.mimeType,a=i.data);let o=new Blob([a],{type:`${e}; length=${a.byteLength}`});n.append(`${t}.attachment.${r}`,o)}}return(await this.caller.call(async()=>{let t=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${e}/examples`)}`,{method:`POST`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await N(t,`upload examples`),t})).json()}async updatePrompt(e,t){if(!await this.promptExists(e))throw Error(`Prompt does not exist, you must create it first.`);let[n,r]=Ds(e);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError(`update a prompt`,n);let i={};if(t?.description!==void 0&&(i.description=t.description),t?.readme!==void 0&&(i.readme=t.readme),t?.tags!==void 0&&(i.tags=t.tags),t?.isPublic!==void 0&&(i.is_public=t.isPublic),t?.isArchived!==void 0&&(i.is_archived=t.isArchived),Object.keys(i).length===0)throw Error(`No valid update options provided`);let a=JSON.stringify(i);return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/repos/${n}/${r}`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:a});return await N(e,`update prompt`),e})).json()}async deletePrompt(e){if(!await this.promptExists(e))throw Error(`Prompt does not exist, you must create it first.`);let[t,n,r]=Ds(e);if(!await this._currentTenantIsOwner(t))throw await this._ownerConflictError(`delete a prompt`,t);return(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/repos/${t}/${n}`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete prompt`),e})).json()}_getPromptCacheKey(e,t){return`${e}${t?`:with_model`:``}`}async _fetchPromptFromApi(e,t){let[n,r,i]=Ds(e),a=await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/commits/${n}/${r}/${i}${t?.includeModel?`?include_model=true`:``}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`pull prompt commit`),e})).json();return{owner:n,repo:r,commit_hash:a.commit_hash,manifest:a.manifest,examples:a.examples,hub_model_config:a.model_config,hub_model_provider:a.model_provider}}async pullPromptCommit(e,t){fc(e,t?.dangerouslyPullPublicPrompt);let n=this._fetchPromptFromApi.bind(this,e,t);if(!t?.skipCache&&this._promptCache){let r=this._getPromptCacheKey(e,t?.includeModel),i=this._promptCache.get(r,n);if(i)return i;let a=await n();return this._promptCache.set(r,a,n),a}return this._fetchPromptFromApi(e,t)}async _pullPrompt(e,t){let n=await this.pullPromptCommit(e,{includeModel:t?.includeModel,skipCache:t?.skipCache,dangerouslyPullPublicPrompt:t?.dangerouslyPullPublicPrompt});return JSON.stringify(n.manifest)}async pushPrompt(e,t){return await this.promptExists(e)?t&&Object.keys(t).some(e=>e!==`object`)&&await this.updatePrompt(e,{description:t?.description,readme:t?.readme,tags:t?.tags,isPublic:t?.isPublic}):await this.createPrompt(e,{description:t?.description,readme:t?.readme,tags:t?.tags,isPublic:t?.isPublic}),t?.object?await this.createCommit(e,t?.object,{parentCommitHash:t?.parentCommitHash,description:t?.commitDescription}):await this._getPromptUrl(e)}async agentExists(e){let[t,n]=Ds(e);return this._repoExists(t,n)}async skillExists(e){let[t,n]=Ds(e);return this._repoExists(t,n)}async pullAgent(e,t){return await this._pullDirectory(e,`agent`,t?.version)}async pullSkill(e,t){return await this._pullDirectory(e,`skill`,t?.version)}async pushAgent(e,t){return this._pushDirectory(e,`agent`,t)}async pushSkill(e,t){return this._pushDirectory(e,`skill`,t)}async deleteAgent(e){return this._deleteDirectory(e)}async deleteSkill(e){return this._deleteDirectory(e)}async*listAgents(e){yield*this._listReposByType(`agent`,e)}async*listSkills(e){yield*this._listReposByType(`skill`,e)}async*_listReposByType(e,t){let n=new URLSearchParams;n.append(`repo_type`,e),n.append(`is_archived`,(!!t?.isArchived).toString()),t?.isPublic!==void 0&&n.append(`is_public`,t.isPublic.toString()),t?.query&&n.append(`query`,t.query);for await(let e of this._getPaginated(`/repos`,n,e=>e.repos))yield*e}async _pullDirectory(e,t,n){let[r,i,a]=Ds(e),o=n??(a===`latest`?void 0:a),s=new URL(`${this.apiUrl}/v1/platform/hub/repos/${r}/${i}/directories`);return s.searchParams.set(`repo_type`,t),o&&s.searchParams.set(`commit`,o),await(await this.caller.call(async()=>{let e=await this._fetch(s.toString(),{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`pull directory`),e})).json()}async _pushDirectory(e,t,n){if(n.parentCommit!==void 0&&(n.parentCommit.length<8||n.parentCommit.length>64))throw Error(`parent_commit must be 8-64 characters`);let[r,i]=Ds(e);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError(`push ${t}`,r);if(await this._repoExists(r,i))(n.description!==void 0||n.readme!==void 0||n.tags!==void 0||n.isPublic!==void 0)&&await this._updateRepoMetadata(r,i,n);else{let e=/^[a-z][a-z0-9-_]*$/;if(!e.test(i))throw Error(`Invalid repo_handle ${JSON.stringify(i)}: must match ${e}`);await this._createRepo(i,t,n)}let a={files:n.files};n.parentCommit&&(a.parent_commit=n.parentCommit);let o=(await(await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${r}/${i}/directories/commits`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(a)});return await N(e,`push ${t}`),e})).json()).commit.commit_hash,s=r;return r===`-`&&(s=(await this._getSettings()).tenant_handle||r),`${this.getHostUrl()}/hub/${s}/${i}:${o.slice(0,8)}`}async _deleteDirectory(e){let[t,n]=Ds(e);if(!await this._currentTenantIsOwner(t))throw await this._ownerConflictError(`delete`,t);await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${t}/${n}/directories`,{method:`DELETE`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(e,`delete directory`),e})}async _repoExists(e,t){try{return await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/repos/${e}/${t}`,{method:`GET`,headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await N(n,`check repo exists`),n}),!0}catch(e){if(Ss(e))return!1;throw e}}async _createRepo(e,t,n){let r={repo_handle:e,repo_type:t,is_public:!!n.isPublic};n.description!==void 0&&(r.description=n.description),n.readme!==void 0&&(r.readme=n.readme),n.tags!==void 0&&(r.tags=n.tags);try{await this.caller.call(async()=>{let e=await this._fetch(`${this.apiUrl}/repos/`,{method:`POST`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(r)});return await N(e,`create ${t}`),e})}catch(e){if(Cs(e))return;throw e}}async _updateRepoMetadata(e,t,n){let r={};n.description!==void 0&&(r.description=n.description),n.readme!==void 0&&(r.readme=n.readme),n.tags!==void 0&&(r.tags=n.tags),n.isPublic!==void 0&&(r.is_public=n.isPublic),Object.keys(r).length!==0&&await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/repos/${e}/${t}`,{method:`PATCH`,headers:{...this._mergedHeaders,"Content-Type":`application/json`},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(r)});return await N(n,`update repo metadata`),n})}async clonePublicDataset(t,n={}){let{sourceApiUrl:r=this.apiUrl,datasetName:i}=n,[a,o]=this.parseTokenOrUrl(t,r),s=new e({apiUrl:a,apiKey:`placeholder`}),c=await s.readSharedDataset(o),l=i||c.name;try{if(await this.hasDataset({datasetId:l})){console.log(`Dataset ${l} already exists in your tenant. Skipping.`);return}}catch{}let u=await s.listSharedExamples(o),d=await this.createDataset(l,{description:c.description,dataType:c.data_type||`kv`,inputsSchema:c.inputs_schema_definition??void 0,outputsSchema:c.outputs_schema_definition??void 0});try{await this.createExamples({inputs:u.map(e=>e.inputs),outputs:u.flatMap(e=>e.outputs?[e.outputs]:[]),datasetId:d.id})}catch(e){throw console.error(`An error occurred while creating dataset ${l}. You should delete it manually.`),e}}parseTokenOrUrl(e,t,n=2,r=`dataset`){try{return M(e),[t,e]}catch{}try{let i=new URL(e).pathname.split(`/`).filter(e=>e!==``);if(i.length>=n)return[t,i[i.length-n]];throw Error(`Invalid public ${r} URL: ${e}`)}catch{throw Error(`Invalid public ${r} URL or token: ${e}`)}}cleanup(){this._promptCache&&this._promptCache.stop()}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();for(await new Promise(e=>setTimeout(e,1));this._pendingDrains.size>0;)await Promise.all([...this._pendingDrains]);await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:e})=>e),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0&&await Ko()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}toString(){let e=[`apiUrl=${JSON.stringify(this.apiUrl)}`];return this.webUrl!==void 0&&e.push(`webUrl=${JSON.stringify(this.webUrl)}`),this.workspaceId!==void 0&&e.push(`workspaceId=${JSON.stringify(this.workspaceId)}`),`[LangSmithClient ${e.join(` `)}]`}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.toString()}};Object.defineProperty(Tc,"_fallbackDirsCreated",{enumerable:!0,configurable:!0,writable:!0,value:new Set});function Ec(e){return`dataset_id`in e||`dataset_name`in e}var Dc=e=>e===void 0?!![`TRACING_V2`,`TRACING`].find(e=>ko(e)===`true`):e,Oc=Symbol.for(`lc:context_variables`),kc=Symbol.for(`langsmith:replica_trace_roots`);function Ac(e,t){if(Oc in e)return e[Oc][t]}function jc(e,t,n){let r=Oc in e?e[Oc]:{};r[t]=n,e[Oc]=r}var Mc=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`;function Nc(e){return ui(Object.keys(e).sort().map(t=>`${t}:${e[t]??``}`).join(`|`),Mc)}function Pc(e){return e.replace(/[-:.]/g,``)}function Fc(e,t=1){let n=t.toFixed(0).slice(0,3).padStart(3,`0`);return`${new Date(e).toISOString().slice(0,-1)}${n}Z`}function Ic(e,t,n=1){let r=Fc(e,n);return{dottedOrder:Pc(r)+t,microsecondPrecisionDatestring:r}}var Lc=new Set([`projectName`,`updates`,`reroot`]);function Rc(e){let t={};for(let n of Object.keys(e))Lc.has(n)&&(t[n]=e[n]);return t}var zc=class e{constructor(e,t,n,r){Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=e,this.tags=t,this.project_name=n,this.replicas=r}static fromHeader(t){let n=t.split(`,`),r={},i=[],a,o;for(let e of n){let[t,n]=e.split(`=`),s=decodeURIComponent(n);t===`langsmith-metadata`?r=JSON.parse(s):t===`langsmith-tags`?i=s.split(`,`):t===`langsmith-project`?a=s:t===`langsmith-replicas`&&(o=JSON.parse(s).map(e=>Array.isArray(e)?e:Rc(e)))}return new e(r,i,a,o)}toHeader(){let e=[];return this.metadata&&Object.keys(this.metadata).length>0&&e.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`),this.tags&&this.tags.length>0&&e.push(`langsmith-tags=${encodeURIComponent(this.tags.join(`,`))}`),this.project_name&&e.push(`langsmith-project=${encodeURIComponent(this.project_name)}`),e.join(`,`)}},Bc=class e{constructor(t){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"distributedParentId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_awaitInputsOnPost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Vc(t)){Object.assign(this,{...t});return}let n=e.getDefaultConfig(),{metadata:r,...i}=t,a=i.client??e.getSharedClient(),o={...r,...i?.extra?.metadata};if(i.extra={...i.extra,metadata:o},`id`in i&&i.id==null&&delete i.id,Object.assign(this,{...n,...i,client:a}),this.execution_order??=1,this.child_execution_order??=1,this.dotted_order||(this._serialized_start_time=Fc(this.start_time,this.execution_order)),this.id||=$a(this._serialized_start_time??this.start_time),this.trace_id||(this.parent_run?this.trace_id=this.parent_run.trace_id??this.id:this.trace_id=this.id),this.replicas=qc(this.replicas),!this.dotted_order){let{dottedOrder:e}=Ic(this.start_time,this.id,this.execution_order);this.parent_run?this.dotted_order=this.parent_run.dotted_order+`.`+e:this.dotted_order=e}}set metadata(e){this.extra={...this.extra,metadata:{...this.extra?.metadata,...e}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){let e=Date.now();return{run_type:`chain`,project_name:ea(),child_runs:[],api_url:Oo(`LANGCHAIN_ENDPOINT`)??`http://localhost:1984`,api_key:Oo(`LANGCHAIN_API_KEY`),caller_options:{},start_time:e,serialized:{},inputs:{},extra:{}}}static getSharedClient(){return e.sharedClient||=new Tc,e.sharedClient}createChild(t){let n=this.child_execution_order+1,r=this.replicas?.map(e=>{let{reroot:t,...n}=e;return n}),i=t.replicas??r,a=new e({...t,parent_run:this,project_name:this.project_name,replicas:i,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:n,child_execution_order:n}),o=this.extra?.metadata??{},s=a.extra?.metadata??{};Object.keys(o).length>0&&(a.extra={...a.extra,metadata:{...o,...s}}),Oc in this&&(a[Oc]=this[Oc]);let c=Symbol.for(`lc:child_config`),l=t.extra?.[c]??this.extra[c];if(Gc(l)){let e={...l},t=Wc(e.callbacks)?e.callbacks.copy?.():void 0;t&&(Object.assign(t,{_parentRunId:a.id}),t.handlers?.find(Hc)?.updateFromRunTree?.(a),e.callbacks=t),a.extra[c]=e}let u=new Set,d=this;for(;d!=null&&!u.has(d.id);)u.add(d.id),d.child_execution_order=Math.max(d.child_execution_order,n),d=d.parent_run;return this.child_runs.push(a),a}async end(e,t,n=Date.now(),r){this.outputs=this.outputs??e,this.error=this.error??t,this.end_time=this.end_time??n,r&&Object.keys(r).length>0&&(this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...r}}:{metadata:r})}_convertToCreate(e,t,n=!0){let r=e.extra??{};if(r?.runtime?.library===void 0&&(r.runtime||={},t))for(let[e,n]of Object.entries(t))r.runtime[e]||(r.runtime[e]=n);let i=e.parent_run?.id??e.parent_run_id,a;return a=n?[]:e.child_runs.map(e=>this._convertToCreate(e,t,n)),{id:e.id,name:e.name,start_time:e._serialized_start_time??e.start_time,end_time:e.end_time,run_type:e.run_type,reference_example_id:e.reference_example_id,extra:r,serialized:e.serialized,error:e.error,inputs:e.inputs,outputs:e.outputs,session_name:e.project_name,child_runs:a,parent_run_id:i,trace_id:e.trace_id,dotted_order:e.dotted_order,tags:e.tags,attachments:e.attachments,events:e.events}}_sliceParentId(e,t){if(t.dotted_order){let n=t.dotted_order.split(`.`),r=null;for(let t=0;t<n.length;t++)if(n[t].slice(-36)===e){r=t;break}if(r!==null){let e=n.slice(r+1);t.dotted_order=e.join(`.`),e.length>0?t.trace_id=e[0].slice(-36):t.trace_id=t.id}}t.parent_run_id===e&&(t.parent_run_id=void 0)}_setReplicaTraceRoot(e,t){let n=Ac(this,kc)??{};n[e]=t,jc(this,kc,n);for(let n of this.child_runs)n._setReplicaTraceRoot(e,t)}_remapForProject(e){let{projectName:t,runtimeEnv:n,excludeChildRuns:r=!0,reroot:i=!1,distributedParentId:a,apiUrl:o,apiKey:s,workspaceId:c}=e,l=this._convertToCreate(this,n,r);if(t===this.project_name)return{...l,session_name:t};if(i){if(a)this._sliceParentId(a,l);else if(l.parent_run_id=void 0,l.dotted_order){let e=l.dotted_order.split(`.`);e.length>0&&(l.dotted_order=e[e.length-1],l.trace_id=l.id)}let e=Nc({projectName:t,apiUrl:o,apiKey:s,workspaceId:c});this._setReplicaTraceRoot(e,l.id)}let u;if(!i&&(u=(Ac(this,kc)??{})[Nc({projectName:t,apiUrl:o,apiKey:s,workspaceId:c})],u&&(l.trace_id=u,l.dotted_order))){let e=l.dotted_order.split(`.`),t=null;for(let n=0;n<e.length;n++)if(e[n].slice(-36)===u){t=n;break}t!==null&&(l.dotted_order=e.slice(t).join(`.`))}let d=l.id,f=ao(d,t),p;p=l.trace_id?ao(l.trace_id,t):f;let m;l.parent_run_id&&(m=ao(l.parent_run_id,t));let h;return l.dotted_order&&(h=l.dotted_order.split(`.`).map(e=>{let n=ao(e.slice(-36),t);return e.slice(0,-36)+n}).join(`.`)),{...l,id:f,trace_id:p,parent_run_id:m,dotted_order:h,session_name:t}}async postRun(e=!0){this._awaitInputsOnPost&&(this.inputs=await this.inputs);try{let t=To();if(this.replicas&&this.replicas.length>0)for(let{projectName:e,apiKey:n,apiUrl:r,workspaceId:i,reroot:a,client:o}of this.replicas){let s=this._remapForProject({projectName:e??this.project_name,runtimeEnv:t,excludeChildRuns:!0,reroot:a,distributedParentId:this.distributedParentId,apiUrl:r,apiKey:n,workspaceId:i});await(o??this.client).createRun(s,{apiKey:n,apiUrl:r,workspaceId:i})}else{let n=this._convertToCreate(this,t,e);await this.client.createRun(n)}if(!e){na(`Posting with excludeChildRuns=false is deprecated and will be removed in a future version.`);for(let e of this.child_runs)await e.postRun(!1)}this.child_runs=[]}catch(e){console.error(`Error in postRun for run ${this.id}:`,e)}}async patchRun(e){if(this.replicas&&this.replicas.length>0)for(let{projectName:t,apiKey:n,apiUrl:r,workspaceId:i,updates:a,reroot:o,client:s}of this.replicas){let c=this._remapForProject({projectName:t??this.project_name,runtimeEnv:void 0,excludeChildRuns:!0,reroot:o,distributedParentId:this.distributedParentId,apiUrl:r,apiKey:n,workspaceId:i}),l={id:c.id,name:c.name,run_type:c.run_type,start_time:c.start_time,outputs:c.outputs,error:c.error,parent_run_id:c.parent_run_id,session_name:c.session_name,reference_example_id:c.reference_example_id,end_time:c.end_time,dotted_order:c.dotted_order,trace_id:c.trace_id,events:c.events,tags:c.tags,extra:c.extra,attachments:this.attachments,...a};e?.excludeInputs||(l.inputs=c.inputs),await(s??this.client).updateRun(c.id,l,{apiKey:n,apiUrl:r,workspaceId:i})}else try{let t={name:this.name,run_type:this.run_type,start_time:this._serialized_start_time??this.start_time,end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};e?.excludeInputs||(t.inputs=this.inputs),await this.client.updateRun(this.id,t)}catch(e){console.error(`Error in patchRun for run ${this.id}`,e)}this.child_runs=[]}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent(e){this.events||=[],typeof e==`string`?this.events.push({name:`event`,time:new Date().toISOString(),message:e}):this.events.push({...e,time:e.time??new Date().toISOString()})}static fromRunnableConfig(t,n){let r=t?.callbacks,i,a,o,s=Dc();if(r){let e=r?.getParentRunId?.()??``,t=r?.handlers?.find(e=>e?.name==`langchain_tracer`);i=t?.getRun?.(e),a=t?.projectName,o=t?.client,s||=!!t}return i?new e({name:i.name,id:i.id,trace_id:i.trace_id,dotted_order:i.dotted_order,client:o,tracingEnabled:s,project_name:a,tags:[...new Set((i?.tags??[]).concat(t?.tags??[]))],extra:{metadata:{...i?.extra?.metadata,...t?.metadata}}}).createChild(n):new e({...n,client:o,tracingEnabled:s,project_name:a})}static fromDottedOrder(e){return this.fromHeaders({"langsmith-trace":e})}static fromHeaders(t,n){let r=`get`in t&&typeof t.get==`function`?{"langsmith-trace":t.get(`langsmith-trace`),baggage:t.get(`baggage`)}:t,i=r[`langsmith-trace`];if(!i||typeof i!=`string`)return;let a=i.trim(),o=a.split(`.`).map(e=>{let[t,n]=e.split(`Z`);return{strTime:t,time:Date.parse(t+`Z`),uuid:n}}),s=o[0].uuid,c={...n,name:n?.name??`parent`,run_type:n?.run_type??`chain`,start_time:n?.start_time??Date.now(),id:o.at(-1)?.uuid,trace_id:s,dotted_order:a};if(r.baggage&&typeof r.baggage==`string`){let e=zc.fromHeader(r.baggage);c.metadata=e.metadata,c.tags=e.tags,c.project_name=e.project_name,c.replicas=e.replicas}let l=new e(c);return l.distributedParentId=l.id,l}toHeaders(e){let t={"langsmith-trace":this.dotted_order,baggage:new zc(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if(e)for(let[n,r]of Object.entries(t))e.set(n,r);return t}};Object.defineProperty(Bc,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function Vc(e){return e!=null&&typeof e.createChild==`function`&&typeof e.postRun==`function`}function Hc(e){return typeof e==`object`&&!!e&&typeof e.name==`string`&&e.name===`langchain_tracer`}function Uc(e){return Array.isArray(e)&&e.some(e=>Hc(e))}function Wc(e){return typeof e==`object`&&!!e&&Array.isArray(e.handlers)}function Gc(e){let t=e?.callbacks;return e!=null&&typeof t==`object`&&(Uc(t?.handlers)||Uc(t))}function Kc(){let e=Oo(`LANGSMITH_RUNS_ENDPOINTS`);if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t)){let e=[];for(let n of t){if(typeof n!=`object`||!n){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof n}`);continue}if(typeof n.api_url!=`string`){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof n.api_url}`);continue}if(typeof n.api_key!=`string`){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof n.api_key}`);continue}e.push({apiUrl:n.api_url.replace(/\/$/,``),apiKey:n.api_key})}return e}else if(typeof t==`object`&&t){Jc(t);let e=[];for(let[n,r]of Object.entries(t)){let t=n.replace(/\/$/,``);if(typeof r==`string`)e.push({apiUrl:t,apiKey:r});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${n}: expected string, got ${typeof r}`);continue}}return e}else return console.warn(`Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof t}`),[]}catch(e){if(Es(e))throw e;return console.warn(`Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey`),[]}}function qc(e){return e?e.map(e=>Array.isArray(e)?{projectName:e[0],updates:e[1]}:e):Kc()}function Jc(e){if(Object.keys(e).length>0&&ko(`ENDPOINT`))throw new Ts}var Yc=h({BaseTracer:()=>el,isBaseTracer:()=>$c}),Xc=e=>{if(e)return e.events=e.events??[],e.child_runs=e.child_runs??[],e};function Zc(e,t){if(e)return new Bc({...e,start_time:e._serialized_start_time??e.start_time,parent_run:Zc(t),child_runs:e.child_runs.map(e=>Zc(e)).filter(e=>e!==void 0),extra:{...e.extra,runtime:Br()},tracingEnabled:!1})}function Qc(e,t){return e&&!Array.isArray(e)&&typeof e==`object`?e:{[t]:e}}function $c(e){return typeof e._addRunToRunMap==`function`}var el=class extends Kr{runMap=new Map;runTreeMap=new Map;usesRunTreeMap=!1;constructor(e){super(...arguments)}copy(){return this}getRunById(e){if(e!==void 0)return this.usesRunTreeMap?Xc(this.runTreeMap.get(e)):this.runMap.get(e)}stringifyError(e){return e instanceof Error?e.message+(e?.stack?`\n\n${e.stack}`:``):typeof e==`string`?e:`${e}`}_addChildRun(e,t){e.child_runs.push(t)}_addRunToRunMap(e){let{dottedOrder:t,microsecondPrecisionDatestring:n}=Ic(new Date(e.start_time).getTime(),e.id,e.execution_order),r={...e},i=this.getRunById(r.parent_run_id);if(r.parent_run_id===void 0?(r.trace_id=r.id,r.dotted_order=t,r._serialized_start_time=n):i?(this._addChildRun(i,r),i.child_execution_order=Math.max(i.child_execution_order,r.child_execution_order),r.trace_id=i.trace_id,i.dotted_order!==void 0&&(r.dotted_order=[i.dotted_order,t].join(`.`),r._serialized_start_time=n)):r.parent_run_id=void 0,this.usesRunTreeMap){let e=Zc(r,i);e!==void 0&&this.runTreeMap.set(r.id,e)}else this.runMap.set(r.id,r);return r}async _endTrace(e){let t=e.parent_run_id!==void 0&&this.getRunById(e.parent_run_id);t?t.child_execution_order=Math.max(t.child_execution_order,e.child_execution_order):await this.persistRun(e),await this.onRunUpdate?.(e),this.usesRunTreeMap?this.runTreeMap.delete(e.id):this.runMap.delete(e.id)}_getExecutionOrder(e){let t=e!==void 0&&this.getRunById(e);return t?t.child_execution_order+1:1}_createRunForLLMStart(e,t,n,r,i,a,o,s){let c=this._getExecutionOrder(r),l=Date.now(),u=o?{...i,metadata:o}:i,d={id:n,name:s??e.id[e.id.length-1],parent_run_id:r,start_time:l,serialized:e,events:[{name:`start`,time:new Date(l).toISOString()}],inputs:{prompts:t},execution_order:c,child_runs:[],child_execution_order:c,run_type:`llm`,extra:u??{},tags:a||[]};return this._addRunToRunMap(d)}async handleLLMStart(e,t,n,r,i,a,o,s){let c=this.getRunById(n)??this._createRunForLLMStart(e,t,n,r,i,a,o,s);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}_createRunForChatModelStart(e,t,n,r,i,a,o,s){let c=this._getExecutionOrder(r),l=Date.now(),u=o?{...i,metadata:o}:i,d={id:n,name:s??e.id[e.id.length-1],parent_run_id:r,start_time:l,serialized:e,events:[{name:`start`,time:new Date(l).toISOString()}],inputs:{messages:t},execution_order:c,child_runs:[],child_execution_order:c,run_type:`llm`,extra:u??{},tags:a||[]};return this._addRunToRunMap(d)}async handleChatModelStart(e,t,n,r,i,a,o,s){let c=this.getRunById(n)??this._createRunForChatModelStart(e,t,n,r,i,a,o,s);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}async handleLLMEnd(e,t,n,r,i){let a=this.getRunById(t);if(!a||a?.run_type!==`llm`)throw Error(`No LLM run to end.`);return a.end_time=Date.now(),a.outputs=e,a.events.push({name:`end`,time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...i},await this.onLLMEnd?.(a),await this._endTrace(a),a}async handleLLMError(e,t,n,r,i){let a=this.getRunById(t);if(!a||a?.run_type!==`llm`)throw Error(`No LLM run to end.`);return a.end_time=Date.now(),a.error=this.stringifyError(e),a.events.push({name:`error`,time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...i},await this.onLLMError?.(a),await this._endTrace(a),a}_createRunForChainStart(e,t,n,r,i,a,o,s,c){let l=this._getExecutionOrder(r),u=Date.now(),d={id:n,name:s??e.id[e.id.length-1],parent_run_id:r,start_time:u,serialized:e,events:[{name:`start`,time:new Date(u).toISOString()}],inputs:t,execution_order:l,child_execution_order:l,run_type:o??`chain`,child_runs:[],extra:a?{...c,metadata:a}:{...c},tags:i||[]};return this._addRunToRunMap(d)}async handleChainStart(e,t,n,r,i,a,o,s){let c=this.getRunById(n)??this._createRunForChainStart(e,t,n,r,i,a,o,s);return await this.onRunCreate?.(c),await this.onChainStart?.(c),c}async handleChainEnd(e,t,n,r,i){let a=this.getRunById(t);if(!a)throw Error(`No chain run to end.`);return a.end_time=Date.now(),a.outputs=Qc(e,`output`),a.events.push({name:`end`,time:new Date(a.end_time).toISOString()}),i?.inputs!==void 0&&(a.inputs=Qc(i.inputs,`input`)),await this.onChainEnd?.(a),await this._endTrace(a),a}async handleChainError(e,t,n,r,i){let a=this.getRunById(t);if(!a)throw Error(`No chain run to end.`);return a.end_time=Date.now(),a.error=this.stringifyError(e),a.events.push({name:`error`,time:new Date(a.end_time).toISOString()}),i?.inputs!==void 0&&(a.inputs=Qc(i.inputs,`input`)),await this.onChainError?.(a),await this._endTrace(a),a}_createRunForToolStart(e,t,n,r,i,a,o){let s=this._getExecutionOrder(r),c=Date.now(),l={id:n,name:o??e.id[e.id.length-1],parent_run_id:r,start_time:c,serialized:e,events:[{name:`start`,time:new Date(c).toISOString()}],inputs:{input:t},execution_order:s,child_execution_order:s,run_type:`tool`,child_runs:[],extra:a?{metadata:a}:{},tags:i||[]};return this._addRunToRunMap(l)}async handleToolStart(e,t,n,r,i,a,o){let s=this.getRunById(n)??this._createRunForToolStart(e,t,n,r,i,a,o);return await this.onRunCreate?.(s),await this.onToolStart?.(s),s}async handleToolEnd(e,t){let n=this.getRunById(t);if(!n||n?.run_type!==`tool`)throw Error(`No tool run to end`);return n.end_time=Date.now(),n.outputs={output:e},n.events.push({name:`end`,time:new Date(n.end_time).toISOString()}),await this.onToolEnd?.(n),await this._endTrace(n),n}async handleToolError(e,t){let n=this.getRunById(t);if(!n||n?.run_type!==`tool`)throw Error(`No tool run to end`);return n.end_time=Date.now(),n.error=this.stringifyError(e),n.events.push({name:`error`,time:new Date(n.end_time).toISOString()}),await this.onToolError?.(n),await this._endTrace(n),n}async handleAgentAction(e,t){let n=this.getRunById(t);if(!n||n?.run_type!==`chain`)return;let r=n;r.actions=r.actions||[],r.actions.push(e),r.events.push({name:`agent_action`,time:new Date().toISOString(),kwargs:{action:e}}),await this.onAgentAction?.(n)}async handleAgentEnd(e,t){let n=this.getRunById(t);!n||n?.run_type!==`chain`||(n.events.push({name:`agent_end`,time:new Date().toISOString(),kwargs:{action:e}}),await this.onAgentEnd?.(n))}_createRunForRetrieverStart(e,t,n,r,i,a,o){let s=this._getExecutionOrder(r),c=Date.now(),l={id:n,name:o??e.id[e.id.length-1],parent_run_id:r,start_time:c,serialized:e,events:[{name:`start`,time:new Date(c).toISOString()}],inputs:{query:t},execution_order:s,child_execution_order:s,run_type:`retriever`,child_runs:[],extra:a?{metadata:a}:{},tags:i||[]};return this._addRunToRunMap(l)}async handleRetrieverStart(e,t,n,r,i,a,o){let s=this.getRunById(n)??this._createRunForRetrieverStart(e,t,n,r,i,a,o);return await this.onRunCreate?.(s),await this.onRetrieverStart?.(s),s}async handleRetrieverEnd(e,t){let n=this.getRunById(t);if(!n||n?.run_type!==`retriever`)throw Error(`No retriever run to end`);return n.end_time=Date.now(),n.outputs={documents:e},n.events.push({name:`end`,time:new Date(n.end_time).toISOString()}),await this.onRetrieverEnd?.(n),await this._endTrace(n),n}async handleRetrieverError(e,t){let n=this.getRunById(t);if(!n||n?.run_type!==`retriever`)throw Error(`No retriever run to end`);return n.end_time=Date.now(),n.error=this.stringifyError(e),n.events.push({name:`error`,time:new Date(n.end_time).toISOString()}),await this.onRetrieverError?.(n),await this._endTrace(n),n}async handleText(e,t){let n=this.getRunById(t);!n||n?.run_type!==`chain`||(n.events.push({name:`text`,time:new Date().toISOString(),kwargs:{text:e}}),await this.onText?.(n))}async handleLLMNewToken(e,t,n,r,i,a){let o=this.getRunById(n);if(!o||o?.run_type!==`llm`)throw Error(`Invalid "runId" provided to "handleLLMNewToken" callback.`);return o.events.push({name:`new_token`,time:new Date().toISOString(),kwargs:{token:e,idx:t,chunk:a?.chunk}}),await this.onLLMNewToken?.(o,e,{chunk:a?.chunk}),o}},tl=h({ConsoleCallbackHandler:()=>cl}),nl={bold:{open:`\x1B[1m`,close:`\x1B[22m`},color:{grey:{open:`\x1B[90m`,close:`\x1B[39m`},green:{open:`\x1B[32m`,close:`\x1B[39m`},cyan:{open:`\x1B[36m`,close:`\x1B[39m`},red:{open:`\x1B[31m`,close:`\x1B[39m`},blue:{open:`\x1B[34m`,close:`\x1B[39m`}}};function rl(e,t){return`${e.open}${t}${e.close}`}function il(e,t){try{return JSON.stringify(e,null,2)}catch{return t}}function al(e){return typeof e==`string`?e.trim():e==null?e:il(e,e.toString())}function ol(e){if(!e.end_time)return``;let t=e.end_time-e.start_time;return t<1e3?`${t}ms`:`${(t/1e3).toFixed(2)}s`}var{color:sl}=nl,cl=class extends el{name=`console_callback_handler`;persistRun(e){return Promise.resolve()}getParents(e){let t=[],n=e;for(;n.parent_run_id;){let e=this.runMap.get(n.parent_run_id);if(e)t.push(e),n=e;else break}return t}getBreadcrumbs(e){let t=[...this.getParents(e).reverse(),e].map((e,t,n)=>{let r=`${e.execution_order}:${e.run_type}:${e.name}`;return t===n.length-1?rl(nl.bold,r):r}).join(` > `);return rl(sl.grey,t)}onChainStart(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.green,`[chain/start]`)} [${t}] Entering Chain run with input: ${il(e.inputs,`[inputs]`)}`)}onChainEnd(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.cyan,`[chain/end]`)} [${t}] [${ol(e)}] Exiting Chain run with output: ${il(e.outputs,`[outputs]`)}`)}onChainError(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.red,`[chain/error]`)} [${t}] [${ol(e)}] Chain run errored with error: ${il(e.error,`[error]`)}`)}onLLMStart(e){let t=this.getBreadcrumbs(e),n=`prompts`in e.inputs?{prompts:e.inputs.prompts.map(e=>e.trim())}:e.inputs;console.log(`${rl(sl.green,`[llm/start]`)} [${t}] Entering LLM run with input: ${il(n,`[inputs]`)}`)}onLLMEnd(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.cyan,`[llm/end]`)} [${t}] [${ol(e)}] Exiting LLM run with output: ${il(e.outputs,`[response]`)}`)}onLLMError(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.red,`[llm/error]`)} [${t}] [${ol(e)}] LLM run errored with error: ${il(e.error,`[error]`)}`)}onToolStart(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.green,`[tool/start]`)} [${t}] Entering Tool run with input: "${al(e.inputs.input)}"`)}onToolEnd(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.cyan,`[tool/end]`)} [${t}] [${ol(e)}] Exiting Tool run with output: "${al(e.outputs?.output)}"`)}onToolError(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.red,`[tool/error]`)} [${t}] [${ol(e)}] Tool run errored with error: ${il(e.error,`[error]`)}`)}onRetrieverStart(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.green,`[retriever/start]`)} [${t}] Entering Retriever run with input: ${il(e.inputs,`[inputs]`)}`)}onRetrieverEnd(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.cyan,`[retriever/end]`)} [${t}] [${ol(e)}] Exiting Retriever run with output: ${il(e.outputs,`[outputs]`)}`)}onRetrieverError(e){let t=this.getBreadcrumbs(e);console.log(`${rl(sl.red,`[retriever/error]`)} [${t}] [${ol(e)}] Retriever run errored with error: ${il(e.error,`[error]`)}`)}onAgentAction(e){let t=e,n=this.getBreadcrumbs(e);console.log(`${rl(sl.blue,`[agent/action]`)} [${n}] Agent selected action: ${il(t.actions[t.actions.length-1],`[action]`)}`)}},ll,ul=()=>(ll===void 0&&(ll=new Tc(Vr(`LANGCHAIN_CALLBACKS_BACKGROUND`)===`false`?{blockOnRootRunFinalization:!0}:{})),ll),dl=class{getStore(){}run(e,t){return t()}},fl=Symbol.for(`ls:tracing_async_local_storage`),pl=new dl,ml=new class{getInstance(){return globalThis[fl]??pl}initializeGlobalInstance(e){globalThis[fl]===void 0&&(globalThis[fl]=e)}};function hl(e=!1){let t=ml.getInstance().getStore();if(!e&&t===void 0)throw Error(`Could not get the current run tree.
|
|
25
|
+
|
|
26
|
+
Please make sure you are calling this method within a traceable function and that tracing is enabled.`);return t}function gl(e){return typeof e==`function`&&`langsmith:traceable`in e}var _l=h({LangChainTracer:()=>bl,OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS:()=>vl}),vl=new Set([`ls_agent_type`]);function yl(e){let t;for(let n of e)for(let e of n)k.isInstance(e.message)&&e.message.usage_metadata!==void 0&&(t=on(t,e.message.usage_metadata));return t}var bl=class e extends el{name=`langchain_tracer`;projectName;exampleId;client;replicas;usesRunTreeMap=!0;tracingMetadata;tracingTags=[];constructor(t={}){super(t),this.fields=t;let{exampleId:n,projectName:r,client:i,replicas:a,metadata:o,tags:s}=t;this.projectName=r??ea(),this.replicas=a,this.exampleId=n,this.client=i??ul(),this.tracingMetadata=o?{...o}:void 0,this.tracingTags=s??[];let c=e.getTraceableRunTree();c&&this.updateFromRunTree(c)}async persistRun(e){}async onRunCreate(e){xl(this,e),e.extra?.lc_defers_inputs||await this.getRunTreeWithTracingConfig(e.id)?.postRun()}async onRunUpdate(e){xl(this,e);let t=this.getRunTreeWithTracingConfig(e.id);e.extra?.lc_defers_inputs?await t?.postRun():await t?.patchRun()}onLLMEnd(e){let t=e.outputs;if(t?.generations){let n=yl(t.generations);if(n!==void 0){e.extra=e.extra??{};let t=e.extra.metadata??{};t.usage_metadata=n,e.extra.metadata=t}}}copyWithTracingConfig({metadata:t,tags:n}){let r;if(t===void 0)r=this.tracingMetadata?{...this.tracingMetadata}:void 0;else if(this.tracingMetadata===void 0)r={...t};else{r={...this.tracingMetadata};for(let[e,n]of Object.entries(t))(!Object.prototype.hasOwnProperty.call(r,e)||vl.has(e))&&(r[e]=n)}let i=n?Array.from(new Set([...this.tracingTags,...n])):[...this.tracingTags],a=new e({...this.fields,metadata:r,tags:i});return a.runMap=this.runMap,a.runTreeMap=this.runTreeMap,a}getRun(e){return this.runTreeMap.get(e)}updateFromRunTree(e){this.runTreeMap.set(e.id,e);let t=e,n=new Set;for(;t.parent_run&&!(n.has(t.id)||(n.add(t.id),!t.parent_run));)t=t.parent_run;n.clear();let r=[t];for(;r.length>0;){let e=r.shift();!e||n.has(e.id)||(n.add(e.id),this.runTreeMap.set(e.id,e),e.child_runs&&r.push(...e.child_runs))}this.client=e.client??this.client,this.replicas=e.replicas??this.replicas,this.projectName=e.project_name??this.projectName,this.exampleId=e.reference_example_id??this.exampleId,this.fields={...this.fields,client:this.client,replicas:this.replicas,projectName:this.projectName,exampleId:this.exampleId}}getRunTreeWithTracingConfig(e){let t=this.runTreeMap.get(e);if(t)return new Bc({...t,client:this.client,project_name:this.projectName,replicas:this.replicas,reference_example_id:this.exampleId,tracingEnabled:!0})}static getTraceableRunTree(){try{return hl(!0)}catch{return}}static[Symbol.hasInstance](e){if(typeof e!=`object`||!e)return!1;let t=e;return`name`in t&&t.name===`langchain_tracer`&&`copyWithTracingConfig`in t&&typeof t.copyWithTracingConfig==`function`&&`getRunTreeWithTracingConfig`in t&&typeof t.getRunTreeWithTracingConfig==`function`}};function xl(e,t){if(e.tracingMetadata){t.extra??={};let n=t.extra.metadata??{},r=!1;for(let[t,i]of Object.entries(e.tracingMetadata))(!Object.prototype.hasOwnProperty.call(n,t)||vl.has(t))&&n[t]!==i&&(n[t]=i,r=!0);r&&(t.extra.metadata=n)}e.tracingTags.length>0&&(t.tags=Array.from(new Set([...t.tags??[],...e.tracingTags])))}var Sl=Symbol.for(`ls:tracing_async_local_storage`),Cl=Symbol.for(`lc:context_variables`),wl=e=>{globalThis[Sl]=e},Tl=()=>globalThis[Sl],El;function Dl(){return new(`default`in ps.default?ps.default.default:ps.default)({autoStart:!0,concurrency:1})}function Ol(){return El===void 0&&(El=Dl()),El}async function kl(e,t){if(t===!0){let t=Tl();t===void 0?await e():await t.run(void 0,async()=>e())}else El=Ol(),El.add(async()=>{let t=Tl();t===void 0?await e():await t.run(void 0,async()=>e())})}async function Al(){let e=ul();await Promise.allSettled([El===void 0?Promise.resolve():El.onIdle(),e.awaitPendingTraceBatches()])}var jl=h({awaitAllCallbacks:()=>Al,consumeCallback:()=>kl}),Ml=e=>e===void 0?!![`LANGSMITH_TRACING_V2`,`LANGCHAIN_TRACING_V2`,`LANGSMITH_TRACING`,`LANGCHAIN_TRACING`].find(e=>Vr(e)===`true`):e;function Nl(e){let t=Tl();if(t!==void 0)return t.getStore()?.[Cl]?.[e]}var Pl=Symbol(`lc:configure_hooks`),Fl=()=>Nl(Pl)||[],Il=h({BaseCallbackManager:()=>Rl,BaseRunManager:()=>zl,CallbackManager:()=>Wl,CallbackManagerForChainRun:()=>Hl,CallbackManagerForLLMRun:()=>Vl,CallbackManagerForRetrieverRun:()=>Bl,CallbackManagerForToolRun:()=>Ul,ensureHandler:()=>Gl,parseCallbackConfigArg:()=>Ll});function Ll(e){return e?Array.isArray(e)||`name`in e?{callbacks:e}:e:{}}var Rl=class{setHandler(e){return this.setHandlers([e])}},zl=class{constructor(e,t,n,r,i,a,o,s){this.runId=e,this.handlers=t,this.inheritableHandlers=n,this.tags=r,this.inheritableTags=i,this.metadata=a,this.inheritableMetadata=o,this._parentRunId=s}get parentRunId(){return this._parentRunId}async handleText(e){await Promise.all(this.handlers.map(t=>kl(async()=>{try{await t.handleText?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleText: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleCustomEvent(e,t,n,r,i){await Promise.all(this.handlers.map(n=>kl(async()=>{try{await n.handleCustomEvent?.(e,t,this.runId,this.tags,this.metadata)}catch(e){if((n.raiseError?console.error:console.warn)(`Error in handler ${n.constructor.name}, handleCustomEvent: ${e}`),n.raiseError)throw e}},n.awaitHandlers)))}},Bl=class extends zl{getChild(e){let t=new Wl(this.runId);return t.setHandlers(this.inheritableHandlers),t.addTags(this.inheritableTags),t.addMetadata(this.inheritableMetadata),e&&t.addTags([e],!1),t}async handleRetrieverEnd(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreRetriever)try{await t.handleRetrieverEnd?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleRetriever`),t.raiseError)throw e}},t.awaitHandlers)))}async handleRetrieverError(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreRetriever)try{await t.handleRetrieverError?.(e,this.runId,this._parentRunId,this.tags)}catch(n){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleRetrieverError: ${n}`),t.raiseError)throw e}},t.awaitHandlers)))}},Vl=class extends zl{async handleLLMNewToken(e,t,n,r,i,a){await Promise.all(this.handlers.map(n=>kl(async()=>{if(!n.ignoreLLM)try{await n.handleLLMNewToken?.(e,t??{prompt:0,completion:0},this.runId,this._parentRunId,this.tags,a)}catch(e){if((n.raiseError?console.error:console.warn)(`Error in handler ${n.constructor.name}, handleLLMNewToken: ${e}`),n.raiseError)throw e}},n.awaitHandlers)))}async handleChatModelStreamEvent(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreLLM)try{await t.handleChatModelStreamEvent?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleChatModelStreamEvent: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleLLMError(e,t,n,r,i){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreLLM)try{await t.handleLLMError?.(e,this.runId,this._parentRunId,this.tags,i)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleLLMError: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleLLMEnd(e,t,n,r,i){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreLLM)try{await t.handleLLMEnd?.(e,this.runId,this._parentRunId,this.tags,i)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleLLMEnd: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}},Hl=class extends zl{getChild(e){let t=new Wl(this.runId);return t.setHandlers(this.inheritableHandlers),t.addTags(this.inheritableTags),t.addMetadata(this.inheritableMetadata),e&&t.addTags([e],!1),t}async handleChainError(e,t,n,r,i){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreChain)try{await t.handleChainError?.(e,this.runId,this._parentRunId,this.tags,i)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleChainError: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleChainEnd(e,t,n,r,i){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreChain)try{await t.handleChainEnd?.(e,this.runId,this._parentRunId,this.tags,i)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleChainEnd: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleAgentAction(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreAgent)try{await t.handleAgentAction?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleAgentAction: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleAgentEnd(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreAgent)try{await t.handleAgentEnd?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleAgentEnd: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}},Ul=class extends zl{getChild(e){let t=new Wl(this.runId);return t.setHandlers(this.inheritableHandlers),t.addTags(this.inheritableTags),t.addMetadata(this.inheritableMetadata),e&&t.addTags([e],!1),t}async handleToolError(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreAgent)try{await t.handleToolError?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleToolError: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}async handleToolEvent(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreAgent)try{await t.handleToolEvent?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if(t.raiseError)throw e}},t.awaitHandlers)))}async handleToolEnd(e){await Promise.all(this.handlers.map(t=>kl(async()=>{if(!t.ignoreAgent)try{await t.handleToolEnd?.(e,this.runId,this._parentRunId,this.tags)}catch(e){if((t.raiseError?console.error:console.warn)(`Error in handler ${t.constructor.name}, handleToolEnd: ${e}`),t.raiseError)throw e}},t.awaitHandlers)))}},Wl=class e extends Rl{handlers=[];inheritableHandlers=[];tags=[];inheritableTags=[];metadata={};inheritableMetadata={};name=`callback_manager`;_parentRunId;constructor(e,t){super(),this.handlers=t?.handlers??this.handlers,this.inheritableHandlers=t?.inheritableHandlers??this.inheritableHandlers,this.tags=t?.tags??this.tags,this.inheritableTags=t?.inheritableTags??this.inheritableTags,this.metadata=t?.metadata??this.metadata,this.inheritableMetadata=t?.inheritableMetadata??this.inheritableMetadata,this._parentRunId=e}getParentRunId(){return this._parentRunId}async handleLLMStart(e,t,n=void 0,r=void 0,i=void 0,a=void 0,o=void 0,s=void 0){return Promise.all(t.map(async(t,r)=>{let a=r===0&&n?n:kr();return await Promise.all(this.handlers.map(n=>{if(!n.ignoreLLM)return $c(n)&&n._createRunForLLMStart(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s),kl(async()=>{try{await n.handleLLMStart?.(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s)}catch(e){if((n.raiseError?console.error:console.warn)(`Error in handler ${n.constructor.name}, handleLLMStart: ${e}`),n.raiseError)throw e}},n.awaitHandlers)})),new Vl(a,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}))}async handleChatModelStart(e,t,n=void 0,r=void 0,i=void 0,a=void 0,o=void 0,s=void 0){return Promise.all(t.map(async(t,r)=>{let a=r===0&&n?n:kr();return await Promise.all(this.handlers.map(n=>{if(!n.ignoreLLM)return $c(n)&&n._createRunForChatModelStart(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s),kl(async()=>{try{if(n.handleChatModelStart)await n.handleChatModelStart?.(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s);else if(n.handleLLMStart){let r=Fn(t);await n.handleLLMStart?.(e,[r],a,this._parentRunId,i,this.tags,this.metadata,s)}}catch(e){if((n.raiseError?console.error:console.warn)(`Error in handler ${n.constructor.name}, handleLLMStart: ${e}`),n.raiseError)throw e}},n.awaitHandlers)})),new Vl(a,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}))}async handleChainStart(e,t,n=kr(),r=void 0,i=void 0,a=void 0,o=void 0,s=void 0,c=void 0){return await Promise.all(this.handlers.map(i=>{if(!i.ignoreChain)return $c(i)&&i._createRunForChainStart(e,t,n,this._parentRunId,this.tags,this.metadata,r,o,c),kl(async()=>{try{await i.handleChainStart?.(e,t,n,this._parentRunId,this.tags,this.metadata,r,o,c)}catch(e){if((i.raiseError?console.error:console.warn)(`Error in handler ${i.constructor.name}, handleChainStart: ${e}`),i.raiseError)throw e}},i.awaitHandlers)})),new Hl(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleToolStart(e,t,n=kr(),r=void 0,i=void 0,a=void 0,o=void 0,s=void 0){return await Promise.all(this.handlers.map(r=>{if(!r.ignoreAgent)return $c(r)&&r._createRunForToolStart(e,t,n,this._parentRunId,this.tags,this.metadata,o),kl(async()=>{try{await r.handleToolStart?.(e,t,n,this._parentRunId,this.tags,this.metadata,o,s)}catch(e){if((r.raiseError?console.error:console.warn)(`Error in handler ${r.constructor.name}, handleToolStart: ${e}`),r.raiseError)throw e}},r.awaitHandlers)})),new Ul(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleRetrieverStart(e,t,n=kr(),r=void 0,i=void 0,a=void 0,o=void 0){return await Promise.all(this.handlers.map(r=>{if(!r.ignoreRetriever)return $c(r)&&r._createRunForRetrieverStart(e,t,n,this._parentRunId,this.tags,this.metadata,o),kl(async()=>{try{await r.handleRetrieverStart?.(e,t,n,this._parentRunId,this.tags,this.metadata,o)}catch(e){if((r.raiseError?console.error:console.warn)(`Error in handler ${r.constructor.name}, handleRetrieverStart: ${e}`),r.raiseError)throw e}},r.awaitHandlers)})),new Bl(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleCustomEvent(e,t,n,r,i){await Promise.all(this.handlers.map(r=>kl(async()=>{if(!r.ignoreCustomEvent)try{await r.handleCustomEvent?.(e,t,n,this.tags,this.metadata)}catch(e){if((r.raiseError?console.error:console.warn)(`Error in handler ${r.constructor.name}, handleCustomEvent: ${e}`),r.raiseError)throw e}},r.awaitHandlers)))}addHandler(e,t=!0){this.handlers.push(e),t&&this.inheritableHandlers.push(e)}removeHandler(e){this.handlers=this.handlers.filter(t=>t!==e),this.inheritableHandlers=this.inheritableHandlers.filter(t=>t!==e)}setHandlers(e,t=!0){this.handlers=[],this.inheritableHandlers=[];for(let n of e)this.addHandler(n,t)}addTags(e,t=!0){this.removeTags(e),this.tags.push(...e),t&&this.inheritableTags.push(...e)}removeTags(e){this.tags=this.tags.filter(t=>!e.includes(t)),this.inheritableTags=this.inheritableTags.filter(t=>!e.includes(t))}addMetadata(e,t=!0){this.metadata={...this.metadata,...e},t&&(this.inheritableMetadata={...this.inheritableMetadata,...e})}removeMetadata(e){for(let t of Object.keys(e))delete this.metadata[t],delete this.inheritableMetadata[t]}copy(t=[],n=!0){let r=new e(this._parentRunId);for(let e of this.handlers){let t=this.inheritableHandlers.includes(e);r.addHandler(e,t)}for(let e of this.tags){let t=this.inheritableTags.includes(e);r.addTags([e],t)}for(let e of Object.keys(this.metadata)){let t=Object.keys(this.inheritableMetadata).includes(e);r.addMetadata({[e]:this.metadata[e]},t)}for(let e of t)r.handlers.filter(e=>e.name===`console_callback_handler`).some(t=>t.name===e.name)||r.addHandler(e,n);return r}static fromHandlers(e){class t extends Kr{name=kr();constructor(){super(),Object.assign(this,e)}}let n=new this;return n.addHandler(new t),n}static configure(e,t,n,r,i,a,o){return this._configureSync(e,t,n,r,i,a,o)}static _configureSync(t,n,r,i,a,o,s){let c;(t||n)&&(Array.isArray(t)||!t?(c=new e,c.setHandlers(t?.map(Gl)??[],!0)):c=t,c=c.copy(Array.isArray(n)?n.map(Gl):n?.handlers,!1));let l=Vr(`LANGCHAIN_VERBOSE`)===`true`||s?.verbose,u=bl.getTraceableRunTree(),d=u?.tracingEnabled??Ml();if(u?.tracingEnabled===!1&&c){let e=c.handlers.filter(e=>e.name===`langchain_tracer`);for(let t of e)c.removeHandler(t)}let f=d||(Vr(`LANGCHAIN_TRACING`)??!1);if(l||f){if(c||=new e,l&&!c.handlers.some(e=>e.name===cl.prototype.name)){let e=new cl;c.addHandler(e,!0)}if(f&&!c.handlers.some(e=>e.name===`langchain_tracer`)&&d){let e=new bl;c.addHandler(e,!0)}d&&u&&c._parentRunId===void 0&&(c._parentRunId=u.id,c.handlers.find(e=>e.name===`langchain_tracer`)?.updateFromRunTree(u))}for(let{contextVar:t,inheritable:n=!0,handlerClass:r,envVar:i}of Fl()){let a=i&&Vr(i)===`true`&&r,o,s=t===void 0?void 0:Nl(t);s&&qr(s)?o=s:a&&(o=new r({})),o!==void 0&&(c||=new e,c.handlers.some(e=>e.name===o.name)||c.addHandler(o,n))}(r||i)&&c&&(c.addTags(r??[]),c.addTags(i??[],!1)),(a||o)&&c&&(c.addMetadata(a??{}),c.addMetadata(o??{},!1));let p=s?.tracerInheritableMetadata,m=s?.tracerInheritableTags;return c&&(p||m)&&(c.handlers=c.handlers.map(e=>e instanceof bl?e.copyWithTracingConfig({metadata:p,tags:m}):e),c.inheritableHandlers=c.inheritableHandlers.map(e=>e instanceof bl?e.copyWithTracingConfig({metadata:p,tags:m}):e)),c}};function Gl(e){return`name`in e?e:Kr.fromMethods(e)}var Kl=class{getStore(){}run(e,t){return t()}enterWith(e){}},ql=new Kl,Jl=Symbol.for(`lc:child_config`),Yl=new class{getInstance(){return Tl()??ql}getRunnableConfig(){return this.getInstance().getStore()?.extra?.[Jl]}runWithConfig(e,t,n){let r=Wl._configureSync(e?.callbacks,void 0,e?.tags,void 0,e?.metadata),i=this.getInstance(),a=i.getStore(),o=r?.getParentRunId(),s=r?.handlers?.find(e=>e?.name===`langchain_tracer`),c;return s&&o?c=s.getRunTreeWithTracingConfig(o):n||(c=new Bc({name:`<runnable_lambda>`,tracingEnabled:!1})),c&&(c.extra={...c.extra,[Jl]:e}),a!==void 0&&a[Cl]!==void 0&&(c===void 0&&(c={}),c[Cl]=a[Cl]),i.run(c,t)}initializeGlobalInstance(e){Tl()===void 0&&wl(e)}},Xl=h({AsyncLocalStorageProviderSingleton:()=>Yl,MockAsyncLocalStorage:()=>Kl,_CONTEXT_VARIABLES_KEY:()=>Cl}),Zl=new Set([`api_key`]),Ql=new Set([`string`,`number`,`boolean`]);function $l(e){let t=e.configurable??{},n=e.metadata??{},r={};for(let[e,i]of Object.entries(t))!e.startsWith(`__`)&&!Object.prototype.hasOwnProperty.call(n,e)&&!Zl.has(e)&&Ql.has(typeof i)&&(r[e]=i);return Object.keys(r).length>0?r:void 0}async function eu(e){return Wl._configureSync(e?.callbacks,void 0,e?.tags,void 0,e?.metadata,void 0,{tracerInheritableMetadata:e?$l(e):void 0})}function tu(...e){let t={};for(let n of e.filter(e=>!!e))for(let e of Object.keys(n))if(e===`metadata`)t[e]={...t[e],...n[e]};else if(e===`tags`){let r=t[e]??[];t[e]=[...new Set(r.concat(n[e]??[]))]}else if(e===`configurable`)t[e]={...t[e],...n[e]};else if(e===`timeout`)t.timeout===void 0?t.timeout=n.timeout:n.timeout!==void 0&&(t.timeout=Math.min(t.timeout,n.timeout));else if(e===`signal`)t.signal===void 0?t.signal=n.signal:n.signal!==void 0&&(`any`in AbortSignal?t.signal=AbortSignal.any([t.signal,n.signal]):t.signal=n.signal);else if(e===`callbacks`){let e=t.callbacks,r=n.callbacks;if(Array.isArray(r))if(!e)t.callbacks=r;else if(Array.isArray(e))t.callbacks=e.concat(r);else{let n=e.copy();for(let e of r)n.addHandler(Gl(e),!0);t.callbacks=n}else if(r)if(!e)t.callbacks=r;else if(Array.isArray(e)){let n=r.copy();for(let t of e)n.addHandler(Gl(t),!0);t.callbacks=n}else t.callbacks=new Wl(r._parentRunId,{handlers:e.handlers.concat(r.handlers),inheritableHandlers:e.inheritableHandlers.concat(r.inheritableHandlers),tags:Array.from(new Set(e.tags.concat(r.tags))),inheritableTags:Array.from(new Set(e.inheritableTags.concat(r.inheritableTags))),metadata:{...e.metadata,...r.metadata}})}else{let r=e;t[r]=n[r]??t[r]}return t}function nu(e){let t=Yl.getRunnableConfig(),n={tags:[],metadata:{},recursionLimit:25,runId:void 0};if(t){let{runId:e,runName:r,...i}=t;n=Object.entries(i).reduce((e,[t,n])=>(n!==void 0&&(e[t]=n),e),n)}if(e&&(n=Object.entries(e).reduce((e,[t,n])=>(n!==void 0&&(e[t]=n),e),n)),n?.configurable&&typeof n.configurable.model==`string`&&n.metadata?.model===void 0&&(n.metadata||={},n.metadata.model=n.configurable.model),n.timeout!==void 0){if(n.timeout<=0)throw Error(`Timeout must be a positive number`);let e=n.timeout,t=AbortSignal.timeout(e);n.metadata||={},n.metadata.timeoutMs===void 0&&(n.metadata.timeoutMs=e),n.signal===void 0?n.signal=t:`any`in AbortSignal&&(n.signal=AbortSignal.any([n.signal,t])),delete n.timeout}return n}function ru(e={},{callbacks:t,maxConcurrency:n,recursionLimit:r,runName:i,configurable:a,runId:o}={}){let s=nu(e);return t!==void 0&&(delete s.runName,s.callbacks=t),r!==void 0&&(s.recursionLimit=r),n!==void 0&&(s.maxConcurrency=n),i!==void 0&&(s.runName=i),a!==void 0&&(s.configurable={...s.configurable,...a}),o!==void 0&&delete s.runId,s}function iu(e){if(e)return{configurable:e.configurable,recursionLimit:e.recursionLimit,callbacks:e.callbacks,tags:e.tags,metadata:e.metadata,maxConcurrency:e.maxConcurrency,timeout:e.timeout,signal:e.signal,store:e.store}}async function au(e,t){if(t===void 0)return e;let n;return Promise.race([e.catch(e=>{if(!t?.aborted)throw e}),new Promise((e,r)=>{n=()=>{r(ou(t))},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&r(ou(t))})]).finally(()=>t.removeEventListener(`abort`,n))}function ou(e){return e?.reason instanceof Error?e.reason:typeof e?.reason==`string`?Error(e.reason):Error(`Aborted`)}var su=h({AsyncGeneratorWithSetup:()=>du,IterableReadableStream:()=>cu,atee:()=>lu,concat:()=>uu,pipeGeneratorWithSetup:()=>fu}),cu=class e extends ReadableStream{reader;ensureReader(){this.reader||=this.getReader()}async next(){this.ensureReader();try{let e=await this.reader.read();return e.done?(this.reader.releaseLock(),{done:!0,value:void 0}):{done:!1,value:e.value}}catch(e){throw this.reader.releaseLock(),e}}async return(){if(this.ensureReader(),this.locked){let e=this.reader.cancel();this.reader.releaseLock(),await e}return{done:!0,value:void 0}}async throw(e){if(this.ensureReader(),this.locked){let e=this.reader.cancel();this.reader.releaseLock(),await e}throw e}[Symbol.asyncIterator](){return this}async[Symbol.asyncDispose](){await this.return()}static fromReadableStream(t){let n=t.getReader();return new e({start(e){return t();function t(){return n.read().then(({done:n,value:r})=>{if(n){e.close();return}return e.enqueue(r),t()})}},cancel(){n.releaseLock()}})}static fromAsyncGenerator(t){return new e({async pull(e){let{value:n,done:r}=await t.next();r&&e.close(),e.enqueue(n)},async cancel(e){await t.return(e)}})}};function lu(e,t=2){let n=Array.from({length:t},()=>[]);return n.map(async function*(t){for(;;)if(t.length===0){let t=await e.next();for(let e of n)e.push(t)}else if(t[0].done)return;else yield t.shift().value})}function uu(e,t){if(Array.isArray(e)&&Array.isArray(t))return e.concat(t);if(typeof e==`string`&&typeof t==`string`||typeof e==`number`&&typeof t==`number`)return e+t;if(`concat`in e&&typeof e.concat==`function`)return e.concat(t);if(typeof e==`object`&&typeof t==`object`){let n={...e};for(let[e,r]of Object.entries(t))e in n&&!Array.isArray(n[e])?n[e]=uu(n[e],r):n[e]=r;return n}else throw Error(`Cannot concat ${typeof e} and ${typeof t}`)}var du=class{generator;setup;config;signal;firstResult;firstResultUsed=!1;constructor(e){this.generator=e.generator,this.config=e.config,this.signal=e.signal??this.config?.signal,this.setup=new Promise((t,n)=>{Yl.runWithConfig(iu(e.config),async()=>{this.firstResult=this.signal?au(e.generator.next(),this.signal):e.generator.next(),e.startSetup?this.firstResult.then(e.startSetup).then(t,n):this.firstResult.then(e=>t(void 0),n)},!0)})}async next(...e){return this.signal?.throwIfAborted(),this.firstResultUsed?Yl.runWithConfig(iu(this.config),this.signal?async()=>au(this.generator.next(...e),this.signal):async()=>this.generator.next(...e),!0):(this.firstResultUsed=!0,this.firstResult)}async return(e){return this.generator.return(e)}async throw(e){return this.generator.throw(e)}[Symbol.asyncIterator](){return this}async[Symbol.asyncDispose](){await this.return()}};async function fu(e,t,n,r,...i){let a=new du({generator:t,startSetup:n,signal:r}),o=await a.setup;return{output:e(a,o,...i),setup:o}}var pu=Object.prototype.hasOwnProperty;function mu(e,t){return pu.call(e,t)}function hu(e){if(Array.isArray(e)){let t=Array(e.length);for(let e=0;e<t.length;e++)t[e]=``+e;return t}if(Object.keys)return Object.keys(e);let t=[];for(let n in e)mu(e,n)&&t.push(n);return t}function gu(e){switch(typeof e){case`object`:return JSON.parse(JSON.stringify(e));case`undefined`:return null;default:return e}}function _u(e){let t=0,n=e.length,r;for(;t<n;){if(r=e.charCodeAt(t),r>=48&&r<=57){t++;continue}return!1}return!0}function vu(e){return e.indexOf(`/`)===-1&&e.indexOf(`~`)===-1?e:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function yu(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function bu(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(bu(e[t]))return!0}else if(typeof e==`object`){let n=hu(e),r=n.length;for(var t=0;t<r;t++)if(bu(e[n[t]]))return!0}}return!1}function xu(e,t){let n=[e];for(let e in t){let r=typeof t[e]==`object`?JSON.stringify(t[e],null,2):t[e];r!==void 0&&n.push(`${e}: ${r}`)}return n.join(`
|
|
27
|
+
`)}var Su=class extends Error{constructor(e,t,n,r,i){super(xu(e,{name:t,index:n,operation:r,tree:i})),this.name=t,this.index=n,this.operation=r,this.tree=i,Object.setPrototypeOf(this,new.target.prototype),this.message=xu(e,{name:t,index:n,operation:r,tree:i})}},Cu=h({JsonPatchError:()=>wu,_areEquals:()=>Pu,applyOperation:()=>ku,applyPatch:()=>Au,applyReducer:()=>ju,deepClone:()=>Tu,getValueByPointer:()=>Ou,validate:()=>Nu,validator:()=>Mu}),wu=Su,Tu=gu,Eu={add:function(e,t,n){if(t===`__proto__`||t===`constructor`)throw TypeError("JSON-Patch: modifying `__proto__` or `constructor` prop is banned for security reasons");return e[t]=this.value,{newDocument:n}},remove:function(e,t,n){if(t===`__proto__`||t===`constructor`)throw TypeError("JSON-Patch: modifying `__proto__` or `constructor` prop is banned for security reasons");var r=e[t];return delete e[t],{newDocument:n,removed:r}},replace:function(e,t,n){if(t===`__proto__`||t===`constructor`)throw TypeError("JSON-Patch: modifying `__proto__` or `constructor` prop is banned for security reasons");var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:function(e,t,n){let r=Ou(n,this.path);r&&=gu(r);let i=ku(n,{op:`remove`,path:this.from}).removed;return ku(n,{op:`add`,path:this.path,value:i}),{newDocument:n,removed:r}},copy:function(e,t,n){let r=Ou(n,this.from);return ku(n,{op:`add`,path:this.path,value:gu(r)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:Pu(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},Du={add:function(e,t,n){return _u(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:n,index:t}},remove:function(e,t,n){return{newDocument:n,removed:e.splice(t,1)[0]}},replace:function(e,t,n){var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:Eu.move,copy:Eu.copy,test:Eu.test,_get:Eu._get};function Ou(e,t){if(t==``)return e;var n={op:`_get`,path:t};return ku(e,n),n.value}function ku(e,t,n=!1,r=!0,i=!0,a=0){if(n&&(typeof n==`function`?n(t,0,e,t.path):Mu(t,0)),t.path===``){let r={newDocument:e};if(t.op===`add`)return r.newDocument=t.value,r;if(t.op===`replace`)return r.newDocument=t.value,r.removed=e,r;if(t.op===`move`||t.op===`copy`)return r.newDocument=Ou(e,t.from),t.op===`move`&&(r.removed=e),r;if(t.op===`test`){if(r.test=Pu(e,t.value),r.test===!1)throw new wu(`Test operation failed`,`TEST_OPERATION_FAILED`,a,t,e);return r.newDocument=e,r}else if(t.op===`remove`)return r.removed=e,r.newDocument=null,r;else if(t.op===`_get`)return t.value=e,r;else if(n)throw new wu("Operation `op` property is not one of operations defined in RFC-6902",`OPERATION_OP_INVALID`,a,t,e);else return r}else{r||(e=gu(e));let o=(t.path||``).split(`/`),s=e,c=1,l=o.length,u,d,f;for(f=typeof n==`function`?n:Mu;;){if(d=o[c],d&&d.indexOf(`~`)!=-1&&(d=yu(d)),i&&(d==`__proto__`||d==`prototype`&&c>0&&o[c-1]==`constructor`))throw TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(n&&u===void 0&&(s[d]===void 0?u=o.slice(0,c).join(`/`):c==l-1&&(u=t.path),u!==void 0&&f(t,0,e,u)),c++,Array.isArray(s)){if(d===`-`)d=s.length;else if(n&&!_u(d))throw new wu(`Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index`,`OPERATION_PATH_ILLEGAL_ARRAY_INDEX`,a,t,e);else _u(d)&&(d=~~d);if(c>=l){if(n&&t.op===`add`&&d>s.length)throw new wu(`The specified index MUST NOT be greater than the number of elements in the array`,`OPERATION_VALUE_OUT_OF_BOUNDS`,a,t,e);let r=Du[t.op].call(t,s,d,e);if(r.test===!1)throw new wu(`Test operation failed`,`TEST_OPERATION_FAILED`,a,t,e);return r}}else if(c>=l){let n=Eu[t.op].call(t,s,d,e);if(n.test===!1)throw new wu(`Test operation failed`,`TEST_OPERATION_FAILED`,a,t,e);return n}if(s=s[d],n&&c<l&&(!s||typeof s!=`object`))throw new wu(`Cannot perform operation at the desired path`,`OPERATION_PATH_UNRESOLVABLE`,a,t,e)}}}function Au(e,t,n,r=!0,i=!0){if(n&&!Array.isArray(t))throw new wu(`Patch sequence must be an array`,`SEQUENCE_NOT_AN_ARRAY`);r||(e=gu(e));let a=Array(t.length);for(let r=0,o=t.length;r<o;r++)a[r]=ku(e,t[r],n,!0,i,r),e=a[r].newDocument;return a.newDocument=e,a}function ju(e,t,n){let r=ku(e,t);if(r.test===!1)throw new wu(`Test operation failed`,`TEST_OPERATION_FAILED`,n,t,e);return r.newDocument}function Mu(e,t,n,r){if(typeof e!=`object`||!e||Array.isArray(e))throw new wu(`Operation is not an object`,`OPERATION_NOT_AN_OBJECT`,t,e,n);if(!Eu[e.op])throw new wu("Operation `op` property is not one of operations defined in RFC-6902",`OPERATION_OP_INVALID`,t,e,n);if(typeof e.path!=`string`)throw new wu("Operation `path` property is not a string",`OPERATION_PATH_INVALID`,t,e,n);if(e.path.indexOf(`/`)!==0&&e.path.length>0)throw new wu('Operation `path` property must start with "/"',`OPERATION_PATH_INVALID`,t,e,n);if((e.op===`move`||e.op===`copy`)&&typeof e.from!=`string`)throw new wu("Operation `from` property is not present (applicable in `move` and `copy` operations)",`OPERATION_FROM_REQUIRED`,t,e,n);if((e.op===`add`||e.op===`replace`||e.op===`test`)&&e.value===void 0)throw new wu("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)",`OPERATION_VALUE_REQUIRED`,t,e,n);if((e.op===`add`||e.op===`replace`||e.op===`test`)&&bu(e.value))throw new wu("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)",`OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED`,t,e,n);if(n){if(e.op==`add`){var i=e.path.split(`/`).length,a=r.split(`/`).length;if(i!==a+1&&i!==a)throw new wu("Cannot perform an `add` operation at the desired path",`OPERATION_PATH_CANNOT_ADD`,t,e,n)}else if(e.op===`replace`||e.op===`remove`||e.op===`_get`){if(e.path!==r)throw new wu(`Cannot perform the operation at a path that does not exist`,`OPERATION_PATH_UNRESOLVABLE`,t,e,n)}else if(e.op===`move`||e.op===`copy`){var o=Nu([{op:`_get`,path:e.from,value:void 0}],n);if(o&&o.name===`OPERATION_PATH_UNRESOLVABLE`)throw new wu(`Cannot perform the operation from a path that does not exist`,`OPERATION_FROM_UNRESOLVABLE`,t,e,n)}}}function Nu(e,t,n){try{if(!Array.isArray(e))throw new wu(`Patch sequence must be an array`,`SEQUENCE_NOT_AN_ARRAY`);if(t)Au(gu(t),gu(e),n||!0);else{n||=Mu;for(var r=0;r<e.length;r++)n(e[r],r,t,void 0)}}catch(e){if(e instanceof wu)return e;throw e}}function Pu(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){var n=Array.isArray(e),r=Array.isArray(t),i,a,o;if(n&&r){if(a=e.length,a!=t.length)return!1;for(i=a;i--!==0;)if(!Pu(e[i],t[i]))return!1;return!0}if(n!=r)return!1;var s=Object.keys(e);if(a=s.length,a!==Object.keys(t).length)return!1;for(i=a;i--!==0;)if(!t.hasOwnProperty(s[i]))return!1;for(i=a;i--!==0;)if(o=s[i],!Pu(e[o],t[o]))return!1;return!0}return e!==e&&t!==t}function Fu(e,t,n,r,i){if(t!==e){typeof t.toJSON==`function`&&(t=t.toJSON());for(var a=hu(t),o=hu(e),s=!1,c=o.length-1;c>=0;c--){var l=o[c],u=e[l];if(mu(t,l)&&!(t[l]===void 0&&u!==void 0&&Array.isArray(t)===!1)){var d=t[l];typeof u==`object`&&u&&typeof d==`object`&&d&&Array.isArray(u)===Array.isArray(d)?Fu(u,d,n,r+`/`+vu(l),i):u!==d&&(i&&n.push({op:`test`,path:r+`/`+vu(l),value:gu(u)}),n.push({op:`replace`,path:r+`/`+vu(l),value:gu(d)}))}else Array.isArray(e)===Array.isArray(t)?(i&&n.push({op:`test`,path:r+`/`+vu(l),value:gu(u)}),n.push({op:`remove`,path:r+`/`+vu(l)}),s=!0):(i&&n.push({op:`test`,path:r,value:e}),n.push({op:`replace`,path:r,value:t}))}if(!(!s&&a.length==o.length))for(var c=0;c<a.length;c++){var l=a[c];!mu(e,l)&&t[l]!==void 0&&n.push({op:`add`,path:r+`/`+vu(l),value:gu(t[l])})}}}function Iu(e,t,n=!1){var r=[];return Fu(e,t,r,``,n),r}({...Cu});var Lu=h({LogStreamCallbackHandler:()=>Wu,RunLog:()=>zu,RunLogPatch:()=>Ru,isLogStreamHandler:()=>Bu}),Ru=class{ops;constructor(e){this.ops=e.ops??[]}concat(e){let t=this.ops.concat(e.ops),n=Au({},t);return new zu({ops:t,state:n[n.length-1].newDocument})}},zu=class e extends Ru{state;constructor(e){super(e),this.state=e.state}concat(t){let n=this.ops.concat(t.ops),r=Au(this.state,t.ops);return new e({ops:n,state:r[r.length-1].newDocument})}static fromRunLogPatch(t){let n=Au({},t.ops);return new e({ops:t.ops,state:n[n.length-1].newDocument})}},Bu=e=>e.name===`log_stream_tracer`;async function Vu(e,t){if(t===`original`)throw Error(`Do not assign inputs with original schema drop the key for now. When inputs are added to streamLog they should be added with standardized schema for streaming events.`);let{inputs:n}=e;if([`retriever`,`llm`,`prompt`].includes(e.run_type))return n;if(!(Object.keys(n).length===1&&n?.input===``))return n.input}async function Hu(e,t){let{outputs:n}=e;return t===`original`||[`retriever`,`llm`,`prompt`].includes(e.run_type)?n:n!==void 0&&Object.keys(n).length===1&&n?.output!==void 0?n.output:n}function Uu(e){return e!==void 0&&e.message!==void 0}var Wu=class extends el{autoClose=!0;includeNames;includeTypes;includeTags;excludeNames;excludeTypes;excludeTags;_schemaFormat=`original`;rootId;keyMapByRunId={};counterMapByRunName={};transformStream;writer;receiveStream;name=`log_stream_tracer`;lc_prefer_streaming=!0;constructor(e){super({_awaitHandler:!0,...e}),this.autoClose=e?.autoClose??!0,this.includeNames=e?.includeNames,this.includeTypes=e?.includeTypes,this.includeTags=e?.includeTags,this.excludeNames=e?.excludeNames,this.excludeTypes=e?.excludeTypes,this.excludeTags=e?.excludeTags,this._schemaFormat=e?._schemaFormat??this._schemaFormat,this.transformStream=new TransformStream,this.writer=this.transformStream.writable.getWriter(),this.receiveStream=cu.fromReadableStream(this.transformStream.readable)}[Symbol.asyncIterator](){return this.receiveStream}async persistRun(e){}_includeRun(e){if(e.id===this.rootId)return!1;let t=e.tags??[],n=this.includeNames===void 0&&this.includeTags===void 0&&this.includeTypes===void 0;return this.includeNames!==void 0&&(n||=this.includeNames.includes(e.name)),this.includeTypes!==void 0&&(n||=this.includeTypes.includes(e.run_type)),this.includeTags!==void 0&&(n||=t.find(e=>this.includeTags?.includes(e))!==void 0),this.excludeNames!==void 0&&(n&&=!this.excludeNames.includes(e.name)),this.excludeTypes!==void 0&&(n&&=!this.excludeTypes.includes(e.run_type)),this.excludeTags!==void 0&&(n&&=t.every(e=>!this.excludeTags?.includes(e))),n}async*tapOutputIterable(e,t){for await(let n of t){if(e!==this.rootId){let t=this.keyMapByRunId[e];t&&await this.writer.write(new Ru({ops:[{op:`add`,path:`/logs/${t}/streamed_output/-`,value:n}]}))}yield n}}async onRunCreate(e){if(this.rootId===void 0&&(this.rootId=e.id,await this.writer.write(new Ru({ops:[{op:`replace`,path:``,value:{id:e.id,name:e.name,type:e.run_type,streamed_output:[],final_output:void 0,logs:{}}}]}))),!this._includeRun(e))return;this.counterMapByRunName[e.name]===void 0&&(this.counterMapByRunName[e.name]=0),this.counterMapByRunName[e.name]+=1;let t=this.counterMapByRunName[e.name];this.keyMapByRunId[e.id]=t===1?e.name:`${e.name}:${t}`;let n={id:e.id,name:e.name,type:e.run_type,tags:e.tags??[],metadata:e.extra?.metadata??{},start_time:new Date(e.start_time).toISOString(),streamed_output:[],streamed_output_str:[],final_output:void 0,end_time:void 0};this._schemaFormat===`streaming_events`&&(n.inputs=await Vu(e,this._schemaFormat)),await this.writer.write(new Ru({ops:[{op:`add`,path:`/logs/${this.keyMapByRunId[e.id]}`,value:n}]}))}async onRunUpdate(e){try{let t=this.keyMapByRunId[e.id];if(t===void 0)return;let n=[];this._schemaFormat===`streaming_events`&&n.push({op:`replace`,path:`/logs/${t}/inputs`,value:await Vu(e,this._schemaFormat)}),n.push({op:`add`,path:`/logs/${t}/final_output`,value:await Hu(e,this._schemaFormat)}),e.end_time!==void 0&&n.push({op:`add`,path:`/logs/${t}/end_time`,value:new Date(e.end_time).toISOString()});let r=new Ru({ops:n});await this.writer.write(r)}finally{if(e.id===this.rootId){let t=new Ru({ops:[{op:`replace`,path:`/final_output`,value:await Hu(e,this._schemaFormat)}]});await this.writer.write(t),this.autoClose&&await this.writer.close()}}}async onLLMNewToken(e,t,n){let r=this.keyMapByRunId[e.id];if(r===void 0)return;let i=e.inputs.messages!==void 0,a;a=i?Uu(n?.chunk)?n?.chunk:new un({id:`run-${e.id}`,content:t}):t;let o=new Ru({ops:[{op:`add`,path:`/logs/${r}/streamed_output_str/-`,value:t},{op:`add`,path:`/logs/${r}/streamed_output/-`,value:a}]});await this.writer.write(o)}},Gu=h({ChatGenerationChunk:()=>Ju,GenerationChunk:()=>qu,RUN_KEY:()=>Ku}),Ku=`__run`,qu=class e{text;generationInfo;constructor(e){this.text=e.text,this.generationInfo=e.generationInfo}concat(t){return new e({text:this.text+t.text,generationInfo:{...this.generationInfo,...t.generationInfo}})}},Ju=class e extends qu{message;constructor(e){super(e),this.message=e.message}concat(t){return new e({text:this.text+t.text,generationInfo:{...this.generationInfo,...t.generationInfo},message:this.message.concat(t.message)})}};function Yu({name:e,serialized:t}){return e===void 0?t?.name===void 0?t?.id!==void 0&&Array.isArray(t?.id)?t.id[t.id.length-1]:`Unnamed`:t.name:e}var Xu=e=>e.name===`event_stream_tracer`,Zu=class extends el{autoClose=!0;includeNames;includeTypes;includeTags;excludeNames;excludeTypes;excludeTags;runInfoMap=new Map;tappedPromises=new Map;transformStream;writer;receiveStream;readableStreamClosed=!1;name=`event_stream_tracer`;lc_prefer_streaming=!0;constructor(e){super({_awaitHandler:!0,...e}),this.autoClose=e?.autoClose??!0,this.includeNames=e?.includeNames,this.includeTypes=e?.includeTypes,this.includeTags=e?.includeTags,this.excludeNames=e?.excludeNames,this.excludeTypes=e?.excludeTypes,this.excludeTags=e?.excludeTags,this.transformStream=new TransformStream({flush:()=>{this.readableStreamClosed=!0}}),this.writer=this.transformStream.writable.getWriter(),this.receiveStream=cu.fromReadableStream(this.transformStream.readable)}[Symbol.asyncIterator](){return this.receiveStream}async persistRun(e){}_includeRun(e){let t=e.tags??[],n=this.includeNames===void 0&&this.includeTags===void 0&&this.includeTypes===void 0;return this.includeNames!==void 0&&(n||=this.includeNames.includes(e.name)),this.includeTypes!==void 0&&(n||=this.includeTypes.includes(e.runType)),this.includeTags!==void 0&&(n||=t.find(e=>this.includeTags?.includes(e))!==void 0),this.excludeNames!==void 0&&(n&&=!this.excludeNames.includes(e.name)),this.excludeTypes!==void 0&&(n&&=!this.excludeTypes.includes(e.runType)),this.excludeTags!==void 0&&(n&&=t.every(e=>!this.excludeTags?.includes(e))),n}async*tapOutputIterable(e,t){let n=await t.next();if(n.done)return;let r=this.runInfoMap.get(e);if(r===void 0){yield n.value;return}function i(e,t){return e===`llm`&&typeof t==`string`?new qu({text:t}):t}let a=this.tappedPromises.get(e);if(a===void 0){let o;a=new Promise(e=>{o=e}),this.tappedPromises.set(e,a);try{let a={event:`on_${r.runType}_stream`,run_id:e,name:r.name,tags:r.tags,metadata:r.metadata,data:{}};await this.send({...a,data:{chunk:i(r.runType,n.value)}},r),yield n.value;for await(let e of t)r.runType!==`tool`&&r.runType!==`retriever`&&await this.send({...a,data:{chunk:i(r.runType,e)}},r),yield e}finally{o?.()}}else{yield n.value;for await(let e of t)yield e}}async send(e,t){this.readableStreamClosed||this._includeRun(t)&&await this.writer.write(e)}async sendEndEvent(e,t){let n=this.tappedPromises.get(e.run_id);n===void 0?await this.send(e,t):n.then(()=>{this.send(e,t)})}async onLLMStart(e){let t=Yu(e),n=e.inputs.messages===void 0?`llm`:`chat_model`,r={tags:e.tags??[],metadata:e.extra?.metadata??{},name:t,runType:n,inputs:e.inputs};this.runInfoMap.set(e.id,r);let i=`on_${n}_start`;await this.send({event:i,data:{input:e.inputs},name:t,tags:e.tags??[],run_id:e.id,metadata:e.extra?.metadata??{}},r)}async onLLMNewToken(e,t,n){let r=this.runInfoMap.get(e.id),i,a;if(r===void 0)throw Error(`onLLMNewToken: Run ID ${e.id} not found in run map.`);if(this.runInfoMap.size!==1){if(r.runType===`chat_model`)a=`on_chat_model_stream`,i=n?.chunk===void 0?new un({content:t,id:`run-${e.id}`}):n.chunk.message;else if(r.runType===`llm`)a=`on_llm_stream`,i=n?.chunk===void 0?new qu({text:t}):n.chunk;else throw Error(`Unexpected run type ${r.runType}`);await this.send({event:a,data:{chunk:i},run_id:e.id,name:r.name,tags:r.tags,metadata:r.metadata},r)}}async onLLMEnd(e){let t=this.runInfoMap.get(e.id);this.runInfoMap.delete(e.id);let n;if(t===void 0)throw Error(`onLLMEnd: Run ID ${e.id} not found in run map.`);let r=e.outputs?.generations,i;if(t.runType===`chat_model`){for(let e of r??[]){if(i!==void 0)break;i=e[0]?.message}n=`on_chat_model_end`}else if(t.runType===`llm`)i={generations:r?.map(e=>e.map(e=>({text:e.text,generationInfo:e.generationInfo}))),llmOutput:e.outputs?.llmOutput??{}},n=`on_llm_end`;else throw Error(`onLLMEnd: Unexpected run type: ${t.runType}`);await this.sendEndEvent({event:n,data:{output:i,input:t.inputs},run_id:e.id,name:t.name,tags:t.tags,metadata:t.metadata},t)}async onChainStart(e){let t=Yu(e),n=e.run_type??`chain`,r={tags:e.tags??[],metadata:e.extra?.metadata??{},name:t,runType:e.run_type},i={};e.inputs.input===``&&Object.keys(e.inputs).length===1?(i={},r.inputs={}):e.inputs.input===void 0?(i.input=e.inputs,r.inputs=e.inputs):(i.input=e.inputs.input,r.inputs=e.inputs.input),this.runInfoMap.set(e.id,r),await this.send({event:`on_${n}_start`,data:i,name:t,tags:e.tags??[],run_id:e.id,metadata:e.extra?.metadata??{}},r)}async onChainEnd(e){let t=this.runInfoMap.get(e.id);if(this.runInfoMap.delete(e.id),t===void 0)throw Error(`onChainEnd: Run ID ${e.id} not found in run map.`);let n=`on_${e.run_type}_end`,r=e.inputs??t.inputs??{},i={output:e.outputs?.output??e.outputs,input:r};r.input&&Object.keys(r).length===1&&(i.input=r.input,t.inputs=r.input),await this.sendEndEvent({event:n,data:i,run_id:e.id,name:t.name,tags:t.tags,metadata:t.metadata??{}},t)}async onToolStart(e){let t=Yu(e),n={tags:e.tags??[],metadata:e.extra?.metadata??{},name:t,runType:`tool`,inputs:e.inputs??{}};this.runInfoMap.set(e.id,n),await this.send({event:`on_tool_start`,data:{input:e.inputs??{}},name:t,run_id:e.id,tags:e.tags??[],metadata:e.extra?.metadata??{}},n)}async onToolEnd(e){let t=this.runInfoMap.get(e.id);if(this.runInfoMap.delete(e.id),t===void 0)throw Error(`onToolEnd: Run ID ${e.id} not found in run map.`);if(t.inputs===void 0)throw Error(`onToolEnd: Run ID ${e.id} is a tool call, and is expected to have traced inputs.`);let n=e.outputs?.output===void 0?e.outputs:e.outputs.output;await this.sendEndEvent({event:`on_tool_end`,data:{output:n,input:t.inputs},run_id:e.id,name:t.name,tags:t.tags,metadata:t.metadata},t)}async onToolError(e){let t=this.runInfoMap.get(e.id);if(this.runInfoMap.delete(e.id),t===void 0)throw Error(`onToolEnd: Run ID ${e.id} not found in run map.`);if(t.inputs===void 0)throw Error(`onToolEnd: Run ID ${e.id} is a tool call, and is expected to have traced inputs.`);await this.sendEndEvent({event:`on_tool_error`,data:{input:t.inputs,error:e.error},run_id:e.id,name:t.name,tags:t.tags,metadata:t.metadata},t)}async onRetrieverStart(e){let t=Yu(e),n={tags:e.tags??[],metadata:e.extra?.metadata??{},name:t,runType:`retriever`,inputs:{query:e.inputs.query}};this.runInfoMap.set(e.id,n),await this.send({event:`on_retriever_start`,data:{input:{query:e.inputs.query}},name:t,tags:e.tags??[],run_id:e.id,metadata:e.extra?.metadata??{}},n)}async onRetrieverEnd(e){let t=this.runInfoMap.get(e.id);if(this.runInfoMap.delete(e.id),t===void 0)throw Error(`onRetrieverEnd: Run ID ${e.id} not found in run map.`);await this.sendEndEvent({event:`on_retriever_end`,data:{output:e.outputs?.documents??e.outputs,input:t.inputs},run_id:e.id,name:t.name,tags:t.tags,metadata:t.metadata},t)}async handleCustomEvent(e,t,n){let r=this.runInfoMap.get(n);if(r===void 0)throw Error(`handleCustomEvent: Run ID ${n} not found in run map.`);await this.send({event:`on_custom_event`,run_id:n,name:e,tags:r.tags,metadata:r.metadata,data:t},r)}async finish(){let e=[...this.tappedPromises.values()];Promise.all(e).finally(()=>{this.writer.close()})}},Qu=Object.prototype.toString,$u=e=>Qu.call(e)===`[object Error]`,ed=new Set([`network error`,`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`,`fetch failed`,`terminated`,` A network error occurred.`,`Network connection lost`]);function td(e){if(!(e&&$u(e)&&e.name===`TypeError`&&typeof e.message==`string`))return!1;let{message:t,stack:n}=e;return t===`Load failed`?n===void 0||`__sentry_captured__`in e:t.startsWith(`error sending request for url`)?!0:ed.has(t)}function nd(e){if(typeof e==`number`){if(e<0)throw TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw TypeError("Expected `retries` to be a number or Infinity.")}function rd(e,t,{min:n=0,allowInfinity:r=!1}={}){if(t!==void 0){if(typeof t!=`number`||Number.isNaN(t))throw TypeError(`Expected \`${e}\` to be a number${r?` or Infinity`:``}.`);if(!r&&!Number.isFinite(t))throw TypeError(`Expected \`${e}\` to be a finite number.`);if(t<n)throw TypeError(`Expected \`${e}\` to be \u2265 ${n}.`)}}var id=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}};function ad(e,t){let n=Math.max(1,e+1),r=t.randomize?Math.random()+1:1,i=Math.round(r*t.minTimeout*t.factor**(n-1));return i=Math.min(i,t.maxTimeout),i}function od(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function sd({error:e,attemptNumber:t,retriesConsumed:n,startTime:r,options:i}){let a=e instanceof Error?e:TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof id)throw a.originalError;let o=Number.isFinite(i.retries)?Math.max(0,i.retries-n):i.retries,s=i.maxRetryTime??1/0,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n});if(await i.onFailedAttempt(c),od(r,s)<=0)throw a;let l=await i.shouldConsumeRetry(c),u=od(r,s);if(u<=0||o<=0)throw a;if(a instanceof TypeError&&!td(a)){if(l)throw a;return i.signal?.throwIfAborted(),!1}if(!await i.shouldRetry(c))throw a;if(!l)return i.signal?.throwIfAborted(),!1;let d=ad(n,i),f=typeof a.retryAfterMs==`number`&&a.retryAfterMs>=0?a.retryAfterMs:void 0;f!==void 0&&(d=Math.max(d,f));let p=Math.min(d,u);return p>0&&await new Promise((e,t)=>{let n=()=>{clearTimeout(r),i.signal?.removeEventListener(`abort`,n),t(i.signal.reason)},r=setTimeout(()=>{i.signal?.removeEventListener(`abort`,n),e()},p);i.unref&&r.unref?.(),i.signal?.addEventListener(`abort`,n,{once:!0})}),i.signal?.throwIfAborted(),!0}async function cd(e,t={}){if(t={...t},nd(t.retries),Object.hasOwn(t,`forever`))throw Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=1/0,t.maxRetryTime??=1/0,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,rd(`factor`,t.factor,{min:0,allowInfinity:!1}),rd(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),rd(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),rd(`maxRetryTime`,t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let n=0,r=0,i=performance.now();for(;!Number.isFinite(t.retries)||r<=t.retries;){n++;try{t.signal?.throwIfAborted();let r=await e(n);return t.signal?.throwIfAborted(),r}catch(e){await sd({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var ld=h({AsyncCaller:()=>Td,classifyRateLimitError:()=>Cd,parseRetryAfterMs:()=>Sd}),ud=[400,401,402,403,404,405,406,407,409],dd=6e4,fd=[/insufficient[_ -]?quota/i,/exceeded (?:your|the current|the available).+quota/i,/usage quota/i,/quota (?:has been )?exhausted/i,/billing/i,/credit balance/i,/out of credits/i,/will reset at/i],pd=/(?:try again in|retry after)\s+(\d+(?:\.\d+)?)\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\b/i;function md(e){return typeof e==`object`&&e&&`response`in e&&typeof e.response==`object`&&e.response!==null&&`status`in e.response&&typeof e.response.status==`number`?e.response.status:void 0}function hd(e){if(!(typeof e!=`object`||!e)){if(`status`in e&&typeof e.status==`number`)return e.status;if(`statusCode`in e&&typeof e.statusCode==`number`)return e.statusCode}}function gd(e){return typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`?e.message:void 0}function _d(e){if(!(typeof e!=`object`||!e))return`code`in e&&typeof e.code==`string`?e.code:`error`in e&&typeof e.error==`object`&&e.error!==null&&`code`in e.error&&typeof e.error.code==`string`?e.error.code:void 0}function vd(e){if(e?.headers)return typeof e.headers.get==`function`?e.headers.get(`retry-after`):e.headers[`retry-after`]??e.headers[`Retry-After`];if(e?.response?.headers)return typeof e.response.headers.get==`function`?e.response.headers.get(`retry-after`):e.response.headers[`retry-after`]??e.response.headers[`Retry-After`]}function yd(e){if(e==null)return;let t=pd.exec(e);if(!t)return;let n=Number(t[1]),r=t[2]?.toLowerCase();if(!(Number.isNaN(n)||!r))return r===`ms`||r.startsWith(`millisecond`)?n:r===`m`||r.startsWith(`min`)?n*6e4:r===`h`||r.startsWith(`hr`)||r.startsWith(`hour`)?n*36e5:n*1e3}function bd(e,t){if(e instanceof Error)return e;let n=Error(t);return typeof e==`object`&&e&&Object.assign(n,e),n}function xd(e,t){if(typeof e!=`object`||!e)return;let n=e;n.rateLimitType=t.action,n.rateLimitReason=t.reason,t.retryAfterMs!==void 0&&(n.retryAfterMs=t.retryAfterMs)}function Sd(e){if(e==null)return;let t=e.trim();if(!t)return;let n=Number(t);if(!Number.isNaN(n)&&n>=0)return n*1e3;let r=Date.parse(t);if(!Number.isNaN(r)){let e=r-Date.now();return e>0?e:0}}function Cd(e){if((md(e)??hd(e))!==429)return;if(_d(e)===`insufficient_quota`)return{action:`stop`,reason:`insufficient_quota`};let t=gd(e);if(t&&fd.some(e=>e.test(t)))return{action:`stop`,reason:`quota_message`};let n=Sd(vd(e))??yd(t);return n===void 0?{action:`capacity`,reason:`headerless_429`}:n<=dd?{action:`wait`,retryAfterMs:n,reason:`retry_after_hint`}:{action:`capacity`,retryAfterMs:n,reason:`retry_after_too_large`}}var wd=e=>{if(typeof e!=`object`||!e)return;if(`message`in e&&typeof e.message==`string`&&(e.message.startsWith(`Cancel`)||e.message.startsWith(`AbortError`))||`name`in e&&typeof e.name==`string`&&e.name===`AbortError`||`code`in e&&typeof e.code==`string`&&e.code===`ECONNABORTED`)throw e;let t=md(e)??hd(e);if(t&&ud.includes(+t))throw e;if(_d(e)===`insufficient_quota`){let t=bd(e,gd(e)??`Insufficient quota`);throw t.name=`InsufficientQuotaError`,xd(t,{action:`stop`,reason:`insufficient_quota`}),t}let n=Cd(e);if(n){if(n.action===`wait`){xd(e,n);return}let t=bd(e,gd(e)??`Rate limit exceeded`);throw t.name===`Error`&&(t.name=n.action===`stop`?`RateLimitQuotaExhaustedError`:`RateLimitCapacityError`),xd(t,n),t}},Td=class{maxConcurrency;maxRetries;onFailedAttempt;queue;constructor(e){this.maxConcurrency=e.maxConcurrency??1/0,this.maxRetries=e.maxRetries??6,this.onFailedAttempt=e.onFailedAttempt??wd;let t=`default`in ps.default?ps.default.default:ps.default;this.queue=new t({concurrency:this.maxConcurrency})}async call(e,...t){return this.queue.add(()=>cd(()=>e(...t).catch(e=>{throw e instanceof Error?e:Error(e)}),{onFailedAttempt:({error:e})=>this.onFailedAttempt?.(e),retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0})}callWithOptions(e,t,...n){if(e.signal){let r;return Promise.race([this.call(t,...n),new Promise((t,n)=>{r=()=>{n(ou(e.signal))},e.signal?.addEventListener(`abort`,r,{once:!0})})]).finally(()=>{e.signal&&r&&e.signal.removeEventListener(`abort`,r)})}return this.call(t,...n)}fetch(...e){return this.call(()=>fetch(...e).then(e=>e.ok?e:Promise.reject(e)))}},Ed=class extends el{name=`RootListenersTracer`;rootId;config;argOnStart;argOnEnd;argOnError;constructor({config:e,onStart:t,onEnd:n,onError:r}){super({_awaitHandler:!0}),this.config=e,this.argOnStart=t,this.argOnEnd=n,this.argOnError=r}persistRun(e){return Promise.resolve()}async onRunCreate(e){this.rootId||(this.rootId=e.id,this.argOnStart&&await this.argOnStart(e,this.config))}async onRunUpdate(e){e.id===this.rootId&&(e.error?this.argOnError&&await this.argOnError(e,this.config):this.argOnEnd&&await this.argOnEnd(e,this.config))}};function Dd(e){return e?e.lc_runnable:!1}var Od=class{includeNames;includeTypes;includeTags;excludeNames;excludeTypes;excludeTags;constructor(e){this.includeNames=e.includeNames,this.includeTypes=e.includeTypes,this.includeTags=e.includeTags,this.excludeNames=e.excludeNames,this.excludeTypes=e.excludeTypes,this.excludeTags=e.excludeTags}includeEvent(e,t){let n=this.includeNames===void 0&&this.includeTypes===void 0&&this.includeTags===void 0,r=e.tags??[];return this.includeNames!==void 0&&(n||=this.includeNames.includes(e.name)),this.includeTypes!==void 0&&(n||=this.includeTypes.includes(t)),this.includeTags!==void 0&&(n||=r.some(e=>this.includeTags?.includes(e))),this.excludeNames!==void 0&&(n&&=!this.excludeNames.includes(e.name)),this.excludeTypes!==void 0&&(n&&=!this.excludeTypes.includes(t)),this.excludeTags!==void 0&&(n&&=r.every(e=>!this.excludeTags?.includes(e))),n}},kd=e=>btoa(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),Ad;function P(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var jd=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Md=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Ad=globalThis).__zod_globalConfig??(Ad.__zod_globalConfig={});var Nd=globalThis.__zod_globalConfig;function Pd(e){return e&&Object.assign(Nd,e),Nd}function Fd(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Id(e,t){return typeof t==`bigint`?t.toString():t}function Ld(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw Error(`cached value already set`)}}}function Rd(e){return e==null}function zd(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Bd(e,t){let n=e/t,r=Math.round(n),i=2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var Vd=Symbol(`evaluating`);function Hd(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Vd)return r===void 0&&(r=Vd,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ud(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Wd(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Gd(e){return JSON.stringify(e)}function Kd(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var qd=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Jd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Yd=Ld(()=>{if(Nd.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Xd(e){if(Jd(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(Jd(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Zd(e){return Xd(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Qd=new Set([`string`,`number`,`symbol`]);function $d(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ef(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function F(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function tf(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var nf={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function rf(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return ef(e,Wd(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Ud(this,`shape`,e),e},checks:[]}))}function af(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return ef(e,Wd(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Ud(this,`shape`,r),r},checks:[]}))}function of(e,t){if(!Xd(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ef(e,Wd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ud(this,`shape`,n),n}}))}function sf(e,t){if(!Xd(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return ef(e,Wd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ud(this,`shape`,n),n}}))}function cf(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return ef(e,Wd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ud(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function lf(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return ef(t,Wd(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Ud(this,`shape`,i),i},checks:[]}))}function uf(e,t,n){return ef(t,Wd(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Ud(this,`shape`,i),i}}))}function df(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function ff(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function pf(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function mf(e){return typeof e==`string`?e:e?.message}function hf(e,t,n){let r=e.message?e.message:mf(e.inst?._zod.def?.error?.(e))??mf(t?.error?.(e))??mf(n.customError?.(e))??mf(n.localeError?.(e))??`Invalid input`,{inst:i,continue:a,input:o,...s}=e;return s.path??=[],s.message=r,t?.reportInput&&(s.input=o),s}function gf(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function _f(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var vf=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Id,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},yf=P(`$ZodError`,vf),bf=P(`$ZodError`,vf,{Parent:Error});function xf(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Sf(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i];i===e.length-1?(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(a))):r[n]=r[n]||{_errors:[]},r=r[n],i++}}}};return r(e),n}function Cf(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function wf(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${Cf(e.path)}`);return t.join(`
|
|
28
|
+
`)}var Tf=e=>(t,n,r,i)=>{let a=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new jd;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>hf(e,a,Pd())));throw qd(t,i?.callee),t}return o.value},Ef=Tf(bf),Df=e=>async(t,n,r,i)=>{let a=r?{...r,async:!0}:{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>hf(e,a,Pd())));throw qd(t,i?.callee),t}return o.value},Of=Df(bf),kf=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new jd;return a.issues.length?{success:!1,error:new(e??yf)(a.issues.map(e=>hf(e,i,Pd())))}:{success:!0,data:a.value}},Af=kf(bf),jf=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>hf(e,i,Pd())))}:{success:!0,data:a.value}},Mf=jf(bf),Nf=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Tf(e)(t,n,i)},Pf=e=>(t,n,r)=>Tf(e)(t,n,r),Ff=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Df(e)(t,n,i)},If=e=>async(t,n,r)=>Df(e)(t,n,r),Lf=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return kf(e)(t,n,i)},Rf=e=>(t,n,r)=>kf(e)(t,n,r),zf=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return jf(e)(t,n,i)},Bf=e=>async(t,n,r)=>jf(e)(t,n,r),Vf=/^[cC][0-9a-z]{6,}$/,Hf=/^[0-9a-z]+$/,Uf=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Wf=/^[0-9a-vA-V]{20}$/,Gf=/^[A-Za-z0-9]{27}$/,Kf=/^[a-zA-Z0-9_-]{21}$/,qf=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Jf=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Yf=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Xf=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zf=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Qf(){return new RegExp(Zf,`u`)}var $f=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ep=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,tp=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,np=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rp=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ip=/^[A-Za-z0-9_-]*$/,ap=/^https?$/,op=/^\+[1-9]\d{6,14}$/,sp=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,cp=RegExp(`^${sp}$`);function lp(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function up(e){return RegExp(`^${lp(e)}$`)}function dp(e){let t=lp({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${sp}T(?:${r})$`)}var fp=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},pp=/^-?\d+$/,mp=/^-?\d+(?:\.\d+)?$/,hp=/^(?:true|false)$/i,gp=/^[^A-Z]*$/,_p=/^[^a-z]*$/,vp=P(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),yp={number:`number`,bigint:`bigint`,object:`date`},bp=P(`$ZodCheckLessThan`,(e,t)=>{vp.init(e,t);let n=yp[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),xp=P(`$ZodCheckGreaterThan`,(e,t)=>{vp.init(e,t);let n=yp[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Sp=P(`$ZodCheckMultipleOf`,(e,t)=>{vp.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Bd(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Cp=P(`$ZodCheckNumberFormat`,(e,t)=>{vp.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=nf[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=pp)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),wp=P(`$ZodCheckMaxLength`,(e,t)=>{var n;vp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Rd(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=gf(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Tp=P(`$ZodCheckMinLength`,(e,t)=>{var n;vp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Rd(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=gf(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ep=P(`$ZodCheckLengthEquals`,(e,t)=>{var n;vp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Rd(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=gf(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Dp=P(`$ZodCheckStringFormat`,(e,t)=>{var n,r;vp.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Op=P(`$ZodCheckRegex`,(e,t)=>{Dp.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),kp=P(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=gp,Dp.init(e,t)}),Ap=P(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=_p,Dp.init(e,t)}),jp=P(`$ZodCheckIncludes`,(e,t)=>{vp.init(e,t);let n=$d(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Mp=P(`$ZodCheckStartsWith`,(e,t)=>{vp.init(e,t);let n=RegExp(`^${$d(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Np=P(`$ZodCheckEndsWith`,(e,t)=>{vp.init(e,t);let n=RegExp(`.*${$d(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Pp=P(`$ZodCheckOverwrite`,(e,t)=>{vp.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Fp=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
29
|
+
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
|
|
30
|
+
`))}},Ip={major:4,minor:4,patch:3},Lp=P(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Ip;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=df(e),i;for(let a of t){if(a._zod.def.when){if(ff(e)||!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new jd;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=df(e,t))});else{if(e.issues.length===t)continue;r||=df(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(df(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new jd;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new jd;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Hd(e,`~standard`,()=>({validate:t=>{try{let n=Af(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Mf(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Rp=P(`$ZodString`,(e,t)=>{Lp.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??fp(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),zp=P(`$ZodStringFormat`,(e,t)=>{Dp.init(e,t),Rp.init(e,t)}),Bp=P(`$ZodGUID`,(e,t)=>{t.pattern??=Jf,zp.init(e,t)}),Vp=P(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Yf(e)}else t.pattern??=Yf();zp.init(e,t)}),Hp=P(`$ZodEmail`,(e,t)=>{t.pattern??=Xf,zp.init(e,t)}),Up=P(`$ZodURL`,(e,t)=>{zp.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===ap.source&&!/^https?:\/\//i.test(r)){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}let i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Wp=P(`$ZodEmoji`,(e,t)=>{t.pattern??=Qf(),zp.init(e,t)}),Gp=P(`$ZodNanoID`,(e,t)=>{t.pattern??=Kf,zp.init(e,t)}),Kp=P(`$ZodCUID`,(e,t)=>{t.pattern??=Vf,zp.init(e,t)}),qp=P(`$ZodCUID2`,(e,t)=>{t.pattern??=Hf,zp.init(e,t)}),Jp=P(`$ZodULID`,(e,t)=>{t.pattern??=Uf,zp.init(e,t)}),Yp=P(`$ZodXID`,(e,t)=>{t.pattern??=Wf,zp.init(e,t)}),Xp=P(`$ZodKSUID`,(e,t)=>{t.pattern??=Gf,zp.init(e,t)}),Zp=P(`$ZodISODateTime`,(e,t)=>{t.pattern??=dp(t),zp.init(e,t)}),Qp=P(`$ZodISODate`,(e,t)=>{t.pattern??=cp,zp.init(e,t)}),$p=P(`$ZodISOTime`,(e,t)=>{t.pattern??=up(t),zp.init(e,t)}),em=P(`$ZodISODuration`,(e,t)=>{t.pattern??=qf,zp.init(e,t)}),tm=P(`$ZodIPv4`,(e,t)=>{t.pattern??=$f,zp.init(e,t),e._zod.bag.format=`ipv4`}),nm=P(`$ZodIPv6`,(e,t)=>{t.pattern??=ep,zp.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),rm=P(`$ZodCIDRv4`,(e,t)=>{t.pattern??=tp,zp.init(e,t)}),im=P(`$ZodCIDRv6`,(e,t)=>{t.pattern??=np,zp.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function am(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var om=P(`$ZodBase64`,(e,t)=>{t.pattern??=rp,zp.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{am(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function sm(e){if(!ip.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return am(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var cm=P(`$ZodBase64URL`,(e,t)=>{t.pattern??=ip,zp.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{sm(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),lm=P(`$ZodE164`,(e,t)=>{t.pattern??=op,zp.init(e,t)});function um(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var dm=P(`$ZodJWT`,(e,t)=>{zp.init(e,t),e._zod.check=n=>{um(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),fm=P(`$ZodNumber`,(e,t)=>{Lp.init(e,t),e._zod.pattern=e._zod.bag.pattern??mp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),pm=P(`$ZodNumberFormat`,(e,t)=>{Cp.init(e,t),fm.init(e,t)}),mm=P(`$ZodBoolean`,(e,t)=>{Lp.init(e,t),e._zod.pattern=hp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),hm=P(`$ZodAny`,(e,t)=>{Lp.init(e,t),e._zod.parse=e=>e}),gm=P(`$ZodUnknown`,(e,t)=>{Lp.init(e,t),e._zod.parse=e=>e}),_m=P(`$ZodNever`,(e,t)=>{Lp.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function vm(e,t,n){e.issues.length&&t.issues.push(...pf(n,e.issues)),t.value[n]=e.value}var ym=P(`$ZodArray`,(e,t)=>{Lp.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>vm(t,n,e))):vm(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function bm(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...pf(n,e.issues))}if(!o&&!i){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}function xm(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=tf(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Sm(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin===`optional`,d=c.optout===`optional`;for(let i in t){if(i===`__proto__`||s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>bm(e,n,i,t,u,d))):bm(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var Cm=P(`$ZodObject`,(e,t)=>{if(Lp.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=Ld(()=>xm(t));Hd(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Jd,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optin===`optional`,i=n._zod.optout===`optional`,a=n._zod.run({value:s[e],issues:[]},o);a instanceof Promise?c.push(a.then(n=>bm(n,t,e,s,r,i))):bm(a,t,e,s,r,i)}return i?Sm(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),wm=P(`$ZodObjectJIT`,(e,t)=>{Cm.init(e,t);let n=e._zod.parse,r=Ld(()=>xm(t)),i=e=>{let t=new Fp([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Gd(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Gd(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(`
|
|
31
|
+
if (${n}.issues.length) {
|
|
32
|
+
if (${o} in input) {
|
|
33
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
34
|
+
...iss,
|
|
35
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
36
|
+
})));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (${n}.value === undefined) {
|
|
41
|
+
if (${o} in input) {
|
|
42
|
+
newResult[${o}] = undefined;
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
newResult[${o}] = ${n}.value;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
`):c?t.write(`
|
|
49
|
+
if (${n}.issues.length) {
|
|
50
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
51
|
+
...iss,
|
|
52
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
53
|
+
})));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (${n}.value === undefined) {
|
|
57
|
+
if (${o} in input) {
|
|
58
|
+
newResult[${o}] = undefined;
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
newResult[${o}] = ${n}.value;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
`):t.write(`
|
|
65
|
+
const ${n}_present = ${o} in input;
|
|
66
|
+
if (${n}.issues.length) {
|
|
67
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
68
|
+
...iss,
|
|
69
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
70
|
+
})));
|
|
71
|
+
}
|
|
72
|
+
if (!${n}_present && !${n}.issues.length) {
|
|
73
|
+
payload.issues.push({
|
|
74
|
+
code: "invalid_type",
|
|
75
|
+
expected: "nonoptional",
|
|
76
|
+
input: undefined,
|
|
77
|
+
path: [${o}]
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (${n}_present) {
|
|
82
|
+
if (${n}.value === undefined) {
|
|
83
|
+
newResult[${o}] = undefined;
|
|
84
|
+
} else {
|
|
85
|
+
newResult[${o}] = ${n}.value;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Jd,s=!Nd.jitless,c=s&&Yd.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?Sm([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Tm(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!df(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>hf(e,r,Pd())))}),t)}var Em=P(`$ZodUnion`,(e,t)=>{Lp.init(e,t),Hd(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Hd(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Hd(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Hd(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>zd(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Tm(t,r,e,i)):Tm(o,r,e,i)}}),Dm=P(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,Em.init(e,t);let n=e._zod.parse;Hd(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=Ld(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!Jd(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()),input:o,path:[t.discriminator],inst:e}),i)}}),Om=P(`$ZodIntersection`,(e,t)=>{Lp.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Am(e,t,n)):Am(e,i,a)}});function km(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Xd(e)&&Xd(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=km(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=km(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Am(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),df(e))return e;let o=km(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var jm=P(`$ZodTuple`,(e,t)=>{Lp.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=Mm(n,`optin`),c=Mm(n,`optout`);if(!t.rest){if(a.length<s)return r.issues.push({code:`too_small`,minimum:s,inclusive:!0,input:a,inst:e,origin:`array`}),r;a.length>n.length&&r.issues.push({code:`too_big`,maximum:n.length,inclusive:!0,input:a,inst:e,origin:`array`})}let l=Array(n.length);for(let e=0;e<n.length;e++){let t=n[e]._zod.run({value:a[e],issues:[]},i);t instanceof Promise?o.push(t.then(t=>{l[e]=t})):l[e]=t}if(t.rest){let e=n.length-1,s=a.slice(n.length);for(let n of s){e++;let a=t.rest._zod.run({value:n,issues:[]},i);a instanceof Promise?o.push(a.then(t=>Nm(t,r,e))):Nm(a,r,e)}}return o.length?Promise.all(o).then(()=>Pm(l,r,n,a,c)):Pm(l,r,n,a,c)}});function Mm(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]._zod[t]!==`optional`)return n+1;return 0}function Nm(e,t,n){e.issues.length&&t.issues.push(...pf(n,e.issues)),t.value[n]=e.value}function Pm(e,t,n,r,i){for(let a=0;a<n.length;a++){let n=e[a],o=a<r.length;if(n.issues.length){if(!o&&a>=i){t.value.length=a;break}t.issues.push(...pf(a,n.issues))}t.value[a]=n.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}var Fm=P(`$ZodRecord`,(e,t)=>{Lp.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Xd(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let c of o)if(typeof c==`string`||typeof c==`number`||typeof c==`symbol`){s.add(typeof c==`number`?c.toString():c);let o=t.keyType._zod.run({value:c,issues:[]},r);if(o instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(o.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:o.issues.map(e=>hf(e,r,Pd())),input:c,path:[c],inst:e});continue}let l=o.value,u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?a.push(u.then(e=>{e.issues.length&&n.issues.push(...pf(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...pf(c,u.issues)),n.value[l]=u.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`||!Object.prototype.propertyIsEnumerable.call(i,o))continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&mp.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>hf(e,r,Pd())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...pf(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...pf(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),Im=P(`$ZodEnum`,(e,t)=>{Lp.init(e,t);let n=Fd(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Qd.has(typeof e)).map(e=>typeof e==`string`?$d(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Lm=P(`$ZodLiteral`,(e,t)=>{if(Lp.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?$d(e):e?$d(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Rm=P(`$ZodTransform`,(e,t)=>{Lp.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Md(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new jd;return n.value=i,n.fallback=!0,n}});function zm(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Bm=P(`$ZodOptional`,(e,t)=>{Lp.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Hd(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Hd(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${zd(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>zm(e,r)):zm(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Vm=P(`$ZodExactOptional`,(e,t)=>{Bm.init(e,t),Hd(e._zod,`values`,()=>t.innerType._zod.values),Hd(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Hm=P(`$ZodNullable`,(e,t)=>{Lp.init(e,t),Hd(e._zod,`optin`,()=>t.innerType._zod.optin),Hd(e._zod,`optout`,()=>t.innerType._zod.optout),Hd(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${zd(e.source)}|null)$`):void 0}),Hd(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Um=P(`$ZodDefault`,(e,t)=>{Lp.init(e,t),e._zod.optin=`optional`,Hd(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Wm(e,t)):Wm(r,t)}});function Wm(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Gm=P(`$ZodPrefault`,(e,t)=>{Lp.init(e,t),e._zod.optin=`optional`,Hd(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Km=P(`$ZodNonOptional`,(e,t)=>{Lp.init(e,t),Hd(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>qm(t,e)):qm(i,e)}});function qm(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var Jm=P(`$ZodCatch`,(e,t)=>{Lp.init(e,t),e._zod.optin=`optional`,Hd(e._zod,`optout`,()=>t.innerType._zod.optout),Hd(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>hf(e,n,Pd()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>hf(e,n,Pd()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),Ym=P(`$ZodPipe`,(e,t)=>{Lp.init(e,t),Hd(e._zod,`values`,()=>t.in._zod.values),Hd(e._zod,`optin`,()=>t.in._zod.optin),Hd(e._zod,`optout`,()=>t.out._zod.optout),Hd(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Xm(e,t.in,n)):Xm(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Xm(e,t.out,n)):Xm(r,t.out,n)}});function Xm(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var Zm=P(`$ZodReadonly`,(e,t)=>{Lp.init(e,t),Hd(e._zod,`propValues`,()=>t.innerType._zod.propValues),Hd(e._zod,`values`,()=>t.innerType._zod.values),Hd(e._zod,`optin`,()=>t.innerType?._zod?.optin),Hd(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Qm):Qm(r)}});function Qm(e){return e.value=Object.freeze(e.value),e}var $m=P(`$ZodCustom`,(e,t)=>{vp.init(e,t),Lp.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>eh(t,n,r,e));eh(i,n,r,e)}});function eh(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(_f(e))}}var th,nh=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function rh(){return new nh}(th=globalThis).__zod_globalRegistry??(th.__zod_globalRegistry=rh());var ih=globalThis.__zod_globalRegistry;function ah(e,t){return new e({type:`string`,...F(t)})}function oh(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...F(t)})}function sh(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...F(t)})}function ch(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...F(t)})}function lh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...F(t)})}function uh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...F(t)})}function dh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...F(t)})}function fh(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...F(t)})}function ph(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...F(t)})}function mh(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...F(t)})}function hh(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...F(t)})}function gh(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...F(t)})}function _h(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...F(t)})}function vh(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...F(t)})}function yh(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...F(t)})}function bh(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...F(t)})}function xh(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...F(t)})}function Sh(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...F(t)})}function Ch(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...F(t)})}function wh(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...F(t)})}function Th(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...F(t)})}function Eh(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...F(t)})}function Dh(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...F(t)})}function Oh(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...F(t)})}function kh(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...F(t)})}function Ah(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...F(t)})}function jh(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...F(t)})}function Mh(e,t){return new e({type:`number`,checks:[],...F(t)})}function Nh(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...F(t)})}function Ph(e,t){return new e({type:`boolean`,...F(t)})}function Fh(e){return new e({type:`any`})}function Ih(e){return new e({type:`unknown`})}function Lh(e,t){return new e({type:`never`,...F(t)})}function Rh(e,t){return new bp({check:`less_than`,...F(t),value:e,inclusive:!1})}function zh(e,t){return new bp({check:`less_than`,...F(t),value:e,inclusive:!0})}function Bh(e,t){return new xp({check:`greater_than`,...F(t),value:e,inclusive:!1})}function Vh(e,t){return new xp({check:`greater_than`,...F(t),value:e,inclusive:!0})}function Hh(e,t){return new Sp({check:`multiple_of`,...F(t),value:e})}function Uh(e,t){return new wp({check:`max_length`,...F(t),maximum:e})}function Wh(e,t){return new Tp({check:`min_length`,...F(t),minimum:e})}function Gh(e,t){return new Ep({check:`length_equals`,...F(t),length:e})}function Kh(e,t){return new Op({check:`string_format`,format:`regex`,...F(t),pattern:e})}function qh(e){return new kp({check:`string_format`,format:`lowercase`,...F(e)})}function Jh(e){return new Ap({check:`string_format`,format:`uppercase`,...F(e)})}function Yh(e,t){return new jp({check:`string_format`,format:`includes`,...F(t),includes:e})}function Xh(e,t){return new Mp({check:`string_format`,format:`starts_with`,...F(t),prefix:e})}function Zh(e,t){return new Np({check:`string_format`,format:`ends_with`,...F(t),suffix:e})}function Qh(e){return new Pp({check:`overwrite`,tx:e})}function $h(e){return Qh(t=>t.normalize(e))}function eg(){return Qh(e=>e.trim())}function tg(){return Qh(e=>e.toLowerCase())}function ng(){return Qh(e=>e.toUpperCase())}function rg(){return Qh(e=>Kd(e))}function ig(e,t,n){return new e({type:`array`,element:t,...F(n)})}function ag(e,t,n){let r=F(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function og(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...F(n)})}function sg(e,t){let n=cg(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(_f(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(_f(r))}},e(t.value,t)),t);return n}function cg(e,t){let n=new vp({check:`custom`,...F(t)});return n._zod.check=e,n}function lg(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??ih,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function ug(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,ug(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&pg(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function dg(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
|
|
90
|
+
|
|
91
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function fg(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:hg(t,`input`,e.processors),output:hg(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function pg(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return pg(r.element,n);if(r.type===`set`)return pg(r.valueType,n);if(r.type===`lazy`)return pg(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return pg(r.innerType,n);if(r.type===`intersection`)return pg(r.left,n)||pg(r.right,n);if(r.type===`record`||r.type===`map`)return pg(r.keyType,n)||pg(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:pg(r.in,n)||pg(r.out,n);if(r.type===`object`){for(let e in r.shape)if(pg(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(pg(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(pg(e,n))return!0;return!!(r.rest&&pg(r.rest,n))}return!1}var mg=(e,t={})=>n=>{let r=lg({...n,processors:t});return ug(e,r),dg(r,e),fg(r,e)},hg=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=lg({...i??{},target:a,io:t,processors:n});return ug(e,o),dg(o,e),fg(o,e)},gg={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},_g=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=gg[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},vg=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},yg=(e,t,n,r)=>{n.type=`boolean`},bg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`)},xg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`)},Sg=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Cg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`)},wg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`)},Tg=(e,t,n,r)=>{n.not={}},Eg=(e,t,n,r)=>{},Dg=(e,t,n,r)=>{},Og=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`)},kg=(e,t,n,r)=>{let i=e._zod.def,a=Fd(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Ag=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},jg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`)},Mg=(e,t,n,r)=>{let i=n,a=e._zod.pattern;if(!a)throw Error(`Pattern not found in template literal`);i.type=`string`,i.pattern=a.source},Ng=(e,t,n,r)=>{let i=n,a={type:`string`,format:`binary`,contentEncoding:`binary`},{minimum:o,maximum:s,mime:c}=e._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(e=>({contentMediaType:e}))):Object.assign(i,a)},Pg=(e,t,n,r)=>{n.type=`boolean`},Fg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Ig=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`)},Lg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Rg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`)},zg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`)},Bg=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=ug(a.element,t,{...r,path:[...r.path,`items`]})},Vg=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=ug(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=ug(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Hg=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>ug(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Ug=(e,t,n,r)=>{let i=e._zod.def,a=ug(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=ug(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},Wg=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>ug(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?ug(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},Gg=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=ug(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=ug(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=ug(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},Kg=(e,t,n,r)=>{let i=e._zod.def,a=ug(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},qg=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Jg=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Yg=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},Xg=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},Zg=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;ug(o,t,r);let s=t.seen.get(e);s.ref=o},Qg=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},$g=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},e_=(e,t,n,r)=>{let i=e._zod.def;ug(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},t_={string:_g,number:vg,boolean:yg,bigint:bg,symbol:xg,null:Sg,undefined:Cg,void:wg,never:Tg,any:Eg,unknown:Dg,date:Og,enum:kg,literal:Ag,nan:jg,template_literal:Mg,file:Ng,success:Pg,custom:Fg,function:Ig,transform:Lg,map:Rg,set:zg,array:Bg,object:Vg,union:Hg,intersection:Ug,tuple:Wg,record:Gg,nullable:Kg,nonoptional:qg,default:Jg,prefault:Yg,catch:Xg,pipe:Zg,readonly:Qg,promise:$g,optional:e_,lazy:(e,t,n,r)=>{let i=e._zod.innerType;ug(i,t,r);let a=t.seen.get(e);a.ref=i}};function n_(e,t){if(`_idmap`in e){let n=e,r=lg({...t,processors:t_}),i={};for(let e of n._idmap.entries()){let[t,n]=e;ug(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;dg(r,n),a[t]=fg(r,n)}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=lg({...t,processors:t_});return ug(e,n),dg(n,e),fg(n,e)}function r_(e){if(typeof e!=`object`||!e)return!1;let t=e;if(!(`_zod`in t))return!1;let n=t._zod;return typeof n==`object`&&!!n&&`def`in n}function i_(e){if(typeof e!=`object`||!e)return!1;let t=e;if(!(`_def`in t)||`_zod`in t)return!1;let n=t._def;return typeof n==`object`&&!!n&&`typeName`in n}function a_(e){return r_(e)&&console.warn(`[WARNING] Attempting to use Zod 4 schema in a context where Zod 3 schema is expected. This may cause unexpected behavior.`),i_(e)}function o_(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:!!(r_(e)||i_(e))}function s_(e){return!!(typeof e==`object`&&e&&`_def`in e&&typeof e._def==`object`&&e._def!==null&&`typeName`in e._def&&e._def.typeName===`ZodLiteral`)}function c_(e){return r_(e)?!!(typeof e==`object`&&e&&`_zod`in e&&typeof e._zod==`object`&&e._zod!==null&&`def`in e._zod&&typeof e._zod.def==`object`&&e._zod.def!==null&&`type`in e._zod.def&&e._zod.def.type===`literal`):!1}function l_(e){return!!(s_(e)||c_(e))}async function u_(e,t){if(r_(e))try{return{success:!0,data:await Of(e,t)}}catch(e){return{success:!1,error:e}}if(i_(e))return await e.safeParseAsync(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}async function d_(e,t){if(r_(e))return await Of(e,t);if(i_(e))return await e.parseAsync(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function f_(e,t){if(r_(e))try{return{success:!0,data:Ef(e,t)}}catch(e){return{success:!1,error:e}}if(i_(e))return e.safeParse(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function p_(e,t){if(r_(e))return Ef(e,t);if(i_(e))return e.parse(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function m_(e){if(r_(e))return ih.get(e)?.description;if(i_(e)||`description`in e&&typeof e.description==`string`)return e.description}function h_(e){if(!o_(e))return!1;if(i_(e)){let t=e._def;if(t.typeName===`ZodObject`){let t=e;return!t.shape||Object.keys(t.shape).length===0}if(t.typeName===`ZodRecord`)return!0}if(r_(e)){let t=e._zod.def;if(t.type===`object`){let t=e;return!t.shape||Object.keys(t.shape).length===0}if(t.type===`record`)return!0}return!!(typeof e==`object`&&e&&!(`shape`in e))}function g_(e){return o_(e)?i_(e)?e._def.typeName===`ZodString`:r_(e)?e._zod.def.type===`string`:!1:!1}function __(e){return!!(typeof e==`object`&&e&&`_def`in e&&typeof e._def==`object`&&e._def!==null&&`typeName`in e._def&&e._def.typeName===`ZodObject`)}function v_(e){return r_(e)?!!(typeof e==`object`&&e&&`_zod`in e&&typeof e._zod==`object`&&e._zod!==null&&`def`in e._zod&&typeof e._zod.def==`object`&&e._zod.def!==null&&`type`in e._zod.def&&e._zod.def.type===`object`):!1}function y_(e){return r_(e)?!!(typeof e==`object`&&e&&`_zod`in e&&typeof e._zod==`object`&&e._zod!==null&&`def`in e._zod&&typeof e._zod.def==`object`&&e._zod.def!==null&&`type`in e._zod.def&&e._zod.def.type===`array`):!1}function b_(e){return r_(e)?!!(typeof e==`object`&&e&&`_zod`in e&&typeof e._zod==`object`&&e._zod!==null&&`def`in e._zod&&typeof e._zod.def==`object`&&e._zod.def!==null&&`type`in e._zod.def&&e._zod.def.type===`optional`):!1}function x_(e){return r_(e)?!!(typeof e==`object`&&e&&`_zod`in e&&typeof e._zod==`object`&&e._zod!==null&&`def`in e._zod&&typeof e._zod.def==`object`&&e._zod.def!==null&&`type`in e._zod.def&&e._zod.def.type===`nullable`):!1}function S_(e){return!!(__(e)||v_(e))}function C_(e){if(i_(e))return e.shape;if(r_(e))return e._zod.def.shape;throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function w_(e,t){if(i_(e))return e.extend(t);if(r_(e))return of(e,t);throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function T_(e){if(i_(e))return e.partial();if(r_(e))return lf(Bm,e,void 0);throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function E_(e,t=!1){if(__(e))return e.strict();if(v_(e)){let n=e._zod.def.shape;if(t)for(let[r,i]of Object.entries(e._zod.def.shape)){if(v_(i))n[r]=E_(i,t);else if(y_(i)){let e=i._zod.def.element;v_(e)&&(e=E_(e,t)),n[r]=ef(i,{...i._zod.def,element:e})}else n[r]=i;let e=ih.get(i);e&&ih.add(n[r],e)}let r=ef(e,{...e._zod.def,shape:n,catchall:Lh(_m)}),i=ih.get(e);return i&&ih.add(r,i),r}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function D_(e,t=!1){if(__(e))return e.passthrough();if(v_(e)){let n=e._zod.def.shape;if(t)for(let[r,i]of Object.entries(e._zod.def.shape)){if(v_(i))n[r]=D_(i,t);else if(y_(i)){let e=i._zod.def.element;v_(e)&&(e=D_(e,t)),n[r]=ef(i,{...i._zod.def,element:e})}else n[r]=i;let e=ih.get(i);e&&ih.add(n[r],e)}let r=ef(e,{...e._zod.def,shape:n,catchall:Ih(gm)}),i=ih.get(e);return i&&ih.add(r,i),r}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function O_(e){if(i_(e))try{let t=e.parse(void 0);return()=>t}catch{return}if(r_(e))try{let t=Ef(e,void 0);return()=>t}catch{return}}function k_(e){return i_(e)&&`typeName`in e._def&&e._def.typeName===`ZodEffects`}function A_(e){return r_(e)&&e._zod.def.type===`pipe`}function j_(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(i_(e))return k_(e)?j_(e._def.schema,t,n):e;if(r_(e)){let r=e;if(A_(e)&&(r=j_(e._zod.def.in,t,n)),t){if(v_(r)){let e={};for(let[i,a]of Object.entries(r._zod.def.shape))e[i]=j_(a,t,n);r=ef(r,{...r._zod.def,shape:e})}else if(y_(r)){let e=j_(r._zod.def.element,t,n);r=ef(r,{...r._zod.def,element:e})}else if(b_(r)){let e=j_(r._zod.def.innerType,t,n);r=ef(r,{...r._zod.def,innerType:e})}else if(x_(r)){let e=j_(r._zod.def.innerType,t,n);r=ef(r,{...r._zod.def,innerType:e})}}let i=ih.get(e);return i&&ih.add(r,i),n.set(e,r),r}throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function M_(e,t=!1){return j_(e,t,new WeakMap)}function N_(e,t){if(i_(e)){let n=C_(e),r={};for(let[e,i]of Object.entries(n))t(e,i)?r[e]=i.optional():r[e]=i;return e.extend(r)}if(r_(e)){let n=C_(e),r={...e._zod.def.shape};for(let[e,i]of Object.entries(n))t(e,i)&&(r[e]=new Bm({type:`optional`,innerType:i}));let i=ef(e,{...e._zod.def,shape:r}),a=ih.get(e);return a&&ih.add(i,a),i}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function P_(e){return e instanceof Error&&(e.constructor.name===`ZodError`||e.constructor.name===`$ZodError`)}function F_(e){return e.replace(/[^a-zA-Z-_0-9]/g,`_`)}var I_=[`*`,`_`,"`"];function L_(e){let t=``;for(let[n,r]of Object.entries(e))t+=`\tclassDef ${n} ${r};\n`;return t}function R_(e,t,n){let{firstNode:r,lastNode:i,nodeColors:a,withStyles:o=!0,curveStyle:s=`linear`,wrapLabelNWords:c=9}=n??{},l=o?`%%{init: {'flowchart': {'curve': '${s}'}}}%%\ngraph TD;\n`:`graph TD;
|
|
92
|
+
`;if(o){let t=`default`,n={[t]:`{0}({1})`};r!==void 0&&(n[r]=`{0}([{1}]):::first`),i!==void 0&&(n[i]=`{0}([{1}]):::last`);for(let[r,i]of Object.entries(e)){let e=i.name.split(`:`).pop()??``,a=I_.some(t=>e.startsWith(t)&&e.endsWith(t))?`<p>${e}</p>`:e;Object.keys(i.metadata??{}).length&&(a+=`<hr/><small><em>${Object.entries(i.metadata??{}).map(([e,t])=>`${e} = ${t}`).join(`
|
|
93
|
+
`)}</em></small>`);let o=(n[r]??n[t]).replace(`{0}`,F_(r)).replace(`{1}`,a);l+=`\t${o}\n`}}let u={};for(let e of t){let t=e.source.split(`:`),n=e.target.split(`:`),r=t.filter((e,t)=>e===n[t]).join(`:`);u[r]||(u[r]=[]),u[r].push(e)}let d=new Set;function f(e){return[...e].sort((e,t)=>e.split(`:`).length-t.split(`:`).length)}function p(e,t){let n=e.length===1&&e[0].source===e[0].target;if(t&&!n){let e=t.split(`:`).pop();if(d.has(t))throw Error(`Found duplicate subgraph '${e}' at '${t} -- this likely means that you're reusing a subgraph node with the same name. Please adjust your graph to have subgraph nodes with unique names.`);d.add(t),l+=`\tsubgraph ${e}\n`}let r=f(Object.keys(u).filter(e=>e.startsWith(`${t}:`)&&e!==t&&e.split(`:`).length===t.split(`:`).length+1));for(let e of r)p(u[e],e);for(let t of e){let{source:e,target:n,data:r,conditional:i}=t,a=``;if(r!==void 0){let e=r,t=e.split(` `);t.length>c&&(e=Array.from({length:Math.ceil(t.length/c)},(e,n)=>t.slice(n*c,(n+1)*c).join(` `)).join(` <br> `)),a=i?` -. ${e} .-> `:` -- ${e} --> `}else a=i?` -.-> `:` --> `;l+=`\t${F_(e)}${a}${F_(n)};\n`}t&&!n&&(l+=` end
|
|
94
|
+
`)}p(u[``]??[],``);for(let e in u)!e.includes(`:`)&&e!==``&&p(u[e],e);return o&&(l+=L_(a??{})),l}async function z_(e,t){let n=t?.backgroundColor??`white`,r=t?.imageType??`png`,i=kd(e);n!==void 0&&(/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(n)||(n=`!${n}`));let a=`https://mermaid.ink/img/${i}?bgColor=${n}&type=${r}`,o=await fetch(a);if(!o.ok)throw Error([`Failed to render the graph using the Mermaid.INK API.`,`Status code: ${o.status}`,`Status text: ${o.statusText}`].join(`
|
|
95
|
+
`));return await o.blob()}var B_=Symbol(`Let zodToJsonSchema decide on which parser to use`),V_={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,target:`jsonSchema7`,strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`,openAiAnyTypeName:`OpenAiAnyType`},H_=e=>typeof e==`string`?{...V_,name:e}:{...V_,...e},U_=e=>{let t=H_(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}},W_=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function G_(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?W_(t,e.currentPath):t.join(`/`)}}function K_(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function q_(e,t,n,r,i){e[t]=n,K_(e,t,r,i)}var J_;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(J_||={});var Y_;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Y_||={});var I=J_.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),X_=e=>{switch(typeof e){case`undefined`:return I.undefined;case`string`:return I.string;case`number`:return Number.isNaN(e)?I.nan:I.number;case`boolean`:return I.boolean;case`function`:return I.function;case`bigint`:return I.bigint;case`symbol`:return I.symbol;case`object`:return Array.isArray(e)?I.array:e===null?I.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?I.promise:typeof Map<`u`&&e instanceof Map?I.map:typeof Set<`u`&&e instanceof Set?I.set:typeof Date<`u`&&e instanceof Date?I.date:I.object;default:return I.unknown}},L=J_.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),Z_=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,J_.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};Z_.create=e=>new Z_(e);var Q_=(e,t)=>{let n;switch(e.code){case L.invalid_type:n=e.received===I.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case L.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,J_.jsonStringifyReplacer)}`;break;case L.unrecognized_keys:n=`Unrecognized key(s) in object: ${J_.joinValues(e.keys,`, `)}`;break;case L.invalid_union:n=`Invalid input`;break;case L.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${J_.joinValues(e.options)}`;break;case L.invalid_enum_value:n=`Invalid enum value. Expected ${J_.joinValues(e.options)}, received '${e.received}'`;break;case L.invalid_arguments:n=`Invalid function arguments`;break;case L.invalid_return_type:n=`Invalid function return type`;break;case L.invalid_date:n=`Invalid date`;break;case L.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:J_.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case L.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case L.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case L.custom:n=`Invalid input`;break;case L.invalid_intersection_types:n=`Intersection results could not be merged`;break;case L.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case L.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,J_.assertNever(e)}return{message:n}},$_=Q_;function ev(){return $_}var tv=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function R(e,t){let n=ev(),r=tv({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Q_?void 0:Q_].filter(e=>!!e)});e.common.issues.push(r)}var nv=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return z;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return z;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},z=Object.freeze({status:`aborted`}),rv=e=>({status:`dirty`,value:e}),iv=e=>({status:`valid`,value:e}),av=e=>e.status===`aborted`,ov=e=>e.status===`dirty`,sv=e=>e.status===`valid`,cv=e=>typeof Promise<`u`&&e instanceof Promise,B;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(B||={});var lv=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},uv=(e,t)=>{if(sv(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new Z_(e.common.issues);return this._error=t,this._error}}};function V(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var dv=class{get description(){return this._def.description}_getType(e){return X_(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:X_(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new nv,ctx:{common:e.parent.common,data:e.data,parsedType:X_(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(cv(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:X_(e)};return uv(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:X_(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return sv(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>sv(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:X_(e)},r=this._parse({data:e,path:n.path,parent:n});return uv(n,await(cv(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:L.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new my({schema:this,typeName:H.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return hy.create(this,this._def)}nullable(){return gy.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Yv.create(this)}promise(){return py.create(this,this._def)}or(e){return Qv.create([this,e],this._def)}and(e){return ny.create(this,e,this._def)}transform(e){return new my({...V(this._def),schema:this,typeName:H.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new _y({...V(this._def),innerType:this,defaultValue:t,typeName:H.ZodDefault})}brand(){return new by({typeName:H.ZodBranded,type:this,...V(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new vy({...V(this._def),innerType:this,catchValue:t,typeName:H.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return xy.create(this,e)}readonly(){return Sy.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},fv=/^c[^\s-]{8,}$/i,pv=/^[0-9a-z]+$/,mv=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hv=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,gv=/^[a-z0-9_-]{21}$/i,_v=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vv=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,yv=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bv=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,xv,Sv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Cv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,wv=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Tv=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ev=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dv=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ov=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,kv=RegExp(`^${Ov}$`);function Av(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function jv(e){return RegExp(`^${Av(e)}$`)}function Mv(e){let t=`${Ov}T${Av(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Nv(e,t){return!!((t===`v4`||!t)&&Sv.test(e)||(t===`v6`||!t)&&wv.test(e))}function Pv(e,t){if(!_v.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Fv(e,t){return!!((t===`v4`||!t)&&Cv.test(e)||(t===`v6`||!t)&&Tv.test(e))}var Iv=class e extends dv{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==I.string){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.string,received:t.parsedType}),z}let t=new nv,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),R(n,{code:L.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),R(n,{code:L.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?R(n,{code:L.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&R(n,{code:L.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)yv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`email`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)xv||=new RegExp(bv,`u`),xv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`emoji`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)hv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`uuid`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)gv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`nanoid`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)fv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`cuid`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)pv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`cuid2`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)mv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`ulid`,code:L.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),R(n,{validation:`url`,code:L.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`regex`,code:L.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Mv(r).test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?kv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?jv(r).test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?vv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`duration`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Nv(e.data,r.version)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`ip`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Pv(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`jwt`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Fv(e.data,r.version)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`cidr`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Ev.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`base64`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Dv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`base64url`,code:L.invalid_string,message:r.message}),t.dirty()):J_.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:L.invalid_string,...B.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...B.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...B.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...B.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...B.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...B.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...B.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...B.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...B.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...B.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...B.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...B.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...B.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...B.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...B.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...B.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...B.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...B.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...B.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...B.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...B.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...B.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...B.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...B.errToObj(t)})}nonempty(e){return this.min(1,B.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Iv.create=e=>new Iv({checks:[],typeName:H.ZodString,coerce:e?.coerce??!1,...V(e)});function Lv(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var Rv=class e extends dv{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==I.number){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.number,received:t.parsedType}),z}let t,n=new nv;for(let r of this._def.checks)r.kind===`int`?J_.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),R(t,{code:L.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Lv(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),R(t,{code:L.not_finite,message:r.message}),n.dirty()):J_.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,B.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,B.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,B.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,B.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:B.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:B.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:B.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:B.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:B.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&J_.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};Rv.create=e=>new Rv({checks:[],typeName:H.ZodNumber,coerce:e?.coerce||!1,...V(e)});var zv=class e extends dv{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==I.bigint)return this._getInvalidInput(e);let t,n=new nv;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),R(t,{code:L.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):J_.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.bigint,received:t.parsedType}),z}gte(e,t){return this.setLimit(`min`,e,!0,B.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,B.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,B.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,B.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:B.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};zv.create=e=>new zv({checks:[],typeName:H.ZodBigInt,coerce:e?.coerce??!1,...V(e)});var Bv=class extends dv{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==I.boolean){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.boolean,received:t.parsedType}),z}return iv(e.data)}};Bv.create=e=>new Bv({typeName:H.ZodBoolean,coerce:e?.coerce||!1,...V(e)});var Vv=class e extends dv{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==I.date){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.date,received:t.parsedType}),z}if(Number.isNaN(e.data.getTime()))return R(this._getOrReturnCtx(e),{code:L.invalid_date}),z;let t=new nv,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),R(n,{code:L.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),R(n,{code:L.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):J_.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:B.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:B.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Vv.create=e=>new Vv({checks:[],coerce:e?.coerce||!1,typeName:H.ZodDate,...V(e)});var Hv=class extends dv{_parse(e){if(this._getType(e)!==I.symbol){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.symbol,received:t.parsedType}),z}return iv(e.data)}};Hv.create=e=>new Hv({typeName:H.ZodSymbol,...V(e)});var Uv=class extends dv{_parse(e){if(this._getType(e)!==I.undefined){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.undefined,received:t.parsedType}),z}return iv(e.data)}};Uv.create=e=>new Uv({typeName:H.ZodUndefined,...V(e)});var Wv=class extends dv{_parse(e){if(this._getType(e)!==I.null){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.null,received:t.parsedType}),z}return iv(e.data)}};Wv.create=e=>new Wv({typeName:H.ZodNull,...V(e)});var Gv=class extends dv{constructor(){super(...arguments),this._any=!0}_parse(e){return iv(e.data)}};Gv.create=e=>new Gv({typeName:H.ZodAny,...V(e)});var Kv=class extends dv{constructor(){super(...arguments),this._unknown=!0}_parse(e){return iv(e.data)}};Kv.create=e=>new Kv({typeName:H.ZodUnknown,...V(e)});var qv=class extends dv{_parse(e){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.never,received:t.parsedType}),z}};qv.create=e=>new qv({typeName:H.ZodNever,...V(e)});var Jv=class extends dv{_parse(e){if(this._getType(e)!==I.undefined){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.void,received:t.parsedType}),z}return iv(e.data)}};Jv.create=e=>new Jv({typeName:H.ZodVoid,...V(e)});var Yv=class e extends dv{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==I.array)return R(t,{code:L.invalid_type,expected:I.array,received:t.parsedType}),z;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(R(t,{code:e?L.too_big:L.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(R(t,{code:L.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(R(t,{code:L.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new lv(t,e,t.path,n)))).then(e=>nv.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new lv(t,e,t.path,n)));return nv.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:B.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:B.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:B.toString(n)}})}nonempty(e){return this.min(1,e)}};Yv.create=(e,t)=>new Yv({type:e,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...V(t)});function Xv(e){if(e instanceof Zv){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=hy.create(Xv(r))}return new Zv({...e._def,shape:()=>t})}else if(e instanceof Yv)return new Yv({...e._def,type:Xv(e.element)});else if(e instanceof hy)return hy.create(Xv(e.unwrap()));else if(e instanceof gy)return gy.create(Xv(e.unwrap()));else if(e instanceof ry)return ry.create(e.items.map(e=>Xv(e)));else return e}var Zv=class e extends dv{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=J_.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==I.object){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.object,received:t.parsedType}),z}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof qv&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new lv(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof qv){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(R(n,{code:L.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new lv(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>nv.mergeObjectSync(t,e)):nv.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:B.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:H.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of J_.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of J_.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return Xv(this)}partial(t){let n={};for(let e of J_.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of J_.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof hy;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return uy(J_.objectKeys(this.shape))}};Zv.create=(e,t)=>new Zv({shape:()=>e,unknownKeys:`strip`,catchall:qv.create(),typeName:H.ZodObject,...V(t)}),Zv.strictCreate=(e,t)=>new Zv({shape:()=>e,unknownKeys:`strict`,catchall:qv.create(),typeName:H.ZodObject,...V(t)}),Zv.lazycreate=(e,t)=>new Zv({shape:e,unknownKeys:`strip`,catchall:qv.create(),typeName:H.ZodObject,...V(t)});var Qv=class extends dv{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new Z_(e.ctx.common.issues));return R(t,{code:L.invalid_union,unionErrors:n}),z}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new Z_(e));return R(t,{code:L.invalid_union,unionErrors:i}),z}}get options(){return this._def.options}};Qv.create=(e,t)=>new Qv({options:e,typeName:H.ZodUnion,...V(t)});var $v=e=>e instanceof cy?$v(e.schema):e instanceof my?$v(e.innerType()):e instanceof ly?[e.value]:e instanceof dy?e.options:e instanceof fy?J_.objectValues(e.enum):e instanceof _y?$v(e._def.innerType):e instanceof Uv?[void 0]:e instanceof Wv?[null]:e instanceof hy?[void 0,...$v(e.unwrap())]:e instanceof gy?[null,...$v(e.unwrap())]:e instanceof by||e instanceof Sy?$v(e.unwrap()):e instanceof vy?$v(e._def.innerType):[],ey=class e extends dv{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==I.object)return R(t,{code:L.invalid_type,expected:I.object,received:t.parsedType}),z;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(R(t,{code:L.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=$v(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:H.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...V(r)})}};function ty(e,t){let n=X_(e),r=X_(t);if(e===t)return{valid:!0,data:e};if(n===I.object&&r===I.object){let n=J_.objectKeys(t),r=J_.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=ty(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===I.array&&r===I.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=ty(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===I.date&&r===I.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var ny=class extends dv{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(av(e)||av(r))return z;let i=ty(e.value,r.value);return i.valid?((ov(e)||ov(r))&&t.dirty(),{status:t.value,value:i.data}):(R(n,{code:L.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};ny.create=(e,t,n)=>new ny({left:e,right:t,typeName:H.ZodIntersection,...V(n)});var ry=class e extends dv{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==I.array)return R(n,{code:L.invalid_type,expected:I.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return R(n,{code:L.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),z;!this._def.rest&&n.data.length>this._def.items.length&&(R(n,{code:L.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new lv(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>nv.mergeArray(t,e)):nv.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ry.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new ry({items:e,typeName:H.ZodTuple,rest:null,...V(t)})};var iy=class e extends dv{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==I.object)return R(n,{code:L.invalid_type,expected:I.object,received:n.parsedType}),z;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new lv(n,e,n.path,e)),value:a._parse(new lv(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?nv.mergeObjectAsync(t,r):nv.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof dv?new e({keyType:t,valueType:n,typeName:H.ZodRecord,...V(r)}):new e({keyType:Iv.create(),valueType:t,typeName:H.ZodRecord,...V(n)})}},ay=class extends dv{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==I.map)return R(n,{code:L.invalid_type,expected:I.map,received:n.parsedType}),z;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new lv(n,e,n.path,[a,`key`])),value:i._parse(new lv(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return z;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return z;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};ay.create=(e,t,n)=>new ay({valueType:t,keyType:e,typeName:H.ZodMap,...V(n)});var oy=class e extends dv{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==I.set)return R(n,{code:L.invalid_type,expected:I.set,received:n.parsedType}),z;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(R(n,{code:L.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(R(n,{code:L.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return z;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new lv(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:B.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:B.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};oy.create=(e,t)=>new oy({valueType:e,minSize:null,maxSize:null,typeName:H.ZodSet,...V(t)});var sy=class e extends dv{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==I.function)return R(t,{code:L.invalid_type,expected:I.function,received:t.parsedType}),z;function n(e,n){return tv({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ev(),Q_].filter(e=>!!e),issueData:{code:L.invalid_arguments,argumentsError:n}})}function r(e,n){return tv({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ev(),Q_].filter(e=>!!e),issueData:{code:L.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof py){let e=this;return iv(async function(...t){let o=new Z_([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return iv(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new Z_([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new Z_([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ry.create(t).rest(Kv.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||ry.create([]).rest(Kv.create()),returns:n||Kv.create(),typeName:H.ZodFunction,...V(r)})}},cy=class extends dv{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};cy.create=(e,t)=>new cy({getter:e,typeName:H.ZodLazy,...V(t)});var ly=class extends dv{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return R(t,{received:t.data,code:L.invalid_literal,expected:this._def.value}),z}return{status:`valid`,value:e.data}}get value(){return this._def.value}};ly.create=(e,t)=>new ly({value:e,typeName:H.ZodLiteral,...V(t)});function uy(e,t){return new dy({values:e,typeName:H.ZodEnum,...V(t)})}var dy=class e extends dv{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return R(t,{expected:J_.joinValues(n),received:t.parsedType,code:L.invalid_type}),z}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return R(t,{received:t.data,code:L.invalid_enum_value,options:n}),z}return iv(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};dy.create=uy;var fy=class extends dv{_parse(e){let t=J_.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==I.string&&n.parsedType!==I.number){let e=J_.objectValues(t);return R(n,{expected:J_.joinValues(e),received:n.parsedType,code:L.invalid_type}),z}if(this._cache||=new Set(J_.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=J_.objectValues(t);return R(n,{received:n.data,code:L.invalid_enum_value,options:e}),z}return iv(e.data)}get enum(){return this._def.values}};fy.create=(e,t)=>new fy({values:e,typeName:H.ZodNativeEnum,...V(t)});var py=class extends dv{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==I.promise&&t.common.async===!1?(R(t,{code:L.invalid_type,expected:I.promise,received:t.parsedType}),z):iv((t.parsedType===I.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};py.create=(e,t)=>new py({type:e,typeName:H.ZodPromise,...V(t)});var my=class extends dv{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{R(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return z;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?z:r.status===`dirty`||t.value===`dirty`?rv(r.value):r});{if(t.value===`aborted`)return z;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?z:r.status===`dirty`||t.value===`dirty`?rv(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?z:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?z:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!sv(e))return z;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>sv(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):z);J_.assertNever(r)}};my.create=(e,t,n)=>new my({schema:e,typeName:H.ZodEffects,effect:t,...V(n)}),my.createWithPreprocess=(e,t,n)=>new my({schema:t,effect:{type:`preprocess`,transform:e},typeName:H.ZodEffects,...V(n)});var hy=class extends dv{_parse(e){return this._getType(e)===I.undefined?iv(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};hy.create=(e,t)=>new hy({innerType:e,typeName:H.ZodOptional,...V(t)});var gy=class extends dv{_parse(e){return this._getType(e)===I.null?iv(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};gy.create=(e,t)=>new gy({innerType:e,typeName:H.ZodNullable,...V(t)});var _y=class extends dv{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===I.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};_y.create=(e,t)=>new _y({innerType:e,typeName:H.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...V(t)});var vy=class extends dv{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return cv(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new Z_(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new Z_(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};vy.create=(e,t)=>new vy({innerType:e,typeName:H.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...V(t)});var yy=class extends dv{_parse(e){if(this._getType(e)!==I.nan){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.nan,received:t.parsedType}),z}return{status:`valid`,value:e.data}}};yy.create=e=>new yy({typeName:H.ZodNaN,...V(e)});var by=class extends dv{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},xy=class e extends dv{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?z:e.status===`dirty`?(t.dirty(),rv(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?z:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:H.ZodPipeline})}},Sy=class extends dv{_parse(e){let t=this._def.innerType._parse(e),n=e=>(sv(e)&&(e.value=Object.freeze(e.value)),e);return cv(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Sy.create=(e,t)=>new Sy({innerType:e,typeName:H.ZodReadonly,...V(t)}),Zv.lazycreate;var H;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(H||={});var Cy=Iv.create;Rv.create,yy.create,zv.create,Bv.create,Vv.create,Hv.create,Uv.create,Wv.create;var wy=Gv.create;Kv.create,qv.create,Jv.create,Yv.create;var Ty=Zv.create;Zv.strictCreate,Qv.create,ey.create,ny.create,ry.create,iy.create,ay.create,oy.create,sy.create,cy.create,ly.create,dy.create,fy.create,py.create,my.create,hy.create,gy.create,my.createWithPreprocess,xy.create;function Ey(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==H.ZodAny&&(n.items=gb(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&q_(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&q_(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(q_(n,`minItems`,e.exactLength.value,e.exactLength.message,t),q_(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function Dy(e,t){let n={type:`integer`,format:`int64`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`min`:t.target===`jsonSchema7`?r.inclusive?q_(n,`minimum`,r.value,r.message,t):q_(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),q_(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?q_(n,`maximum`,r.value,r.message,t):q_(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),q_(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:q_(n,`multipleOf`,r.value,r.message,t);break}return n}function Oy(){return{type:`boolean`}}function ky(e,t){return gb(e.type._def,t)}var Ay=(e,t)=>gb(e.innerType._def,t);function jy(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map(n=>jy(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return My(e,t)}}var My=(e,t)=>{let n={type:`integer`,format:`unix-time`};if(t.target===`openApi3`)return n;for(let r of e.checks)switch(r.kind){case`min`:q_(n,`minimum`,r.value,r.message,t);break;case`max`:q_(n,`maximum`,r.value,r.message,t);break}return n};function Ny(e,t){return{...gb(e.innerType._def,t),default:e.defaultValue()}}function Py(e,t){return t.effectStrategy===`input`?gb(e.schema._def,t):G_(t)}function Fy(e){return{type:`string`,enum:Array.from(e.values)}}var Iy=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function Ly(e,t){let n=[gb(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),gb(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=t.target===`jsonSchema2019-09`?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(e=>{if(Iy(e))i.push(...e.allOf),e.unevaluatedProperties===void 0&&(r=void 0);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}else r=void 0;i.push(t)}}),i.length?{allOf:i,...r}:void 0}function Ry(e,t){let n=typeof e.value;return n!==`bigint`&&n!==`number`&&n!==`boolean`&&n!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:t.target===`openApi3`?{type:n===`bigint`?`integer`:n,enum:[e.value]}:{type:n===`bigint`?`integer`:n,const:e.value}}var zy=void 0,By={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(zy===void 0&&(zy=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),zy),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Vy(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:q_(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:q_(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`email`:switch(t.emailStrategy){case`format:email`:Gy(n,`email`,r.message,t);break;case`format:idn-email`:Gy(n,`idn-email`,r.message,t);break;case`pattern:zod`:Ky(n,By.email,r.message,t);break}break;case`url`:Gy(n,`uri`,r.message,t);break;case`uuid`:Gy(n,`uuid`,r.message,t);break;case`regex`:Ky(n,r.regex,r.message,t);break;case`cuid`:Ky(n,By.cuid,r.message,t);break;case`cuid2`:Ky(n,By.cuid2,r.message,t);break;case`startsWith`:Ky(n,RegExp(`^${Hy(r.value,t)}`),r.message,t);break;case`endsWith`:Ky(n,RegExp(`${Hy(r.value,t)}$`),r.message,t);break;case`datetime`:Gy(n,`date-time`,r.message,t);break;case`date`:Gy(n,`date`,r.message,t);break;case`time`:Gy(n,`time`,r.message,t);break;case`duration`:Gy(n,`duration`,r.message,t);break;case`length`:q_(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),q_(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:Ky(n,RegExp(Hy(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&Gy(n,`ipv4`,r.message,t),r.version!==`v4`&&Gy(n,`ipv6`,r.message,t);break;case`base64url`:Ky(n,By.base64url,r.message,t);break;case`jwt`:Ky(n,By.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&Ky(n,By.ipv4Cidr,r.message,t),r.version!==`v4`&&Ky(n,By.ipv6Cidr,r.message,t);break;case`emoji`:Ky(n,By.emoji(),r.message,t);break;case`ulid`:Ky(n,By.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:Gy(n,`binary`,r.message,t);break;case`contentEncoding:base64`:q_(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:Ky(n,By.base64,r.message,t);break}break;case`nanoid`:Ky(n,By.nanoid,r.message,t);break;case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}function Hy(e,t){return t.patternStrategy===`escape`?Wy(e):e}var Uy=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function Wy(e){let t=``;for(let n=0;n<e.length;n++)Uy.has(e[n])||(t+=`\\`),t+=e[n];return t}function Gy(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):q_(e,`format`,t,n,r)}function Ky(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:qy(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):q_(e,`pattern`,qy(t,r),n,r)}function qy(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
|
|
96
|
+
]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
|
|
97
|
+
]))`;continue}}if(n.s&&r[e]===`.`){i+=o?`${r[e]}\r\n`:`[${r[e]}\r\n]`;continue}i+=r[e],r[e]===`\\`?a=!0:o&&r[e]===`]`?o=!1:!o&&r[e]===`[`&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function Jy(e,t){if(t.target===`openAi`&&console.warn(`Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.`),t.target===`openApi3`&&e.keyType?._def.typeName===H.ZodEnum)return{type:`object`,required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,r)=>({...n,[r]:gb(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??G_(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:`object`,additionalProperties:gb(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(t.target===`openApi3`)return n;if(e.keyType?._def.typeName===H.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=Vy(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===H.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===H.ZodBranded&&e.keyType._def.type._def.typeName===H.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=ky(e.keyType._def,t);return{...n,propertyNames:i}}return n}function Yy(e,t){return t.mapStrategy===`record`?Jy(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[gb(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||G_(t),gb(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||G_(t)],minItems:2,maxItems:2}}}function Xy(e){let t=e.values,n=Object.keys(e.values).filter(e=>typeof t[t[e]]!=`number`).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:r.length===1?r[0]===`string`?`string`:`number`:[`string`,`number`],enum:n}}function Zy(e){return e.target===`openAi`?void 0:{not:G_({...e,currentPath:[...e.currentPath,`not`]})}}function Qy(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}var $y={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function eb(e,t){if(t.target===`openApi3`)return tb(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in $y&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=$y[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}else if(n.every(e=>e._def.typeName===`ZodLiteral`&&!e.description)){let e=n.reduce((e,t)=>{let n=typeof t._def.value;switch(n){case`string`:case`number`:case`boolean`:return[...e,n];case`bigint`:return[...e,`integer`];case`object`:return t._def.value===null?[...e,`null`]:e;default:return e}},[]);if(e.length===n.length){let t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>e._def.typeName===`ZodEnum`))return{type:`string`,enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return tb(e,t)}var tb=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>gb(e._def,{...t,currentPath:[...t.currentPath,`anyOf`,`${n}`]})).filter(e=>!!e&&(!t.strictUnions||typeof e==`object`&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0};function nb(e,t){if([`ZodString`,`ZodNumber`,`ZodBigInt`,`ZodBoolean`,`ZodNull`].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target===`openApi3`?{type:$y[e.innerType._def.typeName],nullable:!0}:{type:[$y[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let n=gb(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&`$ref`in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let n=gb(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function rb(e,t){let n={type:`number`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`int`:n.type=`integer`,K_(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?q_(n,`minimum`,r.value,r.message,t):q_(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),q_(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?q_(n,`maximum`,r.value,r.message,t):q_(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),q_(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:q_(n,`multipleOf`,r.value,r.message,t);break}return n}function ib(e,t){let n=t.target===`openAi`,r={type:`object`,properties:{}},i=[],a=e.shape();for(let e in a){let o=a[e];if(o===void 0||o._def===void 0)continue;let s=ob(o);s&&n&&(o._def.typeName===`ZodOptional`&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),s=!1);let c=gb(o._def,{...t,currentPath:[...t.currentPath,`properties`,e],propertyPath:[...t.currentPath,`properties`,e]});c!==void 0&&(r.properties[e]=c,s||i.push(e))}i.length&&(r.required=i);let o=ab(e,t);return o!==void 0&&(r.additionalProperties=o),r}function ab(e,t){if(e.catchall._def.typeName!==`ZodNever`)return gb(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]});switch(e.unknownKeys){case`passthrough`:return t.allowedAdditionalProperties;case`strict`:return t.rejectedAdditionalProperties;case`strip`:return t.removeAdditionalStrategy===`strict`?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function ob(e){try{return e.isOptional()}catch{return!0}}var sb=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return gb(e.innerType._def,t);let n=gb(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:G_(t)},n]}:G_(t)},cb=(e,t)=>{if(t.pipeStrategy===`input`)return gb(e.in._def,t);if(t.pipeStrategy===`output`)return gb(e.out._def,t);let n=gb(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,gb(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function lb(e,t){return gb(e.type._def,t)}function ub(e,t){let n={type:`array`,uniqueItems:!0,items:gb(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&q_(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&q_(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function db(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>gb(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:gb(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>gb(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function fb(e){return{not:G_(e)}}function pb(e){return G_(e)}var mb=(e,t)=>gb(e.innerType._def,t),hb=(e,t,n)=>{switch(t){case H.ZodString:return Vy(e,n);case H.ZodNumber:return rb(e,n);case H.ZodObject:return ib(e,n);case H.ZodBigInt:return Dy(e,n);case H.ZodBoolean:return Oy();case H.ZodDate:return jy(e,n);case H.ZodUndefined:return fb(n);case H.ZodNull:return Qy(n);case H.ZodArray:return Ey(e,n);case H.ZodUnion:case H.ZodDiscriminatedUnion:return eb(e,n);case H.ZodIntersection:return Ly(e,n);case H.ZodTuple:return db(e,n);case H.ZodRecord:return Jy(e,n);case H.ZodLiteral:return Ry(e,n);case H.ZodEnum:return Fy(e);case H.ZodNativeEnum:return Xy(e);case H.ZodNullable:return nb(e,n);case H.ZodOptional:return sb(e,n);case H.ZodMap:return Yy(e,n);case H.ZodSet:return ub(e,n);case H.ZodLazy:return()=>e.getter()._def;case H.ZodPromise:return lb(e,n);case H.ZodNaN:case H.ZodNever:return Zy(n);case H.ZodEffects:return Py(e,n);case H.ZodAny:return G_(n);case H.ZodUnknown:return pb(n);case H.ZodDefault:return Ny(e,n);case H.ZodBranded:return ky(e,n);case H.ZodReadonly:return mb(e,n);case H.ZodCatch:return Ay(e,n);case H.ZodPipeline:return cb(e,n);case H.ZodFunction:case H.ZodVoid:case H.ZodSymbol:return;default:return(e=>void 0)(t)}};function gb(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==B_)return i}if(r&&!n){let e=_b(r,t);if(e!==void 0)return e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let a=hb(e,e.typeName,t),o=typeof a==`function`?gb(a(),t):a;if(o&&vb(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}var _b=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:W_(t.currentPath,e.path)};case`none`:case`seen`:return e.path.length<t.currentPath.length&&e.path.every((e,n)=>t.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join(`/`)}! Defaulting to any`),G_(t)):t.$refStrategy===`seen`?G_(t):void 0}},vb=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),yb=(e,t)=>{let n=U_(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:gb(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??G_(n)}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=gb(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??G_(n),o=typeof t==`object`&&t.name!==void 0&&t.nameStrategy===`title`?t.name:void 0;o!==void 0&&(a.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||={},r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:[`string`,`number`,`integer`,`boolean`,`array`,`null`],items:{$ref:n.$refStrategy===`relative`?`1`:[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join(`/`)}}));let s=i===void 0?r?{...a,[n.definitionPath]:r}:a:{$ref:[...n.$refStrategy===`relative`?[]:n.basePath,n.definitionPath,i].join(`/`),[n.definitionPath]:{...r,[i]:a}};return n.target===`jsonSchema7`?s.$schema=`http://json-schema.org/draft-07/schema#`:(n.target===`jsonSchema2019-09`||n.target===`openAi`)&&(s.$schema=`https://json-schema.org/draft/2019-09/schema#`),n.target===`openAi`&&(`anyOf`in s||`oneOf`in s||`allOf`in s||`type`in s&&Array.isArray(s.type))&&console.warn(`Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.`),s},bb=h({isSerializableSchema:()=>Cb,isStandardJsonSchema:()=>Sb,isStandardSchema:()=>xb});function xb(e){return(typeof e==`object`||typeof e==`function`)&&e!==null&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`validate`in e[`~standard`]}function Sb(e){return(typeof e==`object`||typeof e==`function`)&&e!==null&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`jsonSchema`in e[`~standard`]}function Cb(e){return xb(e)&&Sb(e)}function wb(e,t){let n=typeof e;if(n!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!wb(e[r],t[r]))return!1;return!0}if(n===`object`){if(!e||!t)return e===t;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!wb(e[r],t[r]))return!1;return!0}return e===t}function Tb(e){return encodeURI(Eb(e))}function Eb(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}var Db={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},Ob={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},kb={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0},Ab=typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`);function jb(e,t=Object.create(null),n=Ab,r=``){if(e&&typeof e==`object`&&!Array.isArray(e)){let i=e.$id||e.id;if(i){let a=new URL(i,n.href);a.hash.length>1?t[a.href]=e:(a.hash=``,r===``?n=a:jb(e,t,n))}}else if(e!==!0&&e!==!1)return t;let i=n.href+(r?`#`+r:``);if(t[i]!==void 0)throw Error(`Duplicate schema URI "${i}".`);if(t[i]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:i}),e.$ref&&e.__absolute_ref__===void 0){let t=new URL(e.$ref,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let t=new URL(e.$recursiveRef,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}if(e.$anchor){let r=new URL(`#`+e.$anchor,n.href);t[r.href]=e}for(let i in e){if(kb[i])continue;let a=`${r}/${Tb(i)}`,o=e[i];if(Array.isArray(o)){if(Db[i]){let e=o.length;for(let r=0;r<e;r++)jb(o[r],t,n,`${a}/${r}`)}}else if(Ob[i])for(let e in o)jb(o[e],t,n,`${a}/${Tb(e)}`);else jb(o,t,n,a)}return t}var Mb=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Nb=[0,31,28,31,30,31,30,31,31,30,31,30,31],Pb=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,Fb=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,Ib=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,Lb=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Rb=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,zb=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Bb=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Vb=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Hb=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Ub=e=>{if(e[0]===`"`)return!1;let[t,n,...r]=e.split(`@`);return!t||!n||r.length!==0||t.length>64||n.length>253||t[0]===`.`||t.endsWith(`.`)||t.includes(`..`)||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:n.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e))},Wb=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,Gb=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,Kb=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e));function qb(e){return e.test.bind(e)}var Jb={date:Xb,time:Zb.bind(void 0,!1),"date-time":$b,duration:Kb,uri:nx,"uri-reference":qb(Ib),"uri-template":qb(Lb),url:qb(Rb),email:Ub,hostname:qb(Fb),ipv4:qb(Wb),ipv6:qb(Gb),regex:ix,uuid:qb(zb),"json-pointer":qb(Bb),"json-pointer-uri-fragment":qb(Vb),"relative-json-pointer":qb(Hb)};function Yb(e){return e%4==0&&(e%100!=0||e%400==0)}function Xb(e){let t=e.match(Mb);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r==2&&Yb(n)?29:Nb[r])}function Zb(e,t){let n=t.match(Pb);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}var Qb=/t|\s/i;function $b(e){let t=e.split(Qb);return t.length==2&&Xb(t[0])&&Zb(!0,t[1])}var ex=/\/|:/,tx=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function nx(e){return ex.test(e)&&tx.test(e)}var rx=/[^\\]\\Z/;function ix(e){if(rx.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}function ax(e){let t=0,n=e.length,r=0,i;for(;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}function ox(e,t,n=`2019-09`,r=jb(t),i=!0,a=null,o=`#`,s=`#`,c=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:o,keyword:`false`,keywordLocation:o,error:`False boolean schema.`}]};let l=typeof e,u;switch(l){case`boolean`:case`number`:case`string`:u=l;break;case`object`:u=e===null?`null`:Array.isArray(e)?`array`:`object`;break;default:throw Error(`Instances of "${l}" type are not supported.`)}let{$ref:d,$recursiveRef:f,$recursiveAnchor:p,type:m,const:h,enum:g,required:_,not:v,anyOf:y,allOf:b,oneOf:x,if:S,then:ee,else:C,format:te,properties:ne,patternProperties:re,additionalProperties:ie,unevaluatedProperties:ae,minProperties:oe,maxProperties:se,propertyNames:w,dependentRequired:ce,dependentSchemas:le,dependencies:ue,prefixItems:de,items:fe,additionalItems:pe,unevaluatedItems:me,contains:he,minContains:ge,maxContains:_e,minItems:ve,maxItems:ye,uniqueItems:be,minimum:xe,maximum:Se,exclusiveMinimum:Ce,exclusiveMaximum:we,multipleOf:Te,minLength:Ee,maxLength:De,pattern:Oe,__absolute_ref__:ke,__absolute_recursive_ref__:Ae}=t,T=[];if(p===!0&&a===null&&(a=t),f===`#`){let l=a===null?r[Ae]:a,u=`${s}/$recursiveRef`,d=ox(e,a===null?t:a,n,r,i,l,o,u,c);d.valid||T.push({instanceLocation:o,keyword:`$recursiveRef`,keywordLocation:u,error:`A subschema had errors.`},...d.errors)}if(d!==void 0){let t=r[ke||d];if(t===void 0){let e=`Unresolved $ref "${d}".`;throw ke&&ke!==d&&(e+=` Absolute URI "${ke}".`),e+=`\nKnown schemas:\n- ${Object.keys(r).join(`
|
|
98
|
+
- `)}`,Error(e)}let l=`${s}/$ref`,u=ox(e,t,n,r,i,a,o,l,c);if(u.valid||T.push({instanceLocation:o,keyword:`$ref`,keywordLocation:l,error:`A subschema had errors.`},...u.errors),n===`4`||n===`7`)return{valid:T.length===0,errors:T}}if(Array.isArray(m)){let t=m.length,n=!1;for(let r=0;r<t;r++)if(u===m[r]||m[r]===`integer`&&u===`number`&&e%1==0&&e===e){n=!0;break}n||T.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m.join(`", "`)}".`})}else m===`integer`?(u!==`number`||e%1||e!==e)&&T.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`}):m!==void 0&&u!==m&&T.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`});if(h!==void 0&&(u===`object`||u===`array`?wb(e,h)||T.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`}):e!==h&&T.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`})),g!==void 0&&(u===`object`||u===`array`?g.some(t=>wb(e,t))||T.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`}):g.some(t=>e===t)||T.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`})),v!==void 0){let t=`${s}/not`;ox(e,v,n,r,i,a,o,t).valid&&T.push({instanceLocation:o,keyword:`not`,keywordLocation:t,error:`Instance matched "not" schema.`})}let je=[];if(y!==void 0){let t=`${s}/anyOf`,l=T.length,u=!1;for(let s=0;s<y.length;s++){let l=y[s],d=Object.create(c),f=ox(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);T.push(...f.errors),u||=f.valid,f.valid&&je.push(d)}u?T.length=l:T.splice(l,0,{instanceLocation:o,keyword:`anyOf`,keywordLocation:t,error:`Instance does not match any subschemas.`})}if(b!==void 0){let t=`${s}/allOf`,l=T.length,u=!0;for(let s=0;s<b.length;s++){let l=b[s],d=Object.create(c),f=ox(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);T.push(...f.errors),u&&=f.valid,f.valid&&je.push(d)}u?T.length=l:T.splice(l,0,{instanceLocation:o,keyword:`allOf`,keywordLocation:t,error:`Instance does not match every subschema.`})}if(x!==void 0){let t=`${s}/oneOf`,l=T.length,u=x.filter((s,l)=>{let u=Object.create(c),d=ox(e,s,n,r,i,p===!0?a:null,o,`${t}/${l}`,u);return T.push(...d.errors),d.valid&&je.push(u),d.valid}).length;u===1?T.length=l:T.splice(l,0,{instanceLocation:o,keyword:`oneOf`,keywordLocation:t,error:`Instance does not match exactly one subschema (${u} matches).`})}if((u===`object`||u===`array`)&&Object.assign(c,...je),S!==void 0){let t=`${s}/if`;if(ox(e,S,n,r,i,a,o,t,c).valid){if(ee!==void 0){let l=ox(e,ee,n,r,i,a,o,`${s}/then`,c);l.valid||T.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "then" schema.`},...l.errors)}}else if(C!==void 0){let l=ox(e,C,n,r,i,a,o,`${s}/else`,c);l.valid||T.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "else" schema.`},...l.errors)}}if(u===`object`){if(_!==void 0)for(let t of _)t in e||T.push({instanceLocation:o,keyword:`required`,keywordLocation:`${s}/required`,error:`Instance does not have required property "${t}".`});let t=Object.keys(e);if(oe!==void 0&&t.length<oe&&T.push({instanceLocation:o,keyword:`minProperties`,keywordLocation:`${s}/minProperties`,error:`Instance does not have at least ${oe} properties.`}),se!==void 0&&t.length>se&&T.push({instanceLocation:o,keyword:`maxProperties`,keywordLocation:`${s}/maxProperties`,error:`Instance does not have at least ${se} properties.`}),w!==void 0){let t=`${s}/propertyNames`;for(let s in e){let e=`${o}/${Tb(s)}`,c=ox(s,w,n,r,i,a,e,t);c.valid||T.push({instanceLocation:o,keyword:`propertyNames`,keywordLocation:t,error:`Property name "${s}" does not match schema.`},...c.errors)}}if(ce!==void 0){let t=`${s}/dependantRequired`;for(let n in ce)if(n in e){let r=ce[n];for(let i of r)i in e||T.push({instanceLocation:o,keyword:`dependentRequired`,keywordLocation:t,error:`Instance has "${n}" but does not have "${i}".`})}}if(le!==void 0)for(let t in le){let l=`${s}/dependentSchemas`;if(t in e){let s=ox(e,le[t],n,r,i,a,o,`${l}/${Tb(t)}`,c);s.valid||T.push({instanceLocation:o,keyword:`dependentSchemas`,keywordLocation:l,error:`Instance has "${t}" but does not match dependant schema.`},...s.errors)}}if(ue!==void 0){let t=`${s}/dependencies`;for(let s in ue)if(s in e){let c=ue[s];if(Array.isArray(c))for(let n of c)n in e||T.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not have "${n}".`});else{let l=ox(e,c,n,r,i,a,o,`${t}/${Tb(s)}`);l.valid||T.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not match dependant schema.`},...l.errors)}}}let l=Object.create(null),u=!1;if(ne!==void 0){let t=`${s}/properties`;for(let s in ne){if(!(s in e))continue;let d=`${o}/${Tb(s)}`,f=ox(e[s],ne[s],n,r,i,a,d,`${t}/${Tb(s)}`);if(f.valid)c[s]=l[s]=!0;else if(u=i,T.push({instanceLocation:o,keyword:`properties`,keywordLocation:t,error:`Property "${s}" does not match schema.`},...f.errors),u)break}}if(!u&&re!==void 0){let t=`${s}/patternProperties`;for(let s in re){let d=new RegExp(s,`u`),f=re[s];for(let p in e){if(!d.test(p))continue;let m=`${o}/${Tb(p)}`,h=ox(e[p],f,n,r,i,a,m,`${t}/${Tb(s)}`);h.valid?c[p]=l[p]=!0:(u=i,T.push({instanceLocation:o,keyword:`patternProperties`,keywordLocation:t,error:`Property "${p}" matches pattern "${s}" but does not match associated schema.`},...h.errors))}}}if(!u&&ie!==void 0){let t=`${s}/additionalProperties`;for(let s in e){if(l[s])continue;let d=`${o}/${Tb(s)}`,f=ox(e[s],ie,n,r,i,a,d,t);f.valid?c[s]=!0:(u=i,T.push({instanceLocation:o,keyword:`additionalProperties`,keywordLocation:t,error:`Property "${s}" does not match additional properties schema.`},...f.errors))}}else if(!u&&ae!==void 0){let t=`${s}/unevaluatedProperties`;for(let s in e)if(!c[s]){let l=`${o}/${Tb(s)}`,u=ox(e[s],ae,n,r,i,a,l,t);u.valid?c[s]=!0:T.push({instanceLocation:o,keyword:`unevaluatedProperties`,keywordLocation:t,error:`Property "${s}" does not match unevaluated properties schema.`},...u.errors)}}}else if(u===`array`){ye!==void 0&&e.length>ye&&T.push({instanceLocation:o,keyword:`maxItems`,keywordLocation:`${s}/maxItems`,error:`Array has too many items (${e.length} > ${ye}).`}),ve!==void 0&&e.length<ve&&T.push({instanceLocation:o,keyword:`minItems`,keywordLocation:`${s}/minItems`,error:`Array has too few items (${e.length} < ${ve}).`});let t=e.length,l=0,u=!1;if(de!==void 0){let d=`${s}/prefixItems`,f=Math.min(de.length,t);for(;l<f;l++){let t=ox(e[l],de[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,T.push({instanceLocation:o,keyword:`prefixItems`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}if(fe!==void 0){let d=`${s}/items`;if(Array.isArray(fe)){let s=Math.min(fe.length,t);for(;l<s;l++){let t=ox(e[l],fe[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,T.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}else for(;l<t;l++){let t=ox(e[l],fe,n,r,i,a,`${o}/${l}`,d);if(c[l]=!0,!t.valid&&(u=i,T.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}if(!u&&pe!==void 0){let d=`${s}/additionalItems`;for(;l<t;l++){let t=ox(e[l],pe,n,r,i,a,`${o}/${l}`,d);c[l]=!0,t.valid||(u=i,T.push({instanceLocation:o,keyword:`additionalItems`,keywordLocation:d,error:`Items did not match additional items schema.`},...t.errors))}}}if(he!==void 0)if(t===0&&ge===void 0)T.push({instanceLocation:o,keyword:`contains`,keywordLocation:`${s}/contains`,error:`Array is empty. It must contain at least one item matching the schema.`});else if(ge!==void 0&&t<ge)T.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array has less items (${t}) than minContains (${ge}).`});else{let l=`${s}/contains`,u=T.length,d=0;for(let s=0;s<t;s++){let t=ox(e[s],he,n,r,i,a,`${o}/${s}`,l);t.valid?(c[s]=!0,d++):T.push(...t.errors)}d>=(ge||0)&&(T.length=u),ge===void 0&&_e===void 0&&d===0?T.splice(u,0,{instanceLocation:o,keyword:`contains`,keywordLocation:l,error:`Array does not contain item matching schema.`}):ge!==void 0&&d<ge?T.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array must contain at least ${ge} items matching schema. Only ${d} items were found.`}):_e!==void 0&&d>_e&&T.push({instanceLocation:o,keyword:`maxContains`,keywordLocation:`${s}/maxContains`,error:`Array may contain at most ${_e} items matching schema. ${d} items were found.`})}if(!u&&me!==void 0){let u=`${s}/unevaluatedItems`;for(;l<t;l++){if(c[l])continue;let t=ox(e[l],me,n,r,i,a,`${o}/${l}`,u);c[l]=!0,t.valid||T.push({instanceLocation:o,keyword:`unevaluatedItems`,keywordLocation:u,error:`Items did not match unevaluated items schema.`},...t.errors)}}if(be)for(let n=0;n<t;n++){let r=e[n],i=typeof r==`object`&&!!r;for(let a=0;a<t;a++){if(n===a)continue;let t=e[a];(r===t||i&&typeof t==`object`&&t&&wb(r,t))&&(T.push({instanceLocation:o,keyword:`uniqueItems`,keywordLocation:`${s}/uniqueItems`,error:`Duplicate items at indexes ${n} and ${a}.`}),n=2**53-1,a=2**53-1)}}}else if(u===`number`){if(n===`4`?(xe!==void 0&&(Ce===!0&&e<=xe||e<xe)&&T.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${Ce?`or equal to `:``} ${xe}.`}),Se!==void 0&&(we===!0&&e>=Se||e>Se)&&T.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${we?`or equal to `:``} ${Se}.`})):(xe!==void 0&&e<xe&&T.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${xe}.`}),Se!==void 0&&e>Se&&T.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${Se}.`}),Ce!==void 0&&e<=Ce&&T.push({instanceLocation:o,keyword:`exclusiveMinimum`,keywordLocation:`${s}/exclusiveMinimum`,error:`${e} is less than ${Ce}.`}),we!==void 0&&e>=we&&T.push({instanceLocation:o,keyword:`exclusiveMaximum`,keywordLocation:`${s}/exclusiveMaximum`,error:`${e} is greater than or equal to ${we}.`})),Te!==void 0){let t=e%Te;Math.abs(0-t)>=1.1920929e-7&&Math.abs(Te-t)>=1.1920929e-7&&T.push({instanceLocation:o,keyword:`multipleOf`,keywordLocation:`${s}/multipleOf`,error:`${e} is not a multiple of ${Te}.`})}}else if(u===`string`){let t=Ee===void 0&&De===void 0?0:ax(e);Ee!==void 0&&t<Ee&&T.push({instanceLocation:o,keyword:`minLength`,keywordLocation:`${s}/minLength`,error:`String is too short (${t} < ${Ee}).`}),De!==void 0&&t>De&&T.push({instanceLocation:o,keyword:`maxLength`,keywordLocation:`${s}/maxLength`,error:`String is too long (${t} > ${De}).`}),Oe!==void 0&&!new RegExp(Oe,`u`).test(e)&&T.push({instanceLocation:o,keyword:`pattern`,keywordLocation:`${s}/pattern`,error:`String does not match pattern.`}),te!==void 0&&Jb[te]&&!Jb[te](e)&&T.push({instanceLocation:o,keyword:`format`,keywordLocation:`${s}/format`,error:`String does not match format "${te}".`})}return{valid:T.length===0,errors:T}}var sx=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=jb(e)}validate(e){return ox(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),jb(e,this.lookup)}},cx=h({Validator:()=>sx,deepCompareStrict:()=>wb,toJsonSchema:()=>ux,validatesOnlyStrings:()=>dx}),lx=new WeakMap;function ux(e,t){let n=!t&&typeof e==`object`&&!!e;if(n){let t=lx.get(e);if(t)return t}let r;if(Sb(e)&&!r_(e))r=e[`~standard`].jsonSchema.input({target:`draft-07`});else if(r_(e)){let n=M_(e,!0);r=v_(n)?n_(E_(n,!0),t):n_(e,t)}else r=i_(e)?yb(e):e;return n&&typeof r==`object`&&r&&lx.set(e,r),r}function dx(e){if(!e||typeof e!=`object`||Object.keys(e).length===0||Array.isArray(e))return!1;if(`type`in e)return typeof e.type==`string`?e.type===`string`:Array.isArray(e.type)?e.type.every(e=>e===`string`):!1;if(`enum`in e)return Array.isArray(e.enum)&&e.enum.length>0&&e.enum.every(e=>typeof e==`string`);if(`const`in e)return typeof e.const==`string`;if(`allOf`in e&&Array.isArray(e.allOf))return e.allOf.some(e=>dx(e));if(`anyOf`in e&&Array.isArray(e.anyOf)||`oneOf`in e&&Array.isArray(e.oneOf)){let t=`anyOf`in e?e.anyOf:e.oneOf;return t.length>0&&t.every(e=>dx(e))}if(`not`in e)return!1;if(`$ref`in e&&typeof e.$ref==`string`){let t=e.$ref,n=jb(e);return n[t]?dx(n[t]):!1}return!1}var fx=h({Graph:()=>hx});function px(e,t){if(e!==void 0&&!Ar(e))return e;if(Dd(t))try{let e=t.getName();return e=e.startsWith(`Runnable`)?e.slice(8):e,e}catch{return t.getName()}else return t.name??`UnknownSchema`}function mx(e){return Dd(e.data)?{type:`runnable`,data:{id:e.data.lc_id,name:e.data.getName()}}:{type:`schema`,data:{...ux(e.data.schema),title:e.data.name}}}var hx=class e{nodes={};edges=[];constructor(e){this.nodes=e?.nodes??this.nodes,this.edges=e?.edges??this.edges}toJSON(){let e={};return Object.values(this.nodes).forEach((t,n)=>{e[t.id]=Ar(t.id)?n:t.id}),{nodes:Object.values(this.nodes).map(t=>({id:e[t.id],...mx(t)})),edges:this.edges.map(t=>{let n={source:e[t.source],target:e[t.target]};return t.data!==void 0&&(n.data=t.data),t.conditional!==void 0&&(n.conditional=t.conditional),n})}}addNode(e,t,n){if(t!==void 0&&this.nodes[t]!==void 0)throw Error(`Node with id ${t} already exists`);let r=t??Er(),i={id:r,data:e,name:px(t,e),metadata:n};return this.nodes[r]=i,i}removeNode(e){delete this.nodes[e.id],this.edges=this.edges.filter(t=>t.source!==e.id&&t.target!==e.id)}addEdge(e,t,n,r){if(this.nodes[e.id]===void 0)throw Error(`Source node ${e.id} not in graph`);if(this.nodes[t.id]===void 0)throw Error(`Target node ${t.id} not in graph`);let i={source:e.id,target:t.id,data:n,conditional:r};return this.edges.push(i),i}firstNode(){return gx(this)}lastNode(){return _x(this)}extend(e,t=``){let n=t;Object.values(e.nodes).map(e=>e.id).every(Ar)&&(n=``);let r=e=>n?`${n}:${e}`:e;Object.entries(e.nodes).forEach(([e,t])=>{this.nodes[r(e)]={...t,id:r(e)}});let i=e.edges.map(e=>({...e,source:r(e.source),target:r(e.target)}));this.edges=[...this.edges,...i];let a=e.firstNode(),o=e.lastNode();return[a?{id:r(a.id),data:a.data}:void 0,o?{id:r(o.id),data:o.data}:void 0]}trimFirstNode(){let e=this.firstNode();e&&gx(this,[e.id])&&this.removeNode(e)}trimLastNode(){let e=this.lastNode();e&&_x(this,[e.id])&&this.removeNode(e)}reid(){let t=Object.fromEntries(Object.values(this.nodes).map(e=>[e.id,e.name])),n=new Map;Object.values(t).forEach(e=>{n.set(e,(n.get(e)||0)+1)});let r=e=>{let r=t[e];return Ar(e)&&n.get(r)===1?r:e};return new e({nodes:Object.fromEntries(Object.entries(this.nodes).map(([e,t])=>[r(e),{...t,id:r(e)}])),edges:this.edges.map(e=>({...e,source:r(e.source),target:r(e.target)}))})}drawMermaid(e){let{withStyles:t,curveStyle:n,nodeColors:r={default:`fill:#f2f0ff,line-height:1.2`,first:`fill-opacity:0`,last:`fill:#bfb6fc`},wrapLabelNWords:i}=e??{},a=this.reid(),o=a.firstNode(),s=a.lastNode();return R_(a.nodes,a.edges,{firstNode:o?.id,lastNode:s?.id,withStyles:t,curveStyle:n,nodeColors:r,wrapLabelNWords:i})}async drawMermaidPng(e){return z_(this.drawMermaid(e),{backgroundColor:e?.backgroundColor})}};function gx(e,t=[]){let n=new Set(e.edges.filter(e=>!t.includes(e.source)).map(e=>e.target)),r=[];for(let i of Object.values(e.nodes))!t.includes(i.id)&&!n.has(i.id)&&r.push(i);return r.length===1?r[0]:void 0}function _x(e,t=[]){let n=new Set(e.edges.filter(e=>!t.includes(e.target)).map(e=>e.source)),r=[];for(let i of Object.values(e.nodes))!t.includes(i.id)&&!n.has(i.id)&&r.push(i);return r.length===1?r[0]:void 0}function vx(e){let t=new TextEncoder,n=new ReadableStream({async start(n){for await(let r of e)n.enqueue(t.encode(`event: data\ndata: ${JSON.stringify(r)}\n\n`));n.enqueue(t.encode(`event: end
|
|
99
|
+
|
|
100
|
+
`)),n.close()}});return cu.fromReadableStream(n)}function yx(e){return typeof e==`object`&&!!e&&typeof e[Symbol.iterator]==`function`&&typeof e.next==`function`}var bx=e=>typeof e==`object`&&!!e&&`next`in e&&typeof e.next==`function`;function xx(e){return typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`}function Sx(e){return typeof e==`object`&&!!e&&typeof e.next==`function`}async function Cx(e,t){try{let n=await e.next();for(;!n.done;)await t?.(n.value),n=await e.next();return n.value}finally{await e.return?.(void 0)}}function*wx(e,t){for(;;){let{value:n,done:r}=Yl.runWithConfig(iu(e),t.next.bind(t),!0);if(r)break;yield n}}async function*Tx(e,t){let n=t[Symbol.asyncIterator]();for(;;){let{value:r,done:i}=await Yl.runWithConfig(iu(e),n.next.bind(t),!0);if(i)break;yield r}}function Ex(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e==`object`?e:{[t]:e}}var Dx=class extends Te{lc_runnable=!0;name;getName(e){let t=this.name??this.constructor.lc_name()??this.constructor.name;return e?`${t}${e}`:t}withRetry(e){return new Ax({bound:this,kwargs:{},config:{},maxAttemptNumber:e?.stopAfterAttempt,...e})}withConfig(e){return new Ox({bound:this,config:e,kwargs:{}})}withFallbacks(e){let t=Array.isArray(e)?e:e.fallbacks;return new Lx({runnable:this,fallbacks:t})}_getOptionsList(e,t=0){if(Array.isArray(e)&&e.length!==t)throw Error(`Passed "options" must be an array with the same length as the inputs, but got ${e.length} options for ${t} inputs`);if(Array.isArray(e))return e.map(nu);if(t>1&&!Array.isArray(e)&&e.runId){console.warn(`Provided runId will be used only for the first element of the batch.`);let n=Object.fromEntries(Object.entries(e).filter(([e])=>e!==`runId`));return Array.from({length:t},(t,r)=>nu(r===0?e:n))}return Array.from({length:t},()=>nu(e))}async batch(e,t,n){let r=this._getOptionsList(t??{},e.length),i=new Td({maxConcurrency:r[0]?.maxConcurrency??n?.maxConcurrency,onFailedAttempt:e=>{throw e}}),a=e.map((e,t)=>i.call(async()=>{try{return await this.invoke(e,r[t])}catch(e){if(n?.returnExceptions)return e;throw e}}));return Promise.all(a)}async*_streamIterator(e,t){yield this.invoke(e,t)}async stream(e,t){let n=nu(t),r=new du({generator:this._streamIterator(e,n),config:n});return await r.setup,cu.fromAsyncGenerator(r)}_separateRunnableConfigFromCallOptions(e){let t;t=nu(e===void 0?e:{callbacks:e.callbacks,tags:e.tags,metadata:e.metadata,runName:e.runName,configurable:e.configurable,recursionLimit:e.recursionLimit,maxConcurrency:e.maxConcurrency,runId:e.runId,timeout:e.timeout,signal:e.signal});let n={...e};return delete n.callbacks,delete n.tags,delete n.metadata,delete n.runName,delete n.configurable,delete n.recursionLimit,delete n.maxConcurrency,delete n.runId,delete n.timeout,delete n.signal,[t,n]}async _callWithConfig(e,t,n){let r=nu(n),i=await(await eu(r))?.handleChainStart(this.toJSON(),Ex(t,`input`),r.runId,r?.runType,void 0,void 0,r?.runName??this.getName());delete r.runId;let a;try{a=await au(e.call(this,t,r,i),r.signal)}catch(e){throw await i?.handleChainError(e),e}return await i?.handleChainEnd(Ex(a,`output`)),a}async _batchWithConfig(e,t,n,r){let i=this._getOptionsList(n??{},t.length),a=await Promise.all(i.map(eu)),o=await Promise.all(a.map(async(e,n)=>{let r=await e?.handleChainStart(this.toJSON(),Ex(t[n],`input`),i[n].runId,i[n].runType,void 0,void 0,i[n].runName??this.getName());return delete i[n].runId,r})),s;try{s=await au(e.call(this,t,i,o,r),i?.[0]?.signal)}catch(e){throw await Promise.all(o.map(t=>t?.handleChainError(e))),e}return await Promise.all(o.map(e=>e?.handleChainEnd(Ex(s,`output`)))),s}_concatOutputChunks(e,t){return uu(e,t)}async*_transformStreamWithConfig(e,t,n){let r,i=!0,a,o=!0,s=nu(n),c=await eu(s),l=this;async function*u(){for await(let t of e){if(i)if(r===void 0)r=t;else try{r=l._concatOutputChunks(r,t)}catch{r=void 0,i=!1}yield t}}let d;try{let e=await fu(t.bind(this),u(),async()=>c?.handleChainStart(this.toJSON(),{input:``},s.runId,s.runType,void 0,void 0,s.runName??this.getName(),void 0,{lc_defers_inputs:!0}),s.signal,s);delete s.runId,d=e.setup;let n=d?.handlers.find(Xu),r=e.output;n!==void 0&&d!==void 0&&(r=n.tapOutputIterable(d.runId,r));let i=d?.handlers.find(Bu);i!==void 0&&d!==void 0&&(r=i.tapOutputIterable(d.runId,r));for await(let e of r)if(yield e,o)if(a===void 0)a=e;else try{a=this._concatOutputChunks(a,e)}catch{a=void 0,o=!1}}catch(e){throw await d?.handleChainError(e,void 0,void 0,void 0,{inputs:Ex(r,`input`)}),e}await d?.handleChainEnd(a??{},void 0,void 0,void 0,{inputs:Ex(r,`input`)})}getGraph(e){let t=new hx,n=t.addNode({name:`${this.getName()}Input`,schema:wy()}),r=t.addNode(this),i=t.addNode({name:`${this.getName()}Output`,schema:wy()});return t.addEdge(n,r),t.addEdge(r,i),t}pipe(e){return new jx({first:this,last:Rx(e)})}pick(e){return this.pipe(new Bx(e))}assign(e){return this.pipe(new zx(new Mx({steps:e})))}async*transform(e,t){let n;for await(let t of e)n=n===void 0?t:this._concatOutputChunks(n,t);yield*this._streamIterator(n,nu(t))}async*streamLog(e,t,n){let r=new Wu({...n,autoClose:!1,_schemaFormat:`original`}),i=nu(t);yield*this._streamLog(e,r,i)}async*_streamLog(e,t,n){let{callbacks:r}=n;if(r===void 0)n.callbacks=[t];else if(Array.isArray(r))n.callbacks=r.concat([t]);else{let e=r.copy();e.addHandler(t,!0),n.callbacks=e}let i=this.stream(e,n);async function a(){try{let e=await i;for await(let n of e){let e=new Ru({ops:[{op:`add`,path:`/streamed_output/-`,value:n}]});await t.writer.write(e)}}finally{await t.writer.close()}}let o=a();try{for await(let e of t)yield e}finally{await o}}streamEvents(e,t,n){let r;if(t.version===`v1`)r=this._streamEventsV1(e,t,n);else if(t.version===`v2`)r=this._streamEventsV2(e,t,n);else throw Error(`Only versions "v1" and "v2" of the schema are currently supported.`);return t.encoding===`text/event-stream`?vx(r):cu.fromAsyncGenerator(r)}async*_streamEventsV2(e,t,n){let r=new Zu({...n,autoClose:!1}),i=nu(t),a=i.runId??kr();i.runId=a;let o=i.callbacks;if(o===void 0)i.callbacks=[r];else if(Array.isArray(o))i.callbacks=o.concat(r);else{let e=o.copy();e.addHandler(r,!0),i.callbacks=e}let s=new AbortController,c=this;async function l(){let t;try{if(i.signal)if(`any`in AbortSignal)t=AbortSignal.any([s.signal,i.signal]);else{let e=new AbortController;i.signal.addEventListener(`abort`,()=>e.abort(),{once:!0}),s.signal.addEventListener(`abort`,()=>e.abort(),{once:!0}),t=e.signal}else t=s.signal;let n=await c.stream(e,{...i,signal:t}),o=r.tapOutputIterable(a,n);for await(let e of o)if(s.signal.aborted)break}finally{await r.finish()}}let u=l(),d=!1,f;try{for await(let t of r){if(!d){t.data.input=e,d=!0,f=t.run_id,yield t;continue}t.run_id===f&&t.event.endsWith(`_end`)&&t.data?.input&&delete t.data.input,yield t}}finally{s.abort(),await u}}async*_streamEventsV1(e,t,n){let r,i=!1,a=nu(t),o=a.tags??[],s=a.metadata??{},c=a.runName??this.getName(),l=new Wu({...n,autoClose:!1,_schemaFormat:`streaming_events`}),u=new Od({...n}),d=this._streamLog(e,l,a);for await(let t of d){if(r=r?r.concat(t):zu.fromRunLogPatch(t),r.state===void 0)throw Error(`Internal error: "streamEvents" state is missing. Please open a bug report.`);if(!i){i=!0;let t={...r.state},n={run_id:t.id,event:`on_${t.type}_start`,name:c,tags:o,metadata:s,data:{input:e}};u.includeEvent(n,t.type)&&(yield n)}let n=t.ops.filter(e=>e.path.startsWith(`/logs/`)).map(e=>e.path.split(`/`)[2]),a=[...new Set(n)];for(let e of a){let t,n={},i=r.state.logs[e];if(t=i.end_time===void 0?i.streamed_output.length>0?`stream`:`start`:`end`,t===`start`)i.inputs!==void 0&&(n.input=i.inputs);else if(t===`end`)i.inputs!==void 0&&(n.input=i.inputs),n.output=i.final_output;else if(t===`stream`){let e=i.streamed_output.length;if(e!==1)throw Error(`Expected exactly one chunk of streamed output, got ${e} instead. Encountered in: "${i.name}"`);n={chunk:i.streamed_output[0]},i.streamed_output=[]}yield{event:`on_${i.type}_${t}`,name:i.name,run_id:i.id,tags:i.tags,metadata:i.metadata,data:n}}let{state:l}=r;if(l.streamed_output.length>0){let e=l.streamed_output.length;if(e!==1)throw Error(`Expected exactly one chunk of streamed output, got ${e} instead. Encountered in: "${l.name}"`);let t={chunk:l.streamed_output[0]};l.streamed_output=[];let n={event:`on_${l.type}_stream`,run_id:l.id,tags:o,metadata:s,name:c,data:t};u.includeEvent(n,l.type)&&(yield n)}}let f=r?.state;if(f!==void 0){let e={event:`on_${f.type}_end`,name:c,run_id:f.id,tags:o,metadata:s,data:{output:f.final_output}};u.includeEvent(e,f.type)&&(yield e)}}static isRunnable(e){return Dd(e)}withListeners({onStart:e,onEnd:t,onError:n}){return new Ox({bound:this,config:{},configFactories:[r=>({callbacks:[new Ed({config:r,onStart:e,onEnd:t,onError:n})]})]})}asTool(e){return Hx(this,e)}},Ox=class e extends Dx{static lc_name(){return`RunnableBinding`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;bound;config;kwargs;configFactories;constructor(e){super(e),this.bound=e.bound,this.kwargs=e.kwargs,this.config=e.config,this.configFactories=e.configFactories}getName(e){return this.bound.getName(e)}async _mergeConfig(...e){let t=tu(this.config,...e);return tu(t,...this.configFactories?await Promise.all(this.configFactories.map(async e=>await e(t))):[])}withConfig(e){return new this.constructor({bound:this.bound,kwargs:this.kwargs,config:{...this.config,...e}})}withRetry(e){return new Ax({bound:this.bound,kwargs:this.kwargs,config:this.config,maxAttemptNumber:e?.stopAfterAttempt,...e})}async invoke(e,t){return this.bound.invoke(e,await this._mergeConfig(t,this.kwargs))}async batch(e,t,n){let r=Array.isArray(t)?await Promise.all(t.map(async e=>this._mergeConfig(nu(e),this.kwargs))):await this._mergeConfig(nu(t),this.kwargs);return this.bound.batch(e,r,n)}_concatOutputChunks(e,t){return this.bound._concatOutputChunks(e,t)}async*_streamIterator(e,t){yield*this.bound._streamIterator(e,await this._mergeConfig(nu(t),this.kwargs))}async stream(e,t){return this.bound.stream(e,await this._mergeConfig(nu(t),this.kwargs))}async*transform(e,t){yield*this.bound.transform(e,await this._mergeConfig(nu(t),this.kwargs))}streamEvents(e,t,n){let r=this;return cu.fromAsyncGenerator(async function*(){yield*r.bound.streamEvents(e,{...await r._mergeConfig(nu(t),r.kwargs),version:t.version},n)}())}static isRunnableBinding(e){return e.bound&&Dx.isRunnable(e.bound)}withListeners({onStart:t,onEnd:n,onError:r}){return new e({bound:this.bound,kwargs:this.kwargs,config:this.config,configFactories:[e=>({callbacks:[new Ed({config:e,onStart:t,onEnd:n,onError:r})]})]})}},kx=class e extends Dx{static lc_name(){return`RunnableEach`}lc_serializable=!0;lc_namespace=[`langchain_core`,`runnables`];bound;constructor(e){super(e),this.bound=e.bound}async invoke(e,t){return this._callWithConfig(this._invoke.bind(this),e,t)}async _invoke(e,t,n){return this.bound.batch(e,ru(t,{callbacks:n?.getChild()}))}withListeners({onStart:t,onEnd:n,onError:r}){return new e({bound:this.bound.withListeners({onStart:t,onEnd:n,onError:r})})}},Ax=class extends Ox{static lc_name(){return`RunnableRetry`}lc_namespace=[`langchain_core`,`runnables`];maxAttemptNumber=3;onFailedAttempt=()=>{};constructor(e){super(e),this.maxAttemptNumber=e.maxAttemptNumber??this.maxAttemptNumber,this.onFailedAttempt=e.onFailedAttempt??this.onFailedAttempt}_patchConfigForRetry(e,t,n){let r=e>1?`retry:attempt:${e}`:void 0;return ru(t,{callbacks:n?.getChild(r)})}async _invoke(e,t,n){return cd(r=>super.invoke(e,this._patchConfigForRetry(r,t,n)),{onFailedAttempt:({error:t})=>this.onFailedAttempt(t,e),retries:Math.max(this.maxAttemptNumber-1,0),randomize:!0})}async invoke(e,t){return this._callWithConfig(this._invoke.bind(this),e,t)}async _batch(e,t,n,r){let i={};try{await cd(async a=>{let o=e.map((e,t)=>t).filter(e=>i[e.toString()]===void 0||i[e.toString()]instanceof Error),s=o.map(t=>e[t]),c=o.map(e=>this._patchConfigForRetry(a,t?.[e],n?.[e])),l=await super.batch(s,c,{...r,returnExceptions:!0}),u;for(let e=0;e<l.length;e+=1){let t=l[e],n=o[e];t instanceof Error&&u===void 0&&(u=t,u.input=s[e]),i[n.toString()]=t}if(u)throw u;return l},{onFailedAttempt:({error:e})=>this.onFailedAttempt(e,e.input),retries:Math.max(this.maxAttemptNumber-1,0),randomize:!0})}catch(e){if(r?.returnExceptions!==!0)throw e}return Object.keys(i).sort((e,t)=>parseInt(e,10)-parseInt(t,10)).map(e=>i[parseInt(e,10)])}async batch(e,t,n){return this._batchWithConfig(this._batch.bind(this),e,t,n)}},jx=class e extends Dx{static lc_name(){return`RunnableSequence`}first;middle=[];last;omitSequenceTags=!1;lc_serializable=!0;lc_namespace=[`langchain_core`,`runnables`];constructor(e){super(e),this.first=e.first,this.middle=e.middle??this.middle,this.last=e.last,this.name=e.name,this.omitSequenceTags=e.omitSequenceTags??this.omitSequenceTags}get steps(){return[this.first,...this.middle,this.last]}async invoke(e,t){let n=nu(t),r=await(await eu(n))?.handleChainStart(this.toJSON(),Ex(e,`input`),n.runId,void 0,void 0,void 0,n?.runName);delete n.runId;let i=e,a;try{let e=[this.first,...this.middle];for(let t=0;t<e.length;t+=1)i=await au(e[t].invoke(i,ru(n,{callbacks:r?.getChild(this.omitSequenceTags?void 0:`seq:step:${t+1}`)})),n.signal);if(n.signal?.aborted)throw ou(n.signal);a=await this.last.invoke(i,ru(n,{callbacks:r?.getChild(this.omitSequenceTags?void 0:`seq:step:${this.steps.length}`)}))}catch(e){throw await r?.handleChainError(e),e}return await r?.handleChainEnd(Ex(a,`output`)),a}async batch(e,t,n){let r=this._getOptionsList(t??{},e.length),i=await Promise.all(r.map(eu)),a=await Promise.all(i.map(async(t,n)=>{let i=await t?.handleChainStart(this.toJSON(),Ex(e[n],`input`),r[n].runId,void 0,void 0,void 0,r[n].runName);return delete r[n].runId,i})),o=e;try{for(let e=0;e<this.steps.length;e+=1)o=await au(this.steps[e].batch(o,a.map((t,n)=>{let i=t?.getChild(this.omitSequenceTags?void 0:`seq:step:${e+1}`);return ru(r[n],{callbacks:i})}),n),r[0]?.signal)}catch(e){throw await Promise.all(a.map(t=>t?.handleChainError(e))),e}return await Promise.all(a.map(e=>e?.handleChainEnd(Ex(o,`output`)))),o}_concatOutputChunks(e,t){return this.last._concatOutputChunks(e,t)}async*_streamIterator(e,t){let n=await eu(t),{runId:r,...i}=t??{},a=await n?.handleChainStart(this.toJSON(),Ex(e,`input`),r,void 0,void 0,void 0,i?.runName),o=[this.first,...this.middle,this.last],s=!0,c;async function*l(){yield e}try{let e=o[0].transform(l(),ru(i,{callbacks:a?.getChild(this.omitSequenceTags?void 0:`seq:step:1`)}));for(let t=1;t<o.length;t+=1)e=await o[t].transform(e,ru(i,{callbacks:a?.getChild(this.omitSequenceTags?void 0:`seq:step:${t+1}`)}));for await(let n of e)if(t?.signal?.throwIfAborted(),yield n,s)if(c===void 0)c=n;else try{c=this._concatOutputChunks(c,n)}catch{c=void 0,s=!1}}catch(e){throw await a?.handleChainError(e),e}await a?.handleChainEnd(Ex(c,`output`))}getGraph(e){let t=new hx,n=null;return this.steps.forEach((r,i)=>{let a=r.getGraph(e);i!==0&&a.trimFirstNode(),i!==this.steps.length-1&&a.trimLastNode(),t.extend(a);let o=a.firstNode();if(!o)throw Error(`Runnable ${r} has no first node`);n&&t.addEdge(n,o),n=a.lastNode()}),t}pipe(t){return e.isRunnableSequence(t)?new e({first:this.first,middle:this.middle.concat([this.last,t.first,...t.middle]),last:t.last,name:this.name??t.name}):new e({first:this.first,middle:[...this.middle,this.last],last:Rx(t),name:this.name})}static isRunnableSequence(e){return Array.isArray(e.middle)&&Dx.isRunnable(e)}static from([t,...n],r){let i={};return typeof r==`string`?i.name=r:r!==void 0&&(i=r),new e({...i,first:Rx(t),middle:n.slice(0,-1).map(Rx),last:Rx(n[n.length-1])})}},Mx=class e extends Dx{static lc_name(){return`RunnableMap`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;steps;getStepsKeys(){return Object.keys(this.steps)}constructor(e){super(e),this.steps={};for(let[t,n]of Object.entries(e.steps))this.steps[t]=Rx(n)}static from(t){return new e({steps:t})}async invoke(e,t){let n=nu(t),r=await(await eu(n))?.handleChainStart(this.toJSON(),{input:e},n.runId,void 0,void 0,void 0,n?.runName);delete n.runId;let i={};try{let t=Object.entries(this.steps).map(async([t,a])=>{i[t]=await a.invoke(e,ru(n,{callbacks:r?.getChild(`map:key:${t}`)}))});await au(Promise.all(t),n.signal)}catch(e){throw await r?.handleChainError(e),e}return await r?.handleChainEnd(i),i}async*_transform(e,t,n){let r={...this.steps},i=lu(e,Object.keys(r).length),a=new Map(Object.entries(r).map(([e,r],a)=>{let o=r.transform(i[a],ru(n,{callbacks:t?.getChild(`map:key:${e}`)}));return[e,o.next().then(t=>({key:e,gen:o,result:t}))]}));for(;a.size;){let{key:e,result:t,gen:r}=await au(Promise.race(a.values()),n?.signal);a.delete(e),t.done||(yield{[e]:t.value},a.set(e,r.next().then(t=>({key:e,gen:r,result:t}))))}}transform(e,t){return this._transformStreamWithConfig(e,this._transform.bind(this),t)}async stream(e,t){async function*n(){yield e}let r=nu(t),i=new du({generator:this.transform(n(),r),config:r});return await i.setup,cu.fromAsyncGenerator(i)}},Nx=class e extends Dx{lc_serializable=!1;lc_namespace=[`langchain_core`,`runnables`];func;constructor(e){if(super(e),!gl(e.func))throw Error(`RunnableTraceable requires a function that is wrapped in traceable higher-order function`);this.func=e.func}async invoke(e,t){let[n]=this._getOptionsList(t??{},1),r=await eu(n);return au(this.func(ru(n,{callbacks:r}),e),n?.signal)}async*_streamIterator(e,t){let[n]=this._getOptionsList(t??{},1),r=await this.invoke(e,t);if(xx(r)){for await(let e of r)n?.signal?.throwIfAborted(),yield e;return}if(bx(r)){for(;;){n?.signal?.throwIfAborted();let e=r.next();if(e.done)break;yield e.value}return}yield r}static from(t){return new e({func:t})}};function Px(e){if(gl(e))throw Error(`RunnableLambda requires a function that is not wrapped in traceable higher-order function. This shouldn't happen.`)}var Fx=class e extends Dx{static lc_name(){return`RunnableLambda`}lc_namespace=[`langchain_core`,`runnables`];func;constructor(e){if(gl(e.func))return Nx.from(e.func);super(e),Px(e.func),this.func=e.func}static from(t){return new e({func:t})}async _invoke(e,t,n){return new Promise((r,i)=>{let a=ru(t,{callbacks:n?.getChild(),recursionLimit:(t?.recursionLimit??25)-1});Yl.runWithConfig(iu(a),async()=>{try{let n=await this.func(e,{...a});if(n&&Dx.isRunnable(n)){if(t?.recursionLimit===0)throw Error(`Recursion limit reached.`);n=await n.invoke(e,{...a,recursionLimit:(a.recursionLimit??25)-1})}else if(xx(n)){let e;for await(let r of Tx(a,n))if(t?.signal?.throwIfAborted(),e===void 0)e=r;else try{e=this._concatOutputChunks(e,r)}catch{e=r}n=e}else if(yx(n)){let e;for(let r of wx(a,n))if(t?.signal?.throwIfAborted(),e===void 0)e=r;else try{e=this._concatOutputChunks(e,r)}catch{e=r}n=e}r(n)}catch(e){i(e)}})})}async invoke(e,t){return this._callWithConfig(this._invoke.bind(this),e,t)}async*_transform(e,t,n){let r;for await(let t of e)if(r===void 0)r=t;else try{r=this._concatOutputChunks(r,t)}catch{r=t}let i=ru(n,{callbacks:t?.getChild(),recursionLimit:(n?.recursionLimit??25)-1}),a=await new Promise((e,t)=>{Yl.runWithConfig(iu(i),async()=>{try{e(await this.func(r,{...i,config:i}))}catch(e){t(e)}})});if(a&&Dx.isRunnable(a)){if(n?.recursionLimit===0)throw Error(`Recursion limit reached.`);let e=await a.stream(r,i);for await(let t of e)yield t}else if(xx(a))for await(let e of Tx(i,a))n?.signal?.throwIfAborted(),yield e;else if(yx(a))for(let e of wx(i,a))n?.signal?.throwIfAborted(),yield e;else yield a}transform(e,t){return this._transformStreamWithConfig(e,this._transform.bind(this),t)}async stream(e,t){async function*n(){yield e}let r=nu(t),i=new du({generator:this.transform(n(),r),config:r});return await i.setup,cu.fromAsyncGenerator(i)}},Ix=class extends Mx{},Lx=class extends Dx{static lc_name(){return`RunnableWithFallbacks`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;runnable;fallbacks;constructor(e){super(e),this.runnable=e.runnable,this.fallbacks=e.fallbacks}*runnables(){yield this.runnable;for(let e of this.fallbacks)yield e}async invoke(e,t){let n=nu(t),r=await eu(n),{runId:i,...a}=n,o=await r?.handleChainStart(this.toJSON(),Ex(e,`input`),i,void 0,void 0,void 0,a?.runName),s=ru(a,{callbacks:o?.getChild()});return await Yl.runWithConfig(s,async()=>{let t;for(let r of this.runnables()){n?.signal?.throwIfAborted();try{let t=await r.invoke(e,s);return await o?.handleChainEnd(Ex(t,`output`)),t}catch(e){t===void 0&&(t=e)}}throw t===void 0?Error(`No error stored at end of fallback.`):(await o?.handleChainError(t),t)})}async*_streamIterator(e,t){let n=nu(t),r=await eu(n),{runId:i,...a}=n,o=await r?.handleChainStart(this.toJSON(),Ex(e,`input`),i,void 0,void 0,void 0,a?.runName),s,c;for(let t of this.runnables()){n?.signal?.throwIfAborted();let r=ru(a,{callbacks:o?.getChild()});try{c=Tx(r,await t.stream(e,r));break}catch(e){s===void 0&&(s=e)}}if(c===void 0){let e=s??Error(`No error stored at end of fallback.`);throw await o?.handleChainError(e),e}let l;try{for await(let e of c){yield e;try{l=l===void 0?l:this._concatOutputChunks(l,e)}catch{l=void 0}}}catch(e){throw await o?.handleChainError(e),e}await o?.handleChainEnd(Ex(l,`output`))}async batch(e,t,n){if(n?.returnExceptions)throw Error(`Not implemented.`);let r=this._getOptionsList(t??{},e.length),i=await Promise.all(r.map(e=>eu(e))),a=await Promise.all(i.map(async(t,n)=>{let i=await t?.handleChainStart(this.toJSON(),Ex(e[n],`input`),r[n].runId,void 0,void 0,void 0,r[n].runName);return delete r[n].runId,i})),o;for(let t of this.runnables()){r[0].signal?.throwIfAborted();try{let i=await t.batch(e,a.map((e,t)=>ru(r[t],{callbacks:e?.getChild()})),n);return await Promise.all(a.map((e,t)=>e?.handleChainEnd(Ex(i[t],`output`)))),i}catch(e){o===void 0&&(o=e)}}throw o?(await Promise.all(a.map(e=>e?.handleChainError(o))),o):Error(`No error stored at end of fallbacks.`)}};function Rx(e){if(typeof e==`function`)return new Fx({func:e});if(Dx.isRunnable(e))return e;if(!Array.isArray(e)&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=Rx(r);return new Mx({steps:t})}else throw Error(`Expected a Runnable, function or object.
|
|
101
|
+
Instead got an unsupported type.`)}var zx=class extends Dx{static lc_name(){return`RunnableAssign`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;mapper;constructor(e){e instanceof Mx&&(e={mapper:e}),super(e),this.mapper=e.mapper}async invoke(e,t){let n=await this.mapper.invoke(e,t);return{...e,...n}}async*_transform(e,t,n){let r=this.mapper.getStepsKeys(),[i,a]=lu(e),o=this.mapper.transform(a,ru(n,{callbacks:t?.getChild()})),s=o.next();for await(let e of i){if(typeof e!=`object`||Array.isArray(e))throw Error(`RunnableAssign can only be used with objects as input, got ${typeof e}`);let t=Object.fromEntries(Object.entries(e).filter(([e])=>!r.includes(e)));Object.keys(t).length>0&&(yield t)}yield(await s).value;for await(let e of o)yield e}transform(e,t){return this._transformStreamWithConfig(e,this._transform.bind(this),t)}async stream(e,t){async function*n(){yield e}let r=nu(t),i=new du({generator:this.transform(n(),r),config:r});return await i.setup,cu.fromAsyncGenerator(i)}},Bx=class extends Dx{static lc_name(){return`RunnablePick`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;keys;constructor(e){(typeof e==`string`||Array.isArray(e))&&(e={keys:e}),super(e),this.keys=e.keys}async _pick(e){if(typeof this.keys==`string`)return e[this.keys];{let t=this.keys.map(t=>[t,e[t]]).filter(e=>e[1]!==void 0);return t.length===0?void 0:Object.fromEntries(t)}}async invoke(e,t){return this._callWithConfig(this._pick.bind(this),e,t)}async*_transform(e){for await(let t of e){let e=await this._pick(t);e!==void 0&&(yield e)}}transform(e,t){return this._transformStreamWithConfig(e,this._transform.bind(this),t)}async stream(e,t){async function*n(){yield e}let r=nu(t),i=new du({generator:this.transform(n(),r),config:r});return await i.setup,cu.fromAsyncGenerator(i)}},Vx=class extends Ox{name;description;schema;constructor(e){let t=jx.from([Fx.from(async e=>{let t;if(C(e))try{t=await d_(this.schema,e.args)}catch{throw new ne(`Received tool input did not match expected schema`,JSON.stringify(e.args))}else t=e;return t}).withConfig({runName:`${e.name}:parse_input`}),e.bound]).withConfig({runName:e.name});super({bound:t,config:e.config??{}}),this.name=e.name,this.description=e.description,this.schema=e.schema}static lc_name(){return`RunnableToolLike`}};function Hx(e,t){let n=t.name??e.getName(),r=t.description??m_(t.schema);return g_(t.schema)?new Vx({name:n,description:r,schema:Ty({input:Cy()}).transform(e=>e.input),bound:e}):new Vx({name:n,description:r,schema:t.schema,bound:e})}var Ux=class extends Dx{static lc_name(){return`RunnablePassthrough`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;func;constructor(e){super(e),e&&(this.func=e.func)}async invoke(e,t){let n=nu(t);return this.func&&await this.func(e,n),this._callWithConfig(e=>Promise.resolve(e),e,n)}async*transform(e,t){let n=nu(t),r,i=!0;for await(let t of this._transformStreamWithConfig(e,e=>e,n))if(yield t,i)if(r===void 0)r=t;else try{r=uu(r,t)}catch{r=void 0,i=!1}this.func&&r!==void 0&&await this.func(r,n)}static assign(e){return new zx(new Mx({steps:e}))}},Wx=class extends Dx{static lc_name(){return`RouterRunnable`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;runnables;constructor(e){super(e),this.runnables=e.runnables}async invoke(e,t){let{key:n,input:r}=e,i=this.runnables[n];if(i===void 0)throw Error(`No runnable associated with key "${n}".`);return i.invoke(r,nu(t))}async batch(e,t,n){let r=e.map(e=>e.key),i=e.map(e=>e.input);if(r.find(e=>this.runnables[e]===void 0)!==void 0)throw Error(`One or more keys do not have a corresponding runnable.`);let a=r.map(e=>this.runnables[e]),o=this._getOptionsList(t??{},e.length),s=o[0]?.maxConcurrency??n?.maxConcurrency,c=s&&s>0?s:e.length,l=[];for(let e=0;e<i.length;e+=c){let t=i.slice(e,e+c).map((e,t)=>a[t].invoke(e,o[t])),n=await Promise.all(t);l.push(n)}return l.flat()}async stream(e,t){let{key:n,input:r}=e,i=this.runnables[n];if(i===void 0)throw Error(`No runnable associated with key "${n}".`);return i.stream(r,t)}},Gx=class extends Dx{static lc_name(){return`RunnableBranch`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;default;branches;constructor(e){super(e),this.branches=e.branches,this.default=e.default}static from(e){if(e.length<1)throw Error(`RunnableBranch requires at least one branch`);let t=e.slice(0,-1).map(([e,t])=>[Rx(e),Rx(t)]),n=Rx(e[e.length-1]);return new this({branches:t,default:n})}async _invoke(e,t,n){let r;for(let i=0;i<this.branches.length;i+=1){let[a,o]=this.branches[i];if(await a.invoke(e,ru(t,{callbacks:n?.getChild(`condition:${i+1}`)}))){r=await o.invoke(e,ru(t,{callbacks:n?.getChild(`branch:${i+1}`)}));break}}return r||=await this.default.invoke(e,ru(t,{callbacks:n?.getChild(`branch:default`)})),r}async invoke(e,t={}){return this._callWithConfig(this._invoke,e,t)}async*_streamIterator(e,t){let n=await(await eu(t))?.handleChainStart(this.toJSON(),Ex(e,`input`),t?.runId,void 0,void 0,void 0,t?.runName),r,i=!0,a;try{for(let o=0;o<this.branches.length;o+=1){let[s,c]=this.branches[o];if(await s.invoke(e,ru(t,{callbacks:n?.getChild(`condition:${o+1}`)}))){a=await c.stream(e,ru(t,{callbacks:n?.getChild(`branch:${o+1}`)}));for await(let e of a)if(yield e,i)if(r===void 0)r=e;else try{r=uu(r,e)}catch{r=void 0,i=!1}break}}if(a===void 0){a=await this.default.stream(e,ru(t,{callbacks:n?.getChild(`branch:default`)}));for await(let e of a)if(yield e,i)if(r===void 0)r=e;else try{r=uu(r,e)}catch{r=void 0,i=!1}}}catch(e){throw await n?.handleChainError(e),e}await n?.handleChainEnd(r??{})}},Kx=(e,t)=>{let n=[...new Set(t?.map(e=>{if(typeof e==`string`)return e;let t=new e({});if(!(`getType`in t)||typeof t.getType!=`function`)throw Error(`Invalid type provided.`);return t.getType()}))],r=e.getType();return n.some(e=>e===r)};function qx(e,t){return Array.isArray(e)?Jx(e,t):Fx.from(t=>Jx(t,e))}function Jx(e,t={}){let{includeNames:n,excludeNames:r,includeTypes:i,excludeTypes:a,includeIds:o,excludeIds:s}=t,c=[];for(let t of e)r&&t.name&&r.includes(t.name)||a&&Kx(t,a)||s&&t.id&&s.includes(t.id)||(i||o||n?(n&&t.name&&n.some(e=>e===t.name)||i&&Kx(t,i)||o&&t.id&&o.some(e=>e===t.id))&&c.push(t):c.push(t));return c}function Yx(e){return Array.isArray(e)?Xx(e):Fx.from(Xx)}function Xx(e){if(!e.length)return[];let t=[];for(let n of e){let e=n,r=t.pop();if(!r)t.push(e);else if(e.getType()===`tool`||e.getType()!==r.getType())t.push(r,e);else{let n=Bn(r),i=Bn(e),a=n.concat(i);typeof n.content==`string`&&typeof i.content==`string`&&(a.content=`${n.content}\n${i.content}`),t.push(rS(a))}}return t}function Zx(e,t){if(Array.isArray(e)){let n=e;if(!t)throw Error(`Options parameter is required when providing messages.`);return Qx(n,t)}else{let t=e;return Fx.from(e=>Qx(e,t)).withConfig({runName:`trim_messages`})}}async function Qx(e,t){let{maxTokens:n,tokenCounter:r,strategy:i=`last`,allowPartial:a=!1,endOn:o,startOn:s,includeSystem:c=!1,textSplitter:l}=t;if(s&&i===`first`)throw Error("`startOn` should only be specified if `strategy` is 'last'.");if(c&&i===`first`)throw Error("`includeSystem` should only be specified if `strategy` is 'last'.");let u;u=`getNumTokens`in r?async e=>(await Promise.all(e.map(e=>r.getNumTokens(e.content)))).reduce((e,t)=>e+t,0):async e=>r(e);let d=iS;if(l&&(d=`splitText`in l?l.splitText:async e=>l(e)),i===`first`)return $x(e,{maxTokens:n,tokenCounter:u,textSplitter:d,partialStrategy:a?`first`:void 0,endOn:o});if(i===`last`)return eS(e,{maxTokens:n,tokenCounter:u,textSplitter:d,allowPartial:a,includeSystem:c,startOn:s,endOn:o});throw Error(`Unrecognized strategy: '${i}'. Must be one of 'first' or 'last'.`)}async function $x(e,t){let{maxTokens:n,tokenCounter:r,textSplitter:i,partialStrategy:a,endOn:o}=t,s=[...e],c=0;for(let e=0;e<s.length;e+=1)if(await r(e>0?s.slice(0,-e):s)<=n){c=s.length-e;break}if(c<s.length&&a){let e=!1;if(Array.isArray(s[c].content)){let t=s[c];if(typeof t.content==`string`)throw Error(`Expected content to be an array.`);let i=t.content.length,o=a===`last`?[...t.content].reverse():t.content;for(let l=1;l<=i;l+=1){let i=a===`first`?o.slice(0,l):o.slice(-l),u=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`type`&&!e.startsWith(`lc_`))),d=nS(t.getType(),{...u,content:i}),f=[...s.slice(0,c),d];if(await r(f)<=n)s=f,c+=1,e=!0;else break}e&&a===`last`&&(t.content=[...o].reverse())}if(!e){let e=s[c],t;if(Array.isArray(e.content)&&e.content.some(e=>typeof e==`string`||e.type===`text`)?t=e.content.find(e=>e.type===`text`&&e.text)?.text:typeof e.content==`string`&&(t=e.content),t){let o=await i(t),l=o.length;a===`last`&&o.reverse();for(let t=0;t<l-1;t+=1)if(o.pop(),e.content=o.join(``),await r([...s.slice(0,c),e])<=n){a===`last`&&(e.content=[...o].reverse().join(``)),s=[...s.slice(0,c),e],c+=1;break}}}}if(o){let e=Array.isArray(o)?o:[o];for(;c>0&&!Kx(s[c-1],e);)--c}return s.slice(0,c)}async function eS(e,t){let{allowPartial:n=!1,includeSystem:r=!1,endOn:i,startOn:a,...o}=t,s=e.map(e=>{let t=Object.fromEntries(Object.entries(e).filter(([e])=>e!==`type`&&!e.startsWith(`lc_`)));return nS(e.getType(),t,Tt(e))});if(i){let e=Array.isArray(i)?i:[i];for(;s.length>0&&!Kx(s[s.length-1],e);)s=s.slice(0,-1)}let c=r&&s[0]?.getType()===`system`,l=c?s.slice(0,1).concat(s.slice(1).reverse()):s.reverse();return l=await $x(l,{...o,partialStrategy:n?`last`:void 0,endOn:a}),c?[l[0],...l.slice(1).reverse()]:l.reverse()}var tS={human:{message:yn,messageChunk:bn},ai:{message:k,messageChunk:un},system:{message:wn,messageChunk:Tn},developer:{message:wn,messageChunk:Tn},tool:{message:Ot,messageChunk:kt},function:{message:hn,messageChunk:gn},generic:{message:dn,messageChunk:fn},remove:{message:Cn,messageChunk:Cn}};function nS(e,t,n){let r,i;switch(e){case`human`:n?r=new bn(t):i=new yn(t);break;case`ai`:if(n){let e={...t};`tool_calls`in e&&(e={...e,tool_call_chunks:e.tool_calls?.map(e=>({...e,type:`tool_call_chunk`,index:void 0,args:JSON.stringify(e.args)}))}),r=new un(e)}else i=new k(t);break;case`system`:n?r=new Tn(t):i=new wn(t);break;case`developer`:n?r=new Tn({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:`developer`}}):i=new wn({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:`developer`}});break;case`tool`:if(`tool_call_id`in t)n?r=new kt(t):i=new Ot(t);else throw Error(`Can not convert ToolMessage to ToolMessageChunk if 'tool_call_id' field is not defined.`);break;case`function`:if(n)r=new gn(t);else{if(!t.name)throw Error(`FunctionMessage must have a 'name' field`);i=new hn(t)}break;case`generic`:if(`role`in t)n?r=new fn(t):i=new dn(t);else throw Error(`Can not convert ChatMessage to ChatMessageChunk if 'role' field is not defined.`);break;default:throw Error(`Unrecognized message type ${e}`)}if(n&&r)return r;if(i)return i;throw Error(`Unrecognized message type ${e}`)}function rS(e){let t=e.getType(),n,r=Object.fromEntries(Object.entries(e).filter(([e])=>![`type`,`tool_call_chunks`].includes(e)&&!e.startsWith(`lc_`)));if(t in tS&&(n=nS(t,r)),!n)throw Error(`Unrecognized message chunk class ${t}. Supported classes are ${Object.keys(tS)}`);return n}function iS(e){let t=e.split(`
|
|
102
|
+
`);return Promise.resolve([...t.slice(0,-1).map(e=>`${e}\n`),t[t.length-1]])}var aS=[`tool_call`,`tool_call_chunk`,`invalid_tool_call`,`server_tool_call`,`server_tool_call_chunk`,`server_tool_call_result`],oS=[`image`,`video`,`audio`,`text-plain`,`file`],sS=[`text`,`reasoning`,...aS,...oS],cS=h({AIMessage:()=>k,AIMessageChunk:()=>un,BaseMessage:()=>ut,BaseMessageChunk:()=>St,ChatMessage:()=>dn,ChatMessageChunk:()=>fn,DEFAULT_MERGE_IGNORE_KEYS:()=>ft,FunctionMessage:()=>hn,FunctionMessageChunk:()=>gn,HumanMessage:()=>yn,HumanMessageChunk:()=>bn,KNOWN_BLOCK_TYPES:()=>sS,RemoveMessage:()=>Cn,SystemMessage:()=>wn,SystemMessageChunk:()=>Tn,ToolMessage:()=>Ot,ToolMessageChunk:()=>kt,_isMessageFieldWithRole:()=>Ct,_mergeDicts:()=>pt,_mergeLists:()=>bt,_mergeObj:()=>xt,_mergeStatus:()=>ct,coerceMessageLikeToMessage:()=>Nn,collapseToolCallChunks:()=>Vn,convertToChunk:()=>Bn,convertToOpenAIImageBlock:()=>T,convertToProviderContentBlock:()=>Ne,defaultTextSplitter:()=>iS,defaultToolCallParser:()=>At,filterMessages:()=>qx,getBufferString:()=>Fn,iife:()=>kn,isAIMessage:()=>cn,isAIMessageChunk:()=>ln,isBase64ContentBlock:()=>Oe,isBaseMessage:()=>wt,isBaseMessageChunk:()=>Tt,isChatMessage:()=>pn,isChatMessageChunk:()=>mn,isDataContentBlock:()=>Ee,isDirectToolOutput:()=>Dt,isFunctionMessage:()=>_n,isFunctionMessageChunk:()=>vn,isHumanMessage:()=>xn,isHumanMessageChunk:()=>Sn,isIDContentBlock:()=>Ae,isMessage:()=>nt,isOpenAIToolCallArray:()=>dt,isPlainTextContentBlock:()=>ke,isSystemMessage:()=>En,isSystemMessageChunk:()=>Dn,isToolMessage:()=>jt,isToolMessageChunk:()=>Mt,isURLContentBlock:()=>De,mapChatMessagesToStoredMessages:()=>zn,mapStoredMessageToChatMessage:()=>Ln,mapStoredMessagesToChatMessages:()=>Rn,mergeContent:()=>st,mergeMessageRuns:()=>Yx,mergeResponseMetadata:()=>tn,mergeUsageMetadata:()=>on,parseBase64DataUrl:()=>Me,parseMimeType:()=>je,trimMessages:()=>Zx}),lS=class extends Ox{runnable;inputMessagesKey;outputMessagesKey;historyMessagesKey;getMessageHistory;constructor(e){let t=Fx.from((e,t)=>this._enterHistory(e,t??{})).withConfig({runName:`loadHistory`}),n=e.historyMessagesKey??e.inputMessagesKey;n&&(t=Ux.assign({[n]:t}).withConfig({runName:`insertHistory`}));let r=t.pipe(e.runnable.withListeners({onEnd:(e,t)=>this._exitHistory(e,t??{})})).withConfig({runName:`RunnableWithMessageHistory`}),i=e.config??{};super({...e,config:i,bound:r}),this.runnable=e.runnable,this.getMessageHistory=e.getMessageHistory,this.inputMessagesKey=e.inputMessagesKey,this.outputMessagesKey=e.outputMessagesKey,this.historyMessagesKey=e.historyMessagesKey}_getInputMessages(e){let t;if(typeof e==`object`&&!Array.isArray(e)&&!wt(e)){let n;n=this.inputMessagesKey?this.inputMessagesKey:Object.keys(e).length===1?Object.keys(e)[0]:`input`,t=Array.isArray(e[n])&&Array.isArray(e[n][0])?e[n][0]:e[n]}else t=e;if(typeof t==`string`)return[new yn(t)];if(Array.isArray(t))return t;if(wt(t))return[t];throw Error(`Expected a string, BaseMessage, or array of BaseMessages.\nGot ${JSON.stringify(t,null,2)}`)}_getOutputMessages(e){let t;if(!Array.isArray(e)&&!wt(e)&&typeof e!=`string`){let n;n=this.outputMessagesKey===void 0?Object.keys(e).length===1?Object.keys(e)[0]:`output`:this.outputMessagesKey,t=e.generations===void 0?e[n]:e.generations[0][0].message}else t=e;if(typeof t==`string`)return[new k(t)];if(Array.isArray(t))return t;if(wt(t))return[t];throw Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(t,null,2)}`)}async _enterHistory(e,t){let n=await(t?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?n.concat(this._getInputMessages(e)):n}async _exitHistory(e,t){let n=t.configurable?.messageHistory,r;r=Array.isArray(e.inputs)&&Array.isArray(e.inputs[0])?e.inputs[0]:e.inputs;let i=this._getInputMessages(r);if(this.historyMessagesKey===void 0){let e=await n.getMessages();i=i.slice(e.length)}let a=e.outputs;if(!a)throw Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(e,null,2)}`);let o=this._getOutputMessages(a);await n.addMessages([...i,...o])}async _mergeConfig(...e){let t=await super._mergeConfig(...e);if(!t.configurable||!t.configurable.sessionId){let e={[this.inputMessagesKey??`input`]:`foo`};throw Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()\neg. chain.invoke(${JSON.stringify(e)}, ${JSON.stringify({configurable:{sessionId:`123`}})})`)}let{sessionId:n}=t.configurable;return t.configurable.messageHistory=await this.getMessageHistory(n),t}},uS=h({RouterRunnable:()=>Wx,Runnable:()=>Dx,RunnableAssign:()=>zx,RunnableBinding:()=>Ox,RunnableBranch:()=>Gx,RunnableEach:()=>kx,RunnableLambda:()=>Fx,RunnableMap:()=>Mx,RunnableParallel:()=>Ix,RunnablePassthrough:()=>Ux,RunnablePick:()=>Bx,RunnableRetry:()=>Ax,RunnableSequence:()=>jx,RunnableToolLike:()=>Vx,RunnableWithFallbacks:()=>Lx,RunnableWithMessageHistory:()=>lS,_coerceToRunnable:()=>Rx,ensureConfig:()=>nu,getCallbackManagerForConfig:()=>eu,mergeConfigs:()=>tu,patchConfig:()=>ru,pickRunnableConfigKeys:()=>iu,raceWithSignal:()=>au});function dS(e,t){if(e!=null){if(typeof e!=`number`||Number.isNaN(e)||e<=0)throw Error(`${t} must be greater than 0`);return e}}function fS(e){if(e==null)return;let t=typeof e==`number`?{runTimeout:e}:e,n=t.refreshOn??`auto`;if(n!==`auto`&&n!==`heartbeat`)throw Error(`refreshOn must be "auto" or "heartbeat"`);let r=dS(t.runTimeout,`runTimeout`),i=dS(t.idleTimeout,`idleTimeout`);if(!(r===void 0&&i===void 0))return{runTimeout:r,idleTimeout:i,refreshOn:n}}var pS=`__start__`,mS=`__end__`,hS=`__input__`,gS=`__error__`,_S=`__error_source_node__`,vS=`__pregel_ns_writes`;function yS(){let e=typeof process<`u`?{}.LANGGRAPH_DELTA_MAX_SUPERSTEPS_SINCE_SNAPSHOT:void 0;if(e!==void 0&&e!==``){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&t>0)return t}return 5e3}var bS=`__pregel_send`,xS=`__pregel_call`,SS=`__pregel_read`,CS=`__pregel_checkpointer`,wS=`__pregel_resuming`,TS=`__pregel_task_id`,ES=`__pregel_stream`,DS=`__pregel_resume_value`,OS=`__pregel_resume_map`,kS=`__pregel_scratchpad`,AS=`__pregel_previous`,jS=`__pregel_durability`,MS=`checkpoint_id`,NS=`checkpoint_ns`,PS=`__pregel_node_finished`,FS=`__pregel_node_error`,IS=`checkpoint_map`,LS=`__pregel_replay_state`,RS=`__pregel_abort_signals`,zS=`__interrupt__`,BS=`__resume__`,VS=`__no_writes__`,HS=`__return__`,US=`__previous__`,WS=`langsmith:hidden`,GS=`__self__`,KS=`__pregel_tasks`,qS=`__pregel_push`,JS=`__pregel_pull`,YS=`00000000-0000-0000-0000-000000000000`,XS=[WS,hS,zS,BS,gS,_S,VS,bS,SS,CS,jS,ES,wS,TS,xS,DS,kS,AS,IS,NS,MS,LS],ZS=Symbol.for(`langgraph.command`),QS=class{[ZS];constructor(e){this[ZS]=e}};function $S(e){let t=e;return t!=null&&typeof t.node==`string`&&t.args!==void 0}var eC=class{lg_name=`Send`;node;args;timeout;constructor(e,t,n){this.node=e,this.args=lC(t),this.timeout=fS(n?.timeout)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args,timeout:this.timeout}}};function tC(e){return e instanceof eC}var nC=`__overwrite__`;function rC(e){if(typeof e==`object`&&e){if(`__overwrite__`in e)return[!0,e[nC]];let t=e;if(t.type===`__overwrite__`&&`value`in t)return[!0,t.value]}return[!1,void 0]}function iC(e){return rC(e)[0]}function aC(e){return!e||typeof e!=`object`||!(`__interrupt__`in e)?!1:Array.isArray(e[zS])}var oC=class extends QS{lg_name=`Command`;lc_direct_tool_output=!0;graph;update;resume;goto=[];static PARENT=`__parent__`;constructor(e){super(e),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?lC(e.goto):[lC(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update==`object`&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]==`string`)?this.update:[[`__root__`,this.update]]}toJSON(){let e;return e=typeof this.goto==`string`?this.goto:tC(this.goto)?this.goto.toJSON():this.goto?.map(e=>typeof e==`string`?e:e.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};function sC(e){return typeof e!=`object`||!e?!1:`lg_name`in e&&e.lg_name===`Command`}function cC(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function lC(e,t=new Map){if(typeof e==`object`&&e){if(t.has(e))return t.get(e);let n;if(Array.isArray(e))n=[],t.set(e,n),e.forEach((e,r)=>{n[r]=lC(e,t)});else if(e instanceof oC||e instanceof eC||!cC(e))n=e,t.set(e,n);else if(sC(e))n=new oC(e),t.set(e,n);else if($S(e))n=new eC(e.node,e.args,e.timeout===void 0?void 0:{timeout:e.timeout}),t.set(e,n);else if(`lc_serializable`in e&&e.lc_serializable)n=e,t.set(e,n);else{n={},t.set(e,n);for(let[r,i]of Object.entries(e))n[r]=lC(i,t)}return n}return e}var uC=class extends Error{lc_error_code;constructor(e,t){let n=e??``;t?.lc_error_code&&(n=`${n}\n\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langgraph/${t.lc_error_code}/\n`),super(n),this.lc_error_code=t?.lc_error_code}},dC=class extends uC{get is_bubble_up(){return!0}},fC=class extends uC{constructor(e,t){super(e,t),this.name=`GraphRecursionError`}static get unminifiable_name(){return`GraphRecursionError`}},pC=class extends uC{constructor(e,t){super(e,t),this.name=`GraphValueError`}static get unminifiable_name(){return`GraphValueError`}},mC=class extends dC{reason;constructor(e=`shutdown`,t){super(`Graph drained: ${e}`,t),this.name=`GraphDrained`,this.reason=e}static get unminifiable_name(){return`GraphDrained`}};function hC(e){return e!==void 0&&e.name===mC.unminifiable_name}var gC=class extends dC{interrupts;constructor(e,t){super(JSON.stringify(e,null,2),t),this.name=`GraphInterrupt`,this.interrupts=e??[]}static get unminifiable_name(){return`GraphInterrupt`}},_C=class extends gC{constructor(e,t){super([{value:e}],t),this.name=`NodeInterrupt`}static get unminifiable_name(){return`NodeInterrupt`}},vC=class{node;error;constructor(e,t){this.node=e,this.error=t}static get unminifiable_name(){return`NodeError`}},yC=class extends dC{command;constructor(e){super(),this.name=`ParentCommand`,this.command=e}static get unminifiable_name(){return`ParentCommand`}};function bC(e){return e!==void 0&&e.name===yC.unminifiable_name}function xC(e){return e!==void 0&&e.is_bubble_up===!0}function SC(e){return e!==void 0&&[gC.unminifiable_name,_C.unminifiable_name].includes(e.name)}var CC=class extends uC{node;kind;timeout;elapsed;runTimeout;idleTimeout;constructor(e,t){let{node:n,elapsed:r,kind:i,runTimeout:a,idleTimeout:o}=e,s,c;if(i===`idle`){if(o===void 0)throw Error(`idleTimeout is required when kind='idle'`);c=o,s=`Node "${n}" exceeded its idle timeout of ${o}ms without making progress (elapsed: ${r}ms).`}else{if(a===void 0)throw Error(`runTimeout is required when kind='run'`);c=a,s=`Node "${n}" exceeded its run timeout of ${a}ms (elapsed: ${r}ms).`}super(s,t),this.name=`NodeTimeoutError`,this.node=n,this.kind=i,this.timeout=c,this.elapsed=r,this.runTimeout=a,this.idleTimeout=o}static get unminifiable_name(){return`NodeTimeoutError`}},wC=class extends uC{constructor(e,t){super(e,t),this.name=`EmptyInputError`}static get unminifiable_name(){return`EmptyInputError`}},TC=class extends uC{constructor(e,t){let n=Error.stackTraceLimit;Error.stackTraceLimit=0,super(e,t),Error.stackTraceLimit=n,this.name=`EmptyChannelError`}static get unminifiable_name(){return`EmptyChannelError`}},EC=class extends uC{constructor(e,t){super(e,t),this.name=`InvalidUpdateError`}static get unminifiable_name(){return`InvalidUpdateError`}},DC=class extends uC{constructor(e,t){super(e,t),this.name=`UnreachableNodeError`}static get unminifiable_name(){return`UnreachableNodeError`}},OC=class extends uC{constructor(e,t){super(e,t),this.name=`StateGraphInputError`,this.message=`Invalid StateGraph input. Make sure to pass a valid StateDefinition, Annotation.Root, or Zod schema.`}static get unminifiable_name(){return`StateGraphInputError`}},kC=0,AC=0;function jC(e){let t=Date.now();return t<=kC?(AC+=1,AC>=1e4&&(AC=0,t=kC+1)):AC=0,kC=t,Or({clockseq:e,msecs:t,nsecs:AC})}function MC(e,t){let n=t.replace(/-/g,``).match(/.{2}/g).map(e=>parseInt(e,16));return Dr(e,new Uint8Array(n))}var NC=`__error__`,PC=`__scheduled__`,FC=`__interrupt__`,IC=`__resume__`,LC=class{lg_name=`DeltaSnapshot`;value;constructor(e){this.value=e}};function RC(e){return typeof e==`object`&&!!e&&e.lg_name===`DeltaSnapshot`}var zC=`[...]`,BC=`[Circular]`,VC=[],HC=[];function UC(){return{depthLimit:2**53-1,edgesLimit:2**53-1}}function WC(e,t,n,r){r===void 0&&(r=UC()),KC(e,``,0,[],void 0,0,r);var i;try{i=HC.length===0?JSON.stringify(e,t,n):JSON.stringify(e,qC(t),n)}catch{return JSON.stringify(`[unable to serialize, circular reference is too complex to analyze]`)}finally{for(;VC.length!==0;){var a=VC.pop();a.length===4?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}}return i}function GC(e,t,n,r){var i=Object.getOwnPropertyDescriptor(r,n);i.get===void 0?(r[n]=e,VC.push([r,n,t])):i.configurable?(Object.defineProperty(r,n,{value:e}),VC.push([r,n,t,i])):HC.push([t,n,e])}function KC(e,t,n,r,i,a,o){a+=1;var s;if(typeof e==`object`&&e){for(s=0;s<r.length;s++)if(r[s]===e){GC(BC,e,t,i);return}if(o.depthLimit!==void 0&&a>o.depthLimit){GC(zC,e,t,i);return}if(o.edgesLimit!==void 0&&n+1>o.edgesLimit){GC(zC,e,t,i);return}if(r.push(e),Array.isArray(e))for(s=0;s<e.length;s++)KC(e[s],s,s,r,e,a,o);else{var c=Object.keys(e);for(s=0;s<c.length;s++){var l=c[s];KC(e[l],l,s,r,e,a,o)}}r.pop()}}function qC(e){return e=e===void 0?function(e,t){return t}:e,function(t,n){if(HC.length>0)for(var r=0;r<HC.length;r++){var i=HC[r];if(i[1]===t&&i[0]===n){n=i[2],HC.splice(r,1);break}}return e.call(this,t,n)}}var JC=[],YC=h({}),XC=h({}),U=`0123456789abcdef`.split(``),ZC=[-2147483648,8388608,32768,128],QC=[24,16,8,0],$C=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],ew=[];function tw(e,t){t?(ew[0]=ew[16]=ew[1]=ew[2]=ew[3]=ew[4]=ew[5]=ew[6]=ew[7]=ew[8]=ew[9]=ew[10]=ew[11]=ew[12]=ew[13]=ew[14]=ew[15]=0,this.blocks=ew):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}tw.prototype.update=function(e){if(!this.finalized){var t,n=typeof e;if(n!==`string`){if(n===`object`){if(e===null)throw Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw Error(ERROR)}else throw Error(ERROR);t=!0}for(var r,i=0,a,o=e.length,s=this.blocks;i<o;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,this.block=s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),t)for(a=this.start;i<o&&a<64;++i)s[a>>>2]|=e[i]<<QC[a++&3];else for(a=this.start;i<o&&a<64;++i)r=e.charCodeAt(i),r<128?s[a>>>2]|=r<<QC[a++&3]:r<2048?(s[a>>>2]|=(192|r>>>6)<<QC[a++&3],s[a>>>2]|=(128|r&63)<<QC[a++&3]):r<55296||r>=57344?(s[a>>>2]|=(224|r>>>12)<<QC[a++&3],s[a>>>2]|=(128|r>>>6&63)<<QC[a++&3],s[a>>>2]|=(128|r&63)<<QC[a++&3]):(r=65536+((r&1023)<<10|e.charCodeAt(++i)&1023),s[a>>>2]|=(240|r>>>18)<<QC[a++&3],s[a>>>2]|=(128|r>>>12&63)<<QC[a++&3],s[a>>>2]|=(128|r>>>6&63)<<QC[a++&3],s[a>>>2]|=(128|r&63)<<QC[a++&3]);this.lastByteIndex=a,this.bytes+=a-this.start,a>=64?(this.block=s[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes%=4294967296),this}},tw.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=ZC[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},tw.prototype.hash=function(){var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,a=this.h5,o=this.h6,s=this.h7,c=this.blocks,l,u,d,f,p,m,h,g,_,v,y;for(l=16;l<64;++l)p=c[l-15],u=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,p=c[l-2],d=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,c[l]=c[l-16]+u+c[l-7]+d<<0;for(y=t&n,l=0;l<64;l+=4)this.first?(this.is224?(g=300032,p=c[0]-1413257819,s=p-150054599<<0,r=p+24177077<<0):(g=704751109,p=c[0]-210244248,s=p-1521486534<<0,r=p+143694565<<0),this.first=!1):(u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),d=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),g=e&t,f=g^e&n^y,h=i&a^~i&o,p=s+d+h+$C[l]+c[l],m=u+f,s=r+p<<0,r=p+m<<0),u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),d=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),_=r&e,f=_^r&t^g,h=o&s^~o&i,p=a+d+h+$C[l+1]+c[l+1],m=u+f,o=n+p<<0,n=p+m<<0,u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),d=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),v=n&r,f=v^n&e^_,h=a&o^~a&s,p=i+d+h+$C[l+2]+c[l+2],m=u+f,a=t+p<<0,t=p+m<<0,u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),d=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),y=t&n,f=y^t&r^v,h=a&o^~a&s,p=i+d+h+$C[l+3]+c[l+3],m=u+f,i=e+p<<0,e=p+m<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+n<<0,this.h3=this.h3+r<<0,this.h4=this.h4+i<<0,this.h5=this.h5+a<<0,this.h6=this.h6+o<<0,this.h7=this.h7+s<<0},tw.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,a=this.h5,o=this.h6,s=this.h7,c=U[e>>>28&15]+U[e>>>24&15]+U[e>>>20&15]+U[e>>>16&15]+U[e>>>12&15]+U[e>>>8&15]+U[e>>>4&15]+U[e&15]+U[t>>>28&15]+U[t>>>24&15]+U[t>>>20&15]+U[t>>>16&15]+U[t>>>12&15]+U[t>>>8&15]+U[t>>>4&15]+U[t&15]+U[n>>>28&15]+U[n>>>24&15]+U[n>>>20&15]+U[n>>>16&15]+U[n>>>12&15]+U[n>>>8&15]+U[n>>>4&15]+U[n&15]+U[r>>>28&15]+U[r>>>24&15]+U[r>>>20&15]+U[r>>>16&15]+U[r>>>12&15]+U[r>>>8&15]+U[r>>>4&15]+U[r&15]+U[i>>>28&15]+U[i>>>24&15]+U[i>>>20&15]+U[i>>>16&15]+U[i>>>12&15]+U[i>>>8&15]+U[i>>>4&15]+U[i&15]+U[a>>>28&15]+U[a>>>24&15]+U[a>>>20&15]+U[a>>>16&15]+U[a>>>12&15]+U[a>>>8&15]+U[a>>>4&15]+U[a&15]+U[o>>>28&15]+U[o>>>24&15]+U[o>>>20&15]+U[o>>>16&15]+U[o>>>12&15]+U[o>>>8&15]+U[o>>>4&15]+U[o&15];return this.is224||(c+=U[s>>>28&15]+U[s>>>24&15]+U[s>>>20&15]+U[s>>>16&15]+U[s>>>12&15]+U[s>>>8&15]+U[s>>>4&15]+U[s&15]),c},tw.prototype.toString=tw.prototype.hex,tw.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,a=this.h5,o=this.h6,s=this.h7,c=[e>>>24&255,e>>>16&255,e>>>8&255,e&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255,i>>>24&255,i>>>16&255,i>>>8&255,i&255,a>>>24&255,a>>>16&255,a>>>8&255,a&255,o>>>24&255,o>>>16&255,o>>>8&255,o&255];return this.is224||c.push(s>>>24&255,s>>>16&255,s>>>8&255,s&255),c},tw.prototype.array=tw.prototype.digest,tw.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};var nw=(...e)=>new tw(!1,!0).update(e.join(``)).hex(),rw=h({sha256:()=>nw}),iw=h({BaseCache:()=>cw,InMemoryCache:()=>uw,defaultHashKeyEncoder:()=>aw,deserializeStoredGeneration:()=>ow,serializeGeneration:()=>sw}),aw=(...e)=>nw(e.join(`_`));function ow(e){return e.message===void 0?{text:e.text}:{text:e.text,message:Ln(e.message)}}function sw(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var cw=class{keyEncoder=aw;makeDefaultKeyEncoder(e){this.keyEncoder=e}},lw=new Map,uw=class e extends cw{cache;constructor(e){super(),this.cache=e??new Map}lookup(e,t){return Promise.resolve(this.cache.get(this.keyEncoder(e,t))??null)}async update(e,t,n){this.cache.set(this.keyEncoder(e,t),n)}static global(){return new e(lw)}},dw=h({BaseChatMessageHistory:()=>fw,BaseListChatMessageHistory:()=>pw,InMemoryChatMessageHistory:()=>mw}),fw=class extends Te{async addMessages(e){for(let t of e)await this.addMessage(t)}},pw=class extends Te{addUserMessage(e){return this.addMessage(new yn(e))}addAIMessage(e){return this.addMessage(new k(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw Error(`Not implemented.`)}},mw=class extends pw{lc_namespace=[`langchain`,`stores`,`message`,`in_memory`];messages=[];constructor(e){super(...arguments),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}},hw=class{pageContent;metadata;id;constructor(e){this.pageContent=e.pageContent===void 0?``:e.pageContent.toString(),this.metadata=e.metadata??{},this.id=e.id}},gw=class extends Dx{lc_namespace=[`langchain_core`,`documents`,`transformers`];invoke(e,t){return this.transformDocuments(e)}},_w=class extends gw{async transformDocuments(e){let t=[];for(let n of e){let e=await this._transformDocument(n);t.push(e)}return t}},vw=h({BaseDocumentTransformer:()=>gw,Document:()=>hw,MappingDocumentTransformer:()=>_w}),yw=h({BaseDocumentLoader:()=>bw}),bw=class{},xw=h({LangSmithLoader:()=>Sw}),Sw=class extends bw{datasetId;datasetName;exampleIds;asOf;splits;inlineS3Urls;offset;limit;metadata;filter;contentKey;formatContent;client;constructor(e){if(super(),e.client&&e.clientConfig)throw Error(`client and clientConfig cannot both be provided.`);this.client=e.client??new Tc(e?.clientConfig),this.contentKey=e.contentKey?e.contentKey.split(`.`):[],this.formatContent=e.formatContent??Cw,this.datasetId=e.datasetId,this.datasetName=e.datasetName,this.exampleIds=e.exampleIds,this.asOf=e.asOf,this.splits=e.splits,this.inlineS3Urls=e.inlineS3Urls,this.offset=e.offset,this.limit=e.limit,this.metadata=e.metadata,this.filter=e.filter}async load(){let e=[];for await(let t of this.client.listExamples({datasetId:this.datasetId,datasetName:this.datasetName,exampleIds:this.exampleIds,asOf:this.asOf,splits:this.splits,inlineS3Urls:this.inlineS3Urls,offset:this.offset,limit:this.limit,metadata:this.metadata,filter:this.filter})){let n=t.inputs;for(let e of this.contentKey)n=n[e];let r=this.formatContent(n),i=t;[`created_at`,`modified_at`].forEach(e=>{e in i&&typeof i[e]==`object`&&(i[e]=i[e].toString())}),e.push({pageContent:r,metadata:i})}return e}};function Cw(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var ww=h({Embeddings:()=>Tw}),Tw=class{caller;constructor(e){this.caller=new Td(e??{})}},Ew=class extends Te{lc_namespace=[`langchain_core`,`example_selectors`,`base`]},Dw=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Ow=class extends Dw{defaultPrompt;conditionals;constructor(e,t=[]){super(),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,n]of this.conditionals)if(t(e))return n;return this.defaultPrompt}};function kw(e){return e._modelType()===`base_llm`}function Aw(e){return e._modelType()===`base_chat_model`}function jw(e){return e.split(/\n| /).length}var Mw=class e extends Ew{examples=[];examplePrompt;getTextLength=jw;maxLength=2048;exampleTextLengths=[];constructor(e){super(e),this.examplePrompt=e.examplePrompt,this.maxLength=e.maxLength??2048,this.getTextLength=e.getTextLength??jw}async addExample(e){this.examples.push(e);let t=await this.examplePrompt.format(e);this.exampleTextLengths.push(this.getTextLength(t))}async calculateExampleTextLengths(e,t){if(e.length>0)return e;let{examples:n,examplePrompt:r}=t;return(await Promise.all(n.map(e=>r.format(e)))).map(e=>this.getTextLength(e))}async selectExamples(e){let t=Object.values(e).join(` `),n=this.maxLength-this.getTextLength(t),r=0,i=[];for(;n>0&&r<this.examples.length;){let e=n-this.exampleTextLengths[r];if(e<0)break;i.push(this.examples[r]),n=e,r+=1}return i}static async fromExamples(t,n){let r=new e(n);return await Promise.all(t.map(e=>r.addExample(e))),r}};function Nw(e){return Object.keys(e).sort().map(t=>e[t])}var Pw=class e extends Ew{vectorStoreRetriever;exampleKeys;inputKeys;constructor(e){if(super(e),this.exampleKeys=e.exampleKeys,this.inputKeys=e.inputKeys,e.vectorStore!==void 0)this.vectorStoreRetriever=e.vectorStore.asRetriever({k:e.k??4,filter:e.filter});else if(e.vectorStoreRetriever)this.vectorStoreRetriever=e.vectorStoreRetriever;else throw Error(`You must specify one of "vectorStore" and "vectorStoreRetriever".`)}async addExample(e){let t=Nw((this.inputKeys??Object.keys(e)).reduce((t,n)=>({...t,[n]:e[n]}),{})).join(` `);await this.vectorStoreRetriever.addDocuments([new hw({pageContent:t,metadata:e})])}async selectExamples(e){let t=Nw((this.inputKeys??Object.keys(e)).reduce((t,n)=>({...t,[n]:e[n]}),{})).join(` `),n=(await this.vectorStoreRetriever.invoke(t)).map(e=>e.metadata);return this.exampleKeys?n.map(e=>this.exampleKeys.reduce((t,n)=>({...t,[n]:e[n]}),{})):n}static async fromExamples(t,n,r,i={}){let a=i.inputKeys??null,o=t.map(e=>Nw(a?a.reduce((t,n)=>({...t,[n]:e[n]}),{}):e).join(` `));return new e({vectorStore:await r.fromTexts(o,t,n,i),k:i.k??4,exampleKeys:i.exampleKeys,inputKeys:i.inputKeys})}},Fw=h({BaseExampleSelector:()=>Ew,BasePromptSelector:()=>Dw,ConditionalPromptSelector:()=>Ow,LengthBasedExampleSelector:()=>Mw,SemanticSimilarityExampleSelector:()=>Pw,isChatModel:()=>Aw,isLLM:()=>kw}),Iw=`10f90ea3-90a4-4962-bf75-83a0f3c1c62a`,Lw=class extends Te{lc_namespace=[`langchain`,`recordmanagers`]},Rw=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=nw;constructor(e){this.uid=e.uid,this.pageContent=e.pageContent,this.metadata=e.metadata}makeDefaultKeyEncoder(e){this.keyEncoder=e}calculateHashes(){let e=[`hash_`,`content_hash`,`metadata_hash`];for(let t of e)if(t in this.metadata)throw Error(`Metadata cannot contain key ${t} as it is reserved for internal use. Restricted keys: [${e.join(`, `)}]`);let t=this._hashStringToUUID(this.pageContent);try{let e=this._hashNestedDictToUUID(this.metadata);this.contentHash=t,this.metadataHash=e}catch(e){throw Error(`Failed to hash metadata: ${e}. Please use a dict that can be serialized using json.`)}this.hash_=this._hashStringToUUID(this.contentHash+this.metadataHash),this.uid||=this.hash_}toDocument(){return new hw({pageContent:this.pageContent,metadata:this.metadata})}static fromDocument(e,t){let n=new this({pageContent:e.pageContent,metadata:e.metadata,uid:t||e.uid});return n.calculateHashes(),n}_hashStringToUUID(e){return Dr(this.keyEncoder(e),Iw)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Dr(this.keyEncoder(t),Iw)}};function zw(e,t){let n=[],r=[];return t.forEach(t=>{r.push(t),r.length>=e&&(n.push(r),r=[])}),r.length>0&&n.push(r),n}function Bw(e){let t=new Set,n=[];for(let r of e){if(!r.hash_)throw Error(`Hashed document does not have a hash`);t.has(r.hash_)||(t.add(r.hash_),n.push(r))}return n}function Vw(e){if(e===null)return e=>null;if(typeof e==`string`)return t=>t.metadata[e];if(typeof e==`function`)return e;throw Error(`sourceIdKey should be null, a string or a function, got ${typeof e}`)}var Hw=e=>`load`in e&&typeof e.load==`function`&&`loadAndSplit`in e&&typeof e.loadAndSplit==`function`;async function Uw(e){let{docsSource:t,recordManager:n,vectorStore:r,options:i}=e,{batchSize:a=100,cleanup:o,sourceIdKey:s,cleanupBatchSize:c=1e3,forceUpdate:l=!1}=i??{};if(o===`incremental`&&!s)throw Error(`sourceIdKey is required when cleanup mode is incremental. Please provide through 'options.sourceIdKey'.`);let u=Hw(t)?await t.load():t,d=Vw(s??null),f=await n.getTime(),p=0,m=0,h=0,g=0,_=zw(a??100,u);for(let e of _){let t=Bw(e.map(e=>Rw.fromDocument(e))),i=t.map(e=>d(e));o===`incremental`&&t.forEach((e,t)=>{if(i[t]===null)throw Error(`sourceIdKey must be provided when cleanup is incremental`)});let a=await n.exists(t.map(e=>e.uid)),s=[],c=[],u=[],_=new Set;if(t.forEach((e,t)=>{if(a[t])if(l)_.add(e.uid);else{u.push(e.uid);return}s.push(e.uid),c.push(e.toDocument())}),u.length>0&&(await n.update(u,{timeAtLeast:f}),g+=u.length),c.length>0&&(await r.addDocuments(c,{ids:s}),p+=c.length-_.size,h+=_.size),await n.update(t.map(e=>e.uid),{timeAtLeast:f,groupIds:i}),o===`incremental`){i.forEach(e=>{if(!e)throw Error(`Source id cannot be null`)});let e=await n.listKeys({before:f,groupIds:i});e.length>0&&(await r.delete({ids:e}),await n.deleteKeys(e),m+=e.length)}}if(o===`full`){let e=await n.listKeys({before:f,limit:c});for(;e.length>0;)await r.delete({ids:e}),await n.deleteKeys(e),m+=e.length,e=await n.listKeys({before:f,limit:c})}return{numAdded:p,numDeleted:m,numUpdated:h,numSkipped:g}}var Ww=h({RecordManager:()=>Lw,UUIDV5_NAMESPACE:()=>Iw,_HashedDocument:()=>Rw,_batch:()=>zw,_deduplicateInOrder:()=>Bw,_getSourceIdAssigner:()=>Vw,_isBaseDocumentLoader:()=>Hw,index:()=>Uw}),Gw=h({BasePromptValue:()=>Kw,ChatPromptValue:()=>Jw,ImagePromptValue:()=>Yw,StringPromptValue:()=>qw}),Kw=class extends Te{},qw=class extends Kw{static lc_name(){return`StringPromptValue`}lc_namespace=[`langchain_core`,`prompt_values`];lc_serializable=!0;value;constructor(e){super({value:e}),this.value=e}toString(){return this.value}toChatMessages(){return[new yn(this.value)]}},Jw=class extends Kw{lc_namespace=[`langchain_core`,`prompt_values`];lc_serializable=!0;static lc_name(){return`ChatPromptValue`}messages;constructor(e){Array.isArray(e)&&(e={messages:e}),super(e),this.messages=e.messages}toString(){return Fn(this.messages)}toChatMessages(){return this.messages}},Yw=class extends Kw{lc_namespace=[`langchain_core`,`prompt_values`];lc_serializable=!0;static lc_name(){return`ImagePromptValue`}imageUrl;value;constructor(e){`imageUrl`in e||(e={imageUrl:e}),super(e),this.imageUrl=e.imageUrl}toString(){return this.imageUrl.url}toChatMessages(){return[new yn({content:[{type:`image_url`,image_url:{detail:this.imageUrl.detail,url:this.imageUrl.url}}]})]}},Xw=e(t((e=>{e.toByteArray=l;for(var t=[],n=[],r=typeof Uint8Array<`u`?Uint8Array:Array,i=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,a=0,o=i.length;a<o;++a)t[a]=i[a],n[i.charCodeAt(a)]=a;n[45]=62,n[95]=63;function s(e){var t=e.length;if(t%4>0)throw Error(`Invalid string. Length must be a multiple of 4`);var n=e.indexOf(`=`);n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function c(e,t,n){return(t+n)*3/4-n}function l(e){var t,i=s(e),a=i[0],o=i[1],l=new r(c(e,a,o)),u=0,d=o>0?a-4:a,f;for(f=0;f<d;f+=4)t=n[e.charCodeAt(f)]<<18|n[e.charCodeAt(f+1)]<<12|n[e.charCodeAt(f+2)]<<6|n[e.charCodeAt(f+3)],l[u++]=t>>16&255,l[u++]=t>>8&255,l[u++]=t&255;return o===2&&(t=n[e.charCodeAt(f)]<<2|n[e.charCodeAt(f+1)]>>4,l[u++]=t&255),o===1&&(t=n[e.charCodeAt(f)]<<10|n[e.charCodeAt(f+1)]<<4|n[e.charCodeAt(f+2)]>>2,l[u++]=t>>8&255,l[u++]=t&255),l}}))(),1),Zw=Object.defineProperty,Qw=(e,t,n)=>t in e?Zw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$w=(e,t,n)=>(Qw(e,typeof t==`symbol`?t:t+``,n),n);function eT(e,t){let n=Array.from({length:e.length},(e,t)=>({start:t,end:t+1}));for(;n.length>1;){let r=null;for(let i=0;i<n.length-1;i++){let a=e.slice(n[i].start,n[i+1].end),o=t.get(a.join(`,`));o!=null&&(r==null||o<r[0])&&(r=[o,i])}if(r!=null){let e=r[1];n[e]={start:n[e].start,end:n[e+1].end},n.splice(e+1,1)}else break}return n}function tT(e,t){return e.length===1?[t.get(e.join(`,`))]:eT(e,t).map(n=>t.get(e.slice(n.start,n.end).join(`,`))).filter(e=>e!=null)}function nT(e){return e.replace(/[\\^$*+?.()|[\]{}]/g,`\\$&`)}var rT=class{specialTokens;inverseSpecialTokens;patStr;textEncoder=new TextEncoder;textDecoder=new TextDecoder(`utf-8`);rankMap=new Map;textMap=new Map;constructor(e,t){this.patStr=e.pat_str;let n=e.bpe_ranks.split(`
|
|
103
|
+
`).filter(Boolean).reduce((e,t)=>{let[n,r,...i]=t.split(` `),a=Number.parseInt(r,10);return i.forEach((t,n)=>e[t]=a+n),e},{});for(let[e,t]of Object.entries(n)){let n=Xw.toByteArray(e);this.rankMap.set(n.join(`,`),t),this.textMap.set(t,n)}this.specialTokens={...e.special_tokens,...t},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((e,[t,n])=>(e[n]=this.textEncoder.encode(t),e),{})}encode(e,t=[],n=`all`){let r=new RegExp(this.patStr,`ug`),i=rT.specialTokenRegex(Object.keys(this.specialTokens)),a=[],o=new Set(t===`all`?Object.keys(this.specialTokens):t),s=new Set(n===`all`?Object.keys(this.specialTokens).filter(e=>!o.has(e)):n);if(s.size>0){let t=rT.specialTokenRegex([...s]),n=e.match(t);if(n!=null)throw Error(`The text contains a special token that is not allowed: ${n[0]}`)}let c=0;for(;;){let t=null,n=c;for(;i.lastIndex=n,t=i.exec(e),!(t==null||o.has(t[0]));)n=t.index+1;let s=t?.index??e.length;for(let t of e.substring(c,s).matchAll(r)){let e=this.textEncoder.encode(t[0]),n=this.rankMap.get(e.join(`,`));if(n!=null){a.push(n);continue}a.push(...tT(e,this.rankMap))}if(t==null)break;let l=this.specialTokens[t[0]];a.push(l),c=t.index+t[0].length}return a}decode(e){let t=[],n=0;for(let r=0;r<e.length;++r){let i=e[r],a=this.textMap.get(i)??this.inverseSpecialTokens[i];a!=null&&(t.push(a),n+=a.length)}let r=new Uint8Array(n),i=0;for(let e of t)r.set(e,i),i+=e.length;return this.textDecoder.decode(r)}},iT=rT;$w(iT,`specialTokenRegex`,e=>new RegExp(e.map(e=>nT(e)).join(`|`),`g`));function aT(e){switch(e){case`gpt2`:return`gpt2`;case`code-cushman-001`:case`code-cushman-002`:case`code-davinci-001`:case`code-davinci-002`:case`cushman-codex`:case`davinci-codex`:case`davinci-002`:case`text-davinci-002`:case`text-davinci-003`:return`p50k_base`;case`code-davinci-edit-001`:case`text-davinci-edit-001`:return`p50k_edit`;case`ada`:case`babbage`:case`babbage-002`:case`code-search-ada-code-001`:case`code-search-babbage-code-001`:case`curie`:case`davinci`:case`text-ada-001`:case`text-babbage-001`:case`text-curie-001`:case`text-davinci-001`:case`text-search-ada-doc-001`:case`text-search-babbage-doc-001`:case`text-search-curie-doc-001`:case`text-search-davinci-doc-001`:case`text-similarity-ada-001`:case`text-similarity-babbage-001`:case`text-similarity-curie-001`:case`text-similarity-davinci-001`:return`r50k_base`;case`gpt-3.5-turbo-instruct-0914`:case`gpt-3.5-turbo-instruct`:case`gpt-3.5-turbo-16k-0613`:case`gpt-3.5-turbo-16k`:case`gpt-3.5-turbo-0613`:case`gpt-3.5-turbo-0301`:case`gpt-3.5-turbo`:case`gpt-4-32k-0613`:case`gpt-4-32k-0314`:case`gpt-4-32k`:case`gpt-4-0613`:case`gpt-4-0314`:case`gpt-4`:case`gpt-3.5-turbo-1106`:case`gpt-35-turbo`:case`gpt-4-1106-preview`:case`gpt-4-vision-preview`:case`gpt-3.5-turbo-0125`:case`gpt-4-turbo`:case`gpt-4-turbo-2024-04-09`:case`gpt-4-turbo-preview`:case`gpt-4-0125-preview`:case`text-embedding-ada-002`:case`text-embedding-3-small`:case`text-embedding-3-large`:return`cl100k_base`;case`gpt-4o`:case`gpt-4o-2024-05-13`:case`gpt-4o-2024-08-06`:case`gpt-4o-2024-11-20`:case`gpt-4o-mini-2024-07-18`:case`gpt-4o-mini`:case`gpt-4o-search-preview`:case`gpt-4o-search-preview-2025-03-11`:case`gpt-4o-mini-search-preview`:case`gpt-4o-mini-search-preview-2025-03-11`:case`gpt-4o-audio-preview`:case`gpt-4o-audio-preview-2024-12-17`:case`gpt-4o-audio-preview-2024-10-01`:case`gpt-4o-mini-audio-preview`:case`gpt-4o-mini-audio-preview-2024-12-17`:case`o1`:case`o1-2024-12-17`:case`o1-mini`:case`o1-mini-2024-09-12`:case`o1-preview`:case`o1-preview-2024-09-12`:case`o1-pro`:case`o1-pro-2025-03-19`:case`o3`:case`o3-2025-04-16`:case`o3-mini`:case`o3-mini-2025-01-31`:case`o4-mini`:case`o4-mini-2025-04-16`:case`chatgpt-4o-latest`:case`gpt-4o-realtime`:case`gpt-4o-realtime-preview-2024-10-01`:case`gpt-4o-realtime-preview-2024-12-17`:case`gpt-4o-mini-realtime-preview`:case`gpt-4o-mini-realtime-preview-2024-12-17`:case`gpt-4.1`:case`gpt-4.1-2025-04-14`:case`gpt-4.1-mini`:case`gpt-4.1-mini-2025-04-14`:case`gpt-4.1-nano`:case`gpt-4.1-nano-2025-04-14`:case`gpt-4.5-preview`:case`gpt-4.5-preview-2025-02-27`:case`gpt-5`:case`gpt-5-2025-08-07`:case`gpt-5-nano`:case`gpt-5-nano-2025-08-07`:case`gpt-5-mini`:case`gpt-5-mini-2025-08-07`:case`gpt-5-chat-latest`:return`o200k_base`;default:throw Error(`Unknown model`)}}var oT=h({encodingForModel:()=>uT,getEncoding:()=>lT}),sT={},cT=new Td({});async function lT(e){return e in sT||(sT[e]=cT.fetch(`https://tiktoken.pages.dev/js/${e}.json`).then(e=>e.json()).then(e=>new iT(e)).catch(t=>{throw delete sT[e],t})),await sT[e]}async function uT(e){return lT(aT(e))}var dT=h({BaseLangChain:()=>vT,BaseLanguageModel:()=>yT,calculateMaxTokens:()=>gT,getEmbeddingContextSize:()=>pT,getModelContextSize:()=>mT,getModelNameForTiktoken:()=>fT,isOpenAITool:()=>hT}),fT=e=>e.startsWith(`gpt-5`)?`gpt-5`:e.startsWith(`gpt-3.5-turbo-16k`)?`gpt-3.5-turbo-16k`:e.startsWith(`gpt-3.5-turbo-`)?`gpt-3.5-turbo`:e.startsWith(`gpt-4-32k`)?`gpt-4-32k`:e.startsWith(`gpt-4-`)?`gpt-4`:e.startsWith(`gpt-4o`)?`gpt-4o`:e,pT=e=>{switch(e){case`text-embedding-ada-002`:return 8191;default:return 2046}},mT=e=>{switch(fT(e)){case`gpt-5`:case`gpt-5-turbo`:case`gpt-5-turbo-preview`:return 4e5;case`gpt-4o`:case`gpt-4o-mini`:case`gpt-4o-2024-05-13`:case`gpt-4o-2024-08-06`:return 128e3;case`gpt-4-turbo`:case`gpt-4-turbo-preview`:case`gpt-4-turbo-2024-04-09`:case`gpt-4-0125-preview`:case`gpt-4-1106-preview`:return 128e3;case`gpt-4-32k`:case`gpt-4-32k-0314`:case`gpt-4-32k-0613`:return 32768;case`gpt-4`:case`gpt-4-0314`:case`gpt-4-0613`:return 8192;case`gpt-3.5-turbo-16k`:case`gpt-3.5-turbo-16k-0613`:return 16384;case`gpt-3.5-turbo`:case`gpt-3.5-turbo-0301`:case`gpt-3.5-turbo-0613`:case`gpt-3.5-turbo-1106`:case`gpt-3.5-turbo-0125`:return 4096;case`text-davinci-003`:case`text-davinci-002`:return 4097;case`text-davinci-001`:return 2049;case`text-curie-001`:case`text-babbage-001`:case`text-ada-001`:return 2048;case`code-davinci-002`:case`code-davinci-001`:return 8e3;case`code-cushman-001`:return 2048;case`claude-3-5-sonnet-20241022`:case`claude-3-5-sonnet-20240620`:case`claude-3-opus-20240229`:case`claude-3-sonnet-20240229`:case`claude-3-haiku-20240307`:case`claude-2.1`:return 2e5;case`claude-2.0`:case`claude-instant-1.2`:return 1e5;case`gemini-1.5-pro`:case`gemini-1.5-pro-latest`:case`gemini-1.5-flash`:case`gemini-1.5-flash-latest`:return 1e6;case`gemini-pro`:case`gemini-pro-vision`:return 32768;default:return 4097}};function hT(e){return typeof e!=`object`||!e?!1:!!(`type`in e&&e.type===`function`&&`function`in e&&typeof e.function==`object`&&e.function&&`name`in e.function&&`parameters`in e.function)}var gT=async({prompt:e,modelName:t})=>{let n;try{n=(await uT(fT(t))).encode(e).length}catch{console.warn(`Failed to calculate number of tokens, falling back to approximate count`),n=Math.ceil(e.length/4)}return mT(t)-n},_T=()=>!1,vT=class extends Dx{verbose;callbacks;tags;metadata;get lc_attributes(){return{callbacks:void 0,verbose:void 0}}constructor(e){super(e),this.verbose=e.verbose??_T(),this.callbacks=e.callbacks,this.tags=e.tags??[],this.metadata=e.metadata??{},this._addVersion(`@langchain/core`,`1.2.3`)}_addVersion(e,t){let n=this.metadata?.versions;this.metadata={...this.metadata,versions:{...typeof n==`object`&&n?n:{},[e]:t}}}},yT=class extends vT{get callKeys(){return[`stop`,`timeout`,`signal`,`tags`,`metadata`,`callbacks`]}caller;cache;constructor({callbacks:e,callbackManager:t,...n}){let{cache:r,...i}=n;super({callbacks:e??t,...i}),typeof r==`object`?this.cache=r:r?this.cache=uw.global():this.cache=void 0,this.caller=new Td(n??{})}_encoding;async getNumTokens(e){let t;t=typeof e==`string`?e:e.map(e=>typeof e==`string`?e:e.type===`text`&&`text`in e?e.text:``).join(``);let n=Math.ceil(t.length/4);if(!this._encoding)try{this._encoding=await uT(`modelName`in this?fT(this.modelName):`gpt2`)}catch(e){console.warn(`Failed to calculate number of tokens, falling back to approximate count`,e)}if(this._encoding)try{n=this._encoding.encode(t).length}catch(e){console.warn(`Failed to calculate number of tokens, falling back to approximate count`,e)}return n}static _convertInputToPromptValue(e){return typeof e==`string`?new qw(e):Array.isArray(e)?new Jw(e.map(Nn)):e}_identifyingParams(){return{}}_getSerializedCacheKeyParametersForCall({config:e,...t}){let n={...this._identifyingParams(),...t,_type:this._llmType(),_model:this._modelType()};return Object.entries(n).filter(([e,t])=>t!==void 0).map(([e,t])=>`${e}:${JSON.stringify(t)}`).sort().join(`,`)}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}static async deserialize(e){throw Error(`Use .toJSON() instead`)}get profile(){return{}}_filterInvocationParamsForTracing(e){let{tools:t,functions:n,messages:r,response_format:i,...a}=e;return a}},bT=h({applyPatch:()=>Au,compare:()=>Iu}),xT=class extends Dx{parseResultWithPrompt(e,t,n){return this.parseResult(e,n)}_baseMessageToString(e){return typeof e.content==`string`?e.content:this._baseMessageContentToString(e.content)}_baseMessageContentToString(e){return JSON.stringify(e)}async invoke(e,t){return typeof e==`string`?this._callWithConfig(async(e,t)=>this.parseResult([{text:e}],t?.callbacks),e,{...t,runType:`parser`}):this._callWithConfig(async(e,t)=>this.parseResult([{message:e,text:this._baseMessageToString(e)}],t?.callbacks),e,{...t,runType:`parser`})}},ST=class extends xT{parseResult(e,t){return this.parse(e[0].text,t)}async parseWithPrompt(e,t,n){return this.parse(e,n)}_type(){throw Error(`_type not implemented`)}},CT=class extends Error{llmOutput;observation;sendToLLM;constructor(e,t,n,r=!1){if(super(e),this.llmOutput=t,this.observation=n,this.sendToLLM=r,r&&(n===void 0||t===void 0))throw Error(`Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true`);y(this,`OUTPUT_PARSING_FAILURE`)}},wT=class extends ST{async*_transform(e){for await(let t of e)typeof t==`string`?yield this.parseResult([{text:t}]):yield this.parseResult([{message:t,text:this._baseMessageToString(t)}])}async*transform(e,t){yield*this._transformStreamWithConfig(e,this._transform.bind(this),{...t,runType:`parser`})}},TT=class extends wT{diff=!1;constructor(e){super(e),this.diff=e?.diff??this.diff}async*_transform(e){let t,n;for await(let r of e){if(typeof r!=`string`&&typeof r.content!=`string`)throw Error(`Cannot handle non-string output.`);let e;if(Tt(r)){if(typeof r.content!=`string`)throw Error(`Cannot handle non-string message output.`);e=new Ju({message:r,text:r.content})}else if(wt(r)){if(typeof r.content!=`string`)throw Error(`Cannot handle non-string message output.`);e=new Ju({message:Bn(r),text:r.content})}else e=new qu({text:r});n=n===void 0?e:n.concat(e);let i=await this.parsePartialResult([n]);i!=null&&!wb(i,t)&&(this.diff?yield this._diff(t,i):yield i,t=i)}}getFormatInstructions(){return``}},ET=class extends wT{static lc_name(){return`BytesOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`,`bytes`];lc_serializable=!0;textEncoder=new TextEncoder;parse(e){return Promise.resolve(this.textEncoder.encode(e))}getFormatInstructions(){return``}},DT=class extends wT{re;async*_transform(e){let t=``;for await(let n of e)if(typeof n==`string`?t+=n:t+=n.content,this.re){let e=[...t.matchAll(this.re)];if(e.length>1){let n=0;for(let t of e.slice(0,-1))yield[t[1]],n+=(t.index??0)+t[0].length;t=t.slice(n)}}else{let e=await this.parse(t);if(e.length>1){for(let t of e.slice(0,-1))yield[t];t=e[e.length-1]}}for(let e of await this.parse(t))yield[e]}},OT=class extends DT{static lc_name(){return`CommaSeparatedListOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`,`list`];lc_serializable=!0;async parse(e){try{return e.trim().split(`,`).map(e=>e.trim())}catch{throw new CT(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},kT=class extends DT{lc_namespace=[`langchain_core`,`output_parsers`,`list`];length;separator;constructor({length:e,separator:t}){super(...arguments),this.length=e,this.separator=t||`,`}async parse(e){try{let t=e.trim().split(this.separator).map(e=>e.trim());if(this.length!==void 0&&t.length!==this.length)throw new CT(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===CT.prototype?t:new CT(`Could not parse output: ${e}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?``:`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},AT=class extends DT{static lc_name(){return`NumberedListOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`,`list`];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
|
|
104
|
+
|
|
105
|
+
1. foo
|
|
106
|
+
|
|
107
|
+
2. bar
|
|
108
|
+
|
|
109
|
+
3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(e){return[...e.matchAll(this.re)??[]].map(e=>e[1])}},jT=class extends DT{static lc_name(){return`NumberedListOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`,`list`];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
|
|
110
|
+
|
|
111
|
+
1. foo
|
|
112
|
+
|
|
113
|
+
2. bar
|
|
114
|
+
|
|
115
|
+
3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(e){return[...e.matchAll(this.re)??[]].map(e=>e[1])}},MT=class extends wT{static lc_name(){return`StrOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`,`string`];lc_serializable=!0;parse(e){return Promise.resolve(e)}getFormatInstructions(){return``}_textContentToString(e){return e.text}_imageUrlContentToString(e){throw Error(`Cannot coerce a multimodal "image_url" message part into a string.`)}_messageContentToString(e){switch(e.type){case`text`:case`text_delta`:if(`text`in e)return this._textContentToString(e);break;case`image_url`:if(`image_url`in e)return this._imageUrlContentToString(e);break;case`reasoning`:case`thinking`:case`redacted_thinking`:return``;default:throw Error(`Cannot coerce "${e.type}" message part into a string.`)}throw Error(`Invalid content type: ${e.type}`)}_baseMessageContentToString(e){return e.reduce((e,t)=>e+this._messageContentToString(t),``)}},NT=class extends TT{static lc_name(){return`JsonOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`];lc_serializable=!0;_concatOutputChunks(e,t){return this.diff?super._concatOutputChunks(e,t):t}_diff(e,t){if(t)return e?Iu(e,t):[{op:`replace`,path:``,value:t}]}async parsePartialResult(e){return re(e[0].text)}async parse(e){return re(e,JSON.parse)}getFormatInstructions(){return``}_baseMessageToString(e){return e.text}},PT=class extends ST{static lc_name(){return`StandardSchemaOutputParser`}lc_namespace=[`langchain`,`output_parsers`,`standard_schema`];schema;constructor(e){super(),this.schema=e}static fromSerializableSchema(e){return new this(e)}async parse(e){try{let t=re(e,JSON.parse),n=await this.schema[`~standard`].validate(t);if(n.issues)throw Error(`Validation failed: ${JSON.stringify(n.issues)}`);return n.value}catch(t){throw new CT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}getFormatInstructions(){return``}},FT=class extends ST{static lc_name(){return`StructuredOutputParser`}lc_namespace=[`langchain`,`output_parsers`,`structured`];toJSON(){return this.toJSONNotImplemented()}constructor(e){super(e),this.schema=e}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=Ty(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Cy().describe(t)])));return new this(t)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
|
|
116
|
+
|
|
117
|
+
"JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
|
|
118
|
+
|
|
119
|
+
For example, the example "JSON Schema" instance {{"properties": {{"foo": {{"description": "a list of test words", "type": "array", "items": {{"type": "string"}}}}}}, "required": ["foo"]}}
|
|
120
|
+
would match an object with one required property, "foo". The "type" property specifies "foo" must be an "array", and the "description" property semantically describes it as "a list of test words". The items within "foo" must be strings.
|
|
121
|
+
Thus, the object {{"foo": ["bar", "baz"]}} is a well-formatted instance of this example "JSON Schema". The object {{"properties": {{"foo": ["bar", "baz"]}}}} is not well-formatted.
|
|
122
|
+
|
|
123
|
+
Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!
|
|
124
|
+
|
|
125
|
+
Here is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:
|
|
126
|
+
\`\`\`json
|
|
127
|
+
${JSON.stringify(ux(this.schema))}
|
|
128
|
+
\`\`\`
|
|
129
|
+
`}async parse(e){try{let t=e.trim(),n=(t.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||t.match(/```json\s*([\s\S]*?)```/)?.[1]||t).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(e,t)=>`"${t.replace(/\n/g,`\\n`)}"`).replace(/\n/g,``);return await d_(this.schema,JSON.parse(n))}catch(t){throw new CT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}},IT=class extends FT{static lc_name(){return`JsonMarkdownStructuredOutputParser`}getFormatInstructions(e){let t=e?.interpolationDepth??1;if(t<1)throw Error(`f string interpolation depth must be at least 1`);return`Return a markdown code snippet with a JSON object formatted to look like:\n\`\`\`json\n${this._schemaToInstruction(ux(this.schema)).replaceAll(`{`,`{`.repeat(t)).replaceAll(`}`,`}`.repeat(t))}\n\`\`\``}_schemaToInstruction(e,t=2){let n=e;if(`type`in n){let e=!1,r;if(Array.isArray(n.type)){let t=n.type.findIndex(e=>e===`null`);t!==-1&&(e=!0,n.type.splice(t,1)),r=n.type.join(` | `)}else r=n.type;if(n.type===`object`&&n.properties){let e=n.description?` // ${n.description}`:``;return`{\n${Object.entries(n.properties).map(([e,r])=>{let i=n.required?.includes(e)?``:` (optional)`;return`${` `.repeat(t)}"${e}": ${this._schemaToInstruction(r,t+2)}${i}`}).join(`
|
|
130
|
+
`)}\n${` `.repeat(t-2)}}${e}`}if(n.type===`array`&&n.items){let e=n.description?` // ${n.description}`:``;return`array[\n${` `.repeat(t)}${this._schemaToInstruction(n.items,t+2)}\n${` `.repeat(t-2)}] ${e}`}let i=e?` (nullable)`:``,a=n.description?` // ${n.description}`:``;return`${r}${a}${i}`}if(`anyOf`in n)return n.anyOf.map(e=>this._schemaToInstruction(e,t)).join(`\n${` `.repeat(t-2)}`);throw Error(`unsupported schema type`)}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=Ty(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Cy().describe(t)])));return new this(t)}},LT=class extends ST{structuredInputParser;constructor({inputSchema:e}){super(...arguments),this.structuredInputParser=new IT(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(t){throw new CT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}},RT=function(){let e={};e.parser=function(e,t){return new n(e,t)},e.SAXParser=n,e.SAXStream=l,e.createStream=c,e.MAX_BUFFER_LENGTH=64*1024;let t=[`comment`,`sgmlDecl`,`textNode`,`tagName`,`doctype`,`procInstName`,`procInstBody`,`entity`,`attribName`,`attribValue`,`cdata`,`script`];e.EVENTS=[`text`,`processinginstruction`,`sgmldeclaration`,`doctype`,`comment`,`opentagstart`,`attribute`,`opentag`,`closetag`,`opencdata`,`cdata`,`closecdata`,`error`,`end`,`ready`,`script`,`opennamespace`,`closenamespace`];function n(t,r){if(!(this instanceof n))return new n(t,r);var a=this;i(a),a.q=a.c=``,a.bufferCheckPosition=e.MAX_BUFFER_LENGTH,a.opt=r||{},a.opt.lowercase=a.opt.lowercase||a.opt.lowercasetags,a.looseCase=a.opt.lowercase?`toLowerCase`:`toUpperCase`,a.tags=[],a.closed=a.closedRoot=a.sawRoot=!1,a.tag=a.error=null,a.strict=!!t,a.noscript=!!(t||a.opt.noscript),a.state=C.BEGIN,a.strictEntities=a.opt.strictEntities,a.ENTITIES=a.strictEntities?Object.create(e.XML_ENTITIES):Object.create(e.ENTITIES),a.attribList=[],a.opt.xmlns&&(a.ns=Object.create(m)),a.trackPosition=a.opt.position!==!1,a.trackPosition&&(a.position=a.line=a.column=0),ne(a,`onready`)}Object.create||(Object.create=function(e){function t(){}return t.prototype=e,new t}),Object.keys||(Object.keys=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t});function r(n){for(var r=Math.max(e.MAX_BUFFER_LENGTH,10),i=0,a=0,o=t.length;a<o;a++){var s=n[t[a]].length;if(s>r)switch(t[a]){case`textNode`:ie(n);break;case`cdata`:re(n,`oncdata`,n.cdata),n.cdata=``;break;case`script`:re(n,`onscript`,n.script),n.script=``;break;default:oe(n,`Max buffer length exceeded: `+t[a])}i=Math.max(i,s)}n.bufferCheckPosition=e.MAX_BUFFER_LENGTH-i+n.position}function i(e){for(var n=0,r=t.length;n<r;n++)e[t[n]]=``}function a(e){ie(e),e.cdata!==``&&(re(e,`oncdata`,e.cdata),e.cdata=``),e.script!==``&&(re(e,`onscript`,e.script),e.script=``)}n.prototype={end:function(){se(this)},write:ge,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){a(this)}};var o=ReadableStream;o||=function(){};var s=e.EVENTS.filter(function(e){return e!==`error`&&e!==`end`});function c(e,t){return new l(e,t)}function l(e,t){if(!(this instanceof l))return new l(e,t);o.apply(this),this._parser=new n(e,t),this.writable=!0,this.readable=!0;var r=this;this._parser.onend=function(){r.emit(`end`)},this._parser.onerror=function(e){r.emit(`error`,e),r._parser.error=null},this._decoder=null,s.forEach(function(e){Object.defineProperty(r,`on`+e,{get:function(){return r._parser[`on`+e]},set:function(t){if(!t)return r.removeAllListeners(e),r._parser[`on`+e]=t,t;r.on(e,t)},enumerable:!0,configurable:!1})})}l.prototype=Object.create(o.prototype,{constructor:{value:l}}),l.prototype.write=function(e){return this._parser.write(e.toString()),this.emit(`data`,e),!0},l.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},l.prototype.on=function(e,t){var n=this;return!n._parser[`on`+e]&&s.indexOf(e)!==-1&&(n._parser[`on`+e]=function(){var t=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),o.prototype.on.call(n,e,t)};var u=`[CDATA[`,d=`DOCTYPE`,f=`http://www.w3.org/XML/1998/namespace`,p=`http://www.w3.org/2000/xmlns/`,m={xml:f,xmlns:p},h=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,g=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,_=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,v=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function y(e){return e===` `||e===`
|
|
131
|
+
`||e===`\r`||e===` `}function b(e){return e===`"`||e===`'`}function x(e){return e===`>`||y(e)}function S(e,t){return e.test(t)}function ee(e,t){return!S(e,t)}var C=0;for(var te in e.STATE={BEGIN:C++,BEGIN_WHITESPACE:C++,TEXT:C++,TEXT_ENTITY:C++,OPEN_WAKA:C++,SGML_DECL:C++,SGML_DECL_QUOTED:C++,DOCTYPE:C++,DOCTYPE_QUOTED:C++,DOCTYPE_DTD:C++,DOCTYPE_DTD_QUOTED:C++,COMMENT_STARTING:C++,COMMENT:C++,COMMENT_ENDING:C++,COMMENT_ENDED:C++,CDATA:C++,CDATA_ENDING:C++,CDATA_ENDING_2:C++,PROC_INST:C++,PROC_INST_BODY:C++,PROC_INST_ENDING:C++,OPEN_TAG:C++,OPEN_TAG_SLASH:C++,ATTRIB:C++,ATTRIB_NAME:C++,ATTRIB_NAME_SAW_WHITE:C++,ATTRIB_VALUE:C++,ATTRIB_VALUE_QUOTED:C++,ATTRIB_VALUE_CLOSED:C++,ATTRIB_VALUE_UNQUOTED:C++,ATTRIB_VALUE_ENTITY_Q:C++,ATTRIB_VALUE_ENTITY_U:C++,CLOSE_TAG:C++,CLOSE_TAG_SAW_WHITE:C++,SCRIPT:C++,SCRIPT_ENDING:C++},e.XML_ENTITIES={amp:`&`,gt:`>`,lt:`<`,quot:`"`,apos:`'`},e.ENTITIES={amp:`&`,gt:`>`,lt:`<`,quot:`"`,apos:`'`,AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach(function(t){var n=e.ENTITIES[t],r=typeof n==`number`?String.fromCharCode(n):n;e.ENTITIES[t]=r}),e.STATE)e.STATE[e.STATE[te]]=te;C=e.STATE;function ne(e,t,n){e[t]&&e[t](n)}function re(e,t,n){e.textNode&&ie(e),ne(e,t,n)}function ie(e){e.textNode=ae(e.opt,e.textNode),e.textNode&&ne(e,`ontext`,e.textNode),e.textNode=``}function ae(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g,` `)),t}function oe(e,t){return ie(e),e.trackPosition&&(t+=`
|
|
132
|
+
Line: `+e.line+`
|
|
133
|
+
Column: `+e.column+`
|
|
134
|
+
Char: `+e.c),t=Error(t),e.error=t,ne(e,`onerror`,t),e}function se(e){return e.sawRoot&&!e.closedRoot&&w(e,`Unclosed root tag`),e.state!==C.BEGIN&&e.state!==C.BEGIN_WHITESPACE&&e.state!==C.TEXT&&oe(e,`Unexpected end`),ie(e),e.c=``,e.closed=!0,ne(e,`onend`),n.call(e,e.strict,e.opt),e}function w(e,t){if(typeof e!=`object`||!(e instanceof n))throw Error(`bad call to strictFail`);e.strict&&oe(e,t)}function ce(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,n=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(n.ns=t.ns),e.attribList.length=0,re(e,`onopentagstart`,n)}function le(e,t){var n=e.indexOf(`:`)<0?[``,e]:e.split(`:`),r=n[0],i=n[1];return t&&e===`xmlns`&&(r=`xmlns`,i=``),{prefix:r,local:i}}function ue(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),e.attribList.indexOf(e.attribName)!==-1||e.tag.attributes.hasOwnProperty(e.attribName)){e.attribName=e.attribValue=``;return}if(e.opt.xmlns){var t=le(e.attribName,!0),n=t.prefix,r=t.local;if(n===`xmlns`)if(r===`xml`&&e.attribValue!==f)w(e,`xml: prefix must be bound to `+f+`
|
|
135
|
+
Actual: `+e.attribValue);else if(r===`xmlns`&&e.attribValue!==p)w(e,`xmlns: prefix must be bound to `+p+`
|
|
136
|
+
Actual: `+e.attribValue);else{var i=e.tag,a=e.tags[e.tags.length-1]||e;i.ns===a.ns&&(i.ns=Object.create(a.ns)),i.ns[r]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,re(e,`onattribute`,{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=``}function de(e,t){if(e.opt.xmlns){var n=e.tag,r=le(e.tagName);n.prefix=r.prefix,n.local=r.local,n.uri=n.ns[r.prefix]||``,n.prefix&&!n.uri&&(w(e,`Unbound namespace prefix: `+JSON.stringify(e.tagName)),n.uri=r.prefix);var i=e.tags[e.tags.length-1]||e;n.ns&&i.ns!==n.ns&&Object.keys(n.ns).forEach(function(t){re(e,`onopennamespace`,{prefix:t,uri:n.ns[t]})});for(var a=0,o=e.attribList.length;a<o;a++){var s=e.attribList[a],c=s[0],l=s[1],u=le(c,!0),d=u.prefix,f=u.local,p=d===``?``:n.ns[d]||``,m={name:c,value:l,prefix:d,local:f,uri:p};d&&d!==`xmlns`&&!p&&(w(e,`Unbound namespace prefix: `+JSON.stringify(d)),m.uri=d),e.tag.attributes[c]=m,re(e,`onattribute`,m)}e.attribList.length=0}e.tag.isSelfClosing=!!t,e.sawRoot=!0,e.tags.push(e.tag),re(e,`onopentag`,e.tag),t||(!e.noscript&&e.tagName.toLowerCase()===`script`?e.state=C.SCRIPT:e.state=C.TEXT,e.tag=null,e.tagName=``),e.attribName=e.attribValue=``,e.attribList.length=0}function fe(e){if(!e.tagName){w(e,`Weird empty close tag.`),e.textNode+=`</>`,e.state=C.TEXT;return}if(e.script){if(e.tagName!==`script`){e.script+=`</`+e.tagName+`>`,e.tagName=``,e.state=C.SCRIPT;return}re(e,`onscript`,e.script),e.script=``}var t=e.tags.length,n=e.tagName;e.strict||(n=n[e.looseCase]());for(var r=n;t--&&e.tags[t].name!==r;)w(e,`Unexpected close tag`);if(t<0){w(e,`Unmatched closing tag: `+e.tagName),e.textNode+=`</`+e.tagName+`>`,e.state=C.TEXT;return}e.tagName=n;for(var i=e.tags.length;i-->t;){var a=e.tag=e.tags.pop();e.tagName=e.tag.name,re(e,`onclosetag`,e.tagName);var o={};for(var s in a.ns)o[s]=a.ns[s];var c=e.tags[e.tags.length-1]||e;e.opt.xmlns&&a.ns!==c.ns&&Object.keys(a.ns).forEach(function(t){var n=a.ns[t];re(e,`onclosenamespace`,{prefix:t,uri:n})})}t===0&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName=``,e.attribList.length=0,e.state=C.TEXT}function pe(e){var t=e.entity,n=t.toLowerCase(),r,i=``;return e.ENTITIES[t]?e.ENTITIES[t]:e.ENTITIES[n]?e.ENTITIES[n]:(t=n,t.charAt(0)===`#`&&(t.charAt(1)===`x`?(t=t.slice(2),r=parseInt(t,16),i=r.toString(16)):(t=t.slice(1),r=parseInt(t,10),i=r.toString(10))),t=t.replace(/^0+/,``),isNaN(r)||i.toLowerCase()!==t?(w(e,`Invalid character entity`),`&`+e.entity+`;`):String.fromCodePoint(r))}function me(e,t){t===`<`?(e.state=C.OPEN_WAKA,e.startTagPosition=e.position):y(t)||(w(e,`Non-whitespace before first tag.`),e.textNode=t,e.state=C.TEXT)}function he(e,t){var n=``;return t<e.length&&(n=e.charAt(t)),n}function ge(e){var t=this;if(this.error)throw this.error;if(t.closed)return oe(t,`Cannot write after close. Assign an onready handler.`);if(e===null)return se(t);typeof e==`object`&&(e=e.toString());for(var n=0,i=``;i=he(e,n++),t.c=i,i;)switch(t.trackPosition&&(t.position++,i===`
|
|
137
|
+
`?(t.line++,t.column=0):t.column++),t.state){case C.BEGIN:if(t.state=C.BEGIN_WHITESPACE,i===``)continue;me(t,i);continue;case C.BEGIN_WHITESPACE:me(t,i);continue;case C.TEXT:if(t.sawRoot&&!t.closedRoot){for(var a=n-1;i&&i!==`<`&&i!==`&`;)i=he(e,n++),i&&t.trackPosition&&(t.position++,i===`
|
|
138
|
+
`?(t.line++,t.column=0):t.column++);t.textNode+=e.substring(a,n-1)}i===`<`&&!(t.sawRoot&&t.closedRoot&&!t.strict)?(t.state=C.OPEN_WAKA,t.startTagPosition=t.position):(!y(i)&&(!t.sawRoot||t.closedRoot)&&w(t,`Text data outside of root node.`),i===`&`?t.state=C.TEXT_ENTITY:t.textNode+=i);continue;case C.SCRIPT:i===`<`?t.state=C.SCRIPT_ENDING:t.script+=i;continue;case C.SCRIPT_ENDING:i===`/`?t.state=C.CLOSE_TAG:(t.script+=`<`+i,t.state=C.SCRIPT);continue;case C.OPEN_WAKA:if(i===`!`)t.state=C.SGML_DECL,t.sgmlDecl=``;else if(!y(i))if(S(h,i))t.state=C.OPEN_TAG,t.tagName=i;else if(i===`/`)t.state=C.CLOSE_TAG,t.tagName=``;else if(i===`?`)t.state=C.PROC_INST,t.procInstName=t.procInstBody=``;else{if(w(t,`Unencoded <`),t.startTagPosition+1<t.position){var o=t.position-t.startTagPosition;i=Array(o).join(` `)+i}t.textNode+=`<`+i,t.state=C.TEXT}continue;case C.SGML_DECL:(t.sgmlDecl+i).toUpperCase()===u?(re(t,`onopencdata`),t.state=C.CDATA,t.sgmlDecl=``,t.cdata=``):t.sgmlDecl+i===`--`?(t.state=C.COMMENT,t.comment=``,t.sgmlDecl=``):(t.sgmlDecl+i).toUpperCase()===d?(t.state=C.DOCTYPE,(t.doctype||t.sawRoot)&&w(t,`Inappropriately located doctype declaration`),t.doctype=``,t.sgmlDecl=``):i===`>`?(re(t,`onsgmldeclaration`,t.sgmlDecl),t.sgmlDecl=``,t.state=C.TEXT):(b(i)&&(t.state=C.SGML_DECL_QUOTED),t.sgmlDecl+=i);continue;case C.SGML_DECL_QUOTED:i===t.q&&(t.state=C.SGML_DECL,t.q=``),t.sgmlDecl+=i;continue;case C.DOCTYPE:i===`>`?(t.state=C.TEXT,re(t,`ondoctype`,t.doctype),t.doctype=!0):(t.doctype+=i,i===`[`?t.state=C.DOCTYPE_DTD:b(i)&&(t.state=C.DOCTYPE_QUOTED,t.q=i));continue;case C.DOCTYPE_QUOTED:t.doctype+=i,i===t.q&&(t.q=``,t.state=C.DOCTYPE);continue;case C.DOCTYPE_DTD:t.doctype+=i,i===`]`?t.state=C.DOCTYPE:b(i)&&(t.state=C.DOCTYPE_DTD_QUOTED,t.q=i);continue;case C.DOCTYPE_DTD_QUOTED:t.doctype+=i,i===t.q&&(t.state=C.DOCTYPE_DTD,t.q=``);continue;case C.COMMENT:i===`-`?t.state=C.COMMENT_ENDING:t.comment+=i;continue;case C.COMMENT_ENDING:i===`-`?(t.state=C.COMMENT_ENDED,t.comment=ae(t.opt,t.comment),t.comment&&re(t,`oncomment`,t.comment),t.comment=``):(t.comment+=`-`+i,t.state=C.COMMENT);continue;case C.COMMENT_ENDED:i===`>`?t.state=C.TEXT:(w(t,`Malformed comment`),t.comment+=`--`+i,t.state=C.COMMENT);continue;case C.CDATA:i===`]`?t.state=C.CDATA_ENDING:t.cdata+=i;continue;case C.CDATA_ENDING:i===`]`?t.state=C.CDATA_ENDING_2:(t.cdata+=`]`+i,t.state=C.CDATA);continue;case C.CDATA_ENDING_2:i===`>`?(t.cdata&&re(t,`oncdata`,t.cdata),re(t,`onclosecdata`),t.cdata=``,t.state=C.TEXT):i===`]`?t.cdata+=`]`:(t.cdata+=`]]`+i,t.state=C.CDATA);continue;case C.PROC_INST:i===`?`?t.state=C.PROC_INST_ENDING:y(i)?t.state=C.PROC_INST_BODY:t.procInstName+=i;continue;case C.PROC_INST_BODY:if(!t.procInstBody&&y(i))continue;i===`?`?t.state=C.PROC_INST_ENDING:t.procInstBody+=i;continue;case C.PROC_INST_ENDING:i===`>`?(re(t,`onprocessinginstruction`,{name:t.procInstName,body:t.procInstBody}),t.procInstName=t.procInstBody=``,t.state=C.TEXT):(t.procInstBody+=`?`+i,t.state=C.PROC_INST_BODY);continue;case C.OPEN_TAG:S(g,i)?t.tagName+=i:(ce(t),i===`>`?de(t):i===`/`?t.state=C.OPEN_TAG_SLASH:(y(i)||w(t,`Invalid character in tag name`),t.state=C.ATTRIB));continue;case C.OPEN_TAG_SLASH:i===`>`?(de(t,!0),fe(t)):(w(t,`Forward-slash in opening tag not followed by >`),t.state=C.ATTRIB);continue;case C.ATTRIB:if(y(i))continue;i===`>`?de(t):i===`/`?t.state=C.OPEN_TAG_SLASH:S(h,i)?(t.attribName=i,t.attribValue=``,t.state=C.ATTRIB_NAME):w(t,`Invalid attribute name`);continue;case C.ATTRIB_NAME:i===`=`?t.state=C.ATTRIB_VALUE:i===`>`?(w(t,`Attribute without value`),t.attribValue=t.attribName,ue(t),de(t)):y(i)?t.state=C.ATTRIB_NAME_SAW_WHITE:S(g,i)?t.attribName+=i:w(t,`Invalid attribute name`);continue;case C.ATTRIB_NAME_SAW_WHITE:if(i===`=`)t.state=C.ATTRIB_VALUE;else if(y(i))continue;else w(t,`Attribute without value`),t.tag.attributes[t.attribName]=``,t.attribValue=``,re(t,`onattribute`,{name:t.attribName,value:``}),t.attribName=``,i===`>`?de(t):S(h,i)?(t.attribName=i,t.state=C.ATTRIB_NAME):(w(t,`Invalid attribute name`),t.state=C.ATTRIB);continue;case C.ATTRIB_VALUE:if(y(i))continue;b(i)?(t.q=i,t.state=C.ATTRIB_VALUE_QUOTED):(w(t,`Unquoted attribute value`),t.state=C.ATTRIB_VALUE_UNQUOTED,t.attribValue=i);continue;case C.ATTRIB_VALUE_QUOTED:if(i!==t.q){i===`&`?t.state=C.ATTRIB_VALUE_ENTITY_Q:t.attribValue+=i;continue}ue(t),t.q=``,t.state=C.ATTRIB_VALUE_CLOSED;continue;case C.ATTRIB_VALUE_CLOSED:y(i)?t.state=C.ATTRIB:i===`>`?de(t):i===`/`?t.state=C.OPEN_TAG_SLASH:S(h,i)?(w(t,`No whitespace between attributes`),t.attribName=i,t.attribValue=``,t.state=C.ATTRIB_NAME):w(t,`Invalid attribute name`);continue;case C.ATTRIB_VALUE_UNQUOTED:if(!x(i)){i===`&`?t.state=C.ATTRIB_VALUE_ENTITY_U:t.attribValue+=i;continue}ue(t),i===`>`?de(t):t.state=C.ATTRIB;continue;case C.CLOSE_TAG:if(t.tagName)i===`>`?fe(t):S(g,i)?t.tagName+=i:t.script?(t.script+=`</`+t.tagName,t.tagName=``,t.state=C.SCRIPT):(y(i)||w(t,`Invalid tagname in closing tag`),t.state=C.CLOSE_TAG_SAW_WHITE);else{if(y(i))continue;ee(h,i)?t.script?(t.script+=`</`+i,t.state=C.SCRIPT):w(t,`Invalid tagname in closing tag.`):t.tagName=i}continue;case C.CLOSE_TAG_SAW_WHITE:if(y(i))continue;i===`>`?fe(t):w(t,`Invalid characters in closing tag`);continue;case C.TEXT_ENTITY:case C.ATTRIB_VALUE_ENTITY_Q:case C.ATTRIB_VALUE_ENTITY_U:var s,c;switch(t.state){case C.TEXT_ENTITY:s=C.TEXT,c=`textNode`;break;case C.ATTRIB_VALUE_ENTITY_Q:s=C.ATTRIB_VALUE_QUOTED,c=`attribValue`;break;case C.ATTRIB_VALUE_ENTITY_U:s=C.ATTRIB_VALUE_UNQUOTED,c=`attribValue`;break}if(i===`;`)if(t.opt.unparsedEntities){var l=pe(t);t.entity=``,t.state=s,t.write(l)}else t[c]+=pe(t),t.entity=``,t.state=s;else S(t.entity.length?v:_,i)?t.entity+=i:(w(t,`Invalid character in entity name`),t[c]+=`&`+t.entity+i,t.entity=``,t.state=s);continue;default:throw Error(t,`Unknown state: `+t.state)}return t.position>=t.bufferCheckPosition&&r(t),t}return String.fromCodePoint||(function(){var e=String.fromCharCode,t=Math.floor,n=function(){var n=16384,r=[],i,a,o=-1,s=arguments.length;if(!s)return``;for(var c=``;++o<s;){var l=Number(arguments[o]);if(!isFinite(l)||l<0||l>1114111||t(l)!==l)throw RangeError(`Invalid code point: `+l);l<=65535?r.push(l):(l-=65536,i=(l>>10)+55296,a=l%1024+56320,r.push(i,a)),(o+1===s||r.length>n)&&(c+=e.apply(null,r),r.length=0)}return c};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:n,configurable:!0,writable:!0}):String.fromCodePoint=n})(),e}(),zT=`The output should be formatted as a XML file.
|
|
139
|
+
1. Output should conform to the tags below.
|
|
140
|
+
2. If tags are not given, make them on your own.
|
|
141
|
+
3. Remember to always open and close all the tags.
|
|
142
|
+
|
|
143
|
+
As an example, for the tags ["foo", "bar", "baz"]:
|
|
144
|
+
1. String "<foo>
|
|
145
|
+
<bar>
|
|
146
|
+
<baz></baz>
|
|
147
|
+
</bar>
|
|
148
|
+
</foo>" is a well-formatted instance of the schema.
|
|
149
|
+
2. String "<foo>
|
|
150
|
+
<bar>
|
|
151
|
+
</foo>" is a badly-formatted instance.
|
|
152
|
+
3. String "<foo>
|
|
153
|
+
<tag>
|
|
154
|
+
</tag>
|
|
155
|
+
</foo>" is a badly-formatted instance.
|
|
156
|
+
|
|
157
|
+
Here are the output tags:
|
|
158
|
+
\`\`\`
|
|
159
|
+
{tags}
|
|
160
|
+
\`\`\``,BT=class extends TT{tags;constructor(e){super(e),this.tags=e?.tags}static lc_name(){return`XMLOutputParser`}lc_namespace=[`langchain_core`,`output_parsers`];lc_serializable=!0;_diff(e,t){if(t)return e?Iu(e,t):[{op:`replace`,path:``,value:t}]}async parsePartialResult(e){return UT(e[0].text)}async parse(e){return UT(e)}getFormatInstructions(){return this.tags&&this.tags.length>0?zT.replace(`{tags}`,this.tags?.join(`, `)??``):zT}},VT=e=>e.split(`
|
|
161
|
+
`).map(e=>e.replace(/^\s+/,``)).join(`
|
|
162
|
+
`).trim(),HT=e=>{if(Object.keys(e).length===0)return{};let t={};return e.children.length>0?(t[e.name]=e.children.map(HT),t):(t[e.name]=e.text??void 0,t)};function UT(e){let t=VT(e),n=RT.parser(!0),r={},i=[];n.onopentag=e=>{let t={name:e.name,attributes:e.attributes,children:[],text:``,isSelfClosing:e.isSelfClosing};i.length>0?i[i.length-1].children.push(t):r=t,e.isSelfClosing||i.push(t)},n.onclosetag=()=>{if(i.length>0){let e=i.pop();i.length===0&&e&&(r=e)}},n.ontext=e=>{if(i.length>0){let t=i[i.length-1];t.text+=e}},n.onattribute=e=>{if(i.length>0){let t=i[i.length-1];t.attributes[e.name]=e.value}};let a=/```(xml)?(.*)```/s.exec(t),o=a?a[2]:t;return n.write(o).close(),r&&r.name===`?xml`&&(r=r.children[0]),HT(r)}var WT=h({AsymmetricStructuredOutputParser:()=>LT,BaseCumulativeTransformOutputParser:()=>TT,BaseLLMOutputParser:()=>xT,BaseOutputParser:()=>ST,BaseTransformOutputParser:()=>wT,BytesOutputParser:()=>ET,CommaSeparatedListOutputParser:()=>OT,CustomListOutputParser:()=>kT,JsonMarkdownStructuredOutputParser:()=>IT,JsonOutputParser:()=>NT,ListOutputParser:()=>DT,MarkdownListOutputParser:()=>jT,NumberedListOutputParser:()=>AT,OutputParserException:()=>CT,StandardSchemaOutputParser:()=>PT,StringOutputParser:()=>MT,StructuredOutputParser:()=>FT,XMLOutputParser:()=>BT,XML_FORMAT_INSTRUCTIONS:()=>zT,parseJsonMarkdown:()=>re,parsePartialJson:()=>ae,parseXMLMarkdown:()=>UT}),GT=h({extendInteropZodObject:()=>w_,getInteropZodDefaultGetter:()=>O_,getInteropZodObjectShape:()=>C_,getSchemaDescription:()=>m_,interopParse:()=>p_,interopParseAsync:()=>d_,interopSafeParse:()=>f_,interopSafeParseAsync:()=>u_,interopZodObjectMakeFieldsOptional:()=>N_,interopZodObjectPartial:()=>T_,interopZodObjectPassthrough:()=>D_,interopZodObjectStrict:()=>E_,interopZodTransformInputSchema:()=>M_,isInteropZodError:()=>P_,isInteropZodLiteral:()=>l_,isInteropZodObject:()=>S_,isInteropZodSchema:()=>o_,isShapelessZodSchema:()=>h_,isSimpleStringZodSchema:()=>g_,isZodArrayV4:()=>y_,isZodLiteralV3:()=>s_,isZodLiteralV4:()=>c_,isZodNullableV4:()=>x_,isZodObjectV3:()=>__,isZodObjectV4:()=>v_,isZodOptionalV4:()=>b_,isZodSchema:()=>a_,isZodSchemaV3:()=>i_,isZodSchemaV4:()=>r_});function KT(e,t){if(e.function===void 0)return;let n;if(t?.partial)try{n=ae(e.function.arguments??`{}`)}catch{return}else try{n=JSON.parse(e.function.arguments)}catch(t){throw new CT([`Function "${e.function.name}" arguments:`,``,e.function.arguments,``,`are not valid JSON.`,`Error: ${t.message}`].join(`
|
|
163
|
+
`))}let r={name:e.function.name,args:n,type:`tool_call`};return t?.returnId&&(r.id=e.id),r}function qT(e){if(e.id===void 0)throw Error(`All OpenAI tool calls must have an "id" field.`);return{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.args)}}}function JT(e,t){return{name:e.function?.name,args:e.function?.arguments,id:e.id,error:t,type:`invalid_tool_call`}}var YT=class extends TT{static lc_name(){return`JsonOutputToolsParser`}returnId=!1;lc_namespace=[`langchain`,`output_parsers`,`openai_tools`];lc_serializable=!0;constructor(e){super(e),this.returnId=e?.returnId??this.returnId}_diff(){throw Error(`Not supported.`)}async parse(){throw Error(`Not implemented.`)}async parseResult(e){return await this.parsePartialResult(e,!1)}async parsePartialResult(e,t=!0){let n=e[0].message,r;if(cn(n)&&n.tool_calls?.length?r=n.tool_calls.map(e=>{let{id:t,...n}=e;return this.returnId?{id:t,...n}:n}):n.additional_kwargs.tool_calls!==void 0&&(r=JSON.parse(JSON.stringify(n.additional_kwargs.tool_calls)).map(e=>KT(e,{returnId:this.returnId,partial:t}))),!r)return[];let i=[];for(let e of r)if(e!==void 0){let t={type:e.name,args:e.args,id:e.id};i.push(t)}return i}},XT=class extends YT{static lc_name(){return`JsonOutputKeyToolsParser`}lc_namespace=[`langchain`,`output_parsers`,`openai_tools`];lc_serializable=!0;returnId=!1;keyName;returnSingle=!1;zodSchema;serializableSchema;constructor(e){super(e),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,`zodSchema`in e&&(this.zodSchema=e.zodSchema),`serializableSchema`in e&&(this.serializableSchema=e.serializableSchema)}async _validateResult(e){if(this.serializableSchema!==void 0){let t=await this.serializableSchema[`~standard`].validate(e);if(t.issues)throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.issues)}`,JSON.stringify(e,null,2));return t.value}if(this.zodSchema===void 0)return e;let t=await u_(this.zodSchema,e);if(t.success)return t.data;throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error?.issues)}`,JSON.stringify(e,null,2))}async parsePartialResult(e){let t=(await super.parsePartialResult(e)).filter(e=>e.type===this.keyName),n=t;if(t.length)return this.returnId||(n=t.map(e=>e.args)),this.returnSingle?n[0]:n}async parseResult(e){let t=(await super.parsePartialResult(e,!1)).filter(e=>e.type===this.keyName),n=t;if(t.length)return this.returnId||(n=t.map(e=>e.args)),this.returnSingle?this._validateResult(n[0]):await Promise.all(n.map(e=>this._validateResult(e)))}},ZT=h({assembleStructuredOutputPipeline:()=>eE,createContentParser:()=>QT,createFunctionCallingParser:()=>$T});function QT(e){return o_(e)?FT.fromZodSchema(e):Cb(e)?PT.fromSerializableSchema(e):new NT}function $T(e,t,n){let r=n??XT;return o_(e)?new r({returnSingle:!0,keyName:t,zodSchema:e}):Cb(e)?new r({returnSingle:!0,keyName:t,serializableSchema:e}):new r({returnSingle:!0,keyName:t})}function eE(e,t,n,r){if(!n){let n=e.pipe(t);return r?n.withConfig({runName:r}):n}let i=Ux.assign({parsed:(e,n)=>t.invoke(e.raw,n)}),a=Ux.assign({parsed:()=>null}),o=i.withFallbacks({fallbacks:[a]}),s=jx.from([{raw:e},o]);return r?s.withConfig({runName:r}):s}var tE=h({ChatModelStream:()=>mE,ReasoningContentStream:()=>fE,TextContentStream:()=>uE,ToolCallsStream:()=>dE,UsageMetadataStream:()=>pE}),nE=class{events=[];finished=!1;waiters=[];error=null;push(e){this.events.push(e);let t=this.waiters.splice(0);for(let e of t)e()}finish(){this.finished=!0;let e=this.waiters.splice(0);for(let t of e)t()}setError(e){this.error=e,this.finished=!0;let t=this.waiters.splice(0);for(let e of t)e()}async*iterate(){if(this.finished){if(this.error)throw this.error;yield*this.events;return}let e=0;for(;;){for(;e<this.events.length;)yield this.events[e],e++;if(this.finished){if(this.error)throw this.error;return}await new Promise(t=>{if(e<this.events.length||this.finished){t();return}this.waiters.push(t)})}}};function rE(e,t){switch(t.type){case`text-delta`:return e.type===`text`?{...e,text:(e.text??``)+t.text}:e;case`reasoning-delta`:return e.type===`thinking`?{...e,thinking:(e.thinking??``)+t.reasoning}:e.type===`reasoning`?{...e,reasoning:(e.reasoning??``)+t.reasoning}:e;case`data-delta`:return{...e,data:(e.data??``)+t.data};case`block-delta`:return{...e,...t.fields};default:throw Error(`Unknown delta type: ${JSON.stringify(t)}`)}}function iE(e){if(e.event!==`content-block-delta`)return;if(`delta`in e&&e.delta)return e.delta;let t=e.content;if(typeof t!=`object`||!t)return;let n=t;if(n.type===`text`&&typeof n.text==`string`)return{type:`text-delta`,text:n.text};if(n.type===`reasoning`&&typeof n.reasoning==`string`)return{type:`reasoning-delta`,reasoning:n.reasoning};if(n.type===`thinking`&&typeof n.thinking==`string`)return{type:`reasoning-delta`,reasoning:n.thinking};if(typeof n.data==`string`)return{type:`data-delta`,data:n.data,encoding:`base64`};if(typeof n.type==`string`)return{type:`block-delta`,fields:{...n,type:n.type}}}function aE(e){if(typeof e!=`object`||!e)return;let t=e;if(t.type===`reasoning`&&typeof t.reasoning==`string`)return t.reasoning;if(t.type===`thinking`&&typeof t.thinking==`string`)return t.thinking}function oE(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`reasoning`||t===`thinking`}function sE(e){if(e)return{...e,input_tokens:e.input_tokens??0,output_tokens:e.output_tokens??0,total_tokens:e.total_tokens??0}}function cE(e){if(typeof e==`object`&&e&&!Array.isArray(e))return e;if(typeof e!=`string`||e.length===0)return{};try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}function lE(e){let t=e;if(e.type===`tool_call`||e.type!==`tool_call_chunk`&&e.type!==`tool_use`&&e.type!==`input_json_delta`)return e;let n=typeof t.name==`string`?t.name:void 0;if(n==null)return e;let r=t.args??t.input;return{...t,type:`tool_call`,name:n,args:cE(r)}}var uE=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t=``;for await(let n of e.iterate()){let e=iE(n);e?.type===`text-delta`&&(t+=e.text,yield t)}}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let t of e.iterate()){let e=iE(t);e?.type===`text-delta`&&(yield e.text)}}return t()}then(e,t){return(async()=>{let e=``;for await(let t of this)e+=t;return e})().then(e,t)}},dE=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t=[];for await(let n of e.iterate())n.event===`content-block-finish`&&n.content.type===`tool_call`&&(t.push(n.content),yield[...t])}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let t of e.iterate())t.event===`content-block-finish`&&t.content.type===`tool_call`&&(yield t.content)}return t()}then(e,t){return(async()=>{let e=[];for await(let t of this)e.push(t);return e})().then(e,t)}},fE=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t=``,n=!1;for await(let r of e.iterate())if(r.event===`content-block-start`){if(!oE(r.content)){if(n)return;continue}n=!0;let e=aE(r.content);if(e==null||e.length===0)continue;t+=e,yield t}else if(r.event===`content-block-delta`){let e=iE(r);if(e?.type!==`reasoning-delta`)continue;n=!0;let i=e.reasoning;if(i==null||i.length===0)continue;t+=i,yield t}else if(r.event===`content-block-finish`&&oE(r.content))return;else if(r.event===`message-finish`)return}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){let t=!1;for await(let n of e.iterate())if(n.event===`content-block-start`){if(!oE(n.content)){if(t)return;continue}t=!0;let e=aE(n.content);e!=null&&e.length>0&&(yield e)}else if(n.event===`content-block-delta`){let e=iE(n);if(e?.type!==`reasoning-delta`)continue;t=!0;let r=e.reasoning;r!=null&&r.length>0&&(yield r)}else if(n.event===`content-block-finish`&&oE(n.content))return;else if(n.event===`message-finish`)return}return t()}then(e,t){return(async()=>{let e=``;for await(let t of this)e+=t;return e})().then(e,t)}},pE=class{_buffer;constructor(e){this._buffer=e}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let t of e.iterate())if(t.event===`usage`){let e=sE(t.usage);e&&(yield e)}else if(t.event===`message-start`&&t.usage){let e=sE(t.usage);e&&(yield e)}else if(t.event===`message-finish`&&t.usage){let e=sE(t.usage);e&&(yield e)}}return t()}then(e,t){return(async()=>{let e;for await(let t of this)e=t;return e})().then(e,t)}},mE=class{_buffer;constructor(e){this._buffer=new nE,this._consume(e)}async _consume(e){try{for await(let t of e)this._buffer.push(t);this._buffer.finish()}catch(e){this._buffer.setError(e instanceof Error?e:Error(String(e)))}}[Symbol.asyncIterator](){return this._buffer.iterate()}get text(){return new uE(this._buffer)}get toolCalls(){return new dE(this._buffer)}get reasoning(){return new fE(this._buffer)}get usage(){return new pE(this._buffer)}get output(){return this._assembleMessage()}then(e,t){return this._assembleMessage().then(e,t)}async _assembleMessage(){let e=[],t,n,r={},i;for await(let a of this._buffer.iterate())switch(a.event){case`message-start`:t=a.id??t,a.usage&&(n=sE(a.usage));break;case`content-block-start`:e[a.index]=a.content;break;case`content-block-delta`:{let t=e[a.index],n=iE(a);t&&n&&(e[a.index]=rE(t,n));break}case`content-block-finish`:e[a.index]=a.content;break;case`usage`:n=sE(a.usage);break;case`message-finish`:i=a.reason,a.usage&&(n=sE(a.usage)),a.responseMetadata&&(r={...r,...a.responseMetadata});break;default:break}let a=e.filter(e=>e!=null).map(lE);return new k({id:t,content:a,usage_metadata:n,response_metadata:{...r,...i?{finish_reason:i}:{},output_version:`v1`}})}},hE=h({convertChunksToEvents:()=>SE,finalizeContentBlock:()=>TE}),gE={wav:`audio/wav`,mp3:`audio/mpeg`,flac:`audio/flac`,opus:`audio/opus`,aac:`audio/aac`,pcm16:`audio/pcm`},_E={png:`image/png`,jpeg:`image/jpeg`,jpg:`image/jpeg`,webp:`image/webp`,gif:`image/gif`};function vE(e){let t=0;for(let n of e.keys())n>=t&&(t=n+1);return t}function yE(e){let t=e.additional_kwargs;return typeof t==`object`&&t?t:{}}function bE(e){let t=yE(e).tool_outputs;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;if(t.type!==`image_generation_call`)continue;let r=typeof t.result==`string`?t.result:void 0,i=typeof t.url==`string`?t.url:void 0;if(r==null&&i==null)continue;let a=typeof t.output_format==`string`?t.output_format.toLowerCase():void 0,o=(a==null?void 0:_E[a])??`image/png`;n.push({type:`image`,...typeof t.id==`string`?{id:t.id}:{},...i==null?{}:{url:i},...r==null?{}:{data:r},mimeType:o})}return n}function xE(e){let t=yE(e).audio;if(typeof t!=`object`||!t)return;let n=t,r=typeof n.data==`string`?n.data:void 0,i=typeof n.url==`string`?n.url:void 0,a=typeof n.transcript==`string`?n.transcript:void 0;if(r==null&&i==null&&a==null)return;let o=typeof n.mime_type==`string`?n.mime_type:typeof n.mimeType==`string`?n.mimeType:void 0,s=typeof n.format==`string`?n.format.toLowerCase():void 0,c=o??(s==null?void 0:gE[s])??(r==null?`audio/pcm`:`audio/wav`);return{...typeof n.id==`string`?{id:n.id}:{},...r==null?{}:{data:r},...i==null?{}:{url:i},...a==null?{}:{transcript:a},mimeType:c}}async function*SE(e,t){let n=new Map,r=!1,i,a,o=new Set;for await(let s of e){t?.signal?.throwIfAborted();let e=s.message,c=!1;if(!r){r=!0;let t={event:`message-start`,id:e.id??void 0};un.isInstance(e)&&e.usage_metadata&&(t.usage=e.usage_metadata,i={...e.usage_metadata},c=!0),yield t}let l=e.content;if(typeof l==`string`){if(l!==``){if(!n.has(0)){let e={type:`text`,text:``};n.set(0,{type:`text`,accumulated:e}),yield{event:`content-block-start`,index:0,content:e}}let e=n.get(0);e.accumulated={...e.accumulated,text:(e.accumulated.text??``)+l},yield{event:`content-block-delta`,index:0,delta:{type:`text-delta`,text:l}}}}else if(Array.isArray(l))for(let e of l){let t=typeof e.index==`number`?e.index:n.size;if(!n.has(t))n.set(t,{type:e.type,accumulated:{...e}}),yield{event:`content-block-start`,index:t,content:{...e}};else{let r=n.get(t),i=wE(e);r.accumulated=CE(r.accumulated,i),yield{event:`content-block-delta`,index:t,delta:i}}}if(un.isInstance(e)&&e.tool_call_chunks&&e.tool_call_chunks.length>0)for(let t of e.tool_call_chunks){let e=typeof t.index==`number`?t.index:n.size;if(!n.has(e)){let r={type:`tool_call_chunk`,id:t.id,name:t.name,args:``,index:e};n.set(e,{type:`tool_call_chunk`,accumulated:r}),yield{event:`content-block-start`,index:e,content:r}}let r=n.get(e).accumulated;t.id!=null&&(r.id=t.id),t.name!=null&&(r.name=t.name),r.args=(r.args??``)+(t.args??``),yield{event:`content-block-delta`,index:e,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,...`id`in r&&r.id!=null?{id:r.id}:{},...`name`in r&&r.name!=null?{name:r.name}:{},args:r.args}}}}let u=xE(e);if(u!=null){if(a==null){let e=vE(n);a={index:e,id:u.id,mimeType:u.mimeType,transcript:``};let t={type:`audio`,...u.id==null?{}:{id:u.id},...u.url==null?{}:{url:u.url},data:``,mimeType:u.mimeType};n.set(e,{type:`audio`,accumulated:t}),yield{event:`content-block-start`,index:e,content:t}}let e=n.get(a.index);if(e!=null){let t=e.accumulated;u.id!=null&&a.id==null&&(a.id=u.id,t.id=u.id),u.transcript!=null&&(a.transcript+=u.transcript,t.transcript=a.transcript,yield{event:`content-block-delta`,index:a.index,delta:{type:`block-delta`,fields:{type:`audio`,transcript:a.transcript}}}),u.data!=null&&u.data.length>0&&(t.data=(t.data??``)+u.data,yield{event:`content-block-delta`,index:a.index,delta:{type:`data-delta`,data:u.data,encoding:`base64`}})}}for(let t of bE(e)){let e=t,r=e.id??e.url??(e.data==null?void 0:`${e.data.length}:${e.data.slice(0,32)}`);if(r!=null&&o.has(r))continue;r!=null&&o.add(r);let i=vE(n);n.set(i,{type:`image`,accumulated:t}),yield{event:`content-block-start`,index:i,content:t}}if(!c&&un.isInstance(e)&&e.usage_metadata){let t=e.usage_metadata;i=i?{input_tokens:i.input_tokens+t.input_tokens,output_tokens:i.output_tokens+t.output_tokens,total_tokens:i.total_tokens+t.total_tokens}:{...t},yield{event:`usage`,usage:{...i}}}}for(let[e,t]of n)yield{event:`content-block-finish`,index:e,content:TE(t.accumulated)};yield{event:`message-finish`,reason:`stop`,...i?{usage:i}:{}}}function CE(e,t){switch(t.type){case`text-delta`:return e.type===`text`?{...e,text:(e.text??``)+t.text}:e;case`reasoning-delta`:return e.type===`thinking`?{...e,thinking:(e.thinking??``)+t.reasoning}:e.type===`reasoning`?{...e,reasoning:(e.reasoning??``)+t.reasoning}:e;case`data-delta`:return{...e,data:(e.data??``)+t.data};case`block-delta`:return{...e,...t.fields};default:throw Error(`Unknown delta type: ${JSON.stringify(t)}`)}}function wE(e){if(e.type===`text`)return{type:`text-delta`,text:e.text};if(e.type===`reasoning`)return{type:`reasoning-delta`,reasoning:e.reasoning};if(e.type===`thinking`&&typeof e.thinking==`string`)return{type:`reasoning-delta`,reasoning:e.thinking};if(typeof e.data==`string`)return{type:`data-delta`,data:e.data,encoding:`base64`};if(typeof e.type==`string`)return{type:`block-delta`,fields:{...e}};throw Error(`Unsupported content block delta: ${JSON.stringify(e)}`)}function TE(e){if(e.type===`tool_call_chunk`){let t=e,n;try{n=JSON.parse(t.args??`{}`)}catch{return{type:`invalid_tool_call`,id:t.id,name:t.name,args:t.args,error:`Failed to parse tool call arguments as JSON`}}return{type:`tool_call`,id:t.id,name:t.name,args:n}}return e}var EE=e=>e();function DE(e){let t=e.constructor;return new t({...e,content:e.contentBlocks,response_metadata:{...e.response_metadata,output_version:`v1`}})}var OE=h({BaseChatModel:()=>AE,SimpleChatModel:()=>jE});function kE(e){let t=[];for(let n of e){let e=n;if(Array.isArray(n.content))for(let t=0;t<n.content.length;t++){let r=n.content[t];(De(r)||Oe(r))&&e===n&&(e=new n.constructor({...e,content:[...n.content.slice(0,t),T(r),...n.content.slice(t+1)]}))}t.push(e)}return t}var AE=class e extends yT{lc_namespace=[`langchain`,`chat_models`,this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,`outputVersion`]}constructor(e){super(e),this.outputVersion=EE(()=>{let t=e.outputVersion??Vr(`LC_OUTPUT_VERSION`);return t&&[`v0`,`v1`].includes(t)?t:`v0`})}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async invoke(t,n){let r=e._convertInputToPromptValue(t);return(await this.generatePrompt([r],n,n?.callbacks)).generations[0][0].message}async*_streamResponseChunks(e,t,n){throw Error(`Not implemented.`)}async*_streamChatModelEvents(e,t,n){yield*SE(this._streamResponseChunks(e,t,n),{signal:t.signal})}streamEvents(t,n,r){if(n?.version===`v1`||n?.version===`v2`)return super.streamEvents(t,n,r);let i=e._convertInputToPromptValue(t).toChatMessages(),[,a]=this._separateRunnableConfigFromCallOptionsCompat(n);return new mE(this._streamChatModelEvents(i,a))}streamV2(e,t){return this.streamEvents(e,t)}async*_streamIterator(t,n){if(this._streamResponseChunks===e.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(t,n);else{let r=e._convertInputToPromptValue(t).toChatMessages(),[i,a]=this._separateRunnableConfigFromCallOptionsCompat(n),o={...i.metadata,...this.getLsParamsWithDefaults(a)},s=this.invocationParams(a),c=await Wl.configure(i.callbacks,this.callbacks,i.tags,this.tags,o,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(s)}),l={options:a,invocation_params:s,batch_size:1},u=a.outputVersion??this.outputVersion,d=await c?.handleChatModelStart(this.toJSON(),[kE(r)],i.runId,void 0,l,void 0,void 0,i.runName),f,p;try{for await(let e of this._streamResponseChunks(r,a,d?.[0])){if(a.signal?.throwIfAborted(),e.message.id==null){let t=d?.at(0)?.runId;t!=null&&e.message._updateId(`run-${t}`)}e.message.response_metadata={...e.generationInfo,...e.message.response_metadata},u===`v1`?yield DE(e.message):yield e.message,f=f?f.concat(e):e,ln(e.message)&&e.message.usage_metadata!==void 0&&(p={tokenUsage:{promptTokens:e.message.usage_metadata.input_tokens,completionTokens:e.message.usage_metadata.output_tokens,totalTokens:e.message.usage_metadata.total_tokens}})}a.signal?.throwIfAborted()}catch(e){throw await Promise.all((d??[]).map(t=>t?.handleLLMError(e))),e}await Promise.all((d??[]).map(e=>e?.handleLLMEnd({generations:[[f]],llmOutput:p})))}}getLsParams(e){let t=this.getName().startsWith(`Chat`)?this.getName().replace(`Chat`,``):this.getName();return{ls_model_type:`chat`,ls_stop:e.stop,ls_provider:t}}getLsParamsWithDefaults(e){return{...this.getLsParams(e),ls_integration:`langchain_chat_model`}}async _generateUncached(t,n,r,i){let a=t.map(e=>e.map(Nn)),o;if(i!==void 0&&i.length===a.length)o=i;else{let e={...r.metadata,...this.getLsParamsWithDefaults(n)},t=this.invocationParams(n),i=await Wl.configure(r.callbacks,this.callbacks,r.tags,this.tags,e,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(t)}),s={options:n,invocation_params:t,batch_size:1};o=await i?.handleChatModelStart(this.toJSON(),a.map(kE),r.runId,void 0,s,void 0,void 0,r.runName)}let s=n.outputVersion??this.outputVersion,c=[],l=[],u=!!o?.[0].handlers.find(Gr),d=!!o?.[0].handlers.find(Wr);if(u&&!this.disableStreaming&&a.length===1&&(this._streamChatModelEvents!==e.prototype._streamChatModelEvents||this._streamResponseChunks!==e.prototype._streamResponseChunks))try{let e=!1,t=o?.[0],r=this._streamChatModelEvents(a[0],n),i=await new mE({async*[Symbol.asyncIterator](){for await(let i of r){n.signal?.throwIfAborted(),e=!0;let r=i.event===`message-start`&&i.id==null&&t?.runId!=null?{...i,id:`run-${t.runId}`}:i;await t?.handleChatModelStreamEvent(r),yield r}}});if(n.signal?.throwIfAborted(),!e)throw Error(`Received empty response from chat model call.`);if(i.id==null){let e=o?.at(0)?.runId;e!=null&&i._updateId(`run-${e}`)}let s={text:i.text,message:i};c.push([s]);let l=i.usage_metadata===void 0?void 0:{tokenUsage:{promptTokens:i.usage_metadata.input_tokens,completionTokens:i.usage_metadata.output_tokens,totalTokens:i.usage_metadata.total_tokens}};await o?.[0].handleLLMEnd({generations:c,llmOutput:l})}catch(e){throw await o?.[0].handleLLMError(e),e}else if(d&&!this.disableStreaming&&a.length===1&&this._streamResponseChunks!==e.prototype._streamResponseChunks)try{let e=await this._streamResponseChunks(a[0],n,o?.[0]),t,r;for await(let i of e){if(n.signal?.aborted){let e=t?.message;throw new S(`Model invocation was aborted.`,e)}if(i.message.id==null){let e=o?.at(0)?.runId;e!=null&&i.message._updateId(`run-${e}`)}t=t===void 0?i:uu(t,i),ln(i.message)&&i.message.usage_metadata!==void 0&&(r={tokenUsage:{promptTokens:i.message.usage_metadata.input_tokens,completionTokens:i.message.usage_metadata.output_tokens,totalTokens:i.message.usage_metadata.total_tokens}})}if(n.signal?.aborted){let e=t?.message;throw new S(`Model invocation was aborted.`,e)}if(t===void 0)throw Error(`Received empty response from chat model call.`);s===`v1`&&(t.message=DE(t.message)),c.push([t]),await o?.[0].handleLLMEnd({generations:c,llmOutput:r})}catch(e){throw await o?.[0].handleLLMError(e),e}else{let e=await Promise.allSettled(a.map(async(e,t)=>{let r=await this._generate(e,{...n,promptIndex:t},o?.[t]);if(s===`v1`)for(let e of r.generations)e.message=DE(e.message);return r}));await Promise.all(e.map(async(e,t)=>{if(e.status===`fulfilled`){let n=e.value;for(let e of n.generations){if(e.message.id==null){let t=o?.at(0)?.runId;t!=null&&e.message._updateId(`run-${t}`)}e.message.response_metadata={...e.generationInfo,...e.message.response_metadata}}return n.generations.length===1&&(n.generations[0].message.response_metadata={...n.llmOutput,...n.generations[0].message.response_metadata}),c[t]=n.generations,l[t]=n.llmOutput,o?.[t]?.handleLLMEnd({generations:[n.generations],llmOutput:n.llmOutput})}else return await o?.[t]?.handleLLMError(e.reason),Promise.reject(e.reason)}))}let f={generations:c,llmOutput:l.length?this._combineLLMOutput?.(...l):void 0};return Object.defineProperty(f,Ku,{value:o?{runIds:o?.map(e=>e.runId)}:void 0,configurable:!0}),f}async _generateCached({messages:t,cache:n,llmStringKey:r,parsedOptions:i,handledOptions:a}){let o=t.map(e=>e.map(Nn)),s={...a.metadata,...this.getLsParamsWithDefaults(i)},c=this.invocationParams(i),l=await Wl.configure(a.callbacks,this.callbacks,a.tags,this.tags,s,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(c)}),u={options:i,invocation_params:c,batch_size:1},d=await l?.handleChatModelStart(this.toJSON(),o.map(kE),a.runId,void 0,u,void 0,void 0,a.runName),f=[],p=(await Promise.allSettled(o.map(async(t,i)=>{let a=e._convertInputToPromptValue(t).toString(),o=await n.lookup(a,r);return o??f.push(i),o}))).map((e,t)=>({result:e,runManager:d?.[t]})).filter(({result:e})=>e.status===`fulfilled`&&e.value!=null||e.status===`rejected`),m=i.outputVersion??this.outputVersion,h=[];await Promise.all(p.map(async({result:e,runManager:t},n)=>{if(e.status===`fulfilled`){let r=e.value;return h[n]=r.map(e=>(`message`in e&&wt(e.message)&&cn(e.message)&&(e.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},m===`v1`&&(e.message=DE(e.message))),e.generationInfo={...e.generationInfo,tokenUsage:{}},e)),r.length&&await t?.handleLLMNewToken(r[0].text),t?.handleLLMEnd({generations:[r]},void 0,void 0,void 0,{cached:!0})}else return await t?.handleLLMError(e.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(e.reason)}));let g={generations:h,missingPromptIndices:f,startedRunManagers:d};return Object.defineProperty(g,Ku,{value:d?{runIds:d?.map(e=>e.runId)}:void 0,configurable:!0}),g}async generate(t,n,r){let i;i=Array.isArray(n)?{stop:n}:n;let a=t.map(e=>e.map(Nn)),[o,s]=this._separateRunnableConfigFromCallOptionsCompat(i);if(o.callbacks=o.callbacks??r,!this.cache)return this._generateUncached(a,s,o);let{cache:c}=this,l=this._getSerializedCacheKeyParametersForCall(s),{generations:u,missingPromptIndices:d,startedRunManagers:f}=await this._generateCached({messages:a,cache:c,llmStringKey:l,parsedOptions:s,handledOptions:o}),p={};if(d.length>0){let t=await this._generateUncached(d.map(e=>a[e]),s,o,f===void 0?void 0:d.map(e=>f?.[e]));await Promise.all(t.generations.map(async(t,n)=>{let r=d[n];u[r]=t;let i=e._convertInputToPromptValue(a[r]).toString();return c.update(i,l,t)})),p=t.llmOutput??{}}return{generations:u,llmOutput:p}}invocationParams(e){return{}}_modelType(){return`base_chat_model`}async generatePrompt(e,t,n){let r=e.map(e=>e.toChatMessages());return this.generate(r,t,n)}withStructuredOutput(e,t){if(typeof this.bindTools!=`function`)throw Error(`Chat model must implement ".bindTools()" to use withStructuredOutput.`);if(t?.strict)throw Error(`"strict" mode is not supported for this model by default.`);let n=e,r=t?.name,i=m_(n)??`A function available to call.`,a=t?.method,o=t?.includeRaw;if(a===`jsonMode`)throw Error(`Base withStructuredOutput implementation only supports "functionCalling" as a method.`);let s=r??`extract`;!o_(n)&&!Cb(n)&&`name`in n&&(s=n.name);let c=o_(n)||Cb(n)?ux(n):n,l=[{type:`function`,function:{name:s,description:i,parameters:c}}];return eE(this.bindTools(l),Fx.from(e=>{if(!un.isInstance(e))throw Error(`Input is not an AIMessageChunk.`);if(!e.tool_calls||e.tool_calls.length===0)throw Error(`No tool calls found in the response.`);let t=e.tool_calls.find(e=>e.name===s);if(!t)throw Error(`No tool call found with name ${s}.`);return t.args}),o,o?`StructuredOutputRunnable`:`StructuredOutput`)}},jE=class extends AE{async _generate(e,t,n){let r=new k(await this._call(e,t,n));if(typeof r.content!=`string`)throw Error(`Cannot generate with a simple chat model when output is not a string.`);return{generations:[{text:r.content,message:r}]}}},ME=h({convertOpenAICompletionsStream:()=>NE});async function*NE(e,t={}){let n=t.streamUsage??!0,r=t.provider??`openai`,i=t.mapChunk,a=new Map,o=new Map,s=0,c=!1,l,u,d,f=!1,p=(e,t)=>{let n=o.get(e);if(n!==void 0)return{index:n,isNew:!1};let r=s++;return o.set(e,r),a.set(r,{...t}),{index:r,isNew:!0}};for await(let t of e){i&&(t=i(t)),c||(c=!0,yield{event:`message-start`,id:t.id}),!f&&(t.model||t.service_tier)&&(f=!0,yield{event:`provider`,provider:r,name:`stream_metadata`,payload:{model:t.model,service_tier:t.service_tier}}),t.usage&&n&&(l=LE(t.usage),yield{event:`usage`,usage:l});let e=t.x_groq?.usage;e&&n&&(l=FE(e),yield{event:`usage`,usage:l});let o=t.choices?.[0];if(!o)continue;o.finish_reason!=null&&(u=IE(o.finish_reason),d=RE(t,o));let{delta:s}=o;if(!s)continue;let m=PE(s);if(m){let{index:e,isNew:t}=p(`reasoning`,{type:`reasoning`,reasoning:``});t&&(yield{event:`content-block-start`,index:e,content:{type:`reasoning`,reasoning:``}});let n=a.get(e);n.reasoning=(n.reasoning??``)+m,yield{event:`content-block-delta`,index:e,delta:{type:`reasoning-delta`,reasoning:m}}}if(s.content){let{index:e,isNew:t}=p(`text`,{type:`text`,text:``});t&&(yield{event:`content-block-start`,index:e,content:{type:`text`,text:``}});let n=a.get(e);n.text=(n.text??``)+s.content,yield{event:`content-block-delta`,index:e,delta:{type:`text-delta`,text:s.content}}}if(Array.isArray(s.tool_calls))for(let e of s.tool_calls){let t=e.index??0,{index:n,isNew:r}=p(`tool:${t}`,{type:`tool_call_chunk`,id:e.id,name:e.function?.name,args:``,index:t});r&&(yield{event:`content-block-start`,index:n,content:{type:`tool_call_chunk`,id:e.id,name:e.function?.name,args:``,index:t}});let i=a.get(n);e.id!=null&&(i.id=e.id),e.function?.name!=null&&(i.name=e.function.name);let o=e.function?.arguments??``;i.args=(i.args??``)+o,yield{event:`content-block-delta`,index:n,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,...i.id==null?{}:{id:i.id},...i.name==null?{}:{name:i.name},args:i.args}}}}if(s.audio){let{index:e,isNew:t}=p(`audio`,{type:`audio`,id:s.audio.id,data:``,mimeType:`audio/pcm`,transcript:s.audio.transcript??``});t&&(yield{event:`content-block-start`,index:e,content:{type:`audio`,id:s.audio.id,data:``,mimeType:`audio/pcm`,transcript:s.audio.transcript??``}});let n=a.get(e);s.audio.transcript&&(n.transcript=(n.transcript??``)+s.audio.transcript,yield{event:`content-block-delta`,index:e,delta:{type:`block-delta`,fields:{type:`audio`,transcript:n.transcript}}}),s.audio.data&&(n.data=(n.data??``)+s.audio.data,yield{event:`content-block-delta`,index:e,delta:{type:`data-delta`,data:s.audio.data,encoding:`base64`}})}s.function_call&&(yield{event:`provider`,provider:r,name:`function_call`,payload:s.function_call}),o.logprobs&&(yield{event:`provider`,provider:r,name:`logprobs`,payload:o.logprobs})}for(let[e,t]of a)yield{event:`content-block-finish`,index:e,content:TE(t)};yield{event:`message-finish`,reason:u,...l?{usage:l}:{},...d?{responseMetadata:d}:{}}}function PE(e){let t=e.reasoning_content??e.reasoning;return typeof t==`string`&&t.length>0?t:void 0}function FE(e){return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0}}function IE(e){switch(e){case`stop`:return`stop`;case`length`:case`max_tokens`:return`length`;case`tool_calls`:case`function_call`:return`tool_use`;case`content_filter`:return`content_filter`;default:return`stop`}}function LE(e){let t={...e.prompt_tokens_details?.audio_tokens!=null&&{audio:e.prompt_tokens_details.audio_tokens},...e.prompt_tokens_details?.cached_tokens!=null&&{cache_read:e.prompt_tokens_details.cached_tokens}},n={...e.completion_tokens_details?.audio_tokens!=null&&{audio:e.completion_tokens_details.audio_tokens},...e.completion_tokens_details?.reasoning_tokens!=null&&{reasoning:e.completion_tokens_details.reasoning_tokens}};return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0,...Object.keys(t).length>0&&{input_token_details:t},...Object.keys(n).length>0&&{output_token_details:n}}}function RE(e,t){return{model_provider:`openai`,model_name:e.model,system_fingerprint:e.system_fingerprint,service_tier:e.service_tier,finish_reason:t.finish_reason,...e.usage?{usage:e.usage}:{}}}var zE=h({}),BE=h({BaseLLM:()=>VE,LLM:()=>HE}),VE=class e extends yT{lc_namespace=[`langchain`,`llms`,this._llmType()];async invoke(t,n){let r=e._convertInputToPromptValue(t);return(await this.generatePrompt([r],n,n?.callbacks)).generations[0][0].text}async*_streamResponseChunks(e,t,n){throw Error(`Not implemented.`)}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async*_streamIterator(t,n){if(this._streamResponseChunks===e.prototype._streamResponseChunks)yield this.invoke(t,n);else{let r=e._convertInputToPromptValue(t),[i,a]=this._separateRunnableConfigFromCallOptionsCompat(n),o=this.invocationParams(a),s=await Wl.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(o)}),c={options:a,invocation_params:o,batch_size:1},l=await s?.handleLLMStart(this.toJSON(),[r.toString()],i.runId,void 0,c,void 0,void 0,i.runName),u=new qu({text:``});try{for await(let e of this._streamResponseChunks(r.toString(),a,l?.[0]))u=u?u.concat(e):e,typeof e.text==`string`&&(yield e.text)}catch(e){throw await Promise.all((l??[]).map(t=>t?.handleLLMError(e))),e}await Promise.all((l??[]).map(e=>e?.handleLLMEnd({generations:[[u]]})))}}async generatePrompt(e,t,n){let r=e.map(e=>e.toString());return this.generate(r,t,n)}invocationParams(e){return{}}_flattenLLMResult(e){let t=[];for(let n=0;n<e.generations.length;n+=1){let r=e.generations[n];if(n===0)t.push({generations:[r],llmOutput:e.llmOutput});else{let n=e.llmOutput?{...e.llmOutput,tokenUsage:{}}:void 0;t.push({generations:[r],llmOutput:n})}}return t}async _generateUncached(t,n,r,i){let a;if(i!==void 0&&i.length===t.length)a=i;else{let e=this.invocationParams(n),i=await Wl.configure(r.callbacks,this.callbacks,r.tags,this.tags,r.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(e)}),o={options:n,invocation_params:e,batch_size:t.length};a=await i?.handleLLMStart(this.toJSON(),t,r.runId,void 0,o,void 0,void 0,r?.runName)}let o=!!a?.[0].handlers.find(Wr),s;if(o&&t.length===1&&this._streamResponseChunks!==e.prototype._streamResponseChunks)try{let e=await this._streamResponseChunks(t[0],n,a?.[0]),r;for await(let t of e)r=r===void 0?t:uu(r,t);if(r===void 0)throw Error(`Received empty response from chat model call.`);s={generations:[[r]],llmOutput:{}},await a?.[0].handleLLMEnd(s)}catch(e){throw await a?.[0].handleLLMError(e),e}else{try{s=await this._generate(t,n,a?.[0])}catch(e){throw await Promise.all((a??[]).map(t=>t?.handleLLMError(e))),e}let e=this._flattenLLMResult(s);await Promise.all((a??[]).map((t,n)=>t?.handleLLMEnd(e[n])))}let c=a?.map(e=>e.runId)||void 0;return Object.defineProperty(s,Ku,{value:c?{runIds:c}:void 0,configurable:!0}),s}async _generateCached({prompts:e,cache:t,llmStringKey:n,parsedOptions:r,handledOptions:i,runId:a}){let o=this.invocationParams(r),s=await Wl.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(o)}),c={options:r,invocation_params:o,batch_size:e.length},l=await s?.handleLLMStart(this.toJSON(),e,a,void 0,c,void 0,void 0,i?.runName),u=[],d=(await Promise.allSettled(e.map(async(e,r)=>{let i=await t.lookup(e,n);return i??u.push(r),i}))).map((e,t)=>({result:e,runManager:l?.[t]})).filter(({result:e})=>e.status===`fulfilled`&&e.value!=null||e.status===`rejected`),f=[];await Promise.all(d.map(async({result:e,runManager:t},n)=>{if(e.status===`fulfilled`){let r=e.value;return f[n]=r.map(e=>(e.generationInfo={...e.generationInfo,tokenUsage:{}},e)),r.length&&await t?.handleLLMNewToken(r[0].text),t?.handleLLMEnd({generations:[r]},void 0,void 0,void 0,{cached:!0})}else return await t?.handleLLMError(e.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(e.reason)}));let p={generations:f,missingPromptIndices:u,startedRunManagers:l};return Object.defineProperty(p,Ku,{value:l?{runIds:l?.map(e=>e.runId)}:void 0,configurable:!0}),p}async generate(e,t,n){if(!Array.isArray(e))throw Error(`Argument 'prompts' is expected to be a string[]`);let r;r=Array.isArray(t)?{stop:t}:t;let[i,a]=this._separateRunnableConfigFromCallOptionsCompat(r);if(i.callbacks=i.callbacks??n,!this.cache)return this._generateUncached(e,a,i);let{cache:o}=this,s=this._getSerializedCacheKeyParametersForCall(a),{generations:c,missingPromptIndices:l,startedRunManagers:u}=await this._generateCached({prompts:e,cache:o,llmStringKey:s,parsedOptions:a,handledOptions:i,runId:i.runId}),d={};if(l.length>0){let t=await this._generateUncached(l.map(t=>e[t]),a,i,u===void 0?void 0:l.map(e=>u?.[e]));await Promise.all(t.generations.map(async(t,n)=>{let r=l[n];return c[r]=t,o.update(e[r],s,t)})),d=t.llmOutput??{}}return{generations:c,llmOutput:d}}_identifyingParams(){return{}}_modelType(){return`base_llm`}},HE=class extends VE{async _generate(e,t,n){return{generations:await Promise.all(e.map((e,r)=>this._call(e,{...t,promptIndex:r},n).then(e=>[{text:e}])))}}},UE=h({}),WE=h({BaseMemory:()=>GE,getInputValue:()=>qE,getOutputValue:()=>JE,getPromptInputKey:()=>YE}),GE=class{},KE=(e,t)=>{if(t!==void 0)return e[t];let n=Object.keys(e);if(n.length===1)return e[n[0]]},qE=(e,t)=>{let n=KE(e,t);if(!n)throw Error(`input values have ${Object.keys(e).length} keys, you must specify an input key or pass only 1 key as input`);return n},JE=(e,t)=>{let n=KE(e,t);if(!n&&n!==``)throw Error(`output values have ${Object.keys(e).length} keys, you must specify an output key or pass only 1 key as output`);return n};function YE(e,t){let n=Object.keys(e).filter(e=>!t.includes(e)&&e!==`stop`);if(n.length!==1)throw Error(`One input key expected, but got ${n.length}`);return n[0]}var XE=class extends xT{static lc_name(){return`OutputFunctionsParser`}lc_namespace=[`langchain`,`output_parsers`,`openai_functions`];lc_serializable=!0;argsOnly=!0;constructor(e){super(),this.argsOnly=e?.argsOnly??this.argsOnly}async parseResult(e){if(`message`in e[0]){let t=e[0].message.additional_kwargs.function_call;if(!t)throw Error(`No function_call in message ${JSON.stringify(e)}`);if(!t.arguments)throw Error(`No arguments in function_call ${JSON.stringify(e)}`);return this.argsOnly?t.arguments:JSON.stringify(t)}else throw Error(`No message in generations ${JSON.stringify(e)}`)}},ZE=class extends TT{static lc_name(){return`JsonOutputFunctionsParser`}lc_namespace=[`langchain`,`output_parsers`,`openai_functions`];lc_serializable=!0;outputParser;argsOnly=!0;constructor(e){super(e),this.argsOnly=e?.argsOnly??this.argsOnly,this.outputParser=new XE(e)}_diff(e,t){if(t)return Iu(e??{},t)}async parsePartialResult(e){let t=e[0];if(!t.message)return;let{message:n}=t,r=n.additional_kwargs.function_call;if(r)return this.argsOnly?ae(r.arguments):{...r,arguments:ae(r.arguments)}}async parseResult(e){let t=await this.outputParser.parseResult(e);if(!t)throw Error(`No result from "OutputFunctionsParser" ${JSON.stringify(e)}`);return this.parse(t)}async parse(e){let t=JSON.parse(e);return this.argsOnly||(t.arguments=JSON.parse(t.arguments)),t}getFormatInstructions(){return``}},QE=class extends xT{static lc_name(){return`JsonKeyOutputFunctionsParser`}lc_namespace=[`langchain`,`output_parsers`,`openai_functions`];lc_serializable=!0;outputParser=new ZE;attrName;get lc_aliases(){return{attrName:`key_name`}}constructor(e){super(e),this.attrName=e.attrName}async parseResult(e){return(await this.outputParser.parseResult(e))[this.attrName]}},$E=h({JsonKeyOutputFunctionsParser:()=>QE,JsonOutputFunctionsParser:()=>ZE,OutputFunctionsParser:()=>XE}),eD=h({JsonOutputKeyToolsParser:()=>XT,JsonOutputToolsParser:()=>YT,convertLangChainToolCallToOpenAI:()=>qT,makeInvalidToolCall:()=>JT,parseToolCall:()=>KT}),tD=class extends Dx{lc_serializable=!0;lc_namespace=[`langchain_core`,`prompts`,this._getPromptType()];get lc_attributes(){return{partialVariables:void 0}}inputVariables;outputParser;partialVariables;metadata;tags;constructor(e){super(e);let{inputVariables:t}=e;if(t.includes(`stop`))throw Error(`Cannot have an input variable named 'stop', as it is used internally, please rename.`);Object.assign(this,e)}async mergePartialAndUserVariables(e){let t=this.partialVariables??{},n={};for(let[e,r]of Object.entries(t))typeof r==`string`?n[e]=r:n[e]=await r();return{...n,...e}}async invoke(e,t){let n={...this.metadata,...t?.metadata},r=[...this.tags??[],...t?.tags??[]];return this._callWithConfig(e=>this.formatPromptValue(e),e,{...t,tags:r,metadata:n,runType:`prompt`})}},nD=class extends tD{async formatPromptValue(e){return new qw(await this.format(e))}},rD=Object.prototype.toString,iD=Array.isArray||function(e){return rD.call(e)===`[object Array]`};function aD(e){return typeof e==`function`}function oD(e){return iD(e)?`array`:typeof e}function sD(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function cD(e,t){return typeof e==`object`&&!!e&&t in e}function lD(e,t){return e!=null&&typeof e!=`object`&&e.hasOwnProperty&&e.hasOwnProperty(t)}var uD=RegExp.prototype.test;function dD(e,t){return uD.call(e,t)}var fD=/\S/;function pD(e){return!dD(fD,e)}var mD={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`,"`":```,"=":`=`};function hD(e){return String(e).replace(/[&<>"'`=\/]/g,function(e){return mD[e]})}var gD=/\s*/,_D=/\s+/,vD=/\s*=/,yD=/\s*\}/,bD=/#|\^|\/|>|\{|&|=|!/;function xD(e,t){if(!e)return[];var n=!1,r=[],i=[],a=[],o=!1,s=!1,c=``,l=0;function u(){if(o&&!s)for(;a.length;)delete i[a.pop()];else a=[];o=!1,s=!1}var d,f,p;function m(e){if(typeof e==`string`&&(e=e.split(_D,2)),!iD(e)||e.length!==2)throw Error(`Invalid tags: `+e);d=RegExp(sD(e[0])+`\\s*`),f=RegExp(`\\s*`+sD(e[1])),p=RegExp(`\\s*`+sD(`}`+e[1]))}m(t||DD.tags);for(var h=new wD(e),g,_,v,y,b,x;!h.eos();){if(g=h.pos,v=h.scanUntil(d),v)for(var S=0,ee=v.length;S<ee;++S)y=v.charAt(S),pD(y)?(a.push(i.length),c+=y):(s=!0,n=!0,c+=` `),i.push([`text`,y,g,g+1]),g+=1,y===`
|
|
164
|
+
`&&(u(),c=``,l=0,n=!1);if(!h.scan(d))break;if(o=!0,_=h.scan(bD)||`name`,h.scan(gD),_===`=`?(v=h.scanUntil(vD),h.scan(vD),h.scanUntil(f)):_===`{`?(v=h.scanUntil(p),h.scan(yD),h.scanUntil(f),_=`&`):v=h.scanUntil(f),!h.scan(f))throw Error(`Unclosed tag at `+h.pos);if(b=_==`>`?[_,v,g,h.pos,c,l,n]:[_,v,g,h.pos],l++,i.push(b),_===`#`||_===`^`)r.push(b);else if(_===`/`){if(x=r.pop(),!x)throw Error(`Unopened section "`+v+`" at `+g);if(x[1]!==v)throw Error(`Unclosed section "`+x[1]+`" at `+g)}else _===`name`||_===`{`||_===`&`?s=!0:_===`=`&&m(v)}if(u(),x=r.pop(),x)throw Error(`Unclosed section "`+x[1]+`" at `+h.pos);return CD(SD(i))}function SD(e){for(var t=[],n,r,i=0,a=e.length;i<a;++i)n=e[i],n&&(n[0]===`text`&&r&&r[0]===`text`?(r[1]+=n[1],r[3]=n[3]):(t.push(n),r=n));return t}function CD(e){for(var t=[],n=t,r=[],i,a,o=0,s=e.length;o<s;++o)switch(i=e[o],i[0]){case`#`:case`^`:n.push(i),r.push(i),n=i[4]=[];break;case`/`:a=r.pop(),a[5]=i[2],n=r.length>0?r[r.length-1][4]:t;break;default:n.push(i)}return t}function wD(e){this.string=e,this.tail=e,this.pos=0}wD.prototype.eos=function(){return this.tail===``},wD.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return``;var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},wD.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail=``;break;case 0:n=``;break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function TD(e,t){this.view=e,this.cache={".":this.view},this.parent=t}TD.prototype.push=function(e){return new TD(e,this)},TD.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var r=this,i,a,o,s=!1;r;){if(e.indexOf(`.`)>0)for(i=r.view,a=e.split(`.`),o=0;i!=null&&o<a.length;)o===a.length-1&&(s=cD(i,a[o])||lD(i,a[o])),i=i[a[o++]];else i=r.view[e],s=cD(r.view,e);if(s){n=i;break}r=r.parent}t[e]=n}return aD(n)&&(n=n.call(this.view)),n};function ED(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}ED.prototype.clearCache=function(){this.templateCache!==void 0&&this.templateCache.clear()},ED.prototype.parse=function(e,t){var n=this.templateCache,r=e+`:`+(t||DD.tags).join(`:`),i=n!==void 0,a=i?n.get(r):void 0;return a??(a=xD(e,t),i&&n.set(r,a)),a},ED.prototype.render=function(e,t,n,r){var i=this.getConfigTags(r),a=this.parse(e,i),o=t instanceof TD?t:new TD(t,void 0);return this.renderTokens(a,o,n,e,r)},ED.prototype.renderTokens=function(e,t,n,r,i){for(var a=``,o,s,c,l=0,u=e.length;l<u;++l)c=void 0,o=e[l],s=o[0],s===`#`?c=this.renderSection(o,t,n,r,i):s===`^`?c=this.renderInverted(o,t,n,r,i):s===`>`?c=this.renderPartial(o,t,n,i):s===`&`?c=this.unescapedValue(o,t):s===`name`?c=this.escapedValue(o,t,i):s===`text`&&(c=this.rawValue(o)),c!==void 0&&(a+=c);return a},ED.prototype.renderSection=function(e,t,n,r,i){var a=this,o=``,s=t.lookup(e[1]);function c(e){return a.render(e,t,n,i)}if(s){if(iD(s))for(var l=0,u=s.length;l<u;++l)o+=this.renderTokens(e[4],t.push(s[l]),n,r,i);else if(typeof s==`object`||typeof s==`string`||typeof s==`number`)o+=this.renderTokens(e[4],t.push(s),n,r,i);else if(aD(s)){if(typeof r!=`string`)throw Error(`Cannot use higher-order sections without the original template`);s=s.call(t.view,r.slice(e[3],e[5]),c),s!=null&&(o+=s)}else o+=this.renderTokens(e[4],t,n,r,i);return o}},ED.prototype.renderInverted=function(e,t,n,r,i){var a=t.lookup(e[1]);if(!a||iD(a)&&a.length===0)return this.renderTokens(e[4],t,n,r,i)},ED.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,``),i=e.split(`
|
|
165
|
+
`),a=0;a<i.length;a++)i[a].length&&(a>0||!n)&&(i[a]=r+i[a]);return i.join(`
|
|
166
|
+
`)},ED.prototype.renderPartial=function(e,t,n,r){if(n){var i=this.getConfigTags(r),a=aD(n)?n(e[1]):n[e[1]];if(a!=null){var o=e[6],s=e[5],c=e[4],l=a;s==0&&c&&(l=this.indentPartial(a,c,o));var u=this.parse(l,i);return this.renderTokens(u,t,n,l,r)}}},ED.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n},ED.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||DD.escape,i=t.lookup(e[1]);if(i!=null)return typeof i==`number`&&r===DD.escape?String(i):r(i)},ED.prototype.rawValue=function(e){return e[1]},ED.prototype.getConfigTags=function(e){if(iD(e))return e;if(e&&typeof e==`object`)return e.tags},ED.prototype.getConfigEscape=function(e){if(e&&typeof e==`object`&&!iD(e))return e.escape};var DD={name:`mustache.js`,version:`4.2.0`,tags:[`{{`,`}}`],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){OD.templateCache=e},get templateCache(){return OD.templateCache}},OD=new ED;DD.clearCache=function(){return OD.clearCache()},DD.parse=function(e,t){return OD.parse(e,t)},DD.render=function(e,t,n,r){if(typeof e!=`string`)throw TypeError(`Invalid template! Template should be a "string" but "`+oD(e)+`" was given as the first argument for mustache#render(template, view, partials)`);return OD.render(e,t,n,r)},DD.escape=hD,DD.Scanner=wD,DD.Context=TD,DD.Writer=ED;function kD(){DD.escape=e=>e}var AD=e=>{let t=e.split(``),n=[],r=(e,n)=>{for(let r=n;r<t.length;r+=1)if(e.includes(t[r]))return r;return-1},i=0;for(;i<t.length;)if(t[i]===`{`&&i+1<t.length&&t[i+1]===`{`)n.push({type:`literal`,text:`{`}),i+=2;else if(t[i]===`}`&&i+1<t.length&&t[i+1]===`}`)n.push({type:`literal`,text:`}`}),i+=2;else if(t[i]===`{`){let e=r(`}`,i);if(e<0)throw Error(`Unclosed '{' in template.`);n.push({type:`variable`,name:t.slice(i+1,e).join(``)}),i=e+1}else if(t[i]===`}`)throw Error(`Single '}' in template.`);else{let e=r(`{}`,i),a=(e<0?t.slice(i):t.slice(i,e)).join(``);n.push({type:`literal`,text:a}),i=e<0?t.length:e}return n},jD=(e,t=[])=>{let n=[];for(let r of e)if(r[0]===`name`){let e=r[1].includes(`.`)?r[1].split(`.`)[0]:r[1];n.push({type:`variable`,name:e})}else if([`#`,`&`,`^`,`>`].includes(r[0])){if(n.push({type:`variable`,name:r[1]}),r[0]===`#`&&r.length>4&&Array.isArray(r[4])){let e=[...t,r[1]],i=jD(r[4],e);n.push(...i)}}else n.push({type:`literal`,text:r[1]});return n},MD=e=>(kD(),jD(DD.parse(e))),ND=(e,t)=>AD(e).reduce((e,n)=>{if(n.type===`variable`){if(n.name in t)return e+(typeof t[n.name]==`string`?t[n.name]:JSON.stringify(t[n.name]));throw Error(`(f-string) Missing value for input ${n.name}`)}return e+n.text},``),PD=(e,t)=>(kD(),DD.render(e,t)),FD={"f-string":ND,mustache:PD},ID={"f-string":AD,mustache:MD},LD=(e,t,n)=>{try{return FD[t](e,n)}catch(e){throw y(e,`INVALID_PROMPT_INPUT`)}},RD=(e,t)=>ID[t](e),zD=(e,t,n)=>{if(!(t in FD))throw Error(`Invalid template format. Got \`${t}\`;
|
|
167
|
+
should be one of ${Object.keys(FD)}`);try{let r=Object.fromEntries(n.map(e=>[e,`foo`]));Array.isArray(e)?e.forEach(e=>{if(e.type===`text`&&`text`in e&&typeof e.text==`string`)LD(e.text,t,r);else if(e.type===`image_url`){if(typeof e.image_url==`string`)LD(e.image_url,t,r);else if(typeof e.image_url==`object`&&e.image_url!==null&&`url`in e.image_url&&typeof e.image_url.url==`string`){let n=e.image_url.url;LD(n,t,r)}}else throw Error(`Invalid message template received. ${JSON.stringify(e,null,2)}`)}):LD(e,t,r)}catch(e){throw Error(`Invalid prompt schema: ${e.message}`)}},BD=class e extends nD{static lc_name(){return`PromptTemplate`}template;templateFormat=`f-string`;validateTemplate=!0;additionalContentFields;constructor(e){if(super(e),e.templateFormat===`mustache`&&e.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,e),this.validateTemplate){if(this.templateFormat===`mustache`)throw Error(`Mustache templates cannot be validated.`);let e=this.inputVariables;this.partialVariables&&(e=e.concat(Object.keys(this.partialVariables))),zD(this.template,this.templateFormat,e)}}_getPromptType(){return`prompt`}async format(e){let t=await this.mergePartialAndUserVariables(e);return LD(this.template,this.templateFormat,t)}static fromExamples(t,n,r,i=`
|
|
168
|
+
|
|
169
|
+
`,a=``){return new e({inputVariables:r,template:[a,...t,n].join(i)})}static fromTemplate(t,n){let{templateFormat:r=`f-string`,...i}=n??{},a=new Set;return RD(t,r).forEach(e=>{e.type===`variable`&&a.add(e.name)}),new e({inputVariables:[...a],templateFormat:r,template:t,...i})}async partial(t){let n=this.inputVariables.filter(e=>!(e in t)),r={...this.partialVariables??{},...t};return new e({...this,inputVariables:n,partialVariables:r})}serialize(){if(this.outputParser!==void 0)throw Error(`Cannot serialize a prompt template with an output parser`);return{_type:this._getPromptType(),input_variables:this.inputVariables,template:this.template,template_format:this.templateFormat}}static async deserialize(t){if(!t.template)throw Error(`Prompt template must have a template`);return new e({inputVariables:t.input_variables,template:t.template,templateFormat:t.template_format})}},VD=class e extends tD{static lc_name(){return`ImagePromptTemplate`}lc_namespace=[`langchain_core`,`prompts`,`image`];template;templateFormat=`f-string`;validateTemplate=!0;additionalContentFields;constructor(e){if(super(e),this.template=e.template,this.templateFormat=e.templateFormat??this.templateFormat,this.validateTemplate=e.validateTemplate??this.validateTemplate,this.additionalContentFields=e.additionalContentFields,this.validateTemplate){let e=this.inputVariables;this.partialVariables&&(e=e.concat(Object.keys(this.partialVariables))),zD([{type:`image_url`,image_url:this.template}],this.templateFormat,e)}}_getPromptType(){return`prompt`}async partial(t){let n=this.inputVariables.filter(e=>!(e in t)),r={...this.partialVariables??{},...t};return new e({...this,inputVariables:n,partialVariables:r})}async format(e){let t={};for(let[n,r]of Object.entries(this.template))typeof r==`string`?t[n]=LD(r,this.templateFormat,e):t[n]=r;let n=e.url||t.url,r=e.detail||t.detail;if(!n)throw Error(`Must provide either an image URL.`);if(typeof n!=`string`)throw Error(`url must be a string.`);let i={url:n};return r&&(i.detail=r),i}async formatPromptValue(e){return new Yw(await this.format(e))}},HD=class extends Dx{lc_namespace=[`langchain_core`,`prompts`,`dict`];lc_serializable=!0;template;templateFormat;inputVariables;static lc_name(){return`DictPromptTemplate`}constructor(e){let t=e.templateFormat??`f-string`,n=UD(e.template,t);super({inputVariables:n,...e}),this.template=e.template,this.templateFormat=t,this.inputVariables=n}async format(e){return WD(this.template,e,this.templateFormat)}async invoke(e){return await this._callWithConfig(this.format.bind(this),e,{runType:`prompt`})}};function UD(e,t){let n=[];for(let r of Object.values(e))if(typeof r==`string`)RD(r,t).forEach(e=>{e.type===`variable`&&n.push(e.name)});else if(Array.isArray(r))for(let e of r)typeof e==`string`?RD(e,t).forEach(e=>{e.type===`variable`&&n.push(e.name)}):typeof e==`object`&&n.push(...UD(e,t));else typeof r==`object`&&r&&n.push(...UD(r,t));return Array.from(new Set(n))}function WD(e,t,n){let r={};for(let[i,a]of Object.entries(e))if(typeof a==`string`)r[i]=LD(a,n,t);else if(Array.isArray(a)){let e=[];for(let r of a)typeof r==`string`?e.push(LD(r,n,t)):typeof r==`object`&&e.push(WD(r,t,n));r[i]=e}else typeof a==`object`&&a?r[i]=WD(a,t,n):r[i]=a;return r}var GD=class extends Dx{lc_namespace=[`langchain_core`,`prompts`,`chat`];lc_serializable=!0;async invoke(e,t){return this._callWithConfig(e=>this.formatMessages(e),e,{...t,runType:`prompt`})}},KD=class extends GD{static lc_name(){return`MessagesPlaceholder`}variableName;optional;constructor(e){typeof e==`string`&&(e={variableName:e}),super(e),this.variableName=e.variableName,this.optional=e.optional??!1}get inputVariables(){return[this.variableName]}async formatMessages(e){let t=e[this.variableName];if(this.optional&&!t)return[];if(!t){let e=Error(`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: undefined`);throw e.name=`InputFormatError`,e}let n;try{n=Array.isArray(t)?t.map(Nn):[Nn(t)]}catch(e){let n=typeof t==`string`?t:JSON.stringify(t,null,2),r=Error([`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages or coerceable values as input.`,`Received value: ${n}`,`Additional message: ${e.message}`].join(`
|
|
170
|
+
|
|
171
|
+
`));throw r.name=`InputFormatError`,r.lc_error_code=e.lc_error_code,r}return n}},qD=class extends GD{prompt;constructor(e){`prompt`in e||(e={prompt:e}),super(e),this.prompt=e.prompt}get inputVariables(){return this.prompt.inputVariables}async formatMessages(e){return[await this.format(e)]}},JD=class extends tD{constructor(e){super(e)}async format(e){return(await this.formatPromptValue(e)).toString()}async formatPromptValue(e){return new Jw(await this.formatMessages(e))}},YD=class extends qD{static lc_name(){return`ChatMessagePromptTemplate`}role;constructor(e,t){`prompt`in e||(e={prompt:e,role:t}),super(e),this.role=e.role}async format(e){return new dn(await this.prompt.format(e),this.role)}static fromTemplate(e,t,n){return new this(BD.fromTemplate(e,{templateFormat:n?.templateFormat}),t)}};function XD(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.keys(e).length===1&&`text`in e&&typeof e.text==`string`}function ZD(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:`image_url`in e&&(typeof e.image_url==`string`||typeof e.image_url==`object`&&e.image_url!==null&&`url`in e.image_url&&typeof e.image_url.url==`string`)}var QD=class extends GD{lc_namespace=[`langchain_core`,`prompts`,`chat`];lc_serializable=!0;inputVariables=[];additionalOptions={};prompt;messageClass;static _messageClass(){throw Error(`Can not invoke _messageClass from inside _StringImageMessagePromptTemplate`)}chatMessageClass;constructor(e,t){if(`prompt`in e||(e={prompt:e}),super(e),this.prompt=e.prompt,Array.isArray(this.prompt)){let e=[];this.prompt.forEach(t=>{`inputVariables`in t&&(e=e.concat(t.inputVariables))}),this.inputVariables=e}else this.inputVariables=this.prompt.inputVariables;this.additionalOptions=t??this.additionalOptions}createMessage(e){let t=this.constructor;if(t._messageClass())return new(t._messageClass())({content:e});if(t.chatMessageClass){let n=t.chatMessageClass();return new n({content:e,role:this.getRoleFromMessageClass(n.lc_name())})}else throw Error(`No message class defined`)}getRoleFromMessageClass(e){switch(e){case`HumanMessage`:return`human`;case`AIMessage`:return`ai`;case`SystemMessage`:return`system`;case`ChatMessage`:return`chat`;default:throw Error(`Invalid message class name`)}}static fromTemplate(e,t){if(typeof e==`string`)return new this(BD.fromTemplate(e,t));let n=[];for(let r of e)if(typeof r==`string`)n.push(BD.fromTemplate(r,t));else if(r!==null)if(XD(r)){let e=``;typeof r.text==`string`&&(e=r.text??``);let i={...t,additionalContentFields:r};n.push(BD.fromTemplate(e,i))}else if(ZD(r)){let e=r.image_url??``,i,a=[];if(typeof e==`string`){let n;n=t?.templateFormat===`mustache`?MD(e):AD(e);let o=n.flatMap(e=>e.type===`variable`?[e.name]:[]);if((o?.length??0)>0){if(o.length>1)throw Error(`Only one format variable allowed per image template.\nGot: ${o}\nFrom: ${e}`);a=[o[0]]}else a=[];e={url:e},i=new VD({template:e,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:r})}else if(typeof e==`object`){if(`url`in e){let n;n=t?.templateFormat===`mustache`?MD(e.url):AD(e.url),a=n.flatMap(e=>e.type===`variable`?[e.name]:[])}else a=[];i=new VD({template:e,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:r})}else throw Error(`Invalid image template`);n.push(i)}else typeof r==`object`&&n.push(new HD({template:r,templateFormat:t?.templateFormat}));return new this({prompt:n,additionalOptions:t})}async format(e){if(this.prompt instanceof nD){let t=await this.prompt.format(e);return this.createMessage(t)}else{let t=[];for(let n of this.prompt){let r={};if(!(`inputVariables`in n))throw Error(`Prompt ${n} does not have inputVariables defined.`);for(let t of n.inputVariables)r||={[t]:e[t]},r={...r,[t]:e[t]};if(n instanceof nD){let e=await n.format(r),i;`additionalContentFields`in n&&(i=n.additionalContentFields),e!==``&&t.push({...i,type:`text`,text:e})}else if(n instanceof VD){let e=await n.format(r),i;`additionalContentFields`in n&&(i=n.additionalContentFields),t.push({...i,type:`image_url`,image_url:e})}else if(n instanceof HD){let e=await n.format(r),i;`additionalContentFields`in n&&(i=n.additionalContentFields),t.push({...i,...e})}}return this.createMessage(t)}}async formatMessages(e){return[await this.format(e)]}},$D=class extends QD{static _messageClass(){return yn}static lc_name(){return`HumanMessagePromptTemplate`}},eO=class extends QD{static _messageClass(){return k}static lc_name(){return`AIMessagePromptTemplate`}},tO=class extends QD{static _messageClass(){return wn}static lc_name(){return`SystemMessagePromptTemplate`}};function nO(e){return typeof e.formatMessages==`function`}function rO(e,t){if(nO(e)||wt(e))return e;if(Array.isArray(e)&&e[0]===`placeholder`){let n=e[1];if(t?.templateFormat===`mustache`&&typeof n==`string`&&n.slice(0,2)===`{{`&&n.slice(-2)===`}}`)return new KD({variableName:n.slice(2,-2),optional:!0});if(typeof n==`string`&&n[0]===`{`&&n[n.length-1]===`}`)return new KD({variableName:n.slice(1,-1),optional:!0});throw Error(`Invalid placeholder template for format ${t?.templateFormat??`"f-string"`}: "${e[1]}". Expected a variable name surrounded by ${t?.templateFormat===`mustache`?`double`:`single`} curly braces.`)}let n=Nn(e),r;if(r=typeof n.content==`string`?n.content:n.content.map(e=>`text`in e?{...e,text:e.text}:`image_url`in e?{...e,image_url:e.image_url}:e),n._getType()===`human`)return $D.fromTemplate(r,t);if(n._getType()===`ai`)return eO.fromTemplate(r,t);if(n._getType()===`system`)return tO.fromTemplate(r,t);if(dn.isInstance(n))return YD.fromTemplate(n.content,n.role,t);throw Error(`Could not coerce message prompt template from input. Received message type: "${n._getType()}".`)}function iO(e){return e.constructor.lc_name()===`MessagesPlaceholder`}var aO=class e extends JD{static lc_name(){return`ChatPromptTemplate`}get lc_aliases(){return{promptMessages:`messages`}}promptMessages;validateTemplate=!0;templateFormat=`f-string`;constructor(e){if(super(e),e.templateFormat===`mustache`&&e.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,e),this.validateTemplate){let e=new Set;for(let t of this.promptMessages)if(!(t instanceof ut))for(let n of t.inputVariables)e.add(n);let t=this.inputVariables,n=new Set(this.partialVariables?t.concat(Object.keys(this.partialVariables)):t),r=new Set([...n].filter(t=>!e.has(t)));if(r.size>0)throw Error(`Input variables \`${[...r]}\` are not used in any of the prompt messages.`);let i=new Set([...e].filter(e=>!n.has(e)));if(i.size>0)throw Error(`Input variables \`${[...i]}\` are used in prompt messages but not in the prompt template.`)}}_getPromptType(){return`chat`}async _parseImagePrompts(e,t){return typeof e.content==`string`||(e.content=await Promise.all(e.content.map(async e=>{if(e.type!==`image_url`)return e;let n=``;typeof e.image_url==`string`?n=e.image_url:typeof e.image_url==`object`&&e.image_url!==null&&`url`in e.image_url&&typeof e.image_url.url==`string`&&(n=e.image_url.url);let r=await BD.fromTemplate(n,{templateFormat:this.templateFormat}).format(t);return typeof e.image_url==`object`&&e.image_url!==null&&`url`in e.image_url?e.image_url.url=r:e.image_url=r,e}))),e}async formatMessages(e){let t=await this.mergePartialAndUserVariables(e),n=[];for(let e of this.promptMessages)if(e instanceof ut)n.push(await this._parseImagePrompts(e,t));else{let r;r=this.templateFormat===`mustache`?{...t}:e.inputVariables.reduce((n,r)=>{if(!(r in t)&&!(iO(e)&&e.optional))throw y(Error(`Missing value for input variable \`${r.toString()}\``),`INVALID_PROMPT_INPUT`);return n[r]=t[r],n},{});let i=await e.formatMessages(r);n=n.concat(i)}return n}async partial(t){let n=this.inputVariables.filter(e=>!(e in t)),r={...this.partialVariables??{},...t};return new e({...this,inputVariables:n,partialVariables:r})}static fromTemplate(e,t){let n=new $D({prompt:BD.fromTemplate(e,t)});return this.fromMessages([n])}static fromMessages(t,n){let r=t.reduce((t,r)=>t.concat(r instanceof e?r.promptMessages:[rO(r,n)]),[]),i=t.reduce((t,n)=>n instanceof e?Object.assign(t,n.partialVariables):t,Object.create(null)),a=new Set;for(let e of r)if(!(e instanceof ut))for(let t of e.inputVariables)t in i||a.add(t);return new this({...n,inputVariables:[...a],promptMessages:r,partialVariables:i,templateFormat:n?.templateFormat})}},oO=class e extends nD{lc_serializable=!1;examples;exampleSelector;examplePrompt;suffix=``;exampleSeparator=`
|
|
172
|
+
|
|
173
|
+
`;prefix=``;templateFormat=`f-string`;validateTemplate=!0;constructor(e){if(super(e),Object.assign(this,e),this.examples!==void 0&&this.exampleSelector!==void 0)throw Error(`Only one of 'examples' and 'example_selector' should be provided`);if(this.examples===void 0&&this.exampleSelector===void 0)throw Error(`One of 'examples' and 'example_selector' should be provided`);if(this.validateTemplate){let e=this.inputVariables;this.partialVariables&&(e=e.concat(Object.keys(this.partialVariables))),zD(this.prefix+this.suffix,this.templateFormat,e)}}_getPromptType(){return`few_shot`}static lc_name(){return`FewShotPromptTemplate`}async getExamples(e){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(e);throw Error(`One of 'examples' and 'example_selector' should be provided`)}async partial(t){let n=this.inputVariables.filter(e=>!(e in t)),r={...this.partialVariables??{},...t};return new e({...this,inputVariables:n,partialVariables:r})}async format(e){let t=await this.mergePartialAndUserVariables(e),n=await this.getExamples(t),r=await Promise.all(n.map(e=>this.examplePrompt.format(e)));return LD([this.prefix,...r,this.suffix].join(this.exampleSeparator),this.templateFormat,t)}serialize(){if(this.exampleSelector||!this.examples)throw Error(`Serializing an example selector is not currently supported`);if(this.outputParser!==void 0)throw Error(`Serializing an output parser is not currently supported`);return{_type:this._getPromptType(),input_variables:this.inputVariables,example_prompt:this.examplePrompt.serialize(),example_separator:this.exampleSeparator,suffix:this.suffix,prefix:this.prefix,template_format:this.templateFormat,examples:this.examples}}static async deserialize(t){let{example_prompt:n}=t;if(!n)throw Error(`Missing example prompt`);let r=await BD.deserialize(n),i;if(Array.isArray(t.examples))i=t.examples;else throw Error(`Invalid examples format. Only list or string are supported.`);return new e({inputVariables:t.input_variables,examplePrompt:r,examples:i,exampleSeparator:t.example_separator,prefix:t.prefix,suffix:t.suffix,templateFormat:t.template_format})}},sO=class e extends JD{lc_serializable=!0;examples;exampleSelector;examplePrompt;suffix=``;exampleSeparator=`
|
|
174
|
+
|
|
175
|
+
`;prefix=``;templateFormat=`f-string`;validateTemplate=!0;_getPromptType(){return`few_shot_chat`}static lc_name(){return`FewShotChatMessagePromptTemplate`}constructor(e){if(super(e),this.examples=e.examples,this.examplePrompt=e.examplePrompt,this.exampleSeparator=e.exampleSeparator??`
|
|
176
|
+
|
|
177
|
+
`,this.exampleSelector=e.exampleSelector,this.prefix=e.prefix??``,this.suffix=e.suffix??``,this.templateFormat=e.templateFormat??`f-string`,this.validateTemplate=e.validateTemplate??!0,this.examples!==void 0&&this.exampleSelector!==void 0)throw Error(`Only one of 'examples' and 'example_selector' should be provided`);if(this.examples===void 0&&this.exampleSelector===void 0)throw Error(`One of 'examples' and 'example_selector' should be provided`);if(this.validateTemplate){let e=this.inputVariables;this.partialVariables&&(e=e.concat(Object.keys(this.partialVariables))),zD(this.prefix+this.suffix,this.templateFormat,e)}}async getExamples(e){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(e);throw Error(`One of 'examples' and 'example_selector' should be provided`)}async formatMessages(e){let t=await this.mergePartialAndUserVariables(e),n=await this.getExamples(t);n=n.map(e=>{let t={};return this.examplePrompt.inputVariables.forEach(n=>{t[n]=e[n]}),t});let r=[];for(let e of n){let t=await this.examplePrompt.formatMessages(e);r.push(...t)}return r}async format(e){let t=await this.mergePartialAndUserVariables(e),n=await this.getExamples(t),r=(await Promise.all(n.map(e=>this.examplePrompt.formatMessages(e)))).flat().map(e=>e.content);return LD([this.prefix,...r,this.suffix].join(this.exampleSeparator),this.templateFormat,t)}async partial(t){let n=this.inputVariables.filter(e=>!(e in t)),r={...this.partialVariables??{},...t};return new e({...this,inputVariables:n,partialVariables:r})}},cO=class e extends tD{static lc_name(){return`PipelinePromptTemplate`}pipelinePrompts;finalPrompt;constructor(e){super({...e,inputVariables:[]}),this.pipelinePrompts=e.pipelinePrompts,this.finalPrompt=e.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let e=this.pipelinePrompts.map(e=>e.name),t=this.pipelinePrompts.map(t=>t.prompt.inputVariables.filter(t=>!e.includes(t))).flat();return[...new Set(t)]}static extractRequiredInputValues(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}async formatPipelinePrompts(t){let n=await this.mergePartialAndUserVariables(t);for(let{name:t,prompt:r}of this.pipelinePrompts){let i=e.extractRequiredInputValues(n,r.inputVariables);r instanceof aO?n[t]=await r.formatMessages(i):n[t]=await r.format(i)}return e.extractRequiredInputValues(n,this.finalPrompt.inputVariables)}async formatPromptValue(e){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(e))}async format(e){return this.finalPrompt.format(await this.formatPipelinePrompts(e))}async partial(t){let n={...this};return n.inputVariables=this.inputVariables.filter(e=>!(e in t)),n.partialVariables={...this.partialVariables??{},...t},new e(n)}serialize(){throw Error(`Not implemented.`)}_getPromptType(){return`pipeline`}};function lO(e){return typeof e==`object`&&!!e&&`withStructuredOutput`in e&&typeof e.withStructuredOutput==`function`}function uO(e){return typeof e==`object`&&!!e&&`lc_id`in e&&Array.isArray(e.lc_id)&&e.lc_id.join(`/`)===`langchain_core/runnables/RunnableBinding`}var dO=class e extends aO{schema;method;lc_namespace=[`langchain_core`,`prompts`,`structured`];get lc_aliases(){return{...super.lc_aliases,schema:`schema_`}}constructor(e){super(e),this.schema=e.schema,this.method=e.method}pipe(e){if(lO(e))return super.pipe(e.withStructuredOutput(this.schema));if(uO(e)&&lO(e.bound))return super.pipe(new Ox({bound:e.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:e.kwargs??{},config:e.config,configFactories:e.configFactories}));throw Error(`Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.`)}static fromMessagesAndSchema(t,n,r){return e.fromMessages(t,{schema:n,method:r})}},fO=h({AIMessagePromptTemplate:()=>eO,BaseChatPromptTemplate:()=>JD,BaseMessagePromptTemplate:()=>GD,BaseMessageStringPromptTemplate:()=>qD,BasePromptTemplate:()=>tD,BaseStringPromptTemplate:()=>nD,ChatMessagePromptTemplate:()=>YD,ChatPromptTemplate:()=>aO,DEFAULT_FORMATTER_MAPPING:()=>FD,DEFAULT_PARSER_MAPPING:()=>ID,DictPromptTemplate:()=>HD,FewShotChatMessagePromptTemplate:()=>sO,FewShotPromptTemplate:()=>oO,HumanMessagePromptTemplate:()=>$D,ImagePromptTemplate:()=>VD,MessagesPlaceholder:()=>KD,PipelinePromptTemplate:()=>cO,PromptTemplate:()=>BD,StructuredPrompt:()=>dO,SystemMessagePromptTemplate:()=>tO,checkValidTemplate:()=>zD,interpolateFString:()=>ND,interpolateMustache:()=>PD,parseFString:()=>AD,parseMustache:()=>MD,parseTemplate:()=>RD,renderTemplate:()=>LD}),pO=h({BaseDocumentCompressor:()=>mO}),mO=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}},hO=h({BaseRetriever:()=>gO}),gO=class extends Dx{callbacks;tags;metadata;verbose;constructor(e){super(e),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw Error(`Not implemented!`)}async invoke(e,t){let n=nu(Ll(t)),r=await(await Wl.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,n.runId,void 0,void 0,void 0,n.runName);try{let t=await this._getRelevantDocuments(e,r);return await r?.handleRetrieverEnd(t),t}catch(e){throw await r?.handleRetrieverError(e),e}}},_O=h({BaseStore:()=>vO,InMemoryStore:()=>yO}),vO=class extends Te{},yO=class extends vO{lc_namespace=[`langchain`,`storage`];store={};async mget(e){return e.map(e=>this.store[e])}async mset(e){for(let[t,n]of e)this.store[t]=n}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let n of t)(e===void 0||n.startsWith(e))&&(yield n)}},bO={and:`and`,or:`or`,not:`not`},xO={eq:`eq`,ne:`ne`,lt:`lt`,gt:`gt`,lte:`lte`,gte:`gte`},SO=class{},CO=class{accept(e){if(this.exprName===`Operation`)return e.visitOperation(this);if(this.exprName===`Comparison`)return e.visitComparison(this);if(this.exprName===`StructuredQuery`)return e.visitStructuredQuery(this);throw Error(`Unknown Expression type`)}},wO=class extends CO{},TO=class extends wO{exprName=`Comparison`;constructor(e,t,n){super(),this.comparator=e,this.attribute=t,this.value=n}},EO=class extends wO{exprName=`Operation`;constructor(e,t){super(),this.operator=e,this.args=t}},DO=class extends CO{exprName=`StructuredQuery`;constructor(e,t){super(),this.query=e,this.filter=t}};function OO(e){return e&&typeof e==`object`&&!Array.isArray(e)}function kO(e){return e?typeof e==`string`&&e.length>0||typeof e==`function`?!1:OO(e)&&Object.keys(e).length===0:!0}function AO(e){if(typeof e==`number`)return e%1==0;if(typeof e==`string`){let t=parseInt(e,10);return!Number.isNaN(t)&&t%1==0&&t.toString()===e}return!1}function jO(e){if(typeof e==`number`)return e%1!=0;if(typeof e==`string`){let t=parseFloat(e);return!Number.isNaN(t)&&t%1!=0&&t.toString()===e}return!1}function MO(e){return typeof e==`string`&&(Number.isNaN(parseFloat(e))||parseFloat(e).toString()!==e)}function NO(e){return typeof e==`boolean`}function PO(e){let t;if(MO(e))t=e;else if(AO(e))t=parseInt(e,10);else if(jO(e))t=parseFloat(e);else if(NO(e))t=!!e;else throw Error(`Unsupported value type`);return t}var FO=class extends SO{},IO=class extends FO{allowedOperators;allowedComparators;constructor(e){super(),this.allowedOperators=e?.allowedOperators??[bO.and,bO.or],this.allowedComparators=e?.allowedComparators??[xO.eq,xO.ne,xO.gt,xO.gte,xO.lt,xO.lte]}formatFunction(e){if(e in xO){if(this.allowedComparators.length>0&&this.allowedComparators.indexOf(e)===-1)throw Error(`Comparator ${e} not allowed. Allowed comparators: ${this.allowedComparators.join(`, `)}`)}else if(e in bO){if(this.allowedOperators.length>0&&this.allowedOperators.indexOf(e)===-1)throw Error(`Operator ${e} not allowed. Allowed operators: ${this.allowedOperators.join(`, `)}`)}else throw Error(`Unknown comparator or operator`);return`$${e}`}visitOperation(e){let t=e.args?.map(e=>e.accept(this));return{[this.formatFunction(e.operator)]:t}}visitComparison(e){return{[e.attribute]:{[this.formatFunction(e.comparator)]:PO(e.value)}}}visitStructuredQuery(e){let t={};return e.filter&&(t={filter:e.filter.accept(this)}),t}mergeFilters(e,t,n=`and`,r=!1){if(!(kO(e)&&kO(t))){if(kO(e)||n===`replace`)return kO(t)?void 0:t;if(kO(t))return r?e:n===`and`?void 0:e;if(n===`and`)return{$and:[e,t]};if(n===`or`)return{$or:[e,t]};throw Error(`Unknown merge type`)}}},LO=class extends FO{allowedOperators=[bO.and,bO.or];allowedComparators=[xO.eq,xO.ne,xO.gt,xO.gte,xO.lt,xO.lte];formatFunction(){throw Error(`Not implemented`)}getAllowedComparatorsForType(e){switch(e){case`string`:return[xO.eq,xO.ne,xO.gt,xO.gte,xO.lt,xO.lte];case`number`:return[xO.eq,xO.ne,xO.gt,xO.gte,xO.lt,xO.lte];case`boolean`:return[xO.eq,xO.ne];default:throw Error(`Unsupported data type: ${e}`)}}getComparatorFunction(e){switch(e){case xO.eq:return(e,t)=>e===t;case xO.ne:return(e,t)=>e!==t;case xO.gt:return(e,t)=>e>t;case xO.gte:return(e,t)=>e>=t;case xO.lt:return(e,t)=>e<t;case xO.lte:return(e,t)=>e<=t;default:throw Error(`Unknown comparator`)}}getOperatorFunction(e){switch(e){case bO.and:return(e,t)=>e&&t;case bO.or:return(e,t)=>e||t;default:throw Error(`Unknown operator`)}}visitOperation(e){let{operator:t,args:n}=e;if(this.allowedOperators.includes(t)){let e=this.getOperatorFunction(t);return t=>!n||n.reduce((n,r)=>{let i=r.accept(this);if(typeof i==`function`)return e(n,i(t));throw Error(`Filter is not a function`)},!0)}else throw Error(`Operator not allowed`)}visitComparison(e){let{comparator:t,attribute:n,value:r}=e,i=[xO.ne];if(this.allowedComparators.includes(t)){if(!this.getAllowedComparatorsForType(typeof r).includes(t))throw Error(`'${t}' comparator not allowed to be used with ${typeof r}`);let e=this.getComparatorFunction(t);return a=>{let o=a.metadata[n];return o===void 0?!!i.includes(t):e(o,PO(r))}}else throw Error(`Comparator not allowed`)}visitStructuredQuery(e){if(!e.filter)return{};let t=e.filter?.accept(this);if(typeof t!=`function`)throw Error(`Structured query filter is not a function`);return{filter:t}}mergeFilters(e,t,n=`and`){if(!(kO(e)&&kO(t))){if(kO(e)||n===`replace`)return kO(t)?void 0:t;if(kO(t))return n===`and`?void 0:e;if(n===`and`)return n=>e(n)&&t(n);if(n===`or`)return n=>e(n)||t(n);throw Error(`Unknown merge type`)}}},RO=h({BaseTranslator:()=>FO,BasicTranslator:()=>IO,Comparators:()=>xO,Comparison:()=>TO,Expression:()=>CO,FilterDirective:()=>wO,FunctionalTranslator:()=>LO,Operation:()=>EO,Operators:()=>bO,StructuredQuery:()=>DO,Visitor:()=>SO,castValue:()=>PO,isBoolean:()=>NO,isFilterEmpty:()=>kO,isFloat:()=>jO,isInt:()=>AO,isObject:()=>OO,isString:()=>MO});function zO(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.text!==void 0&&t.toolCalls!==void 0&&t.reasoning!==void 0&&t.usage!==void 0&&t.output!==void 0&&typeof t[Symbol.asyncIterator]==`function`}function BO(e,t,n){return e!=null&&Object.entries(t).every(([t,r])=>n(e[t],r))}function VO(e,t,n){return e!=null&&BO(e,t,n)}function HO(e){return e.content.find(e=>e.type===`text`)?.text}function UO(e,t,n){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&HO(e)!==t.text)return!1;if(t.toolCalls!==void 0){let r=e.tool_calls??[];if(r.length!==t.toolCalls.length)return!1;for(let e=0;e<t.toolCalls.length;e++){let i=r[e],a=t.toolCalls[e];if(i?.name!==a.name||!n(i.args,a.args))return!1}}return!(t.usage!==void 0&&!VO(e.usage_metadata,t.usage,n)||t.responseMetadata!==void 0&&!BO(e.response_metadata,t.responseMetadata,n))}function WO(e,t,n){return{pass:!1,message:()=>`${n.matcherHint(t)}\n\nExpected: ChatModelStream (return value of model.streamEvents("Hello"))\nReceived: ${n.printReceived(e)}`,actual:e,expected:`ChatModelStream`}}function GO(e,t){return t?!e:e}async function KO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamText`;if(!zO(e))return WO(e,i,r);let a=await e.text;return{pass:GO(a===t,n),message:()=>`${r.matcherHint(i,void 0,void 0,{isNot:n})}\n\nExpected stream text: ${n?`not `:``}${r.printExpected(t)}\nReceived stream text: ${r.printReceived(a)}`,actual:a,expected:t}}async function qO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamReasoning`;if(!zO(e))return WO(e,i,r);let a=await e.reasoning;return{pass:GO(a===t,n),message:()=>`${r.matcherHint(i,void 0,void 0,{isNot:n})}\n\nExpected stream reasoning: ${n?`not `:``}${r.printExpected(t)}\nReceived stream reasoning: ${r.printReceived(a)}`,actual:a,expected:t}}async function JO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamToolCalls`;if(!zO(e))return WO(e,i,r);let a=await e.toolCalls,o=a.length===t.length&&t.every((e,t)=>{let n=a[t];return n?.name===e.name&&this.equals(n.args,e.args)});return o=GO(o,n),{pass:o,message:()=>`${r.matcherHint(i,void 0,void 0,{isNot:n})}\n\nExpected stream tool calls: ${r.printExpected(t)}\nReceived stream tool calls: ${r.printReceived(a.map(e=>({name:e.name,args:e.args})))}`,actual:a.map(e=>({name:e.name,args:e.args})),expected:t}}async function YO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamUsage`;if(!zO(e))return WO(e,i,r);let a=await e.usage;return{pass:GO(VO(a,t,this.equals),n),message:()=>`${r.matcherHint(i,void 0,void 0,{isNot:n})}\n\nExpected stream usage: ${r.printExpected(t)}\nReceived stream usage: ${r.printReceived(a)}`,actual:a,expected:t}}async function XO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamOutput`;if(!zO(e))return WO(e,i,r);let a=await e.output;return{pass:GO(UO(a,t,this.equals),n),message:()=>`${r.matcherHint(i,void 0,void 0,{isNot:n})}\n\nExpected stream output: ${r.printExpected(t)}\nReceived stream output: ${r.printReceived({id:a.id,text:HO(a),tool_calls:a.tool_calls?.map(e=>({name:e.name,args:e.args})),usage_metadata:a.usage_metadata,response_metadata:a.response_metadata})}`,actual:a,expected:t}}var ZO={toHaveStreamText:KO,toHaveStreamReasoning:qO,toHaveStreamToolCalls:JO,toHaveStreamUsage:YO,toHaveStreamOutput:XO};function QO(e){return ut.isInstance(e)?e.constructor.name||e.type:typeof e}function $O(e,t){return function(n,r){let{isNot:i,utils:a}=this;if(!t(n))return{pass:!1,message:()=>`${a.matcherHint(`toBe${e}`,void 0,void 0)}\n\nExpected: ${i?`not `:``}${e}\nReceived: ${QO(n)}`,actual:QO(n),expected:e};if(r===void 0)return{pass:!0,message:()=>`${a.matcherHint(`toBe${e}`,void 0,void 0)}\n\nExpected: not ${e}\nReceived: ${e}`};let o=n;return typeof r==`string`?{pass:o.content===r,message:()=>`${a.matcherHint(`toBe${e}`,void 0,void 0)}\n\nExpected: ${e} with content ${a.printExpected(r)}\nReceived: ${e} with content ${a.printReceived(o.content)}`,actual:o.content,expected:r}:{pass:Object.entries(r).every(([e,t])=>this.equals(o[e],t)),message:()=>{let t={};for(let e of Object.keys(r))t[e]=o[e];return`${a.matcherHint(`toBe${e}`,void 0,void 0)}\n\nExpected: ${e} matching ${a.printExpected(r)}\nReceived: ${e} with ${a.printReceived(t)}`},actual:(()=>{let e={};for(let t of Object.keys(r))e[t]=o[t];return e})(),expected:r}}}var ek=$O(`HumanMessage`,yn.isInstance),tk=$O(`AIMessage`,k.isInstance),nk=$O(`SystemMessage`,wn.isInstance),rk=$O(`ToolMessage`,Ot.isInstance);function ik(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCalls`)}\n\nExpected: AIMessage\nReceived: ${QO(e)}`};let i=e.tool_calls??[];if(i.length!==t.length)return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCalls`)}\n\nExpected ${n?`not `:``}${t.length} tool call(s), received ${i.length}`,actual:i.length,expected:t.length};let a=t.filter(e=>!i.some(t=>Object.entries(e).every(([e,n])=>this.equals(t[e],n))));return a.length>0?{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCalls`)}\n\nCould not find matching tool call(s) for:\n${r.printExpected(a)}\nReceived tool calls: ${r.printReceived(i.map(e=>({name:e.name,id:e.id,args:e.args})))}`,actual:i.map(e=>({name:e.name,id:e.id,args:e.args})),expected:t}:{pass:!0,message:()=>`${r.matcherHint(`toHaveToolCalls`)}\n\nExpected AIMessage not to have matching tool calls`}}function ak(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCallCount`)}\n\nExpected: AIMessage\nReceived: ${QO(e)}`};let i=e.tool_calls?.length??0;return{pass:i===t,message:()=>`${r.matcherHint(`toHaveToolCallCount`)}\n\nExpected ${n?`not `:``}${t} tool call(s)\nReceived: ${i}`,actual:i,expected:t}}function ok(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toContainToolCall`)}\n\nExpected: AIMessage\nReceived: ${QO(e)}`};let i=e.tool_calls??[];return{pass:i.some(e=>Object.entries(t).every(([t,n])=>this.equals(e[t],n))),message:()=>`${r.matcherHint(`toContainToolCall`)}\n\nExpected AIMessage ${n?`not `:``}to contain a tool call matching ${r.printExpected(t)}\nReceived tool calls: ${r.printReceived(i.map(e=>({name:e.name,id:e.id})))}`,actual:i.map(e=>({name:e.name,id:e.id})),expected:t}}function sk(e,t){let{isNot:n,utils:r}=this;if(!Array.isArray(e))return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolMessages`)}\n\nExpected an array of messages\nReceived: ${typeof e}`};let i=e.filter(Ot.isInstance);if(i.length!==t.length)return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolMessages`)}\n\nExpected ${n?`not `:``}${t.length} tool message(s), found ${i.length}`,actual:i.length,expected:t.length};for(let e=0;e<t.length;e++)if(!Object.entries(t[e]).every(([t,n])=>this.equals(i[e][t],n)))return{pass:!1,message:()=>{let n={};for(let r of Object.keys(t[e]))n[r]=i[e][r];return`${r.matcherHint(`toHaveToolMessages`)}\n\nTool message at index ${e} did not match:\nExpected: ${r.printExpected(t[e])}\nReceived: ${r.printReceived(n)}`},actual:i[e],expected:t[e]};return{pass:!0,message:()=>`${r.matcherHint(`toHaveToolMessages`)}\n\nExpected messages not to contain matching tool messages`}}function ck(e,t){let{isNot:n,utils:r}=this,i=e?.__interrupt__;if(!(Array.isArray(i)&&i.length>0))return{pass:!1,message:()=>`${r.matcherHint(`toHaveBeenInterrupted`)}\n\nExpected result ${n?`not `:``}to have been interrupted\nReceived __interrupt__: ${r.printReceived(i)}`};if(t===void 0)return{pass:!0,message:()=>`${r.matcherHint(`toHaveBeenInterrupted`)}\n\nExpected result not to have been interrupted\nReceived ${i.length} interrupt(s)`};let a=i[0]?.value;return{pass:this.equals(a,t),message:()=>`${r.matcherHint(`toHaveBeenInterrupted`)}\n\nExpected interrupt value: ${r.printExpected(t)}\nReceived interrupt value: ${r.printReceived(a)}`,actual:a,expected:t}}function lk(e,t){let{isNot:n,utils:r}=this,i=e?.structuredResponse;return i===void 0?{pass:!1,message:()=>`${r.matcherHint(`toHaveStructuredResponse`)}\n\nExpected result ${n?`not `:``}to have a structured response\nReceived structuredResponse: undefined`}:t===void 0?{pass:!0,message:()=>`${r.matcherHint(`toHaveStructuredResponse`)}\n\nExpected result not to have a structured response`}:{pass:Object.entries(t).every(([e,t])=>this.equals(i[e],t)),message:()=>`${r.matcherHint(`toHaveStructuredResponse`)}\n\nExpected structured response: ${r.printExpected(t)}\nReceived structured response: ${r.printReceived(i)}`,actual:i,expected:t}}var uk={toBeHumanMessage:ek,toBeAIMessage:tk,toBeSystemMessage:nk,toBeToolMessage:rk,toHaveToolCalls:ik,toHaveToolCallCount:ak,toContainToolCall:ok,toHaveToolMessages:sk,toHaveBeenInterrupted:ck,toHaveStructuredResponse:lk,...ZO};function dk(e){return e.map(e=>e.text).filter(Boolean).join(`-`)}var fk=0;function pk(){return fk+=1,`fake_tc_${fk}`}var mk=class e extends AE{queue=[];_alwaysThrowError;_structuredResponseValue;_tools=[];_state={callIndex:0,calls:[]};get calls(){return this._state.calls}get callCount(){return this._state.calls.length}constructor(){super({})}_llmType(){return`fake-model-builder`}_combineLLMOutput(){return[]}respond(e){return typeof e==`function`?this.queue.push({kind:`factory`,factory:e}):ut.isInstance(e)?this.queue.push({kind:`message`,message:e}):this.queue.push({kind:`error`,error:e}),this}respondWithTools(e){return this.queue.push({kind:`toolCalls`,toolCalls:e.map(e=>({name:e.name,args:e.args,id:e.id??pk(),type:`tool_call`}))}),this}alwaysThrow(e){return this._alwaysThrowError=e,this}structuredResponse(e){return this._structuredResponseValue=e,this}bindTools(t){let n=[...this._tools,...t],r=new e;return r.queue=this.queue,r._alwaysThrowError=this._alwaysThrowError,r._structuredResponseValue=this._structuredResponseValue,r._tools=n,r._state=this._state,r.withConfig({})}withStructuredOutput(e,t){let{_structuredResponseValue:n}=this;return Fx.from(async()=>n)}async _generate(e,t,n){this._state.calls.push({messages:[...e],options:t});let r=this._state.callIndex;if(this._state.callIndex+=1,this._alwaysThrowError)throw this._alwaysThrowError;let i=this.queue[r];if(!i)throw Error(`FakeModel: no response queued for invocation ${r} (${this.queue.length} total queued).`);if(i.kind===`error`)throw i.error;if(i.kind===`factory`){let t=i.factory(e);if(!ut.isInstance(t))throw t;return{generations:[{text:``,message:t}]}}if(i.kind===`message`)return{generations:[{text:``,message:i.message}]};let a=dk(e);return{generations:[{text:a,message:new k({content:a,id:r.toString(),tool_calls:i.toolCalls.length>0?i.toolCalls.map(e=>({...e,type:`tool_call`})):void 0})}],llmOutput:{}}}};function hk(){return new mk}function gk(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function _k(e=`test-model`){let t=vk(e),n=t[t.length-1];return t[t.length-1]={...n,usage:{prompt_tokens:10,completion_tokens:2,total_tokens:12}},t}function vk(e=`test-model`){return[{id:`chatcmpl-text`,model:e,choices:[{index:0,delta:{role:`assistant`,content:`Hello`},finish_reason:null}]},{id:`chatcmpl-text`,model:e,choices:[{index:0,delta:{content:` world`},finish_reason:null}]},{id:`chatcmpl-text`,model:e,choices:[{index:0,delta:{},finish_reason:`stop`}]}]}function yk(e=`test-model`){return[{id:`chatcmpl-reason`,model:e,choices:[{index:0,delta:{role:`assistant`,reasoning_content:`Let me reason...`},finish_reason:null}]},{id:`chatcmpl-reason`,model:e,choices:[{index:0,delta:{content:`Answer.`},finish_reason:null}]},{id:`chatcmpl-reason`,model:e,choices:[{index:0,delta:{},finish_reason:`stop`}]}]}function bk(e=`test-model`){return[{id:`chatcmpl-tools`,model:e,choices:[{index:0,delta:{role:`assistant`,content:`Let me search.`},finish_reason:null}]},{id:`chatcmpl-tools`,model:e,choices:[{index:0,delta:{tool_calls:[{index:0,id:`call_abc`,type:`function`,function:{name:`web_search`,arguments:`{"query"`}}]},finish_reason:null}]},{id:`chatcmpl-tools`,model:e,choices:[{index:0,delta:{tool_calls:[{index:0,function:{arguments:`:"weather"}`}}]},finish_reason:null}]},{id:`chatcmpl-tools`,model:e,choices:[{index:0,delta:{},finish_reason:`tool_calls`}]}]}function xk(e){let t=new TextEncoder;return new Response(new ReadableStream({start(n){for(let r of e)n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`));n.close()}}),{status:200,headers:{"Content-Type":`text/event-stream`}})}var Sk=h({FakeBuiltModel:()=>mk,asAsyncIterable:()=>gk,fakeModel:()=>hk,langchainMatchers:()=>uk,openAIReasoningTextChunks:()=>yk,openAITextOnlyChunks:()=>vk,openAITextOnlyChunksWithUsage:()=>_k,openAIToolCallChunks:()=>bk,sseResponseFromOpenAIChunks:()=>xk,streamMatchers:()=>ZO,toBeAIMessage:()=>tk,toBeHumanMessage:()=>ek,toBeSystemMessage:()=>nk,toBeToolMessage:()=>rk,toContainToolCall:()=>ok,toHaveBeenInterrupted:()=>ck,toHaveStructuredResponse:()=>lk,toHaveToolCallCount:()=>ak,toHaveToolCalls:()=>ik,toHaveToolMessages:()=>sk});function Ck(e){return e!==void 0&&Array.isArray(e.lc_namespace)}function wk(e){return e!==void 0&&Dx.isRunnable(e)&&`lc_name`in e.constructor&&typeof e.constructor.lc_name==`function`&&e.constructor.lc_name()===`RunnableToolLike`}function Tk(e){return!!e&&typeof e==`object`&&`name`in e&&`schema`in e&&(o_(e.schema)||e.schema!=null&&typeof e.schema==`object`&&`type`in e.schema&&typeof e.schema.type==`string`&&[`null`,`boolean`,`object`,`array`,`number`,`string`].includes(e.schema.type))}function Ek(e){return Tk(e)||wk(e)||Ck(e)}var Dk=P(`ZodISODateTime`,(e,t)=>{Zp.init(e,t),$k.init(e,t)});function Ok(e){return Oh(Dk,e)}var kk=P(`ZodISODate`,(e,t)=>{Qp.init(e,t),$k.init(e,t)});function Ak(e){return kh(kk,e)}var jk=P(`ZodISOTime`,(e,t)=>{$p.init(e,t),$k.init(e,t)});function Mk(e){return Ah(jk,e)}var Nk=P(`ZodISODuration`,(e,t)=>{em.init(e,t),$k.init(e,t)});function Pk(e){return jh(Nk,e)}var Fk=P(`ZodError`,(e,t)=>{yf.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Sf(e,t)},flatten:{value:t=>xf(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Id,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Id,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Ik=Tf(Fk),Lk=Df(Fk),Rk=kf(Fk),zk=jf(Fk),Bk=Nf(Fk),Vk=Pf(Fk),Hk=Ff(Fk),Uk=If(Fk),Wk=Lf(Fk),Gk=Rf(Fk),Kk=zf(Fk),qk=Bf(Fk),Jk=new WeakMap;function Yk(e,t,n){let r=Object.getPrototypeOf(e),i=Jk.get(r);if(i||(i=new Set,Jk.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Xk=P(`ZodType`,(e,t)=>(Lp.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:hg(e,`input`),output:hg(e,`output`)}}),e.toJSONSchema=mg(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Ik(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Rk(e,t,n),e.parseAsync=async(t,n)=>Lk(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>zk(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Bk(e,t,n),e.decode=(t,n)=>Vk(e,t,n),e.encodeAsync=async(t,n)=>Hk(e,t,n),e.decodeAsync=async(t,n)=>Uk(e,t,n),e.safeEncode=(t,n)=>Wk(e,t,n),e.safeDecode=(t,n)=>Gk(e,t,n),e.safeEncodeAsync=async(t,n)=>Kk(e,t,n),e.safeDecodeAsync=async(t,n)=>qk(e,t,n),Yk(e,`ZodType`,{check(...e){let t=this.def;return this.clone(Wd(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ef(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(gj(e,t))},superRefine(e,t){return this.check(_j(e,t))},overwrite(e){return this.check(Qh(e))},optional(){return ZA(this)},exactOptional(){return $A(this)},nullable(){return tj(this)},nullish(){return ZA(tj(this))},nonoptional(e){return sj(this,e)},array(){return MA(this)},or(e){return FA([this,e])},and(e){return zA(this,e)},transform(e){return dj(this,YA(e))},default(e){return rj(this,e)},prefault(e){return aj(this,e)},catch(e){return lj(this,e)},pipe(e){return dj(this,e)},readonly(){return pj(this)},describe(e){let t=this.clone();return ih.add(t,{description:e}),t},meta(...e){if(e.length===0)return ih.get(this);let t=this.clone();return ih.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return ih.get(e)?.description},configurable:!0}),e)),Zk=P(`_ZodString`,(e,t)=>{Rp.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_g(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Yk(e,`_ZodString`,{regex(...e){return this.check(Kh(...e))},includes(...e){return this.check(Yh(...e))},startsWith(...e){return this.check(Xh(...e))},endsWith(...e){return this.check(Zh(...e))},min(...e){return this.check(Wh(...e))},max(...e){return this.check(Uh(...e))},length(...e){return this.check(Gh(...e))},nonempty(...e){return this.check(Wh(1,...e))},lowercase(e){return this.check(qh(e))},uppercase(e){return this.check(Jh(e))},trim(){return this.check(eg())},normalize(...e){return this.check($h(...e))},toLowerCase(){return this.check(tg())},toUpperCase(){return this.check(ng())},slugify(){return this.check(rg())}})}),Qk=P(`ZodString`,(e,t)=>{Rp.init(e,t),Zk.init(e,t),e.email=t=>e.check(oh(eA,t)),e.url=t=>e.check(fh(rA,t)),e.jwt=t=>e.check(Dh(vA,t)),e.emoji=t=>e.check(ph(iA,t)),e.guid=t=>e.check(sh(tA,t)),e.uuid=t=>e.check(ch(nA,t)),e.uuidv4=t=>e.check(lh(nA,t)),e.uuidv6=t=>e.check(uh(nA,t)),e.uuidv7=t=>e.check(dh(nA,t)),e.nanoid=t=>e.check(mh(aA,t)),e.guid=t=>e.check(sh(tA,t)),e.cuid=t=>e.check(hh(oA,t)),e.cuid2=t=>e.check(gh(sA,t)),e.ulid=t=>e.check(_h(cA,t)),e.base64=t=>e.check(wh(hA,t)),e.base64url=t=>e.check(Th(gA,t)),e.xid=t=>e.check(vh(lA,t)),e.ksuid=t=>e.check(yh(uA,t)),e.ipv4=t=>e.check(bh(dA,t)),e.ipv6=t=>e.check(xh(fA,t)),e.cidrv4=t=>e.check(Sh(pA,t)),e.cidrv6=t=>e.check(Ch(mA,t)),e.e164=t=>e.check(Eh(_A,t)),e.datetime=t=>e.check(Ok(t)),e.date=t=>e.check(Ak(t)),e.time=t=>e.check(Mk(t)),e.duration=t=>e.check(Pk(t))});function W(e){return ah(Qk,e)}var $k=P(`ZodStringFormat`,(e,t)=>{zp.init(e,t),Zk.init(e,t)}),eA=P(`ZodEmail`,(e,t)=>{Hp.init(e,t),$k.init(e,t)}),tA=P(`ZodGUID`,(e,t)=>{Bp.init(e,t),$k.init(e,t)}),nA=P(`ZodUUID`,(e,t)=>{Vp.init(e,t),$k.init(e,t)}),rA=P(`ZodURL`,(e,t)=>{Up.init(e,t),$k.init(e,t)}),iA=P(`ZodEmoji`,(e,t)=>{Wp.init(e,t),$k.init(e,t)}),aA=P(`ZodNanoID`,(e,t)=>{Gp.init(e,t),$k.init(e,t)}),oA=P(`ZodCUID`,(e,t)=>{Kp.init(e,t),$k.init(e,t)}),sA=P(`ZodCUID2`,(e,t)=>{qp.init(e,t),$k.init(e,t)}),cA=P(`ZodULID`,(e,t)=>{Jp.init(e,t),$k.init(e,t)}),lA=P(`ZodXID`,(e,t)=>{Yp.init(e,t),$k.init(e,t)}),uA=P(`ZodKSUID`,(e,t)=>{Xp.init(e,t),$k.init(e,t)}),dA=P(`ZodIPv4`,(e,t)=>{tm.init(e,t),$k.init(e,t)}),fA=P(`ZodIPv6`,(e,t)=>{nm.init(e,t),$k.init(e,t)}),pA=P(`ZodCIDRv4`,(e,t)=>{rm.init(e,t),$k.init(e,t)}),mA=P(`ZodCIDRv6`,(e,t)=>{im.init(e,t),$k.init(e,t)}),hA=P(`ZodBase64`,(e,t)=>{om.init(e,t),$k.init(e,t)}),gA=P(`ZodBase64URL`,(e,t)=>{cm.init(e,t),$k.init(e,t)}),_A=P(`ZodE164`,(e,t)=>{lm.init(e,t),$k.init(e,t)}),vA=P(`ZodJWT`,(e,t)=>{dm.init(e,t),$k.init(e,t)}),yA=P(`ZodNumber`,(e,t)=>{fm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vg(e,t,n,r),Yk(e,`ZodNumber`,{gt(e,t){return this.check(Bh(e,t))},gte(e,t){return this.check(Vh(e,t))},min(e,t){return this.check(Vh(e,t))},lt(e,t){return this.check(Rh(e,t))},lte(e,t){return this.check(zh(e,t))},max(e,t){return this.check(zh(e,t))},int(e){return this.check(SA(e))},safe(e){return this.check(SA(e))},positive(e){return this.check(Bh(0,e))},nonnegative(e){return this.check(Vh(0,e))},negative(e){return this.check(Rh(0,e))},nonpositive(e){return this.check(zh(0,e))},multipleOf(e,t){return this.check(Hh(e,t))},step(e,t){return this.check(Hh(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function bA(e){return Mh(yA,e)}var xA=P(`ZodNumberFormat`,(e,t)=>{pm.init(e,t),yA.init(e,t)});function SA(e){return Nh(xA,e)}var CA=P(`ZodBoolean`,(e,t)=>{mm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yg(e,t,n,r)});function wA(e){return Ph(CA,e)}var TA=P(`ZodAny`,(e,t)=>{hm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function EA(){return Fh(TA)}var DA=P(`ZodUnknown`,(e,t)=>{gm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function OA(){return Ih(DA)}var kA=P(`ZodNever`,(e,t)=>{_m.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Tg(e,t,n,r)});function AA(e){return Lh(kA,e)}var jA=P(`ZodArray`,(e,t)=>{ym.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bg(e,t,n,r),e.element=t.element,Yk(e,`ZodArray`,{min(e,t){return this.check(Wh(e,t))},nonempty(e){return this.check(Wh(1,e))},max(e,t){return this.check(Uh(e,t))},length(e,t){return this.check(Gh(e,t))},unwrap(){return this.element}})});function MA(e,t){return ig(jA,e,t)}var NA=P(`ZodObject`,(e,t)=>{wm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vg(e,t,n,r),Hd(e,`shape`,()=>t.shape),Yk(e,`ZodObject`,{keyof(){return GA(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:OA()})},loose(){return this.clone({...this._zod.def,catchall:OA()})},strict(){return this.clone({...this._zod.def,catchall:AA()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return of(this,e)},safeExtend(e){return sf(this,e)},merge(e){return cf(this,e)},pick(e){return rf(this,e)},omit(e){return af(this,e)},partial(...e){return lf(XA,this,e[0])},required(...e){return uf(oj,this,e[0])}})});function G(e,t){return new NA({type:`object`,shape:e??{},...F(t)})}var PA=P(`ZodUnion`,(e,t)=>{Em.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hg(e,t,n,r),e.options=t.options});function FA(e,t){return new PA({type:`union`,options:e,...F(t)})}var IA=P(`ZodDiscriminatedUnion`,(e,t)=>{PA.init(e,t),Dm.init(e,t)});function LA(e,t,n){return new IA({type:`union`,options:t,discriminator:e,...F(n)})}var RA=P(`ZodIntersection`,(e,t)=>{Om.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ug(e,t,n,r)});function zA(e,t){return new RA({type:`intersection`,left:e,right:t})}var BA=P(`ZodTuple`,(e,t)=>{jm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wg(e,t,n,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function VA(e,t,n){let r=t instanceof Lp;return new BA({type:`tuple`,items:e,rest:r?t:null,...F(r?n:t)})}var HA=P(`ZodRecord`,(e,t)=>{Fm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gg(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function UA(e,t,n){return!t||!t._zod?new HA({type:`record`,keyType:W(),valueType:e,...F(t)}):new HA({type:`record`,keyType:e,valueType:t,...F(n)})}var WA=P(`ZodEnum`,(e,t)=>{Im.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kg(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new WA({...t,checks:[],...F(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new WA({...t,checks:[],...F(r),entries:i})}});function GA(e,t){return new WA({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...F(t)})}var KA=P(`ZodLiteral`,(e,t)=>{Lm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ag(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function qA(e,t){return new KA({type:`literal`,values:Array.isArray(e)?e:[e],...F(t)})}var JA=P(`ZodTransform`,(e,t)=>{Rm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lg(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Md(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(_f(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(_f(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function YA(e){return new JA({type:`transform`,transform:e})}var XA=P(`ZodOptional`,(e,t)=>{Bm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>e_(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ZA(e){return new XA({type:`optional`,innerType:e})}var QA=P(`ZodExactOptional`,(e,t)=>{Vm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>e_(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function $A(e){return new QA({type:`optional`,innerType:e})}var ej=P(`ZodNullable`,(e,t)=>{Hm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function tj(e){return new ej({type:`nullable`,innerType:e})}var nj=P(`ZodDefault`,(e,t)=>{Um.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function rj(e,t){return new nj({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zd(t)}})}var ij=P(`ZodPrefault`,(e,t)=>{Gm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function aj(e,t){return new ij({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zd(t)}})}var oj=P(`ZodNonOptional`,(e,t)=>{Km.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function sj(e,t){return new oj({type:`nonoptional`,innerType:e,...F(t)})}var cj=P(`ZodCatch`,(e,t)=>{Jm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function lj(e,t){return new cj({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var uj=P(`ZodPipe`,(e,t)=>{Ym.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zg(e,t,n,r),e.in=t.in,e.out=t.out});function dj(e,t){return new uj({type:`pipe`,in:e,out:t})}var fj=P(`ZodReadonly`,(e,t)=>{Zm.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function pj(e){return new fj({type:`readonly`,innerType:e})}var mj=P(`ZodCustom`,(e,t)=>{$m.init(e,t),Xk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fg(e,t,n,r)});function hj(e,t){return ag(mj,e??(()=>!0),t)}function gj(e,t={}){return og(mj,e,t)}function _j(e,t){return sg(e,t)}var vj=h({BaseToolkit:()=>Cj,DynamicStructuredTool:()=>Sj,DynamicTool:()=>xj,StructuredTool:()=>yj,Tool:()=>bj,ToolInputParsingException:()=>ne,isLangChainTool:()=>Ek,isRunnableToolLike:()=>wk,isStructuredTool:()=>Ck,isStructuredToolParams:()=>Tk,tool:()=>wj}),yj=class extends vT{extras;returnDirect=!1;verboseParsingErrors=!1;get lc_namespace(){return[`langchain`,`tools`]}responseFormat=`content`;defaultConfig;constructor(e){super(e??{}),this.verboseParsingErrors=e?.verboseParsingErrors??this.verboseParsingErrors,this.responseFormat=e?.responseFormat??this.responseFormat,this.defaultConfig=e?.defaultConfig??this.defaultConfig,this.metadata=e?.metadata??this.metadata,this.extras=e?.extras??this.extras}async invoke(e,t){let n,r=nu(tu(this.defaultConfig,t));return C(e)?(n=e.args,r={...r,toolCall:e}):n=e,this.call(n,r)}async call(e,t,n){let r=C(e)?e.args:e,i;if(o_(this.schema))try{i=await d_(this.schema,r)}catch(t){let n=`Received tool input did not match expected schema`;throw this.verboseParsingErrors&&(n=`${n}\nDetails: ${t.message}`),P_(t)&&(n=`${n}\n\n${wf(t)}`),new ne(n,JSON.stringify(e))}else{let t=ox(r,this.schema);if(!t.valid){let n=`Received tool input did not match expected schema`;throw this.verboseParsingErrors&&(n=`${n}\nDetails: ${t.errors.map(e=>`${e.keywordLocation}: ${e.error}`).join(`
|
|
178
|
+
`)}`),new ne(n,JSON.stringify(e))}i=r}let a=Ll(t),o=Wl.configure(a.callbacks,this.callbacks,a.tags||n,this.tags,a.metadata,this.metadata,{verbose:this.verbose}),s;C(e)&&(s=e.id),!s&&te(a)&&(s=a.toolCall.id);let c=await o?.handleToolStart(this.toJSON(),typeof e==`string`?e:JSON.stringify(e),a.runId,void 0,void 0,void 0,a.runName,s);delete a.runId;let l;try{let e=await this._call(i,c,a);l=Sx(e)?await Cx(e,async e=>{try{await c?.handleToolEvent(e)}catch(e){await c?.handleToolError(e)}}):e}catch(e){throw await c?.handleToolError(e),e}let u,d;if(this.responseFormat===`content_and_artifact`)if(Array.isArray(l)&&l.length===2)[u,d]=l;else throw Error(`Tool response format is "content_and_artifact" but the output was not a two-tuple.\nResult: ${JSON.stringify(l)}`);else u=l;let f=Ej({content:u,artifact:d,toolCallId:s,name:this.name,metadata:this.metadata});return await c?.handleToolEnd(f),f}},bj=class extends yj{schema=Ty({input:Cy().optional()}).transform(e=>e.input);constructor(e){super(e)}call(e,t){let n=typeof e==`string`||e==null?{input:e}:e;return super.call(n,t)}},xj=class extends bj{static lc_name(){return`DynamicTool`}name;description;func;constructor(e){super(e),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect}async call(e,t){let n=Ll(t);return n.runName===void 0&&(n.runName=this.name),super.call(e,n)}_call(e,t,n){return this.func(e,t,n)}},Sj=class extends yj{static lc_name(){return`DynamicStructuredTool`}description;func;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect,this.schema=e.schema}async call(e,t,n){let r=Ll(t);return r.runName===void 0&&(r.runName=this.name),super.call(e,r,n)}_call(e,t,n){return this.func(e,t,n)}},Cj=class{getTools(){return this.tools}};function wj(e,t){let n=g_(t.schema),r=dx(t.schema);if(!t.schema||n||r)return new xj({...t,description:t.description??t.schema?.description??`${t.name} tool`,func:async(t,n,r)=>new Promise((i,a)=>{let o=ru(r,{callbacks:n?.getChild()});Yl.runWithConfig(iu(o),async()=>{try{i(e(t,o))}catch(e){a(e)}})})});let i=t.schema,a=t.description??t.schema.description??`${t.name} tool`;return new Sj({...t,description:a,schema:i,func:async(t,n,r)=>new Promise((i,a)=>{let o,s=()=>{r?.signal&&o&&r.signal.removeEventListener(`abort`,o)};r?.signal&&(o=()=>{s(),a(ou(r.signal))},r.signal.addEventListener(`abort`,o,{once:!0}));let c=ru(r,{callbacks:n?.getChild()});Yl.runWithConfig(iu(c),async()=>{try{let n=await e(t,c);if(Sx(n)){i(n);return}if(r?.signal?.aborted){s();return}s(),i(n)}catch(e){s(),a(e)}})})})}function Tj(e){return typeof e==`object`&&!!e&&`type`in e}function Ej(e){let{content:t,artifact:n,toolCallId:r,metadata:i}=e;return r&&!Dt(t)?typeof t==`string`||Array.isArray(t)&&t.every(Tj)?new Ot({status:`success`,content:t,artifact:n,tool_call_id:r,name:e.name,metadata:i}):new Ot({status:`success`,content:Dj(t),artifact:n,tool_call_id:r,name:e.name,metadata:i}):t}function Dj(e){try{return JSON.stringify(e)??``}catch{return`${e}`}}var Oj=h({RunCollectorCallbackHandler:()=>kj}),kj=class extends el{name=`run_collector`;exampleId;tracedRuns;constructor({exampleId:e}={}){super({_awaitHandler:!0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}},Aj=h({}),jj=h({chunkArray:()=>Mj}),Mj=(e,t)=>e.reduce((e,n,r)=>{let i=Math.floor(r/t);return e[i]=(e[i]||[]).concat([n]),e},[]),Nj=h({context:()=>Pj});function Pj(e,...t){let n=e.raw,r=``;for(let e=0;e<n.length;e++){let i=n[e].replace(/\\\n[ \t]*/g,``).replace(/\\`/g,"`").replace(/\\\$/g,`$`).replace(/\\\{/g,`{`);if(r+=i,e<t.length){let n=Fj(t[e],r);r+=typeof n==`string`?n:JSON.stringify(n)}}return r=Ij(r),r=r.trim(),r=r.replace(/\\n/g,`
|
|
179
|
+
`),r}function Fj(e,t){if(typeof e!=`string`||!e.includes(`
|
|
180
|
+
`))return e;let n=t.slice(t.lastIndexOf(`
|
|
181
|
+
`)+1).match(/^(\s+)/);if(n){let t=n[1];return e.replace(/\n/g,`\n${t}`)}return e}function Ij(e){let t=e.split(`
|
|
182
|
+
`),n=null;for(let e of t){let t=e.match(/^(\s+)\S+/);if(t){let e=t[1].length;n=n===null?e:Math.min(n,e)}}return n===null?e:t.map(e=>e[0]===` `||e[0]===` `?e.slice(n):e).join(`
|
|
183
|
+
`)}var Lj=h({EventStreamContentType:()=>Rj,convertEventStreamToIterableReadableDataStream:()=>Wj,getBytes:()=>zj,getLines:()=>Bj,getMessages:()=>Vj}),Rj=`text/event-stream`;async function zj(e,t){if(e instanceof ReadableStream){let n=e.getReader();for(;;){let e=await n.read();if(e.done){t(new Uint8Array,!0);break}t(e.value)}}else try{for await(let n of e)t(new Uint8Array(n));t(new Uint8Array,!0)}catch(e){throw Error([`Parsing event source stream failed.`,`Ensure your implementation of fetch returns a web or Node readable stream.`,`Error: ${e.message}`].join(`
|
|
184
|
+
`))}}function Bj(e){let t,n,r,i=!1;return function(a,o){if(o){e(a,0,!0);return}t===void 0?(t=a,n=0,r=-1):t=Hj(t,a);let s=t.length,c=0;for(;n<s;){i&&=(t[n]===10&&(c=++n),!1);let a=-1;for(;n<s&&a===-1;++n)switch(t[n]){case 58:r===-1&&(r=n-c);break;case 13:i=!0;case 10:a=n;break}if(a===-1)break;e(t.subarray(c,a),r),c=n,r=-1}c===s?t=void 0:c!==0&&(t=t.subarray(c),n-=c)}}function Vj(e,t,n){let r=Uj(),i=new TextDecoder;return function(a,o,s){if(s){Gj(r)||(e?.(r),r=Uj());return}if(a.length===0)e?.(r),r=Uj();else if(o>0){let e=i.decode(a.subarray(0,o)),s=o+(a[o+1]===32?2:1),c=i.decode(a.subarray(s));switch(e){case`data`:r.data=r.data?r.data+`
|
|
185
|
+
`+c:c;break;case`event`:r.event=c;break;case`id`:t?.(r.id=c);break;case`retry`:{let e=parseInt(c,10);Number.isNaN(e)||n?.(r.retry=e);break}}}}}function Hj(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Uj(){return{data:``,event:``,id:``,retry:void 0}}function Wj(e,t){let n=new ReadableStream({async start(n){let r=Vj(e=>{if(e.event===`error`)throw Error(e.data??`Unspecified event streaming error.`);e.event===`metadata`?t?.(e):e.data&&n.enqueue(e.data)});await zj(e,Bj((e,t,i)=>{r(e,t,i),i&&n.close()}))}});return cu.fromReadableStream(n)}function Gj(e){return e.data===``&&e.event===``&&e.id===``&&e.retry===void 0}var Kj=h({}),qj=h({convertToOpenAIFunction:()=>Jj,convertToOpenAITool:()=>Yj,isLangChainTool:()=>Ek,isRunnableToolLike:()=>wk,isStructuredTool:()=>Ck,isStructuredToolParams:()=>Tk});function Jj(e,t){let n=typeof t==`number`?void 0:t;return{name:e.name,description:e.description,parameters:ux(e.schema),...n?.strict===void 0?{}:{strict:n.strict}}}function Yj(e,t){let n=typeof t==`number`?void 0:t,r;return r=Ek(e)?{type:`function`,function:Jj(e)}:e,n?.strict!==void 0&&(r.function.strict=n.strict),r}function Xj(e,t){let n=0,r=0,i=0;for(let a=0;a<e.length;a++)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return n/(Math.sqrt(r)*Math.sqrt(i))}function Zj(e,t){let n=0;for(let r=0;r<e.length;r++)n+=e[r]*t[r];return n}function Qj(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])*(e[r]-t[r]);return n}function $j(e,t){return Math.sqrt(Qj(e,t))}var eM=h({cosineSimilarity:()=>rM,euclideanDistance:()=>aM,innerProduct:()=>iM,matrixFunc:()=>tM,maximalMarginalRelevance:()=>oM,normalize:()=>nM});function tM(e,t,n){if(e.length===0||e[0].length===0||t.length===0||t[0].length===0)return[[]];if(e[0].length!==t[0].length)throw Error(`Number of columns in X and Y must be the same. X has shape ${[e.length,e[0].length]} and Y has shape ${[t.length,t[0].length]}.`);return e.map(e=>t.map(t=>n(e,t)).map(e=>Number.isNaN(e)?0:e))}function nM(e,t=!1){let n=cM(e);return e.map(e=>e.map(e=>t?1-e/n:e/n))}function rM(e,t){return tM(e,t,Xj)}function iM(e,t){return tM(e,t,Zj)}function aM(e,t){return tM(e,t,$j)}function oM(e,t,n=.5,r=4){if(Math.min(r,t.length)<=0)return[];let i=rM(Array.isArray(e[0])?e:[e],t)[0],a=sM(i).maxIndex,o=[t[a]],s=[a];for(;s.length<Math.min(r,t.length);){let e=-1/0,r=-1,a=rM(t,o);i.forEach((t,i)=>{if(s.includes(i))return;let o=Math.max(...a[i]),c=n*t-(1-n)*o;c>e&&(e=c,r=i)}),o.push(t[r]),s.push(r)}return s}function sM(e){if(e.length===0)return{maxIndex:-1,maxValue:NaN};let t=e[0],n=0;for(let r=1;r<e.length;r+=1)e[r]>t&&(n=r,t=e[r]);return{maxIndex:n,maxValue:t}}function cM(e){return e.reduce((e,t)=>Math.max(e,sM(t).maxValue),0)}var lM=h({isCloudMetadata:()=>CM,isLocalhost:()=>wM,isPrivateIp:()=>SM,isSafeUrl:()=>EM,isSameOrigin:()=>DM,validateSafeUrl:()=>TM}),uM=[`10.0.0.0/8`,`172.16.0.0/12`,`192.168.0.0/16`,`127.0.0.0/8`,`169.254.0.0/16`,`0.0.0.0/8`,`::1/128`,`fc00::/7`,`fe80::/10`,`ff00::/8`],dM=[`169.254.169.254`,`169.254.170.2`,`100.100.100.200`],fM=[`metadata.google.internal`,`metadata`,`instance-data`],pM=[`localhost`,`localhost.localdomain`],mM=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function hM(e){return mM.test(e)}function gM(e){return yM(e)!==null}function _M(e){return hM(e)||gM(e)}function vM(e){if(hM(e))return e.split(`.`).map(e=>parseInt(e,10));if(gM(e)){let t=yM(e);if(!t)return null;let n=t.split(`:`),r=[];for(let e of n)r.push(parseInt(e,16));return r}return null}function yM(e){if(!e||typeof e!=`string`||!e.includes(`:`)||!/^[0-9a-fA-F:]+$/.test(e))return null;let t=e;if(t.includes(`::`)){let e=t.split(`::`);if(e.length>2)return null;let[n,r]=e,i=n?n.split(`:`):[],a=r?r.split(`:`):[],o=8-(i.length+a.length);if(o<0)return null;let s=Array(o).fill(`0`);t=[...i,...s,...a].filter(e=>e!==``).join(`:`)}let n=t.split(`:`);if(n.length!==8)return null;for(let e of n)if(e.length===0||e.length>4||!/^[0-9a-fA-F]+$/.test(e))return null;return n.map(e=>e.padStart(4,`0`).toLowerCase()).join(`:`)}function bM(e){let[t,n]=e.split(`/`);if(!t||!n)return null;let r=vM(t);if(!r)return null;let i=parseInt(n,10);if(isNaN(i))return null;let a=gM(t);return a&&i>128||!a&&i>32?null:{addr:r,prefixLen:i,isIpv6:a}}function xM(e,t){let n=vM(e);if(!n)return!1;let r=bM(t);if(!r)return!1;let i=gM(e);if(i!==r.isIpv6)return!1;let{addr:a,prefixLen:o}=r;if(i)for(let e=0;e<Math.ceil(o/16);e++){let t=65535<<16-Math.min(16,o-e*16)&65535;if((n[e]&t)!==(a[e]&t))return!1}else for(let e=0;e<Math.ceil(o/8);e++){let t=255<<8-Math.min(8,o-e*8)&255;if((n[e]&t)!==(a[e]&t))return!1}return!0}function SM(e){if(!_M(e))return!1;for(let t of uM)if(xM(e,t))return!0;return!1}function CM(e,t){if(dM.includes(t||``))return!0;let n=e.toLowerCase();return!!fM.includes(n)}function wM(e,t){if(t&&(t===`127.0.0.1`||t===`::1`||t===`0.0.0.0`||t.startsWith(`127.`)))return!0;let n=e.toLowerCase();return!!pM.includes(n)}function TM(e,t){let n=t?.allowPrivate??!1,r=t?.allowHttp??!1;try{let t;try{t=new URL(e)}catch{throw Error(`Invalid URL: ${e}`)}let i=t.hostname;if(!i)throw Error(`URL missing hostname.`);if(CM(i))throw Error(`URL points to cloud metadata endpoint: ${i}`);if(wM(i)){if(!n)throw Error(`URL points to localhost: ${i}`);return e}let a=t.protocol;if(a!==`http:`&&a!==`https:`)throw Error(`Invalid URL scheme: ${a}. Only http and https are allowed.`);if(a===`http:`&&!r)throw Error(`HTTP scheme not allowed. Use HTTPS or set allowHttp: true.`);if(_M(i)){let t=i;if(wM(i,t)){if(!n)throw Error(`URL points to localhost: ${i}`);return e}if(CM(i,t))throw Error(`URL resolves to cloud metadata IP: ${t} (${i})`);if(SM(t)&&!n)throw Error(`URL resolves to private IP: ${t} (${i}). Set allowPrivate: true to allow.`);return e}return e}catch(e){throw e&&typeof e==`object`&&`message`in e?e:Error(`URL validation failed: ${e}`)}}function EM(e,t){try{return TM(e,t),!0}catch{return!1}}function DM(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var OM=h({SaveableVectorStore:()=>jM,VectorStore:()=>AM,VectorStoreRetriever:()=>kM}),kM=class extends gO{static lc_name(){return`VectorStoreRetriever`}get lc_namespace(){return[`langchain_core`,`vectorstores`]}vectorStore;k=4;searchType=`similarity`;searchKwargs;filter;_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType===`mmr`&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType===`mmr`){if(typeof this.vectorStore.maxMarginalRelevanceSearch!=`function`)throw Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild(`vectorstore`))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild(`vectorstore`))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},AM=class extends Te{lc_namespace=[`langchain`,`vectorstores`,this._vectorstoreType()];embeddings;constructor(e,t){super(t),this.embeddings=e}async delete(e){throw Error(`Not implemented.`)}async similaritySearch(e,t=4,n=void 0,r=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)).map(e=>e[0])}async similaritySearchWithScore(e,t=4,n=void 0,r=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)}static fromTexts(e,t,n,r){throw Error(`the Langchain vectorstore implementation you are using forgot to override this, please report a bug`)}static fromDocuments(e,t,n){throw Error(`the Langchain vectorstore implementation you are using forgot to override this, please report a bug`)}asRetriever(e,t,n,r,i,a){if(typeof e==`number`)return new kM({vectorStore:this,k:e,filter:t,tags:[...r??[],this._vectorstoreType()],metadata:i,verbose:a,callbacks:n});{let t={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType===`mmr`?new kM({...t,searchKwargs:e.searchKwargs}):new kM({...t})}}},jM=class extends AM{static load(e,t){throw Error(`Not implemented`)}},MM=class extends AE{_combineLLMOutput(){return[]}_llmType(){return`fake`}async _generate(e,t,n){if(t?.stop?.length)return{generations:[{message:new k(t.stop[0]),text:t.stop[0]}]};let r=e.map(e=>typeof e.content==`string`?e.content:JSON.stringify(e.content,null,2)).join(`
|
|
186
|
+
`);return await n?.handleLLMNewToken(r),{generations:[{message:new k(r),text:r}],llmOutput:{}}}},NM=class e extends AE{sleep=50;responses=[];chunks=[];toolStyle=`openai`;thrownErrorString;tools=[];constructor({sleep:e=50,responses:t=[],chunks:n=[],toolStyle:r=`openai`,thrownErrorString:i,...a}){super(a),this.sleep=e,this.responses=t,this.chunks=n,this.toolStyle=r,this.thrownErrorString=i}_llmType(){return`fake`}bindTools(t){let n=[...this.tools,...t],r=n.map(e=>{switch(this.toolStyle){case`openai`:return{type:`function`,function:{name:e.name,description:e.description,parameters:ux(e.schema)}};case`anthropic`:return{name:e.name,description:e.description,input_schema:ux(e.schema)};case`bedrock`:return{toolSpec:{name:e.name,description:e.description,inputSchema:ux(e.schema)}};case`google`:return{name:e.name,description:e.description,parameters:ux(e.schema)};default:throw Error(`Unsupported tool style: ${this.toolStyle}`)}}),i=this.toolStyle===`google`?[{functionDeclarations:r}]:r,a=new e({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return a.tools=n,a.withConfig({tools:i})}async _generate(e,t,n){if(this.thrownErrorString)throw Error(this.thrownErrorString);return{generations:[{text:``,message:new k({content:this.responses?.[0]?.content??e[0].content??``,tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw Error(this.thrownErrorString);if(this.chunks?.length){for(let e of this.chunks){let r=new Ju({message:new un({content:e.content,tool_calls:e.tool_calls,additional_kwargs:e.additional_kwargs??{}}),text:e.content?.toString()??``});if(t.signal?.aborted)break;yield r,await n?.handleLLMNewToken(e.content,void 0,void 0,void 0,void 0,{chunk:r})}return}let r=this.responses?.[0]??new k(typeof e[0].content==`string`?e[0].content:``),i=typeof r.content==`string`?r.content:``;for(let e of i){await new Promise(e=>setTimeout(e,this.sleep));let r=new Ju({message:new un({content:e}),text:e});if(t.signal?.aborted)break;yield r,await n?.handleLLMNewToken(e,void 0,void 0,void 0,void 0,{chunk:r})}}},PM=class e extends AE{static lc_name(){return`FakeListChatModel`}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle=`openai`;constructor(e){super(e);let{responses:t,sleep:n,emitCustomEvent:r,generationInfo:i}=e;this.responses=t,this.sleep=n,this.emitCustomEvent=r??this.emitCustomEvent,this.generationInfo=i}_combineLLMOutput(){return[]}_llmType(){return`fake-list`}async _generate(e,t,n){if(await this._sleepIfRequested(),t?.thrownErrorString)throw Error(t.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent(`some_test_event`,{someval:!0}),t?.stop?.length)return{generations:[this._formatGeneration(t.stop[0])]};{let e=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(e)],llmOutput:{}}}}_formatGeneration(e){return{message:new k(e),text:e}}async*_streamResponseChunks(e,t,n){let r=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent(`some_test_event`,{someval:!0});let i=[...r];for(let e=0;e<i.length;e++){let r=i[e],a=e===i.length-1;if(await this._sleepIfRequested(),t?.thrownErrorString)throw Error(t.thrownErrorString);let o=this._createResponseChunk(r,a?this.generationInfo:void 0);if(t.signal?.aborted)break;yield o,n?.handleLLMNewToken(r)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(e=>{setTimeout(()=>e(),this.sleep)})}_createResponseChunk(e,t){return new Ju({message:new un({content:e}),text:e,generationInfo:t})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}bindTools(t){let n=[...this.tools,...t],r=n.map(e=>{switch(this.toolStyle){case`openai`:return{type:`function`,function:{name:e.name,description:e.description,parameters:ux(e.schema)}};case`anthropic`:return{name:e.name,description:e.description,input_schema:ux(e.schema)};case`bedrock`:return{toolSpec:{name:e.name,description:e.description,inputSchema:ux(e.schema)}};case`google`:return{name:e.name,description:e.description,parameters:ux(e.schema)};default:throw Error(`Unsupported tool style: ${this.toolStyle}`)}}),i=this.toolStyle===`google`?[{functionDeclarations:r}]:r,a=new e({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return a.tools=n,a.toolStyle=this.toolStyle,a.i=this.i,a.withConfig({tools:i})}withStructuredOutput(e,t){return Fx.from(async e=>{let t=await this.invoke(e);if(t.tool_calls?.[0]?.args)return t.tool_calls[0].args;if(typeof t.content==`string`)return JSON.parse(t.content);throw Error(`No structured output found`)})}},FM=class extends Tw{vectorSize;constructor(e){super(e??{}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(e=>this.embedQuery(e)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,``);let n=t.length%this.vectorSize,r=n===0?0:this.vectorSize-n,i=t.length+r;t=t.padEnd(i,` `);let a=t.length/this.vectorSize,o=[];for(let e=0;e<t.length;e+=a)o.push(t.slice(e,e+a));return o.map(e=>{let t=0;for(let n=0;n<e.length;n+=1)t+=e===` `?0:e.charCodeAt(n);return t%26/26})}},IM=class extends Tw{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},LM=class extends HE{response;thrownErrorString;constructor(e){super(e),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return`fake`}async _call(e,t,n){if(this.thrownErrorString)throw Error(this.thrownErrorString);let r=this.response??e;return await n?.handleLLMNewToken(r),r}},RM=class extends HE{sleep=50;responses;thrownErrorString;constructor(e){super(e),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return`fake`}async _call(e){if(this.thrownErrorString)throw Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw Error(this.thrownErrorString);let r=this.responses?.[0];this.responses=this.responses?.slice(1);for(let t of r??e)await new Promise(e=>setTimeout(e,this.sleep)),yield{text:t,generationInfo:{}},await n?.handleLLMNewToken(t)}},zM=class extends fw{lc_namespace=[`langchain_core`,`message`,`fake`];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new yn(e))}async addAIMessage(e){this.messages.push(new k(e))}async clear(){this.messages=[]}},BM=class extends pw{lc_namespace=[`langchain_core`,`message`,`fake`];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},VM=class extends el{name=`fake_tracer`;runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}},HM=class extends ST{lc_namespace=[`tests`,`fake`];getFormatInstructions(){return``}async parse(e){return e.split(`,`).map(e=>e.trim())}},UM=class extends gO{lc_namespace=[`test`,`fake`];output=[new hw({pageContent:`foo`}),new hw({pageContent:`bar`})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},WM=class extends Dx{lc_namespace=[`tests`,`fake`];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},GM=class extends yj{name;description;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},KM=class extends el{runPromiseResolver;runPromise;name=`single_run_extractor`;constructor(){super(),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},qM=class e extends AM{memoryVectors=[];similarity;_vectorstoreType(){return`memory`}constructor(e,{similarity:t,...n}={}){super(e,n),this.similarity=t??Xj}async addDocuments(e){let t=e.map(({pageContent:e})=>e);return this.addVectors(await this.embeddings.embedDocuments(t),e)}async addVectors(e,t){let n=e.map((e,n)=>({content:t[n].pageContent,embedding:e,metadata:t[n].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(e,t,n){let r=this.memoryVectors.filter(e=>!n||n(new hw({metadata:e.metadata,pageContent:e.content})));return r.map((t,n)=>({similarity:this.similarity(e,t.embedding),index:n})).sort((e,t)=>e.similarity>t.similarity?-1:0).slice(0,t).map(e=>[new hw({metadata:r[e.index].metadata,pageContent:r[e.index].content}),e.similarity])}static async fromTexts(t,n,r,i){let a=[];for(let e=0;e<t.length;e+=1){let r=Array.isArray(n)?n[e]:n,i=new hw({pageContent:t[e],metadata:r});a.push(i)}return e.fromDocuments(a,r,i)}static async fromDocuments(e,t,n){let r=new this(t,n);return await r.addDocuments(e),r}static async fromExistingIndex(e,t){return new this(e,t)}},JM=h({FakeChatMessageHistory:()=>zM,FakeChatModel:()=>MM,FakeEmbeddings:()=>IM,FakeLLM:()=>LM,FakeListChatMessageHistory:()=>BM,FakeListChatModel:()=>PM,FakeRetriever:()=>UM,FakeRunnable:()=>WM,FakeSplitIntoListParser:()=>HM,FakeStreamingChatModel:()=>NM,FakeStreamingLLM:()=>RM,FakeTool:()=>GM,FakeTracer:()=>VM,FakeVectorStore:()=>qM,SingleRunExtractor:()=>KM,SyntheticEmbeddings:()=>FM,asAsyncIterable:()=>gk,openAIReasoningTextChunks:()=>yk,openAITextOnlyChunks:()=>vk,openAITextOnlyChunksWithUsage:()=>_k,openAIToolCallChunks:()=>bk,sseResponseFromOpenAIChunks:()=>xk,streamMatchers:()=>ZO}),YM=h({agents:()=>XC,caches:()=>iw,callbacks__base:()=>Hr,callbacks__manager:()=>Il,callbacks__promises:()=>jl,chat_history:()=>dw,document_loaders__base:()=>yw,document_loaders__langsmith:()=>xw,documents:()=>vw,embeddings:()=>ww,errors:()=>v,example_selectors:()=>Fw,index:()=>YC,indexing:()=>Ww,language_models__base:()=>dT,language_models__chat_models:()=>OE,language_models__compat:()=>hE,language_models__event:()=>zE,language_models__llms:()=>BE,language_models__openai_completions_stream:()=>ME,language_models__profile:()=>UE,language_models__stream:()=>tE,language_models__structured_output:()=>ZT,load__serializable:()=>xe,memory:()=>WE,messages:()=>cS,messages__tool:()=>Et,output_parsers:()=>WT,output_parsers__openai_functions:()=>$E,output_parsers__openai_tools:()=>eD,outputs:()=>Gu,prompt_values:()=>Gw,prompts:()=>fO,retrievers:()=>hO,retrievers__document_compressors:()=>pO,runnables:()=>uS,runnables__graph:()=>fx,singletons:()=>Xl,stores:()=>_O,structured_query:()=>RO,testing:()=>Sk,tools:()=>vj,tracers__base:()=>Yc,tracers__console:()=>tl,tracers__log_stream:()=>Lu,tracers__run_collector:()=>Oj,tracers__tracer_langchain:()=>_l,types__stream:()=>Aj,utils__async_caller:()=>ld,utils__chunk_array:()=>jj,utils__context:()=>Nj,utils__env:()=>Mr,utils__event_source_parse:()=>Lj,utils__format:()=>Kj,utils__function_calling:()=>qj,utils__hash:()=>rw,utils__json_patch:()=>bT,utils__json_schema:()=>cx,utils__math:()=>eM,utils__ssrf:()=>lM,utils__standard_schema:()=>bb,utils__stream:()=>su,utils__testing:()=>JM,utils__tiktoken:()=>oT,utils__types:()=>GT,utils__uuid:()=>br,vectorstores:()=>OM}),XM=50;function ZM(e){let t={};for(let n=e;n&&n.prototype;n=Object.getPrototypeOf(n))Object.assign(t,Reflect.get(n.prototype,`lc_aliases`));return Object.entries(t).reduce((e,[t,n])=>(e[n]=t,e),{})}async function QM(e){let{optionalImportsMap:t,optionalImportEntrypoints:n,importMap:r,secretsMap:i,secretsFromEnv:a,path:o,depth:s,maxDepth:c}=this,l=o.join(`.`);if(s>c)throw Error(`Maximum recursion depth (${c}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return Promise.all(e.map((e,t)=>QM.call({...this,path:[...o,`${t}`],depth:s+1},e)));let u=e;if(ge(u))return be(u);if(`lc`in u&&`type`in u&&`id`in u&&u.lc===1&&u.type===`secret`){let[e]=u.id;if(e in i)return i[e];if(a){let t=Vr(e);if(t)return t}throw Error(`Missing secret "${e}" at ${l}`)}if(`lc`in u&&`type`in u&&`id`in u&&u.lc===1&&u.type===`not_implemented`){let e=JSON.stringify(u);throw Error(`Trying to load an object that doesn't implement serialization: ${l} -> ${e}`)}if(`lc`in u&&`type`in u&&`id`in u&&`kwargs`in u&&u.lc===1&&u.type===`constructor`){let e=u,i=JSON.stringify(e),[a,...c]=e.id.slice().reverse(),d=c.reverse(),f={langchain_core:YM,langchain:r},p=null,m=[d.join(`/`)];d[0]===`langchain_community`&&m.push([`langchain`,...d.slice(1)].join(`/`));let h=m.find(e=>e in t);if(JC.concat(n).includes(d.join(`/`))||h)if(h!==void 0)p=await t[h];else throw Error(`Missing key "${d.join(`/`)}" for ${l} in load(optionalImportsMap={})`);else{let e;if(d[0]===`langchain`||d[0]===`langchain_core`)e=f[d[0]],d.shift();else throw Error(`Invalid namespace: ${l} -> ${i}`);if(d.length===0)throw Error(`Invalid namespace: ${l} -> ${i}`);let t;do{if(t=d.join(`__`),t in e)break;d.pop()}while(d.length>0);t in e&&(p=e[t])}if(typeof p!=`object`||!p)throw Error(`Invalid namespace: ${l} -> ${i}`);let g=p[a]??Object.values(p).find(e=>typeof e==`function`&&we(e)===a);if(typeof g!=`function`)throw Error(`Invalid identifer: ${l} -> ${i}`);let _=new g(fe(await QM.call({...this,path:[...o,`kwargs`],depth:s+1},e.kwargs),de,ZM(g)));return Object.defineProperty(_.constructor,"name",{value:a}),_}let d={};for(let[e,t]of Object.entries(u))d[e]=await QM.call({...this,path:[...o,e],depth:s+1},t);return d}async function $M(e,t){let n=JSON.parse(e),r={optionalImportsMap:t?.optionalImportsMap??{},optionalImportEntrypoints:t?.optionalImportEntrypoints??[],secretsMap:t?.secretsMap??{},secretsFromEnv:t?.secretsFromEnv??!1,importMap:t?.importMap??{},path:[`$`],depth:0,maxDepth:t?.maxDepth??XM};return QM.call(r,n)}function eN(e){return e!==null&&e.lc===1&&e.type===`constructor`&&Array.isArray(e.id)}async function tN(e){if(e&&typeof e==`object`){if(Array.isArray(e))return await Promise.all(e.map(e=>tN(e)));{let t={};for(let[n,r]of Object.entries(e))t[n]=await tN(r);if(t.lc===2&&t.type===`undefined`)return;if(t.lc===2&&t.type===`delta_snapshot`)return new LC(t.value);if(t.lc===2&&t.type===`constructor`&&Array.isArray(t.id))try{let e=t.id[t.id.length-1],n;switch(e){case`Set`:n=Set;break;case`Map`:n=Map;break;case`RegExp`:n=RegExp;break;case`Error`:n=Error;break;case`Uint8Array`:n=Uint8Array;break;default:return t}return t.method?n[t.method](...t.args||[]):new n(...t.args||[])}catch{return t}else if(eN(t))return $M(JSON.stringify(t));return t}}return e}function nN(e,t,n,r){return{lc:2,type:`constructor`,id:[e.name],method:t??null,args:n??[],kwargs:r??{}}}function rN(e){return e===void 0?{lc:2,type:`undefined`}:e instanceof LC?{lc:2,type:`delta_snapshot`,value:e.value}:e instanceof Set||e instanceof Map?nN(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?nN(RegExp,void 0,[e.source,e.flags]):e instanceof Error?nN(e.constructor,void 0,[e.message]):e?.lg_name===`Send`?{node:e.node,args:e.args,...e.timeout===void 0?{}:{timeout:e.timeout}}:e instanceof Uint8Array?nN(Uint8Array,`from`,[Array.from(e)]):e}var iN=class{_dumps(e){return new TextEncoder().encode(WC(e,(e,t)=>rN(t)))}async dumpsTyped(e){return e instanceof Uint8Array?[`bytes`,e]:[`json`,this._dumps(e)]}async _loads(e){return tN(JSON.parse(e))}async loadsTyped(e,t){if(e===`bytes`)return typeof t==`string`?new TextEncoder().encode(t):t;if(e===`json`)return this._loads(typeof t==`string`?t:new TextDecoder().decode(t));throw Error(`Unknown serialization type: ${e}`)}};function aN(e){if(typeof e!=`object`||!e)return e;let t=Array.isArray(e)?[]:{};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=aN(e[n]));return t}function oN(){return{v:4,id:jC(0),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function sN(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values??{}},channel_versions:{...e.channel_versions??{}},versions_seen:aN(e.versions_seen??{})}}function cN(e,t){return typeof e==`number`&&typeof t==`number`?Math.sign(e-t):String(e).localeCompare(String(t))}function lN(...e){return e.reduce((e,t,n)=>n===0?t:cN(e,t)>=0?e:t)}var uN={[NC]:-1,[PC]:-2,[FC]:-3,[IC]:-4},dN=new Set([`thread_id`,`checkpoint_id`,`checkpoint_ns`,`checkpoint_map`,`langgraph_step`,`langgraph_node`,`langgraph_triggers`,`langgraph_path`,`langgraph_checkpoint_ns`]),fN=class extends Error{constructor(e){super(e),this.name=`InvalidNamespaceError`}};function pN(e){if(e.length===0)throw new fN(`Namespace cannot be empty.`);for(let t of e){if(typeof t!=`string`)throw new fN(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes(`.`))throw new fN(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t===``)throw new fN(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]===`langgraph`)throw new fN(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var mN=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:r=10,offset:i=0,query:a}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:r,offset:i,query:a}]))[0]}async put(e,t,n,r){pN(e),await this.batch([{namespace:e,key:t,value:n,index:r}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:r,limit:i=100,offset:a=0}=e,o=[];return t&&o.push({matchType:`prefix`,path:t}),n&&o.push({matchType:`suffix`,path:n}),(await this.batch([{matchConditions:o.length?o:void 0,maxDepth:r,limit:i,offset:a}]))[0]}start(){}stop(){}},hN=e=>`lg_name`in e&&e.lg_name===`AsyncBatchedStore`?e.store:e,gN=class extends mN{lg_name=`AsyncBatchedStore`;store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=hN(e)}get isRunning(){return this.running}async batch(e){throw Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:r=10,offset:i=0,query:a}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:r,offset:i,query:a})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let r=this.nextKey;this.nextKey+=1,this.queue.set(r,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(e=>{setTimeout(e,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:e})=>e),n=await this.store.batch(t);e.forEach(({resolve:t},r)=>{t(n[Array.from(e.keys()).indexOf(r)])})}catch(t){e.forEach(({reject:e})=>{e(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:`[LangGraphStore]`}}},_N=class{serde=new iN;constructor(e){this.serde=e||this.serde}},vN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function yN(e){return e!=null&&e.lc_graph_name===`DeltaChannel`}function bN(e){return e!=null&&e.lg_is_channel===!0}var xN=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===TC.unminifiable_name)return!1;throw e}}equals(e){return this===e}},SN=Symbol.for(`LG_IS_ONLY_BASE_CHANNEL`);function CN(e){if(e[SN]===!0)return e;let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];bN(r)&&(t[n]=r)}return Object.assign(t,{[SN]:!0}),t}function wN(e,t){let n=CN(e),r={};for(let e in n){if(!Object.prototype.hasOwnProperty.call(n,e))continue;let i=t.channel_values[e];r[e]=n[e].fromCheckpoint(i)}return Object.assign(r,{[SN]:!0}),r}function TN(e,t){if(!vN.test(t))throw TypeError(`Invalid task id for exit delta: ${t}`);let n=t.toLowerCase().split(`-`);return`${String(e).padStart(8,`0`)}-${n[1]}-${n[2]}-${n[3]}-${n[4]}`}function EN(e,t){let n=new Set,r=yS();for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;let a=e[i];if(!yN(a)||!a.isAvailable())continue;let[o,s]=t[i]??[0,0];(o>=a.snapshotFrequency||s>=r)&&n.add(i)}return n}function DN(e,t,n,r){let i=r?.channelsToSnapshot??new Set,{updatedChannels:a,getNextVersion:o}=r??{},s,c=e.channel_versions;if(t===void 0)s=e.channel_values;else{s={},c={...e.channel_versions};for(let e in t){if(!Object.prototype.hasOwnProperty.call(t,e))continue;let n=t[e];if(i.has(e)){o!==void 0&&(a===void 0||!a.has(e))&&(c[e]=o(c[e])),s[e]=new LC(n.get());continue}if(!yN(n))try{s[e]=n.checkpoint()}catch(e){if(e.name!==TC.unminifiable_name)throw e}}}return{v:4,id:r?.id??jC(n),ts:new Date().toISOString(),channel_values:s,channel_versions:c,versions_seen:e.versions_seen}}async function ON(e,t,n){let r=wN(e,t),{saver:i,config:a}=n??{},o=CN(e),s=[];for(let e in o)Object.prototype.hasOwnProperty.call(o,e)&&yN(o[e])&&!Object.prototype.hasOwnProperty.call(t.channel_values,e)&&s.push(e);if(s.length===0||i===void 0||a===void 0)return r;let c=await i.getDeltaChannelHistory({config:a,channels:s});for(let e of s){let t=c[e];if(t===void 0)continue;let n=o[e].fromCheckpoint(t.seed);n.replayWrites(t.writes),r[e]=n}return r}var kN=class e extends xN{lc_graph_name=`LastValue`;value=[];constructor(e){super(),this.initialValueFactory=e,e&&(this.value=[e()])}fromCheckpoint(t){let n=new e(this.initialValueFactory);return t!==void 0&&(n.value=[t]),n}update(e){if(e.length===0)return!1;if(e.length!==1)throw new EC(`LastValue can only receive one value per step.`,{lc_error_code:`INVALID_CONCURRENT_GRAPH_UPDATE`});return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new TC;return this.value[0]}checkpoint(){if(this.value.length===0)throw new TC;return this.value[0]}isAvailable(){return this.value.length!==0}},AN=class e extends xN{lc_graph_name=`LastValueAfterFinish`;value=[];finished=!1;fromCheckpoint(t){let n=new e;if(t!==void 0){let[e,r]=t;n.value=[e],n.finished=r}return n}update(e){return e.length===0?!1:(this.finished=!1,this.value=[e[e.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new TC;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}},jN=e=>e!=null&&e.lc_graph_name===`BinaryOperatorAggregate`,MN=class e extends xN{lc_graph_name=`BinaryOperatorAggregate`;value;operator;initialValueFactory;constructor(e,t){super(),this.operator=e,this.initialValueFactory=t,this.value=t?.()}fromCheckpoint(t){let n=new e(this.operator,this.initialValueFactory);return t!==void 0&&(n.value=t),n}update(e){let t=e;if(!t.length)return!1;if(this.value===void 0){let e=t[0],[n,r]=rC(e);n?this.value=r:this.value=e,t=t.slice(1)}let n=!1;for(let e of t)if(iC(e)){if(n)throw new EC(`Can receive only one Overwrite value per step.`);let[,t]=rC(e);this.value=t,n=!0;continue}else!n&&this.value!==void 0&&(this.value=this.operator(this.value,e));return!0}get(){if(this.value===void 0)throw new TC;return this.value}checkpoint(){if(this.value===void 0)throw new TC;return this.value}isAvailable(){return this.value!==void 0}equals(e){return this===e?!0:jN(e)?this.operator===e.operator:!1}},NN=class{lc_graph_name=`AnnotationRoot`;spec;constructor(e){this.spec=e}static isInstance(e){return typeof e==`object`&&!!e&&`lc_graph_name`in e&&e.lc_graph_name===`AnnotationRoot`}},PN=function(e){return e?FN(e):new kN};PN.Root=e=>new NN(e);function FN(e){return typeof e==`object`&&e&&`reducer`in e&&e.reducer?new MN(e.reducer,e.default):typeof e==`object`&&e&&`value`in e&&e.value?new MN(e.value,e.default):new kN}var IN=[`tags`,`metadata`,`callbacks`,`configurable`],LN=[`tags`,`metadata`,`callbacks`,`runName`,`maxConcurrency`,`recursionLimit`,`configurable`,`runId`,`outputKeys`,`streamMode`,`store`,`writer`,`interrupt`,`context`,`interruptBefore`,`interruptAfter`,`checkpointDuring`,`durability`,`signal`,`heartbeat`,`executionInfo`,`serverInfo`,`control`],RN=25,zN=new Set([`thread_id`,`checkpoint_id`,`checkpoint_ns`,`task_id`,`run_id`,`assistant_id`,`graph_id`]);function BN(e,t){if(!e)return t;let n=t??{};for(let t of zN){if(t in n)continue;let r=e[t];r!==void 0&&(n[t]=r)}return n}function VN(e){if(e==null||e.length===0)return;let t=e.filter(e=>!e.startsWith(`seq:step`));return t.length>0?t:void 0}function HN(e,t){if(t===void 0)return e;if(e===void 0)return Array.isArray(t)?[...t]:t.copy();if(Array.isArray(t)){if(Array.isArray(e))return e.concat(t);let n=e.copy();for(let e of t)n.addHandler(Gl(e),!0);return n}if(Array.isArray(e)){let n=t.copy();for(let t of e)n.addHandler(Gl(t),!0);return n}return new Wl(t._parentRunId,{handlers:e.handlers.concat(t.handlers),inheritableHandlers:e.inheritableHandlers.concat(t.inheritableHandlers),tags:Array.from(new Set(e.tags.concat(t.tags))),inheritableTags:Array.from(new Set(e.inheritableTags.concat(t.inheritableTags))),metadata:{...e.metadata,...t.metadata},inheritableMetadata:{...e.inheritableMetadata,...t.inheritableMetadata}})}function UN(e){let t;for(let n=e.length-1;n>=0;--n)if(e[n]!==void 0){t=e[n];break}let n=t?.configurable?.thread_id!==void 0,r=e.some(e=>e?.configurable?.[SS]!==void 0),i=Yl.getRunnableConfig()?.configurable?.[SS]!==void 0;return n&&!r&&!i}function WN(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:RN,configurable:{}},n=UN(e),r=Yl.getRunnableConfig();if(r!==void 0){for(let[e,i]of Object.entries(r))if(i!==void 0){if(e===`configurable`&&n)continue;if(IN.includes(e)){let n;n=Array.isArray(i)?[...i]:typeof i==`object`?e===`callbacks`&&`copy`in i&&typeof i.copy==`function`?i.copy():{...i}:i,t[e]=n}else t[e]=i}}for(let n of e)if(n!==void 0)for(let[e,r]of Object.entries(n))r===void 0||!LN.includes(e)||(e===`configurable`?t.configurable={...t.configurable,...r}:e===`metadata`?t.metadata={...t.metadata,...r}:e===`tags`?t.tags=[...t.tags??[],...r]:e===`callbacks`?t.callbacks=HN(t.callbacks,r):t[e]=r);return t.metadata=BN(t.configurable,t.metadata)??{},t}function GN(){return Yl.getRunnableConfig()}function KN(e){return e.split(`|`).filter(e=>!e.match(/^\d+$/)).map(e=>e.split(`:`)[0]).join(`|`)}function qN(e){let t=e.split(`|`);for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join(`|`)}var JN=class extends Dx{lc_namespace=[`langgraph`];func;tags;config;trace=!0;recurse=!0;constructor(e){super(),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((r,i)=>{let a=ru(t,{callbacks:n?.getChild()});Yl.runWithConfig(a,async()=>{try{r(await this.func(e,a))}catch(e){i(e)}})})}async invoke(e,t){let n,r=WN(t),i=tu(this.config,r);return n=this.trace?await this._callWithConfig(this._tracedInvoke,e,i):await Yl.runWithConfig(i,async()=>this.func(e,i)),Dx.isRunnable(n)&&this.recurse?await Yl.runWithConfig(i,async()=>n.invoke(e,i)):n}};function*YN(e,t){if(t===void 0)yield*e;else for(let n of e)yield[t,n]}async function XN(e){let t=[];for await(let n of await e)t.push(n);return t}function ZN(e){let t=[];for(let n of e)t.push(n);return t}function QN(e,t){return e?`configurable`in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function $N(e){return typeof e==`object`&&e?.[Symbol.for(`LG_SKIP_WRITE`)]!==void 0}var eP={[Symbol.for(`LG_PASSTHROUGH`)]:!0};function tP(e){return typeof e==`object`&&e?.[Symbol.for(`LG_PASSTHROUGH`)]!==void 0}var nP=Symbol(`IS_WRITER`),rP=class e extends JN{writes;constructor(e,t){let n=`ChannelWrite<${e.map(e=>tC(e)?e.node:`channel`in e?e.channel:`...`).join(`,`)}>`;super({writes:e,name:n,tags:t,trace:!1,func:async(e,t)=>this._write(e,t??{})}),this.writes=e}async _write(t,n){let r=this.writes.map(e=>aP(e)&&tP(e.value)?{mapper:e.mapper,value:t}:iP(e)&&tP(e.value)?{channel:e.channel,value:t,skipNone:e.skipNone,mapper:e.mapper}:e);return await e.doWrite(n,r),t}static async doWrite(e,t){for(let e of t){if(iP(e)){if(e.channel===`__pregel_tasks`)throw new EC(`Cannot write to the reserved channel TASKS`);if(tP(e.value))throw new EC(`PASSTHROUGH value must be replaced`)}if(aP(e)&&tP(e.value))throw new EC(`PASSTHROUGH value must be replaced`)}let n=[];for(let r of t)if(tC(r))n.push([KS,r]);else if(aP(r)){let t=await r.mapper.invoke(r.value,e);t!=null&&t.length>0&&n.push(...t)}else if(iP(r)){let t=r.mapper===void 0?r.value:await r.mapper.invoke(r.value,e);if($N(t)||r.skipNone&&t===void 0)continue;n.push([r.channel,t])}else throw Error(`Invalid write entry: ${JSON.stringify(r)}`);let r=e.configurable?.[bS];r(n)}static isWriter(t){return t instanceof e||nP in t&&!!t[nP]}static registerWriter(e){return Object.defineProperty(e,nP,{value:!0})}};function iP(e){return e!==void 0&&typeof e.channel==`string`}function aP(e){return e!==void 0&&!iP(e)&&Dx.isRunnable(e.mapper)}var oP=class e extends JN{lc_graph_name=`ChannelRead`;channel;fresh=!1;mapper;constructor(t,n,r=!1){super({trace:!1,func:(t,n)=>e.doRead(n,this.channel,this.fresh,this.mapper)}),this.fresh=r,this.mapper=n,this.channel=t,this.name=Array.isArray(t)?`ChannelRead<${t.join(`,`)}>`:`ChannelRead<${t}>`}static doRead(e,t,n,r){let i=e.configurable?.[SS];if(!i)throw Error(`Runnable is not configured with a read function. Make sure to call in the context of a Pregel process`);return r?r(i(t,n)):i(t,n)}},sP=new Ux,cP=class e extends Ox{lc_graph_name=`PregelNode`;channels;triggers=[];mapper;writers=[];bound=sP;kwargs={};metadata={};tags=[];retryPolicy;cachePolicy;timeout;subgraphs;ends;isErrorHandler;errorHandlerNode;constructor(e){let{channels:t,triggers:n,mapper:r,writers:i,bound:a,kwargs:o,metadata:s,retryPolicy:c,cachePolicy:l,timeout:u,tags:d,subgraphs:f,ends:p,isErrorHandler:m,errorHandlerNode:h}=e,g=[...e.config?.tags?e.config.tags:[],...d??[]];super({...e,bound:e.bound??sP,config:{...e.config?e.config:{},tags:g}}),this.channels=t,this.triggers=n,this.mapper=r,this.writers=i??this.writers,this.bound=a??this.bound,this.kwargs=o??this.kwargs,this.metadata=s??this.metadata,this.tags=g,this.retryPolicy=c,this.cachePolicy=l,this.timeout=u,this.subgraphs=f,this.ends=p,this.isErrorHandler=m,this.errorHandlerNode=h}getWriters(){let e=[...this.writers];for(;e.length>1&&e[e.length-1]instanceof rP&&e[e.length-2]instanceof rP;){let t=e.slice(-2),n=t[0].writes.concat(t[1].writes);e[e.length-2]=new rP(n,t[0].config?.tags),e.pop()}return e}getNode(){let e=this.getWriters();if(!(this.bound===sP&&e.length===0))return this.bound===sP&&e.length===1?e[0]:this.bound===sP?new jx({first:e[0],middle:e.slice(1,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):e.length>0?new jx({first:this.bound,middle:e.slice(0,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):this.bound}join(t){if(!Array.isArray(t))throw Error(`channels must be a list`);if(typeof this.channels!=`object`)throw Error(`all channels must be named when using .join()`);return new e({channels:{...this.channels,...Object.fromEntries(t.map(e=>[e,e]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}pipe(t){return rP.isWriter(t)?new e({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,t],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):this.bound===sP?new e({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:Rx(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):new e({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}};function lP(e){let t=typeof e[pS];if(t===`number`)return 0;if(t===`string`)return``;for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t))continue;let n=typeof e[t];if(n===`number`)return 0;if(n===`string`)return``;break}}function uP(e,t){if(Object.keys(e).length>0){let n=lP(t);return Object.fromEntries(Object.entries(t).filter(([t,r])=>r>(e[t]??n)))}else return t}function dP(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e==`object`?e:{[t]:e}}function fP(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function pP(e,t){let n=t?.parents??{};return Object.keys(n).length>0?fP(e,{[IS]:{...n,[e.configurable?.checkpoint_ns??``]:e.configurable?.checkpoint_id}}):e}function mP(...e){let t=[...new Set(e.filter(Boolean))];if(t.length===0)return{signal:void 0,dispose:void 0};if(t.length===1)return{signal:t[0],dispose:void 0};let n=new AbortController,r=()=>{let e=t.find(e=>e.aborted)?.reason;n.abort(e),t.forEach(e=>e.removeEventListener(`abort`,r))};t.forEach(e=>e.addEventListener(`abort`,r,{once:!0}));let i=t.find(e=>e.aborted);return i&&n.abort(i.reason),{signal:n.signal,dispose:()=>{t.forEach(e=>e.removeEventListener(`abort`,r))}}}function hP(e){return`steps`in e&&Array.isArray(e.steps)}function gP(e){return`lg_is_pregel`in e&&e.lg_is_pregel===!0}function _P(e){let t=[e];for(let e of t)if(gP(e))return e;else hP(e)&&t.push(...e.steps)}var vP=class e extends xN{lc_graph_name=`EphemeralValue`;guard;value=[];constructor(e=!0){super(),this.guard=e}fromCheckpoint(t){let n=new e(this.guard);return t!==void 0&&(n.value=[t]),n}update(e){if(e.length===0){let e=this.value.length>0;return this.value=[],e}if(e.length!==1&&this.guard)throw new EC(`EphemeralValue can only receive one value per step.`);return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new TC;return this.value[0]}checkpoint(){if(this.value.length===0)throw new TC;return this.value[0]}isAvailable(){return this.value.length!==0}},yP=class{#e=void 0;requestDrain(e=`shutdown`){this.#e=e}get drainRequested(){return this.#e!==void 0}get drainReason(){return this.#e}},K=e=>BigInt(e),bP=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),xP=K(`0x9E3779B1`),SP=K(`0x85EBCA77`),CP=K(`0xC2B2AE3D`),wP=K(`0x9E3779B185EBCA87`),TP=K(`0xC2B2AE3D27D4EB4F`),EP=K(`0x165667B19E3779F9`),DP=K(`0x85EBCA77C2B2AE63`),OP=K(`0x27D4EB2F165667C5`),kP=K(`0x165667919E3779F9`),AP=K(`0x9FB21C651E98DF25`),jP=(e=>{let t=e.length;if(t%2!=0)throw Error(`String should have an even number of characters`);let n=t/2,r=new Uint8Array(n),i=0,a=0;for(;a<n;){let t=e.slice(i,i+=2);r[a]=Number.parseInt(t,16),a+=1}return bP(r)})(`b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e`),MP=(K(1)<<K(128))-K(1),NP=(K(1)<<K(64))-K(1),PP=(K(1)<<K(32))-K(1),FP=64,IP=FP/8,LP=8,RP=4;function zP(e){if(!e)throw Error(`Assert failed`)}function BP(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function VP(e){let t=e;return t=(t&K(65535))<<K(16)|(t&K(4294901760))>>K(16),t=(t&K(16711935))<<K(8)|(t&K(4278255360))>>K(8),t}function HP(e,t){return(e&PP)*(t&PP)&NP}function UP(e,t){return(e<<t|e>>K(32)-t)&PP}function WP(e,t,n){for(let r=0;r<IP;r+=1){let i=t.getBigUint64(r*8,!0),a=i^n.getBigUint64(r*8,!0);e[r^1]+=i,e[r]+=HP(a,a>>K(32))}return e}function GP(e,t,n,r){for(let i=0;i<r;i+=1)WP(e,bP(t,i*FP),bP(n,i*8));return e}function KP(e,t){for(let n=0;n<IP;n+=1){let r=t.getBigUint64(n*8,!0),i=e[n];i=rF(i,K(47)),i^=r,i*=xP,e[n]=i&NP}return e}function qP(e,t){return ZP(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(LP,!0))}function JP(e,t,n){let r=n;return r+=qP(e.slice(0),bP(t,0*RP)),r+=qP(e.slice(2),bP(t,4*RP)),r+=qP(e.slice(4),bP(t,8*RP)),r+=qP(e.slice(6),bP(t,12*RP)),eF(r&NP)}function YP(e,t,n,r,i){let a=e,o=Math.floor((n.byteLength-FP)/8),s=FP*o,c=Math.floor((t.byteLength-1)/s);for(let e=0;e<c;e+=1)a=GP(a,bP(t,e*s),n,o),a=i(a,bP(n,n.byteLength-FP));{let e=Math.floor((t.byteLength-1-s*c)/FP);a=GP(a,bP(t,c*s),n,e),a=r(a,bP(t,t.byteLength-FP),bP(n,n.byteLength-FP-7))}return a}function XP(e,t){let n=new BigUint64Array([CP,wP,TP,EP,DP,SP,OP,xP]);zP(e.byteLength>128),n=YP(n,e,t,WP,KP),zP(n.length*8==64);{let r=JP(n,bP(t,11),K(e.byteLength)*wP&NP);return JP(n,bP(t,t.byteLength-FP-11),~(K(e.byteLength)*TP)&NP)<<K(64)|r}}function ZP(e,t){let n=e*t&MP;return n&NP^n>>K(64)}function QP(e,t,n){return ZP((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+n)&NP,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-n)&NP)}function $P(e,t,n,r,i){let a=e&NP,o=e>>K(64)&NP;return a+=QP(t,r,i),a^=n.getBigUint64(0,!0)+n.getBigUint64(8,!0),a&=NP,o+=QP(n,bP(r,16),i),o^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),o&=NP,o<<K(64)|a}function eF(e){let t=e;return t^=t>>K(37),t*=kP,t&=NP,t^=t>>K(32),t}function tF(e){let t=e;return t^=t>>K(33),t*=TP,t&=NP,t^=t>>K(29),t*=EP,t&=NP,t^=t>>K(32),t}function nF(e,t,n){let r=e.byteLength;zP(r>0&&r<=3);let i=K(e.getUint8(r-1))|K(r<<8)|K(e.getUint8(0)<<16)|K(e.getUint8(r>>1)<<24),a=(i^(K(t.getUint32(0,!0))^K(t.getUint32(4,!0)))+n)&NP,o=(K(t.getUint32(8,!0))^K(t.getUint32(12,!0)))-n;return(tF((UP(VP(i),K(13))^o)&NP)&NP)<<K(64)|tF(a)}function rF(e,t){return e^e>>t}function iF(e,t,n){let r=e.byteLength;zP(r>=4&&r<=8);{let i=e.getUint32(0,!0),a=e.getUint32(r-4,!0),o=((K(i)|K(a)<<K(32))^(t.getBigUint64(16,!0)^t.getBigUint64(24,!0))+n&NP)*(wP+(K(r)<<K(2)))&MP;return o+=(o&NP)<<K(65),o&=MP,o^=o>>K(67),rF(rF(o&NP,K(35))*AP&NP,K(28))|eF(o>>K(64))<<K(64)}}function aF(e,t,n){let r=e.byteLength;zP(r>=9&&r<=16);{let i=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+n&NP,a=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-n&NP,o=e.getBigUint64(0,!0),s=e.getBigUint64(r-8,!0),c=(o^s^i)*wP,l=(c&NP)+(K(r-1)<<K(54));c=c&(MP^NP)|l,s^=a,c+=s+(s&PP)*(SP-K(1))<<K(64),c&=MP,c^=BP(c>>K(64));let u=(c&NP)*TP;return u+=(c>>K(64))*TP<<K(64),u&=MP,eF(u&NP)|eF(u>>K(64))<<K(64)}}function oF(e,t){let n=e.byteLength;return zP(n<=16),n>8?aF(e,jP,t):n>=4?iF(e,jP,t):n>0?nF(e,jP,t):tF(t^jP.getBigUint64(64,!0)^jP.getBigUint64(72,!0))|tF(t^jP.getBigUint64(80,!0)^jP.getBigUint64(88,!0))<<K(64)}function sF(e){return~e+K(1)&NP}function cF(e,t,n){let r=K(e.byteLength)*wP&NP,i=K(e.byteLength-1)/K(32);for(;i>=0;){let a=Number(i);r=$P(r,bP(e,16*a),bP(e,e.byteLength-16*(a+1)),bP(t,32*a),n),i-=K(1)}let a=r+(r>>K(64))&NP;a=eF(a);let o=(r&NP)*wP+(r>>K(64))*DP+(K(e.byteLength)-n&NP)*TP;return o&=NP,o=sF(eF(o)),a|o<<K(64)}function lF(e,t,n){let r=K(e.byteLength)*wP&NP;for(let i=32;i<160;i+=32)r=$P(r,bP(e,i-32),bP(e,i-16),bP(t,i-32),n);r=eF(r&NP)|eF(r>>K(64))<<K(64);for(let i=160;i<=e.byteLength;i+=32)r=$P(r,bP(e,i-32),bP(e,i-16),bP(t,3+i-160),n);r=$P(r,bP(e,e.byteLength-16),bP(e,e.byteLength-32),bP(t,103),sF(n));let i=r+(r>>K(64))&NP;i=eF(i);let a=(r&NP)*wP+(r>>K(64))*DP+(K(e.byteLength)-n&NP)*TP;return a&=NP,a=sF(eF(a)),i|a<<K(64)}function uF(e,t=K(0)){let n=new TextEncoder,r=bP(typeof e==`string`?n.encode(e):e),i=r.byteLength;return(e=>e.toString(16).padStart(32,`0`))(i<=16?oF(r,t):i<=128?cF(r,jP,t):i<=240?lF(r,jP,t):XP(r,jP))}function dF(e){return/^[0-9a-f]{32}$/.test(e)}function fF(e,t,n=!0,r=!1){try{return e[t].get()}catch(e){if(e.name===TC.unminifiable_name){if(r)return e;if(n)return null}throw e}}function pF(e,t,n=!0){if(Array.isArray(t)){let r={};for(let i of t)try{r[i]=fF(e,i,!n)}catch(e){if(e.name===TC.unminifiable_name)continue}return r}else return fF(e,t)}function*mF(e,t){if(e.graph===oC.PARENT)throw new EC(`There is no parent graph.`);if(e.goto){let t;t=Array.isArray(e.goto)?e.goto:[e.goto];for(let e of t)if(tC(e))yield[YS,KS,e];else if(typeof e==`string`)yield[YS,`branch:to:${e}`,`__start__`];else throw Error(`In Command.send, expected Send or string, got ${typeof e}`)}if(e.resume)if(typeof e.resume==`object`&&Object.keys(e.resume).length&&Object.keys(e.resume).every(dF))for(let[n,r]of Object.entries(e.resume)){let e=t.filter(e=>e[0]===n&&e[1]===`__resume__`).map(e=>e[2]).slice(0,1)??[];e.push(r),yield[n,BS,e]}else yield[YS,BS,e.resume];if(e.update){if(typeof e.update!=`object`||!e.update)throw Error(`Expected cmd.update to be a dict mapping channel names to update values`);if(Array.isArray(e.update))for(let[t,n]of e.update)yield[YS,t,n];else for(let[t,n]of Object.entries(e.update))yield[YS,t,n]}}function*hF(e,t){if(t!=null)if(Array.isArray(e)&&typeof t==`object`&&!Array.isArray(t))for(let n in t)e.includes(n)&&(yield[n,t[n]]);else if(Array.isArray(e))throw Error(`Input chunk must be an object when "inputChannels" is an array`);else yield[e,t]}function*gF(e,t,n){Array.isArray(e)?(t===!0||t.find(([t,n])=>e.includes(t)))&&(yield pF(n,e)):(t===!0||t.some(([t,n])=>t===e))&&(yield fF(n,e))}function*_F(e,t,n){let r=t.filter(([e,t])=>(e.config===void 0||!e.config.tags?.includes(`langsmith:hidden`))&&t[0][0]!==`__error__`&&t[0][0]!==`__interrupt__`);if(!r.length)return;let i;i=r.some(([e])=>e.writes.some(([e,t])=>e===`__return__`))?r.flatMap(([e])=>e.writes.filter(([e,t])=>e===HS).map(([t,n])=>[e.name,n])):Array.isArray(e)?r.flatMap(([t])=>{let{writes:n}=t,r={};for(let[t]of n)e.includes(t)&&(r[t]=(r[t]||0)+1);return Object.values(r).some(e=>e>1)?n.filter(([t])=>e.includes(t)).map(([e,n])=>[t.name,{[e]:n}]):[[t.name,Object.fromEntries(n.filter(([t])=>e.includes(t)))]]}):r.flatMap(([t])=>t.writes.filter(([t,n])=>t===e).map(([e,n])=>[t.name,n]));let a={};for(let[e,t]of i)e in a||(a[e]=[]),a[e].push(t);let o={};for(let e in a)if(a[e].length===1){let[t]=a[e];o[e]=t}else o[e]=a[e];n&&(o.__metadata__={cached:n}),yield o}var vF=class{func;name;input;retry;cache;timeout;callbacks;__lg_type=`call`;constructor({func:e,name:t,input:n,retry:r,cache:i,timeout:a,callbacks:o}){this.func=e,this.name=t,this.input=n,this.retry=r,this.cache=i,this.timeout=a,this.callbacks=o}};function yF(e){return typeof e==`object`&&!!e&&`__lg_type`in e&&e.__lg_type===`call`}function bF(e,t){return new jx({name:e,first:new JN({func:e=>t(...e),name:e,trace:!1,recurse:!1}),last:new rP([{channel:HS,value:eP}],[WS])})}var xF=e=>e===void 0?1:e+1;function SF(e,t){if(t==null)return!1;for(let n of e)if(t[n])return!0;return!1}function CF(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t=t==null?e[n]:lN(t,e[n]));return t}function wF(e,t,n){let r=lP(e.channel_versions),i=e.versions_seen.__interrupt__??{},a=!1;if((e.channel_versions.__start__??r)>(i.__start__??r))a=!0;else for(let t in e.channel_versions)if(Object.prototype.hasOwnProperty.call(e.channel_versions,t)&&e.channel_versions[t]>(i[t]??r)){a=!0;break}let o=n.some(e=>t===`*`?!e.config?.tags?.includes(WS):t.includes(e.name));return a&&o}function TF(e,t,n,r,i=!1){let a=new Set;if(Array.isArray(r))a=new Set(r.filter(e=>n.writes.some(([t,n])=>t===e)));else{for(let[e]of n.writes)if(e===r){a=new Set([e]);break}a||=new Set}let o;if(i&&a.size>0){let i=Object.fromEntries(Object.entries(t).filter(([e,t])=>a.has(e))),s=new Set;for(let e in i){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let t=i[e];yN(t)&&t.isAvailable()&&s.add(e)}let c=DN(e,i,-1,{channelsToSnapshot:s}),l=wN(i,c);kF(sN(c),l,[n],void 0,void 0),o=pF({...t,...l},r)}else o=pF(t,r);return o}function EF(e,t,n){for(let[e,r]of n)if([`__pregel_push`,`__pregel_tasks`].includes(e)&&r!=null){if(!tC(r))throw new EC(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(r)}`);if(!(r.node in t))throw new EC(`Invalid node name "${r.node}" in Send packet`)}e(n)}var DF=new Set([VS,qS,BS,zS,HS,gS,_S]),OF=new Set(XS);function kF(e,t,n,r,i){let a=new Map;for(let e of n)a.set(e,e.path?.slice(0,3)||[]);n.sort((e,t)=>{let n=a.get(e),r=a.get(t);for(let e=0;e<Math.min(n.length,r.length);e+=1){if(n[e]<r[e])return-1;if(n[e]>r[e])return 1}return n.length-r.length});let o=CN(t),s=!1,c=new Set;for(let t of n){t.triggers.length>0&&(s=!0),e.versions_seen[t.name]??={};for(let n of t.triggers)n in e.channel_versions&&(e.versions_seen[t.name][n]=e.channel_versions[n]),OF.has(n)||c.add(n)}let l=CF(e.channel_versions),u=!1;for(let t of c)t in o&&o[t].consume()&&r!==void 0&&(e.channel_versions[t]=r(l),u=!0);let d={},f={};for(let e of n){let t=e.id??``;for(let[n,r]of e.writes)DF.has(n)||n in o&&(d[n]??=[],d[n].push(r),f[n]??=[],f[n].push(t))}for(let[e,t]of Object.entries(d)){if(t.length<2||o[e]?.lc_graph_name!==`DeltaChannel`)continue;let n=f[e],r=t.map((e,t)=>({val:e,taskId:n[t]}));r.sort((e,t)=>e.taskId<t.taskId?-1:+(e.taskId>t.taskId)),d[e]=r.map(e=>e.val)}l!=null&&r!=null&&(l=u?r(l):l);let p=new Set;for(let[t,n]of Object.entries(d))if(t in o){let i=o[t],a;try{a=i.update(n)}catch(e){if(e.name===EC.unminifiable_name){let r=new EC(`Invalid update for channel "${t}" with values ${JSON.stringify(n)}: ${e.message}`);throw r.lc_error_code=e.lc_error_code,r}else throw e}a&&r!==void 0&&(e.channel_versions[t]=r(l),i.isAvailable()&&p.add(t))}if(s)for(let t in o){if(!Object.prototype.hasOwnProperty.call(o,t))continue;let n=o[t];n.isAvailable()&&!p.has(t)&&n.update([])&&r!==void 0&&(e.channel_versions[t]=r(l),n.isAvailable()&&p.add(t))}if(s&&!SF(p,i))for(let t in o){if(!Object.prototype.hasOwnProperty.call(o,t))continue;let n=o[t];n.finish()&&r!==void 0&&(e.channel_versions[t]=r(l),n.isAvailable()&&p.add(t))}return p}function*AF(e,t,n){if(n.updatedChannels!=null&&n.triggerToNodes!=null){let e=new Set;for(let t of n.updatedChannels){let r=n.triggerToNodes[t];for(let t of r??[])e.add(t)}yield*[...e].sort();return}if(!(()=>{for(let t in e.channel_versions)if(e.channel_versions[t]!==null)return!1;return!0})())for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(yield e)}function jF(e){let t,n=new Map,r=new Set;if(e)for(let[i,a,o]of e){if(i===`00000000-0000-0000-0000-000000000000`&&a===`__resume__`&&t===void 0&&(t=o),a===`__resume__`&&i!==`00000000-0000-0000-0000-000000000000`){let e=n.get(i);e||(e=[],n.set(i,e)),e.push(o)}a!==`__error__`&&r.add(i)}return{nullResume:t,resumeByTaskId:n,successfulWriteTaskIds:r}}function MF(e,t,n,r,i,a,o){let s={},c=o.pendingWritesIndex?o:{...o,pendingWritesIndex:jF(t)},l=r[KS];if(l?.isAvailable()){let o=l.get().length;for(let l=0;l<o;l+=1){let o=NF([qS,l],e,t,n,r,i,a,c);o!==void 0&&(s[o.id]=o)}}for(let o of AF(e,n,c)){let l=NF([JS,o],e,t,n,r,i,a,c);l!==void 0&&(s[l.id]=l)}return s}function NF(e,t,n,r,i,a,o,s){let{step:c,checkpointer:l,manager:u}=s,d=a.configurable??{},f=d.checkpoint_ns??``;if(e[0]===`__pregel_push`&&yF(e[e.length-1])){let p=e[e.length-1],m=bF(p.name,p.func),h=[qS],g=f===``?p.name:`${f}|${p.name}`,_=MC(JSON.stringify([g,c.toString(),p.name,qS,e[1],e[2]]),t.id),v=`${g}:${_}`,y=[...e.slice(0,3),!0],b={langgraph_step:c,langgraph_node:p.name,langgraph_triggers:h,langgraph_path:y,langgraph_checkpoint_ns:v,checkpoint_ns:v};if(o){let e=[],o={checkpointId:t.id,checkpointNs:v,taskId:_,threadId:d.thread_id,runId:a.runId==null?void 0:String(a.runId),nodeAttempt:1};return{name:p.name,input:p.input,proc:m,writes:e,config:{...ru(tu(a,{metadata:b,store:s.store??a.store}),{runName:p.name,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[TS]:_,[bS]:t=>EF(t=>e.push(...t),r,t),[SS]:(n,r=!1)=>TF(t,i,{name:p.name,writes:e,triggers:h,path:y},n,r),[CS]:l??d.__pregel_checkpointer,[IS]:{...d[IS],[f]:t.id},[kS]:LF({pendingWrites:n??[],taskId:_,currentTaskInput:p.input,resumeMap:a.configurable?.[OS],namespaceHash:uF(v),pendingWritesIndex:s.pendingWritesIndex}),[AS]:t.channel_values[US],checkpoint_id:void 0,checkpoint_ns:v}}),executionInfo:o},triggers:h,retry_policy:p.retry,cache_key:p.cache?{key:uF((p.cache.keyFunc??JSON.stringify)([p.input])),ns:[vS,p.name??`__dynamic__`],ttl:p.cache.ttl}:void 0,id:_,path:y,writers:[],timeout:p.timeout}}else return{id:_,name:p.name,interrupts:[],path:y}}else if(e[0]===`__pregel_push`){let p=typeof e[1]==`number`?e[1]:parseInt(e[1],10);if(!i.__pregel_tasks?.isAvailable())return;let m=i[KS].get();if(p<0||p>=m.length)return;let h=$S(m[p])&&!tC(m[p])?new eC(m[p].node,m[p].args,m[p].timeout===void 0?void 0:{timeout:m[p].timeout}):m[p];if(!$S(h)){console.warn(`Ignoring invalid packet ${JSON.stringify(h)} in pending sends.`);return}if(!(h.node in r)){console.warn(`Ignoring unknown node name ${h.node} in pending sends.`);return}let g=[qS],_=f===``?h.node:`${f}|${h.node}`,v=MC(JSON.stringify([_,c.toString(),h.node,qS,p.toString()]),t.id),y=`${_}:${v}`,b={langgraph_step:c,langgraph_node:h.node,langgraph_triggers:g,langgraph_path:e.slice(0,3),langgraph_checkpoint_ns:y,checkpoint_ns:y};if(o){let o=r[h.node],p=o.getNode();if(p!==void 0){o.metadata!==void 0&&(b={...b,...o.metadata});let m=[],_={checkpointId:t.id,checkpointNs:y,taskId:v,threadId:d.thread_id,runId:a.runId==null?void 0:String(a.runId),nodeAttempt:1};return{name:h.node,input:h.args,proc:p,subgraphs:o.subgraphs,writes:m,config:{...ru(tu(a,{metadata:b,tags:o.tags,store:s.store??a.store}),{runName:h.node,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[TS]:v,[bS]:e=>EF(e=>m.push(...e),r,e),[SS]:(n,r=!1)=>TF(t,i,{name:h.node,writes:m,triggers:g,path:e},n,r),[CS]:l??d.__pregel_checkpointer,[IS]:{...d[IS],[f]:t.id},[kS]:LF({pendingWrites:n??[],taskId:v,currentTaskInput:h.args,resumeMap:a.configurable?.[OS],namespaceHash:uF(y),pendingWritesIndex:s.pendingWritesIndex}),[AS]:t.channel_values[US],checkpoint_id:void 0,checkpoint_ns:y}}),executionInfo:_},triggers:g,retry_policy:o.retryPolicy,cache_key:o.cachePolicy?{key:uF((o.cachePolicy.keyFunc??JSON.stringify)([h.args])),ns:[vS,o.name??`__dynamic__`,h.node],ttl:o.cachePolicy.ttl}:void 0,id:v,path:e,writers:o.getWriters(),timeout:h.timeout??o.timeout}}}else return{id:v,name:h.node,interrupts:[],path:e}}else if(e[0]===`__pregel_pull`){let p=e[1].toString(),m=r[p];if(m===void 0)return;if(n?.length){let e=f===``?p:`${f}|${p}`,r=MC(JSON.stringify([e,c.toString(),p,JS,p]),t.id);if(s.pendingWritesIndex?s.pendingWritesIndex.successfulWriteTaskIds.has(r):n.some(e=>e[0]===r&&e[1]!==`__error__`))return}let h=lP(t.channel_versions);if(h===void 0)return;let g=t.versions_seen[p]??{},_=m.triggers.find(e=>i[e].isAvailable()?(t.channel_versions[e]??h)>(g[e]??h):!1);if(_!==void 0){let h=FF(m,i,o);if(h===void 0)return;let g=f===``?p:`${f}|${p}`,v=MC(JSON.stringify([g,c.toString(),p,JS,[_]]),t.id),y=`${g}:${v}`,b={langgraph_step:c,langgraph_node:p,langgraph_triggers:[_],langgraph_path:e,langgraph_checkpoint_ns:y,checkpoint_ns:y};if(o){let o=m.getNode();if(o!==void 0){m.metadata!==void 0&&(b={...b,...m.metadata});let g=[],x={checkpointId:t.id,checkpointNs:y,taskId:v,threadId:d.thread_id,runId:a.runId==null?void 0:String(a.runId),nodeAttempt:1};return{name:p,input:h,proc:o,subgraphs:m.subgraphs,writes:g,config:{...ru(tu(a,{metadata:b,tags:m.tags,store:s.store??a.store}),{runName:p,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[TS]:v,[bS]:e=>EF(e=>{g.push(...e)},r,e),[SS]:(n,r=!1)=>TF(t,i,{name:p,writes:g,triggers:[_],path:e},n,r),[CS]:l??d.__pregel_checkpointer,[IS]:{...d[IS],[f]:t.id},[kS]:LF({pendingWrites:n??[],taskId:v,currentTaskInput:h,resumeMap:a.configurable?.[OS],namespaceHash:uF(y),pendingWritesIndex:s.pendingWritesIndex}),[AS]:t.channel_values[US],checkpoint_id:void 0,checkpoint_ns:y}}),executionInfo:x},triggers:[_],retry_policy:m.retryPolicy,cache_key:m.cachePolicy?{key:uF((m.cachePolicy.keyFunc??JSON.stringify)([h])),ns:[vS,m.name??`__dynamic__`,p],ttl:m.cachePolicy.ttl}:void 0,id:v,path:e,writers:m.getWriters(),timeout:m.timeout}}}else return{id:v,name:p,interrupts:[],path:e}}}}function PF(e,t,n,r,i,a,o,s,c){let{step:l,checkpointer:u,manager:d}=c,f=a[t];if(f===void 0)return;let p=f.getNode();if(p===void 0)return;let m=s.configurable??{},h=m.checkpoint_ns??``,g=[qS],_=h===``?t:`${h}|${t}`,v=MC(JSON.stringify([_,l.toString(),t,qS,`node_error_handler`,e.id]),r.id),y=`${_}:${v}`,b=[qS,String(e.name),t,!1],x={langgraph_step:l,langgraph_node:t,langgraph_triggers:g,langgraph_path:b,langgraph_checkpoint_ns:y,checkpoint_ns:y};f.metadata!==void 0&&(x={...x,...f.metadata});let S=[],ee={checkpointId:r.id,checkpointNs:y,taskId:v,threadId:m.thread_id,runId:s.runId==null?void 0:String(s.runId),nodeAttempt:1};return{name:t,input:e.input,proc:p,subgraphs:f.subgraphs,writes:S,config:{...ru(tu(s,{metadata:x,tags:f.tags,store:c.store??s.store}),{runName:t,callbacks:d?.getChild(`graph:step:${l}`),configurable:{[TS]:v,[bS]:e=>EF(e=>S.push(...e),a,e),[SS]:(e,n=!1)=>TF(r,o,{name:t,writes:S,triggers:g,path:b},e,n),[CS]:u??m.__pregel_checkpointer,[IS]:{...m[IS],[h]:r.id},[kS]:LF({pendingWrites:i??[],taskId:v,currentTaskInput:e.input,resumeMap:s.configurable?.[OS],namespaceHash:uF(y)}),[AS]:r.channel_values[US],[FS]:new vC(String(e.name),n),checkpoint_id:void 0,checkpoint_ns:y}}),executionInfo:ee},triggers:g,retry_policy:f.retryPolicy,cache_key:void 0,id:v,path:b,writers:f.getWriters()}}function FF(e,t,n){let r;if(typeof e.channels==`object`&&!Array.isArray(e.channels)){r={};for(let[n,i]of Object.entries(e.channels))if(e.triggers.includes(i))try{r[n]=fF(t,i,!1)}catch(e){if(e.name===TC.unminifiable_name)return;throw e}else if(i in t)try{r[n]=fF(t,i,!1)}catch(e){if(e.name===TC.unminifiable_name)continue;throw e}}else if(Array.isArray(e.channels)){let n=!1;for(let i of e.channels)try{r=fF(t,i,!1),n=!0;break}catch(e){if(e.name===TC.unminifiable_name)continue;throw e}if(!n)return}else throw Error(`Invalid channels type, expected list or dict, got ${e.channels}`);return n&&e.mapper!==void 0&&(r=e.mapper(r)),r}function IF(e,t){if(typeof e.args!=`object`||e.args===null)return e;let n={};for(let[r,i]of Object.entries(e.args)){let e=t[r];(!e||e.lc_graph_name!==`UntrackedValue`)&&(n[r]=i)}return new eC(e.node,n)}function LF({pendingWrites:e,taskId:t,currentTaskInput:n,resumeMap:r,namespaceHash:i,pendingWritesIndex:a}){let o=a?a.nullResume:e.find(([e,t])=>e===`00000000-0000-0000-0000-000000000000`&&t===`__resume__`)?.[2],s={callCounter:0,interruptCounter:-1,resume:(()=>{let n=a?(a.resumeByTaskId.get(t)??[]).flat():e.filter(([e,n])=>e===t&&n===`__resume__`).flatMap(([e,t,n])=>n);if(r!=null&&i in r){let e=r[i];n.push(e)}return n})(),nullResume:o,subgraphCounter:0,currentTaskInput:n,consumeNullResume:()=>{if(s.nullResume)return delete s.nullResume,e.splice(e.findIndex(([e,t])=>e===`00000000-0000-0000-0000-000000000000`&&t===`__resume__`),1),o}};return s}var RF={blue:{start:`\x1B[34m`,end:`\x1B[0m`},green:{start:`\x1B[32m`,end:`\x1B[0m`},yellow:{start:`\x1B[33;1m`,end:`\x1B[0m`}},zF=(e,t)=>`${e.start}${t}${e.end}`;function BF(e){if(e==null)return;let t={};if(e.metadata!=null)for(let[n,r]of Object.entries(e.metadata))dN.has(n)||(t[n]=r);let n=VN(e.tags);return n!=null&&(t.tags=n),Object.keys(t).length>0?t:void 0}function*VF(e){for(let{id:t,name:n,input:r,config:i,triggers:a,writes:o}of e){if(i?.tags?.includes(`langsmith:hidden`))continue;let e={id:t,name:n,input:r,triggers:a,interrupts:o.filter(([e,n])=>e===t&&n===`__interrupt__`).map(([,e])=>e)},s=BF(i);s!=null&&(e.metadata=s),yield e}}function HF(e){return typeof e!=`object`||!e?!1:`$writes`in e&&Array.isArray(e.$writes)}function UF(e){let t={};for(let[n,r]of e){let e=String(n);if(e in t){let n=HF(t[e])?t[e].$writes:[t[e]];n.push(r),t[e]={$writes:n}}else t[e]=r}return t}function*WF(e,t){for(let[{id:n,name:r,config:i},a]of e)i?.tags?.includes(`langsmith:hidden`)||(yield{id:n,name:r,result:UF(a.filter(([e])=>Array.isArray(t)?t.includes(e):e===t)),interrupts:a.filter(e=>e[0]===zS).map(e=>e[1])})}function*GF(e,t,n,r,i,a,o,s){function c(e){let t={};return e.callbacks!=null&&(t.callbacks=e.callbacks),e.configurable!=null&&(t.configurable=e.configurable),e.maxConcurrency!=null&&(t.max_concurrency=e.maxConcurrency),e.metadata!=null&&(t.metadata=e.metadata),e.recursionLimit!=null&&(t.recursion_limit=e.recursionLimit),e.runId!=null&&(t.run_id=e.runId),e.runName!=null&&(t.run_name=e.runName),e.tags!=null&&(t.tags=e.tags),t}let l=e.configurable?.checkpoint_ns,u={};for(let t of i){if(!(t.subgraphs?.length?t.subgraphs:[t.proc]).find(_P))continue;let n=`${t.name}:${t.id}`;l&&(n=`${l}|${n}`),u[t.id]={configurable:{thread_id:e.configurable?.thread_id,checkpoint_ns:n}}}yield{config:c(e),values:pF(t,n),metadata:r,next:i.map(e=>e.name),tasks:KF(i,a,u,s),parentConfig:o?c(o):void 0}}function KF(e,t,n,r){return e.map(e=>{let i=t.find(([t,n])=>t===e.id&&n===`__error__`)?.[2],a=t.filter(([t,n])=>t===e.id&&n===`__interrupt__`).map(([,,e])=>e),o=(()=>{if(i||a.length||!t.length)return;let n=t.findIndex(([t,n])=>t===e.id&&n===`__return__`);if(n>=0)return t[n][2];if(typeof r==`string`)return t.find(([t,n])=>t===e.id&&n===r)?.[2];if(Array.isArray(r)){let n=t.filter(([t,n])=>t===e.id&&r.includes(n)).map(([,e,t])=>[e,t]);return n.length?UF(n):void 0}})();if(i)return{id:e.id,name:e.name,path:e.path,error:i,interrupts:a,result:o};let s=n?.[e.id];return{id:e.id,name:e.name,path:e.path,interrupts:a,...s===void 0?{}:{state:s},result:o}})}function qF(e,t,n){console.log([`${zF(RF.blue,`[${e}:checkpoint]`)}`,`\x1b[1m State at the end of step ${e}:\x1b[0m\n`,JSON.stringify(pF(t,n),null,2)].join(``))}function JF(e,t){let n=t.length;console.log([`${zF(RF.blue,`[${e}:tasks]`)}`,`\x1b[1m Starting step ${e} with ${n} task${n===1?``:`s`}:\x1b[0m\n`,t.map(e=>`- ${zF(RF.green,String(e.name))} -> ${JSON.stringify(e.input,null,2)}`).join(`
|
|
187
|
+
`)].join(``))}function YF(e,t,n){let r={};for(let[e,i]of t)n.includes(e)&&(r[e]||(r[e]=[]),r[e].push(i));console.log([`${zF(RF.blue,`[${e}:writes]`)}`,`\x1b[1m Finished step ${e} with writes to ${Object.keys(r).length} channel${Object.keys(r).length===1?``:`s`}:\x1b[0m\n`,Object.entries(r).map(([e,t])=>`- ${zF(RF.yellow,e)} -> ${t.map(e=>JSON.stringify(e)).join(`, `)}`).join(`
|
|
188
|
+
`)].join(``))}var XF=[`values`,`updates`,`messages`,`tools`,`custom`,`tasks`];function ZF(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&(`source`in t||typeof t.step==`number`)&&!(`values`in t)&&!(`config`in t)}function QF(e){if(!Array.isArray(e)||e.length!==2)return{data:e};let[t,n]=e;if(typeof n!=`object`||!n)return{data:e};let r=n,i=typeof r.langgraph_node==`string`?r.langgraph_node:void 0,a=typeof r.run_id==`string`?r.run_id:void 0;return{data:a!=null&&typeof t==`object`&&t?{...t,run_id:a}:t,node:i}}function $F({namespace:e,mode:t,payload:n,seq:r}){let i=Date.now(),a={type:`event`};switch(t){case`messages`:{let{data:t,node:o}=QF(n);return[{...a,seq:r,method:`messages`,params:{namespace:e,timestamp:i,...o?{node:o}:{},data:t}}]}case`tools`:return[{...a,seq:r,method:`tools`,params:{namespace:e,timestamp:i,data:eI(n)}}];case`checkpoints`:return ZF(n)?[{...a,seq:r,method:`checkpoints`,params:{namespace:e,timestamp:i,data:n}}]:[];case`values`:return[{...a,seq:r,method:`values`,params:{namespace:e,timestamp:i,data:n}}];case`updates`:{let t=tI(n);return[{...a,seq:r,method:`updates`,params:{namespace:e,timestamp:i,...typeof t.node==`string`?{node:t.node}:{},data:t}}]}case`custom`:{let t=typeof n==`object`&&n&&!Array.isArray(n)&&`name`in n?n:{payload:n};return[{...a,seq:r,method:`custom`,params:{namespace:e,timestamp:i,data:t}}]}case`tasks`:return[{...a,seq:r,method:`tasks`,params:{namespace:e,timestamp:i,data:n}}];default:return[]}}function eI(e){if(typeof e!=`object`||!e)return{event:`tool-error`,tool_call_id:``,message:`Unexpected tools payload shape`};let t=e,n=String(t.toolCallId??``);switch(t.event){case`on_tool_start`:return{event:`tool-started`,tool_call_id:n,tool_name:String(t.name??`unknown`),input:t.input};case`on_tool_event`:return{event:`tool-output-delta`,tool_call_id:n,delta:typeof t.data==`string`?t.data:JSON.stringify(t.data??``)};case`on_tool_end`:return{event:`tool-finished`,tool_call_id:n,output:t.output};case`on_tool_error`:{let e=t.error;return{event:`tool-error`,tool_call_id:n,message:typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`?e.message:String(e??`unknown error`)}}default:return{event:`tool-error`,tool_call_id:``,message:`Unknown tool event: ${String(t.event)}`}}}function tI(e){if(typeof e!=`object`||!e)return{values:{}};let t=Object.entries(e);if(t.length===0)return{values:{}};let[n,r]=t[0];return{node:n,values:typeof r==`object`&&r?r:{value:r}}}var nI=class extends cu{_abortController;_innerReader;constructor(e,t){let n=e.getReader(),r=t??new AbortController;super({start(e){return t();function t(){return n.read().then(({done:n,value:r})=>{if(n){e.close();return}return e.enqueue(r),t()})}}}),this._abortController=r,this._innerReader=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},rI=class extends cu{modes;controller;passthroughFn;_closed=!1;get closed(){return this._closed}constructor(e){let t,n=new Promise(e=>{t=e});super({start:e=>{t(e)}}),n.then(e=>{this.controller=e}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this._closed||!this.controller||(this.passthroughFn?.(e),this.controller.enqueue(e))}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){try{this.controller?.error(e)}finally{this._closed=!0}}},iI=class extends Kr{name=`StreamToolsHandler`;awaitHandlers=!0;streamFn;runs={};constructor(e){super(),this.streamFn=e}handleToolStart(e,t,n,r,i,a,o,s){if(!a||i&&i.includes(`langsmith:hidden`))return;let c=a.langgraph_checkpoint_ns?.split(`|`)??[],l={ns:c,toolCallId:s,toolName:o??`unknown`,input:t};this.runs[n]=l,this.streamFn([c,`tools`,{event:`on_tool_start`,toolCallId:l.toolCallId,name:l.toolName,input:t}])}handleToolEvent(e,t){let n=this.runs[t];n&&this.streamFn([n.ns,`tools`,{event:`on_tool_event`,toolCallId:n.toolCallId,name:n.toolName,data:e}])}handleToolEnd(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,`tools`,{event:`on_tool_end`,toolCallId:n.toolCallId,name:n.toolName,output:e}])}handleToolError(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,`tools`,{event:`on_tool_error`,toolCallId:n.toolCallId,name:n.toolName,error:e}])}};function aI(e){return JSON.stringify(e,function(e,t){let n=this[e];if(typeof n==`object`&&n&&`toDict`in n&&typeof n.toDict==`function`){let{type:e,data:t}=n.toDict();return{...t,type:e}}return t})}function oI(e){return e instanceof Error?{error:e.name,message:e.message}:{error:`Error`,message:JSON.stringify(e)}}function sI(e){return typeof e!=`object`||!e?!1:`configurable`in e&&typeof e.configurable==`object`&&e.configurable!=null}function cI(e){return!sI(e)||!e.configurable.thread_id?null:{thread_id:e.configurable.thread_id,checkpoint_ns:e.configurable.checkpoint_ns||``,checkpoint_id:e.configurable.checkpoint_id||null,checkpoint_map:e.configurable.checkpoint_map||null}}function lI(e){if(sI(e)){let t=Object.fromEntries(Object.entries(e.configurable).filter(([e])=>!e.startsWith(`__`))),n={...e,configurable:t};return delete n.callbacks,n}return e}function uI(e){let t={...e,checkpoint:cI(e.config),parent_checkpoint:cI(e.parentConfig),config:lI(e.config),parent_config:lI(e.parentConfig),tasks:e.tasks.map(e=>{if(sI(e.state)){let t=cI(e.state);if(t!=null){let n={...e,checkpoint:t};return delete n.state,n}}return e})};return delete t.parentConfig,t}function dI(e){let t=new TextEncoder;return new ReadableStream({async start(n){let r=e=>{n.enqueue(t.encode(`event: ${e.event}\ndata: ${aI(e.data)}\n\n`))};try{for await(let t of e){let[e,n,i]=t,a=i;if(n===`debug`){let e=i;e.type===`checkpoint`&&(a={...e,payload:uI(e.payload)})}n===`checkpoints`&&(a=uI(i)),r({event:e?.length?`${n}|${e.join(`|`)}`:n,data:a})}}catch(e){r({event:`error`,data:oI(e)})}n.close()}})}function fI(...e){return new rI({passthroughFn:t=>{let n=t[1]===`checkpoints`&&ZF(t[2]);for(let r of e)(r.modes.has(t[1])||n)&&r.push(t)},modes:new Set(e.flatMap(e=>Array.from(e.modes)))})}var pI=class{checkpointId;#e=new Set;constructor(e){this.checkpointId=e}#t(e){let t=e.includes(`:`)?e.slice(0,e.lastIndexOf(`:`)):e;return this.#e.has(t)?!1:(this.#e.add(t),!0)}async getCheckpoint(e,t,n){if(this.#t(e)){let e=[];for await(let r of t.list(n,{before:{configurable:{checkpoint_id:this.checkpointId}},limit:1}))e.push(r);return e.length>0?e[0]:void 0}return await t.getTuple(n)??void 0}},mI=Symbol.for(`INPUT_DONE`),hI=Symbol.for(`INPUT_RESUMING`),gI=25;function _I(e){if(!(typeof e!=`object`||!e)){if(ut.isInstance(e)){let t=e;t.id??(t.id=Er(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)_I(t);return}}}function vI(e){return e===void 0||e===``?[]:e.split(`|`)}function yI(e){if(!e)return[];let t=``;for(let n of Object.keys(e))n!==``&&n.length>t.length&&(t=n);return vI(t)}var bI=class extends _N{cache;queue=Promise.resolve();constructor(e){super(),this.cache=e}async get(e){return this.enqueueOperation(`get`,e)}async set(e){return this.enqueueOperation(`set`,e)}async clear(e){return this.enqueueOperation(`clear`,e)}async stop(){await this.queue}enqueueOperation(e,...t){let n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>void 0,()=>void 0),n}},xI=class e{input;output;config;checkpointer;checkpointerGetNextVersion;channels;checkpoint;checkpointIdSaved;_exitDeltaWrites;_deltaChannelsWithOverwrite=new Set;_hasPersistedParent=!1;_initialCheckpointConfig;checkpointConfig;checkpointMetadata;checkpointNamespace;checkpointPendingWrites=[];checkpointPreviousVersions;step;stop;durability;outputKeys;streamKeys;nodes;skipDoneTasks;prevCheckpointConfig;updatedChannels;status=`pending`;control;tasks={};stream;checkpointerPromises=new Set;isNested;resumeAtHead;_checkpointerChainedPromise=Promise.resolve();_trackCheckpointerPromise(e){let t=e.then(e=>(this.checkpointerPromises.delete(t),e),e=>{throw e});this.checkpointerPromises.add(t)}async _awaitCheckpointerPromises(){await Promise.all([...this.checkpointerPromises])}store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let e=!1;if(`__start__`in this.checkpoint.channel_versions)e=!0;else for(let t in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,t)){e=!0;break}let t=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,n=this.input===null||this.input===void 0,r=sC(this.input)&&this.input.resume!=null,i=this.input===hI,a=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return e&&(t||n||r||i||a)}get isReplaying(){return!this.skipDoneTasks}constructor(e){this.input=e.input,this.checkpointer=e.checkpointer,this.checkpointer===void 0?this.checkpointerGetNextVersion=xF:this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer),this.checkpoint=e.checkpoint,this.checkpointMetadata=e.checkpointMetadata,this.checkpointPreviousVersions=e.checkpointPreviousVersions,this.channels=e.channels,this.checkpointPendingWrites=e.checkpointPendingWrites,this.step=e.step,this.stop=e.stop,this.config=e.config,this.checkpointConfig=e.checkpointConfig,this.isNested=e.isNested,this.resumeAtHead=e.resumeAtHead,this.manager=e.manager,this.outputKeys=e.outputKeys,this.streamKeys=e.streamKeys,this.nodes=e.nodes,this.skipDoneTasks=e.skipDoneTasks,this.store=e.store,this.cache=e.cache?new bI(e.cache):void 0,this.stream=e.stream,this.checkpointNamespace=e.checkpointNamespace,this.prevCheckpointConfig=e.prevCheckpointConfig,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.durability=e.durability,this.debug=e.debug,this.triggerToNodes=e.triggerToNodes,this.control=this.config.control,this._exitDeltaWrites=this.durability===`exit`&&this.checkpointer!=null?[]:void 0,this._hasPersistedParent=e.hasPersistedParent??!1,this._initialCheckpointConfig=e.checkpointConfig,this.checkpointIdSaved=e.checkpoint.id}static async initialize(t){let{config:n,stream:r}=t;r!==void 0&&n.configurable?.__pregel_stream!==void 0&&(r=fI(r,n.configurable[ES]));let i=!n.configurable||!(`checkpoint_id`in n.configurable),a=n.configurable?.[kS];n.configurable&&a&&(a.subgraphCounter>0&&(n=fP(n,{[NS]:[n.configurable[NS],a.subgraphCounter.toString()].join(`|`)})),a.subgraphCounter+=1);let o=n.configurable?.checkpoint_id,s=SS in(n.configurable??{});!s&&n.configurable?.checkpoint_ns!==void 0&&n.configurable?.checkpoint_ns!==``&&(n=fP(n,{checkpoint_ns:``,checkpoint_id:void 0}));let c=n;n.configurable?.checkpoint_id===void 0&&n.configurable?.checkpoint_map!==void 0&&n.configurable?.checkpoint_map?.[n.configurable?.checkpoint_ns]&&(c=fP(n,{checkpoint_id:n.configurable[IS][n.configurable?.checkpoint_ns]}));let l=vI(n.configurable?.checkpoint_ns),u;t.checkpointer?c.configurable?.checkpoint_id?u=await t.checkpointer.getTuple(c):n.configurable?.__pregel_replay_state?(u=await n.configurable[LS].getCheckpoint(n.configurable?.checkpoint_ns??``,t.checkpointer,c),n.configurable&&delete n.configurable[wS]):u=await t.checkpointer.getTuple(c):u=void 0;let d=u!==void 0;u||={config:n,checkpoint:oN(),metadata:{source:`input`,step:-2,parents:{}},pendingWrites:[]},c={...n,...u.config,configurable:{checkpoint_ns:``,...n.configurable,...u.config.configurable}};let f=u.parentConfig,p=sN(u.checkpoint),m={...u.metadata},h=u.pendingWrites??[],g=n.configurable?.checkpoint_ns,_=n.configurable?.[IS];typeof g==`string`&&g!==``&&typeof _==`object`&&_&&g in _&&h.length>0&&(h=h.filter(([,e])=>e!==BS));let v=!1,y=c.configurable?.thread_id,b=c.configurable?.checkpoint_ns??``;t.checkpointer&&o&&typeof y==`string`&&(v=(await t.checkpointer.getTuple({configurable:{thread_id:y,checkpoint_ns:b}}))?.config.configurable?.checkpoint_id===o&&m.source!==`update`&&m.source!==`fork`);let x=await ON(t.channelSpecs,p,{saver:t.checkpointer,config:c}),S=(m.step??0)+1,ee=S+(n.recursionLimit??gI)+1,C={...p.channel_versions},te=t.store?new gN(t.store):void 0;return te&&await te.start(),new e({input:t.input,config:n,checkpointer:t.checkpointer,checkpoint:p,checkpointMetadata:m,checkpointConfig:c,prevCheckpointConfig:f,checkpointNamespace:l,channels:x,isNested:s,resumeAtHead:v,manager:t.manager,skipDoneTasks:i,step:S,stop:ee,checkpointPreviousVersions:C,checkpointPendingWrites:h,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:r,store:te,cache:t.cache,interruptAfter:t.interruptAfter,interruptBefore:t.interruptBefore,durability:t.durability,debug:t.debug,triggerToNodes:t.triggerToNodes,hasPersistedParent:d})}_checkpointerPutAfterPrevious(e){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(e.config,e.checkpoint,e.metadata,e.newVersions)),this._trackCheckpointerPromise(this._checkpointerChainedPromise)}putWrites(e,t){let n=t;if(n.length===0)return;n.every(([e])=>e in uN)&&(n=Array.from(new Map(n.map(e=>[e[0],e])).values()));let r=!1;for(let e in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,e)&&this.channels[e].lc_graph_name===`UntrackedValue`){r=!0;break}let i=n;r&&(i=n.filter(([e])=>{let t=this.channels[e];return!t||t.lc_graph_name!==`UntrackedValue`}).map(([e,t])=>e===`__pregel_tasks`&&tC(t)?[e,IF(t,this.channels)]:[e,t])),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(t=>t[0]!==e);for(let[t,n]of i)this.checkpointPendingWrites.push([e,t,n]);for(let[e,t]of i){let n=this.channels[e];n!=null&&yN(n)&&_I(t)}let a=fP(this.checkpointConfig,{[NS]:this.config.configurable?.checkpoint_ns??``,[MS]:this.checkpoint.id});if(this.durability!==`exit`&&this.checkpointer!=null&&this._trackCheckpointerPromise(this.checkpointer.putWrites(a,i,e)),this.tasks&&this._outputWrites(e,n),!t.length||!this.cache||!this.tasks)return;let o=this.tasks[e];o==null||o.cache_key==null||t[0][0]===`__error__`||t[0][0]===`__interrupt__`||this.cache.set([{key:[o.cache_key.ns,o.cache_key.key],value:o.writes,ttl:o.cache_key.ttl}])}_outputWrites(e,t,n=!1){let r=this.tasks[e];if(r!==void 0){if(r.config!==void 0&&(r.config.tags??[]).includes(`langsmith:hidden`))return;if(t.length>0)if(t[0][0]===`__interrupt__`){if(r.path?.[0]===`__pregel_push`&&r.path?.[r.path.length-1]===!0)return;let e=t.filter(e=>e[0]===zS).flatMap(e=>e[1]);this._emit([[`updates`,{[zS]:e}],[`values`,{[zS]:e}]])}else t[0][0]!==`__error__`&&this._emit(ZN(YN(_F(this.outputKeys,[[r,t]],n),`updates`)));n||this._emit(ZN(YN(WF([[r,t]],this.streamKeys),`tasks`)))}}async _matchCachedWrites(){if(!this.cache)return[];let e=[],t=([e,t])=>`ns:${e.join(`,`)}|key:${t}`,n=[],r={};for(let e of Object.values(this.tasks))e.cache_key!=null&&!e.writes.length&&(n.push([e.cache_key.ns,e.cache_key.key]),r[t([e.cache_key.ns,e.cache_key.key])]=e);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:n,value:a}of i){let i=r[t(n)];i!=null&&(i.writes.push(...a),e.push({task:i,result:a}))}return e}async tick(e){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:t=[]}=e;if(this.status!==`pending`)throw Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![mI,hI].includes(this.input))await this._first(t);else if(this.toInterrupt.length>0)throw this.status=`interrupt_before`,new gC;else if(Object.values(this.tasks).every(e=>e.writes.length>0)){let e=Object.values(this.tasks),t=e.flatMap(e=>e.writes);this.updatedChannels=kF(this.checkpoint,this.channels,e,this.checkpointerGetNextVersion,this.triggerToNodes);for(let[e,n]of t){let t=this.channels[e];t!=null&&yN(t)&&iC(n)&&this._deltaChannelsWithOverwrite.add(e)}let n=await XN(YN(gF(this.outputKeys,t,this.channels),`values`));if(this._exitDeltaWrites!==void 0)for(let[e,t,n]of this.checkpointPendingWrites){let r=this.channels[t];r!=null&&yN(r)&&this._exitDeltaWrites.push([this.step,e,t,n])}if(this.checkpointPendingWrites=[],await this._putCheckpoint({source:`loop`}),this.durability===`sync`&&await this._awaitCheckpointerPromises(),this._emitValuesWithCheckpointMeta(n),wF(this.checkpoint,this.interruptAfter,e))throw this.status=`interrupt_after`,new gC;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[wS]}else return!1;if(this.step>this.stop)return this.status=`out_of_steps`,!1;this.tasks=MF(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream,triggerToNodes:this.triggerToNodes,updatedChannels:this.updatedChannels});let n=Object.values(this.tasks);if(this.checkpointer&&(this.stream.modes.has(`checkpoints`)||this.stream.modes.has(`debug`))&&this._emit(await XN(YN(GF(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,n,this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),`checkpoints`))),n.length===0)return this.status=`done`,!1;if(this.control!=null&&this.control.drainRequested)return this.status=`draining`,!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[e,t,r]of this.checkpointPendingWrites){if(t===`__error__`||t===`__error_source_node__`||t===`__interrupt__`||t===`__resume__`)continue;let i=n.find(t=>t.id===e);i&&i.writes.push([t,r])}this._resumeErrorHandlersIfApplicable(),n=Object.values(this.tasks);for(let e of n)e.writes.length>0&&this._outputWrites(e.id,e.writes,!0)}if(n.every(e=>e.writes.length>0))return this.tick({inputKeys:t});if(wF(this.checkpoint,this.interruptBefore,n))throw this.status=`interrupt_before`,new gC;if(this.stream.modes.has(`tasks`)||this.stream.modes.has(`debug`)){let e=await XN(YN(VF(n),`tasks`));this._emit(e)}return!0}async finishAndHandleError(e){this.durability===`exit`&&(!this.isNested||e!==void 0||this.checkpointNamespace.every(e=>!e.includes(`:`)))&&(await this._putExitDeltaWrites(),this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let t=this._suppressInterrupt(e);return(t||e===void 0)&&(this.output=pF(this.channels,this.outputKeys)),t&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(e=>e.writes.length>0)&&(this.updatedChannels=kF(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emitValuesWithCheckpointMeta(ZN(YN(gF(this.outputKeys,Object.values(this.tasks).flatMap(e=>e.writes),this.channels),`values`)))),SC(e)&&!e.interrupts.length&&this._emit([[`updates`,{[zS]:[]}],[`values`,{[zS]:[]}]],this.#e())),t}async acceptPush(e,t,n){if(this.interruptAfter?.length>0&&wF(this.checkpoint,this.interruptAfter,[e])){this.toInterrupt.push(e);return}let r=NF([qS,e.path??[],t,e.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,e.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!r)return;if(this.interruptBefore?.length>0&&wF(this.checkpoint,this.interruptBefore,[r])){this.toInterrupt.push(r);return}(this.stream.modes.has(`tasks`)||this.stream.modes.has(`debug`))&&this._emit(ZN(YN(VF([r]),`tasks`))),this.debug&&JF(this.step,[r]),this.tasks[r.id]=r,this.skipDoneTasks&&this._matchWrites({[r.id]:r});let i=await this._matchCachedWrites();for(let{task:e}of i)this._outputWrites(e.id,e.writes,!0);return r}getErrorHandlerNode(e){return this.nodes[e]?.errorHandlerNode}isErrorHandlerNode(e){return this.nodes[e]?.isErrorHandler===!0}scheduleErrorHandler(e,t){let n=this.getErrorHandlerNode(String(e.name));if(!n)return;let r=PF(e,n,t,this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,e.config??this.config,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(r!==void 0)return this.tasks[r.id]=r,this._emit(ZN(YN(VF([r]),`tasks`))),this.debug&&JF(this.step,[r]),r}_resumeErrorHandlersIfApplicable(){let e=new Map;for(let[t,n]of this.checkpointPendingWrites){if(n!==`__error_source_node__`)continue;let r=this.checkpointPendingWrites.find(([e,n])=>e===t&&n===`__error__`);if(r===void 0)continue;let i=r[2],a=Error(i?.message??String(i));i?.name&&(a.name=i.name),e.set(t,a)}for(let[t,n]of e){let e=this.tasks[t];e!==void 0&&this.getErrorHandlerNode(String(e.name))&&(e.writes.length===0&&e.writes.push([gS,{message:n.message,name:n.name}]),this.scheduleErrorHandler(e,n))}}_suppressInterrupt(e){return SC(e)&&!this.isNested}async _first(e){let{configurable:t}=this.config,n=t?.[kS];if(n&&n.nullResume!==void 0&&this.putWrites(YS,[[BS,n.nullResume]]),sC(this.input)){let e=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume==`object`&&Object.keys(this.input.resume).every(dF)&&(this.config.configurable??={},this.config.configurable[OS]=this.input.resume),e&&this.checkpointer==null)throw Error(`Cannot use Command(resume=...) without checkpointer`);let t={};for(let[e,n,r]of mF(this.input,this.checkpointPendingWrites))t[e]??=[],t[e].push([n,r]);if(Object.keys(t).length===0)throw new wC(`Received empty Command input`);for(let[e,n]of Object.entries(t))this.putWrites(e,n)}let r=(this.checkpointPendingWrites??[]).filter(e=>e[0]===YS).map(e=>e.slice(1));r.length>0&&kF(this.checkpoint,this.channels,[{name:hS,writes:r,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=sC(this.input),a=i&&r.length>0,o=this.isReplaying&&(this.isNested&&t?.checkpoint_ns!==void 0&&t?.checkpoint_ns!==``&&t?.checkpoint_map!==void 0&&t.checkpoint_ns in t.checkpoint_map||!(i&&this.input.resume!=null||t?.__pregel_resuming===!0||this.resumeAtHead));o&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(e=>e[1]!==BS));let s=this.isResuming;if(s||a){let e={...this.checkpoint.versions_seen[zS]};for(let t in this.channels)Object.prototype.hasOwnProperty.call(this.channels,t)&&this.checkpoint.channel_versions[t]!==void 0&&(e[t]=this.checkpoint.channel_versions[t]);this.checkpoint.versions_seen[zS]=e,o&&this.checkpointMetadata.source!==`update`&&this.checkpointMetadata.source!==`fork`&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(e=>e[1]!==zS),await this._putCheckpoint({source:`fork`}));let t=await XN(YN(gF(this.outputKeys,!0,this.channels),`values`));s?this.input=hI:a&&(await this._putCheckpoint({source:`input`}),this.input=mI),this._emitValuesWithCheckpointMeta(t)}else{let t=await XN(hF(e,this.input));if(t.length>0){let e=MF(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=kF(this.checkpoint,this.channels,Object.values(e).concat([{name:hS,writes:t,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes);let n=t.filter(([e])=>{let t=this.channels[e];return t!=null&&yN(t)});for(let[e,t]of n)iC(t)&&this._deltaChannelsWithOverwrite.add(e);if(n.length>0)if(this._exitDeltaWrites!==void 0)for(let[e,t]of n)this._exitDeltaWrites.push([this.step,YS,e,t]);else this.checkpointer!=null&&this.putWrites(YS,n);await this._putCheckpoint({source:`input`}),this.input=mI}else if(`__pregel_resuming`in(this.config.configurable??{}))this.input=mI;else throw new wC(`Received no input writes for ${JSON.stringify(e,null,2)}`)}if(!this.isNested){let e;if(o){let t=this.checkpoint.id;(this.checkpointMetadata.source===`update`||this.checkpointMetadata.source===`fork`)&&this.prevCheckpointConfig&&(t=this.prevCheckpointConfig.configurable?.checkpoint_id??t),e=new pI(t)}this.config=fP(this.config,{[wS]:this.isResuming,[LS]:e})}}#e(){let e=this.checkpointNamespace;if(!(e.length===0||e.length===1&&e[0]===``)||this.config.configurable?.__pregel_stream===void 0)return e;let t=yI(this.config.configurable?.[IS]);return t.length>0?t:e}_emit(e,t=this.checkpointNamespace){for(let[n,r]of e)if(this.stream.modes.has(n)&&this.stream.push([t,n,r]),(n===`checkpoints`||n===`tasks`)&&this.stream.modes.has(`debug`)){let e=n===`checkpoints`?this.step-1:this.step,i=new Date().toISOString(),a=n===`checkpoints`?`checkpoint`:typeof r==`object`&&r&&`result`in r?`task_result`:`task`;this.stream.push([t,`debug`,{step:e,type:a,timestamp:i,payload:r}])}}_currentCheckpointMeta(){if(!this.checkpointMetadata||!this.checkpoint?.id)return;let e=this.prevCheckpointConfig?.configurable?.checkpoint_id;return{checkpoint:{id:this.checkpoint.id,...e?{parent_id:e}:{},step:this.checkpointMetadata.step,source:this.checkpointMetadata.source}}}_emitValuesWithCheckpointMeta(e){let t=this._currentCheckpointMeta();for(let[n,r]of e)n===`values`&&t?.checkpoint!=null&&!this.stream.modes.has(`checkpoints`)&&this.stream.push([this.checkpointNamespace,`checkpoints`,t.checkpoint]),this.stream.modes.has(n)&&this.stream.push([this.checkpointNamespace,n,r])}_putCheckpoint(e){let t=this.checkpointMetadata===e,n=this.checkpointer!=null&&(this.durability!==`exit`||t),r=e=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=fP(this.checkpointConfig,{[NS]:this.config.configurable?.checkpoint_ns??``});let t={...this.checkpoint.channel_versions},n=uP(this.checkpointPreviousVersions,t);this.checkpointPreviousVersions=t,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:sN(e),metadata:{...this.checkpointMetadata},newVersions:n}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}},i;if(t)i={...this.checkpointMetadata.counters_since_delta_snapshot??{}};else{let t=this.checkpointMetadata.counters_since_delta_snapshot??{};i={};let n=this.updatedChannels??new Set;for(let e in this.channels){if(!Object.prototype.hasOwnProperty.call(this.channels,e)||!yN(this.channels[e]))continue;let[r,a]=t[e]??[0,0];i[e]=[n.has(e)?r+1:r,a+1]}this.checkpointMetadata={...e,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}}let a=n?EN(this.channels,i):new Set;if(n)for(let e of this._deltaChannelsWithOverwrite)a.add(e);this.checkpoint=DN(this.checkpoint,n?this.channels:void 0,this.step,{id:t?this.checkpoint.id:void 0,channelsToSnapshot:a,updatedChannels:this.updatedChannels,getNextVersion:n?e=>this.checkpointerGetNextVersion(e):void 0});for(let e of a)i[e]=[0,0],this._deltaChannelsWithOverwrite.delete(e);let o={};for(let e in i){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let[t,n]=i[e];(t!==0||n!==0)&&(o[e]=[t,n])}Object.keys(o).length>0?this.checkpointMetadata.counters_since_delta_snapshot=o:delete this.checkpointMetadata.counters_since_delta_snapshot,n&&r(this.checkpoint),t||(this.step+=1)}async _putExitDeltaWrites(){if(this._exitDeltaWrites===void 0||this._exitDeltaWrites.length===0||this.checkpointer==null||this._initialCheckpointConfig===void 0)return;let e=this.checkpointMetadata.counters_since_delta_snapshot??{},t=EN(this.channels,e);for(let e of this._deltaChannelsWithOverwrite)t.add(e);let n=this._exitDeltaWrites.filter(([,,e])=>!t.has(e));if(n.length===0)return;let r;if(this._hasPersistedParent)r=this._initialCheckpointConfig;else{let e=oN();e.id=this.checkpointIdSaved??e.id,e.ts=new Date().toISOString();let t=fP(this._initialCheckpointConfig,{[MS]:void 0});r=fP(this._initialCheckpointConfig,{[MS]:e.id}),this._trackCheckpointerPromise(this.checkpointer.put(t,e,{source:`loop`,step:-2,parents:{}},{})),this.checkpointConfig=r}let i=fP(r,{[NS]:this.config.configurable?.checkpoint_ns??``,[MS]:r.configurable?.[MS]}),a=new Map,o=[];for(let[e,t,r,i]of n){let n=`${e}\u0000${t}`,s=a.get(n);s===void 0&&(s=[],a.set(n,s),o.push({key:n,step:e,tid:t})),s.push([r,i])}for(let{key:e,step:t,tid:n}of o){let r=TN(t,n);this._trackCheckpointerPromise(this.checkpointer.putWrites(i,a.get(e),r))}}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let e=fP(this.checkpointConfig,{[NS]:this.config.configurable?.checkpoint_ns??``,[MS]:this.checkpoint.id}),t={};for(let[e,n,r]of this.checkpointPendingWrites)t[e]??=[],t[e].push([n,r]);for(let[n,r]of Object.entries(t))this._trackCheckpointerPromise(this.checkpointer.putWrites(e,r,n))}_matchWrites(e){for(let[t,n,r]of this.checkpointPendingWrites){if(n===`__error__`||n===`__interrupt__`||n===`__resume__`)continue;let i=Object.values(e).find(e=>e.id===t);i&&i.writes.push([n,r])}for(let t of Object.values(e))t.writes.length>0&&this._outputWrites(t.id,t.writes,!0)}};function SI(e){return wt(e?.message)}function CI(e,t,n){if(!e)return;let r=e.langgraph_checkpoint_ns,i=e.checkpoint_ns,a=r??i;if(a)return[a.split(`|`),{tags:t,name:n,...e}]}var wI=class extends Kr{name=`StreamMessagesHandler`;streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,n,r=!1){if(r&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let i=t.id;n!=null&&(jt(t)?i??=`run-${n}-tool-${t.tool_call_id}`:((i==null||i===`run-${n}`)&&(i=this.stableMessageIdMap[n]??i??`run-${n}`),this.stableMessageIdMap[n]??=i)),i!==t.id&&(t.id=i,t.lc_kwargs.id=i),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],`messages`,[t,e[1]]])}handleChatModelStart(e,t,n,r,i,a,o,s){o&&(!a||!a.includes(`langsmith:nostream`)&&!a.includes(`nostream`))&&(this.metadatas[n]=CI(o,a,s))}handleLLMNewToken(e,t,n,r,i,a){let o=a?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(SI(o)?this._emit(this.metadatas[n],o.message,n):this._emit(this.metadatas[n],new un({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];wt(n?.message)&&this._emit(this.metadatas[t],n?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,n,r,i,a,o,s){if(a!==void 0&&s===a.langgraph_node&&(i===void 0||!i.includes(`langsmith:hidden`))&&(this.metadatas[n]=CI(a,i,s),typeof t==`object`)){for(let e of Object.values(t))if((wt(e)||Tt(e))&&e.id!==void 0)this.seen[e.id]=e;else if(Array.isArray(e))for(let t of e)(wt(t)||Tt(t))&&t.id!==void 0&&(this.seen[t.id]=t)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(wt(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let r of e)wt(r)&&this._emit(n,r,t,!0);else if(typeof e==`object`&&e){for(let r of Object.values(e))if(wt(r))this._emit(n,r,t,!0);else if(Array.isArray(r))for(let e of r)wt(e)&&this._emit(n,e,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};function TI(e){if(`response_metadata`in e&&typeof e.response_metadata==`object`&&e.response_metadata!=null)return e.response_metadata}function EI(e){if(`usage_metadata`in e&&typeof e.usage_metadata==`object`&&e.usage_metadata!=null)return e.usage_metadata}function DI(e){switch(e.type){case`text`:return{type:`text`,text:``};case`reasoning`:return{type:`reasoning`,reasoning:``};case`tool_call`:case`tool_call_chunk`:return{type:`tool_call_chunk`,...e.id==null?{}:{id:e.id},...e.name==null?{}:{name:e.name},args:``};default:return e}}function OI(e){switch(e.type){case`text`:{let t=typeof e.text==`string`?e.text:``;return t.length>0?{event:`content-block-delta`,index:typeof e.index==`number`?e.index:0,delta:{type:`text-delta`,text:t}}:void 0}case`reasoning`:{let t=typeof e.reasoning==`string`?e.reasoning:``;return t.length>0?{event:`content-block-delta`,index:typeof e.index==`number`?e.index:0,delta:{type:`reasoning-delta`,reasoning:t}}:void 0}case`tool_call_chunk`:return{event:`content-block-delta`,index:typeof e.index==`number`?e.index:0,delta:{type:`block-delta`,fields:{...e,type:`tool_call_chunk`}}};default:return}}var kI=class extends Kr{name=`StreamProtocolMessagesHandler`;streamFn;metadatas={};seen={};streamedRunIds=new Set;stableMessageIdMap={};lc_prefer_chat_model_stream_events=!0;awaitHandlers=!0;constructor(e){super(),this.streamFn=e}normalizeMessageId(e,t){let n=e.id;return t!=null&&(Ot.isInstance(e)?n??=`run-${t}-tool-${e.tool_call_id}`:((n==null||n===`run-${t}`)&&(n=this.stableMessageIdMap[t]??n??`run-${t}`),this.stableMessageIdMap[t]??=n)),n!==e.id&&(e.id=n,e.lc_kwargs.id=n),e.id!=null&&(this.seen[e.id]=e),e.id}emit(e,t,n){let r=n==null?e[1]:{...e[1],run_id:n};this.streamFn([e[0],`messages`,[t,r]])}emitFinalMessage(e,t,n,r=!1){let i=t.id??(n==null?void 0:this.stableMessageIdMap[n]);if(r&&i!=null&&this.seen[i]!==void 0)return;let a=this.normalizeMessageId(t,n),o=t.type===`human`?`human`:t.type===`system`?`system`:t.type===`tool`?`tool`:`ai`,s=o===`tool`&&Ot.isInstance(t)?t.tool_call_id:void 0;this.emit(e,{event:`message-start`,...a==null?{}:{id:a},...o===`ai`?{}:{role:o},...typeof s==`string`?{tool_call_id:s}:{}},n),(Array.isArray(t.content)?t.content:typeof t.content==`string`&&t.content.length>0?[{type:`text`,text:t.content}]:[]).forEach((t,r)=>{let i=typeof t.index==`number`?t.index:r;this.emit(e,{event:`content-block-start`,index:i,content:DI(t)},n);let a=OI({...t,index:i});a!=null&&this.emit(e,a,n),this.emit(e,{event:`content-block-finish`,index:i,content:t},n)}),this.emit(e,{event:`message-finish`,...EI(t)==null?{}:{usage:EI(t)},...TI(t)==null?{}:{responseMetadata:TI(t)}},n)}handleChatModelStart(e,t,n,r,i,a,o,s){o&&(!a||!a.includes(`langsmith:nostream`)&&!a.includes(`nostream`))&&(this.metadatas[n]=[o.langgraph_checkpoint_ns.split(`|`),{tags:a,name:s,...o}])}handleLLMNewToken(){}handleChatModelStreamEvent(e,t){let n=this.metadatas[t];if(n===void 0)return;let r=e;if(e.event===`message-start`){this.streamedRunIds.add(t);let n=e.id??`run-${t}`;this.seen[n]=!0,this.stableMessageIdMap[t]??=n,e.id??(r={...e,id:n})}this.emit(n,r,t)}handleLLMEnd(e,t){let n=this.metadatas[t];if(n===void 0)return;let r=e.generations?.[0]?.[0],i=ut.isInstance(r?.message)?r.message:void 0;if(i!=null)if(this.streamedRunIds.has(t)){let e=this.normalizeMessageId(i,t);e!=null&&(this.seen[e]=i)}else this.emitFinalMessage(n,i,t,!0);this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleLLMError(e,t){this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleChainStart(e,t,n,r,i,a,o,s){if(a!==void 0&&s===a.langgraph_node&&(i===void 0||!i.includes(`langsmith:hidden`))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split(`|`),{tags:i,name:s,...a}],typeof t==`object`)){for(let e of Object.values(t))if((ut.isInstance(e)||St.isInstance(e))&&e.id!==void 0)this.seen[e.id]=e;else if(Array.isArray(e))for(let t of e)(ut.isInstance(t)||St.isInstance(t))&&t.id!==void 0&&(this.seen[t.id]=t)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n===void 0)return;let r=e=>{ut.isInstance(e)&&!Ot.isInstance(e)&&this.emitFinalMessage(n,e,t,!0)};if(ut.isInstance(e))r(e);else if(Array.isArray(e))for(let t of e)r(t);else if(typeof e==`object`&&e)for(let t of Object.values(e))if(Array.isArray(t))for(let e of t)r(e);else r(t);delete this.stableMessageIdMap[t]}handleChainError(e,t){delete this.metadatas[t],delete this.stableMessageIdMap[t]}},AI=class{active=!0;lastProgress=Date.now();refreshOn;constructor(e){this.refreshOn=e}touch(){this.lastProgress=Date.now()}autoTouch(){this.refreshOn===`auto`&&(this.lastProgress=Date.now())}close(){this.active=!1}},jI=class extends Kr{name=`IdleProgressCallbackHandler`;awaitHandlers=!1;#e;constructor(e){super(),this.#e=e}#t=()=>{this.#e.autoTouch()};handleLLMStart=this.#t;handleChatModelStart=this.#t;handleLLMNewToken=this.#t;handleLLMEnd=this.#t;handleLLMError=this.#t;handleChainStart=this.#t;handleChainEnd=this.#t;handleChainError=this.#t;handleToolStart=this.#t;handleToolEnd=this.#t;handleToolError=this.#t;handleText=this.#t;handleRetrieverStart=this.#t;handleRetrieverEnd=this.#t;handleRetrieverError=this.#t;handleCustomEvent=this.#t};function MI(e,t,n,r){let i=e.configurable??{},a={},o=i[bS];typeof o==`function`&&(a[bS]=e=>{if(t.active)return e&&e.length&&t.autoTouch(),o(e)});let s=i[xS];typeof s==`function`&&(a[xS]=(...e)=>{if(!t.active)throw Error(`Node "${r}" attempt was cancelled after its timeout fired`);return t.autoTouch(),s(...e)});let c={...Object.keys(a).length>0?fP(e,a):e};if(c.heartbeat=()=>{n.idleTimeout!==void 0&&t.touch()},typeof c.writer==`function`){let e=c.writer;c.writer=(n=>{if(t.active)return t.autoTouch(),e(n)})}if((n.refreshOn??`auto`)===`auto`&&n.idleTimeout!==void 0){let e=new jI(t),n=c.callbacks;if(n===void 0)c.callbacks=[e];else if(Array.isArray(n))c.callbacks=[...n,e];else{let t=n.copy();t.addHandler(e,!0),c.callbacks=t}}return c}async function NI(e,t,n,r){let i=new AI(n.refreshOn??`auto`),a=new AbortController,{signal:o,dispose:s}=mP(t.signal,a.signal),c=MI({...t,signal:o},i,n,String(e.name)),l=Date.now(),u=r(c).then(e=>({type:`ok`,value:e}),e=>({type:`err`,error:e})),d,f,p=()=>{d!==void 0&&clearTimeout(d),f!==void 0&&clearTimeout(f)},m=new Promise(e=>{if(n.runTimeout!==void 0&&(d=setTimeout(()=>e({type:`timeout`,kind:`run`}),n.runTimeout)),n.idleTimeout!==void 0){let t=n.idleTimeout,r=()=>{let n=i.lastProgress+t-Date.now();n<=0?e({type:`timeout`,kind:`idle`}):f=setTimeout(r,n)};f=setTimeout(r,t)}}),h;try{h=await Promise.race([u,m])}finally{p()}if(h.type!==`timeout`){let e=Date.now();n.runTimeout!==void 0&&e-l>=n.runTimeout?h={type:`timeout`,kind:`run`}:n.idleTimeout!==void 0&&e-i.lastProgress>=n.idleTimeout&&(h={type:`timeout`,kind:`idle`})}if(h.type===`ok`)return s?.(),h.value;if(h.type===`err`)throw s?.(),h.error;let g=Date.now()-l;throw i.close(),e.writes.splice(0,e.writes.length),a.abort(),s?.(),new CC({node:String(e.name),elapsed:g,kind:h.kind,runTimeout:n.runTimeout,idleTimeout:n.idleTimeout})}var PI=[400,401,402,403,404,405,406,407,409],FI=e=>{if(e.message.startsWith(`Cancel`)||e.message.startsWith(`AbortError`)||e.name===`AbortError`||e.name===`GraphValueError`||e?.code===`ECONNABORTED`)return!1;let t=e?.response?.status??e?.status;return!(t&&PI.includes(+t)||e?.error?.code===`insufficient_quota`)};async function II(e,t,n,r){let i=e.retry_policy??t,a=0,o,s,c=e.config??{};n&&(c=fP(c,n)),c={...c,signal:r};let l=Date.now();for(c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeFirstAttemptTime:l});!r?.aborted;){e.writes.splice(0,e.writes.length),o=void 0;try{s=e.timeout===void 0?await e.proc.invoke(e.input,c):await NI(e,c,e.timeout,t=>e.proc.invoke(e.input,t));break}catch(t){if(o=t,o.pregelTaskId=e.id,bC(o)){let t=c?.configurable?.checkpoint_ns,n=o.command;if(n.graph===t){for(let t of e.writers)await t.invoke(n,c);o=void 0;break}else if(n.graph===oC.PARENT){let e=qN(t);o.command=new oC({...o.command,graph:e})}}if(xC(o)||i===void 0||(a+=1,a>=(i.maxAttempts??3))||!(i.retryOn??FI)(o))break;let n=i.initialInterval??500,r=Math.min(i.maxInterval??128e3,n*(i.backoffFactor??2)**(a-1)),s=i.jitter??!0?r+Math.random()*1e3:r;await new Promise(e=>setTimeout(e,s));let u=o.name??o.constructor.unminifiable_name??o.constructor.name;(i?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${s.toFixed(2)}ms (attempt ${a}) after ${u}: ${o}`),c=fP(c,{[wS]:!0}),c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeAttempt:a+1,nodeFirstAttemptTime:l})}}return{task:e,result:s,error:o,signalAborted:r?.aborted}}var LI=Symbol.for(`promiseAdded`);function RI(){let e={next:()=>void 0,wait:Promise.resolve(LI)};function t(n){e.next=()=>{e.wait=new Promise(t),n(LI)}}return e.wait=new Promise(t),e}var zI=class{nodeFinished;loop;handledExceptions=new WeakSet;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:r,maxConcurrency:i}=e,a=new Set,o,s=new AbortController,c=s.signal,l=t?AbortSignal.timeout(t):void 0,u=Object.values(this.loop.tasks),d=u.filter(e=>e.writes.length===0),{signals:f,disposeCombinedSignal:p}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),m=this._executeTasksWithRetry(d,{signals:f,retryPolicy:n,maxConcurrency:i});for await(let{task:e,error:t,signalAborted:n}of m)this._commit(e,t),!(t!==void 0&&this.handledExceptions.has(t))&&(SC(t)||xC(t)&&!SC(o)?o=t:t&&(a.size===0||!n)&&(s.abort(),a.add(t)));if(p?.(),r?.(this.loop.step,u.map(e=>e.writes).flat()),a.size===1)throw Array.from(a)[0];if(a.size>1)throw AggregateError(Array.from(a),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(SC(o)||hC(o)||xC(o)&&this.loop.isNested)throw o}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let r=this.loop.config.configurable?.__pregel_abort_signals??{},i=r.externalAbortSignal??n,a=t??r.timeoutAbortSignal,{signal:o,dispose:s}=mP(i,a,e),c={externalAbortSignal:i,timeoutAbortSignal:a,composedAbortSignal:o};return this.loop.config=fP(this.loop.config,{[RS]:c}),{signals:c,disposeCombinedSignal:s}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:r,signals:i}=t??{},a=RI(),o={},s={executingTasksMap:o,barrier:a,retryPolicy:n,scheduleTask:async(e,t,n)=>this.loop.acceptPush(e,t,n)};if(i?.composedAbortSignal?.aborted)throw Error(`Abort`);let c=0,l,u=mP(i?.externalAbortSignal,i?.timeoutAbortSignal),d=u.signal?new Promise((e,t)=>{l=()=>t(Error(`Abort`)),u.signal?.addEventListener(`abort`,l,{once:!0})}):void 0;for(;(c===0||Object.keys(o).length>0)&&e.length;){for(;Object.values(o).length<(r??e.length)&&c<e.length;c+=1){let t=e[c];o[t.id]=II(t,n,{[xS]:BI?.bind(s,this,t)},i?.composedAbortSignal).catch(e=>({task:t,error:e,signalAborted:i?.composedAbortSignal?.aborted}))}let t=await Promise.race([...Object.values(o),...d?[d]:[],a.wait]);if(t===LI)continue;let f=t,{task:p,error:m}=f;if(m!==void 0&&!xC(m)&&!this.loop.isErrorHandlerNode(String(p.name))&&this.loop.getErrorHandlerNode(String(p.name))!==void 0){let e=this.loop.scheduleErrorHandler(p,m);e!==void 0&&(o[e.id]=II(e,n,{[xS]:BI?.bind(s,this,e)},i?.composedAbortSignal).catch(t=>({task:e,error:t,signalAborted:i?.composedAbortSignal?.aborted})),a.next())}yield f,l!=null&&(u.signal?.removeEventListener(`abort`,l),u.dispose?.()),delete o[t.task.id]}}_shouldRouteToErrorHandler(e){let t=String(e.name);return!this.loop.isErrorHandlerNode(t)&&this.loop.getErrorHandlerNode(t)!==void 0}_commit(e,t){if(t!==void 0)if(SC(t)){if(t.interrupts.length){let n=t.interrupts.map(e=>[zS,e]),r=e.writes.filter(e=>e[0]===BS);r.length&&n.push(...r),this.loop.putWrites(e.id,n)}}else hC(t)?e.writes.length&&this.loop.putWrites(e.id,e.writes):xC(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):(e.writes.push([gS,{message:t.message,name:t.name}]),this._shouldRouteToErrorHandler(e)&&(e.writes.push([_S,String(e.name)]),this.handledExceptions.add(t)),this.loop.putWrites(e.id,e.writes));else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes(`langsmith:hidden`))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([VS,null]),this.loop.putWrites(e.id,e.writes)}};async function BI(e,t,n,r,i,a={}){let o=t.config?.configurable?.[kS];if(!o)throw Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let s=o.callCounter;o.callCounter+=1;let c=new vF({func:n,name:r,input:i,cache:a.cache,retry:a.retry,timeout:a.timeout,callbacks:a.callbacks}),l=await this.scheduleTask(t,s,c);if(!l)return;let u=this.executingTasksMap[l.id];if(u!==void 0)return u;if(l.writes.length>0){let e=l.writes.filter(([e])=>e===HS),t=l.writes.filter(([e])=>e===gS);if(e.length>0){if(e.length===1)return Promise.resolve(e[0][1]);throw Error(`BUG: multiple returns found for task ${l.name}__${l.id}`)}if(t.length>0){if(t.length===1){let e=t[0][1],n=e instanceof Error?e:Error(String(e));return Promise.reject(n)}throw Error(`BUG: multiple errors found for task ${l.name}__${l.id}`)}return}else{let t=II(l,a.retry,{[xS]:BI.bind(this,e,l)});return this.executingTasksMap[l.id]=t,this.barrier.next(),t.then(({result:e,error:t})=>t?Promise.reject(t):e)}}var VI=Symbol.for(`langgraph.stream_channel`),HI=class e{[VI]=!0;channelName;#e=[];#t=[];#n=!1;#r;#i;constructor(e){this.channelName=e}static local(){return new e}static remote(t){return new e(t)}static isInstance(e){return typeof e==`object`&&!!e&&VI in e&&e[VI]===!0}push(e){this.#e.push(e),this.#a(),this.#i?.(e)}iterate(e=0){let t=e;return{next:async()=>{for(;;){if(t<this.#e.length)return{value:this.#e[t++],done:!1};if(this.#n){if(this.#r)throw this.#r;return{value:void 0,done:!0}}await new Promise(e=>this.#t.push(e))}}}}toAsyncIterable(e=0){return{[Symbol.asyncIterator]:()=>this.iterate(e)}}toEventStream(e={}){let t=new TextEncoder,n=this.iterate(e.startAt),r=e.event??this.channelName,i=e.serialize??(e=>JSON.stringify(e)??`null`);return new ReadableStream({async pull(e){try{let a=await n.next();if(a.done){e.close();return}let o=[];r!=null&&o.push(`event: ${r}`);for(let e of i(a.value).split(/\r\n|\r|\n/))o.push(`data: ${e}`);e.enqueue(t.encode(`${o.join(`
|
|
189
|
+
`)}\n\n`))}catch(t){e.error(t)}},async cancel(){await n.return?.()}})}get(e){if(e<0||e>=this.#e.length)throw RangeError(`StreamChannel index ${e} out of bounds (size=${this.#e.length})`);return this.#e[e]}get size(){return this.#e.length}get done(){return this.#n}close(){this.#n=!0,this.#a()}fail(e){this.#r=e,this.#n=!0,this.#a()}_wire(e){this.#i=e}_close(){this.close()}_fail(e){this.fail(e)}[Symbol.asyncIterator](){return this.iterate()}#a(){let e=this.#t.splice(0);for(let t of e)t()}};function UI(e){return HI.isInstance(e)}var WI=`custom:`;function GI(e){return`${WI}${e}`}function KI(e){return e!=null&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}var qI=Symbol(`resolveValues`),JI=Symbol(`rejectValues`),YI=class{_events=HI.local();_discoveries=HI.local();#e=0;#t=!1;#n;#r=!1;#i=[];#a=[];#o=[];#s=new Map;#c=new Map;#l=[];#u=[];register(e,t){this.#s.set(ZI(e),t)}addTransformer(e){let t=this._events.size;this.#a.push(e),e.onRegister&&e.onRegister({push:(e,t)=>this.push(e,t)});for(let n=0;n<t;n+=1)e.process(this._events.get(n));this.#t&&(this.#n===void 0?e.finalize?.():e.fail?.(this.#n))}wireChannels(e){for(let[t,n]of Object.entries(e)){if(UI(n)){if(this.#o.push(n),typeof n.channelName!=`string`)continue;let e=GI(n.channelName);n._wire(t=>{this._events.push({type:`event`,seq:this.#e++,method:e,params:{namespace:this.#i,timestamp:Date.now(),data:t}})});continue}KI(n)&&this.#u.push({name:t,promise:Promise.resolve(n)})}}push(e,t){t.method===`values`&&this.#c.set(ZI(e),t.params.data);let n=this.#i;this.#i=e;let r=!0;for(let e of this.#a)e.process(t)||(r=!1);this.#i=n,r&&this._events.push({...t,seq:this.#e++})}close(){this.#t=!0;for(let[e,t]of this.#c.entries()){let n=e?e.split(`\0`):[];this.#s.get(ZI(n))?.[qI](t)}let e=[];for(let t of this.#a){let n=t.finalize?.();n!=null&&typeof n.then==`function`&&e.push(n)}for(let e of this.#o)e._close();let t=this.#u;t.length===0&&e.length===0?(this._events.close(),this._discoveries.close()):Promise.allSettled([...e,...t.map(async({name:e,promise:t})=>{try{let n=await t;this._events.done||this._events.push({type:`event`,seq:this.#e++,method:`custom`,params:{namespace:[],timestamp:Date.now(),data:{name:e,payload:n}}})}catch{}})]).then(()=>{this._events.close(),this._discoveries.close()});for(let e of this.#s.values())e[qI](void 0)}fail(e){this.#t=!0,this.#n=e;for(let t of this.#a)t.fail?.(e);for(let t of this.#o)t._fail(e);this._events.fail(e),this._discoveries.fail(e);for(let t of this.#s.values())t[JI](e)}markInterrupted(e){this.#r=!0,this.#l.push(...e)}get interrupted(){return this.#r}get interrupts(){return this.#l}subscribeEvents(e,t=0){let n=this._events.iterate(t);return{async next(){for(;;){let t=await n.next();if(t.done||QI(t.value.params.namespace,e))return t}}}}};async function XI(e,t){let n=0;try{for await(let r of e){let[e,i,a]=r;if(i===`values`&&aC(a)){let e=a[zS];t.markInterrupted(e.map(e=>({interruptId:e.id??``,payload:e.value})))}let o=$F({namespace:e,mode:i,payload:a,seq:n});n+=o.length;for(let n of o)t.push(e,n)}}catch(e){t.fail(e);return}t.close()}function ZI(e){return e.join(`\0`)}function QI(e,t){if(t.length>e.length)return!1;for(let n=0;n<t.length;n+=1)if(e[n]!==t[n])return!1;return!0}function $I(e,t,n=0){return{[Symbol.asyncIterator](){let r=e.iterate(n);return{async next(){for(;;){let e=await r.next();if(e.done)return{value:void 0,done:!0};if(QI(e.value.namespace,t))return{value:e.value,done:!1}}}}}}}var eL=`root`;function tL(e){if(e.length===0)return eL;let t=e[e.length-1],n=t.indexOf(`:`);return n===-1?t:t.slice(0,n)}function nL(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function rL(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function iL(e){if(!rL(e)||e.event!==`started`)return;let t=e.cause;if(rL(t)&&typeof t.type==`string`)return t}function aL(e){if(rL(e)&&`result`in e&&typeof e.name==`string`&&typeof e.id==`string`&&!e.name.startsWith(`__`))return{name:e.name,id:e.id}}function oL(e={}){let t=e.rootGraphName??eL,n=e.initialStatus??`running`,r=e.emitRootOnRegister??!0,i=e.getGraphName??tL,a=e.serializeError??nL,o=e.getTerminalStatusOverride,s=HI.local(),c=new Map,l=new Map,u=new Map,d=new Map,f=new Set,p=[],m,h=0,g=!1,_=e=>{if(e.length===0)return t;let n=u.get(ZI(e));return typeof n==`string`&&n.length>0?n:i(e)},v=(e,t)=>{let n=ZI(e);if(u.has(n))return;let r=(rL(t)&&rL(t.metadata)?t.metadata:void 0)?.lc_agent_name;u.set(n,typeof r==`string`?r:void 0)},y=e=>{if(!rL(e))return;let t=e.id;if(typeof t!=`string`)return;let n=e.input,r;if(rL(n)&&rL(n.tool_call)){let e=n.tool_call.id;typeof e==`string`&&(r=e)}else if(Array.isArray(n)){for(let e of n)if(rL(e)&&typeof e.id==`string`){r=e.id;break}}r!=null&&d.set(t,r)},b=e=>{if(e.length===0)return;let t=u.get(ZI(e));if(typeof t!=`string`||t.length===0)return;let n=e[e.length-1],r=n.indexOf(`:`);if(r===-1)return;let i=n.slice(r+1);if(i.length===0)return;let a=d.get(i);if(!(typeof a!=`string`||a.length===0))return{type:`toolCall`,tool_call_id:a}},x=e=>l.get(ZI(e))??b(e),S=(e,t,n)=>{let i=ZI(e),a=c.get(i),o=a?.graphName??_(e);if(a!=null&&a.status===t&&a.graphName===o&&n?.error==null)return;a==null?(a={namespace:e,graphName:o,status:t},c.set(i,a)):a.status=t;let l={event:t,graph_name:o,...n?.cause==null?{}:{cause:n.cause},...n?.error==null?{}:{error:n.error}},u=Date.now();if(s.push({namespace:e,timestamp:u,...l}),!(e.length===0&&!r)&&m!=null){h+=1;try{m.push(e,{type:`event`,seq:0,method:`lifecycle`,params:{namespace:e,timestamp:u,data:l}})}finally{--h}}},ee=e=>{let t=ZI(e),n=c.get(t);return n??(n={namespace:e,graphName:_(e),status:void 0},c.set(t,n)),n},C=()=>{if(p.length===0)return;let e=p.splice(0,p.length);for(let t of e){let e=ZI(t.namespace),n=c.get(e);n==null||n.status!==`started`||S(t.namespace,`completed`)}},te=e=>{let t=ZI(e.namespace),n=c.get(t);n==null||n.status!==`started`||p.some(e=>ZI(e.namespace)===t)||p.push(e)},ne=(e,t)=>{for(let n=p.length-1;n>=0;--n){let r=p[n];r.source.type===`node`&&r.source.node===t&&ZI(r.source.parent)===ZI(e)&&p.splice(n,1)}},re=e=>{for(let t=1;t<=e.length;t+=1){let n=e.slice(0,t),r=ZI(n);if(c.has(r))continue;ee(n);let i=x(n);S(n,`started`,i==null?void 0:{cause:i})}},ie=()=>f.size>0?`interrupted`:`completed`,ae=e=>{for(let t of c.values())t.namespace.length!==0&&t.status===`started`&&S(t.namespace,e);S([],e),s.close()},oe=async()=>{if(o==null)return ie();try{return await o()??ie()}catch{return ie()}},se=(e,t)=>{let n=`${t}:`;for(let r of c.values()){if(r.namespace.length!==e.length+1||r.status!==`started`||!QI(r.namespace,e))continue;let i=r.namespace[r.namespace.length-1];if(i===t||i.startsWith(n))return r.namespace}},w=(e,t)=>{let n=[...e,`${t.name}:${t.id}`];return c.get(ZI(n))?.status===`started`?n:void 0};return{__native:!0,init(){return{_lifecycleLog:s,lifecycle:$I(s,[],0)}},onRegister(e){m=e,ee([]),r&&S([],n)},process(e){let t=e.params.namespace;if(h>0)return!0;let n=e.method===`tasks`?aL(e.params.data):void 0;if(n==null?e.method===`tasks`&&(v(t,e.params.data),y(e.params.data)):ne(t,n.name),C(),e.method===`lifecycle`){let n=iL(e.params.data);return n!=null&&l.set(ZI(t),n),re(t),!1}if(re(t),e.method===`input`&&rL(e.params.data)&&e.params.data.event===`requested`){let t=e.params.data.id;typeof t==`string`&&f.add(t)}if(n!=null){let e=w(t,n);e!=null&&te({namespace:e,source:{type:`task`}})}if(e.method===`updates`){let n=e.params.node;if(typeof n==`string`&&!n.startsWith(`__`)){let e=se(t,n);e!=null&&te({namespace:e,source:{type:`node`,parent:t,node:n}})}}return!0},finalize(){if(!g){if(g=!0,C(),o==null){ae(ie());return}return oe().then(ae).catch(e=>{s.fail(e)})}},fail(e){if(g)return;g=!0;let t=a(e);for(let e of c.values())e.namespace.length!==0&&e.status===`started`&&S(e.namespace,`failed`);S([],`failed`,{error:t}),s.fail(e)}}}function sL(e){let t=e;return typeof t.run_id==`string`?`run:${t.run_id}`:e.event===`message-start`&&typeof t.id==`string`?`message:${t.id}`:`__default__`}function cL(e,t){let n=HI.local(),r=new Map,i=new Set;return{init:()=>({messages:n.toAsyncIterable()}),process(a){if(a.method!==`messages`||!QI(a.params.namespace,e)||a.params.namespace.length!==e.length+1||t!==void 0&&a.params.node!==t)return!0;let o=a.params.data;switch(o.event){case`message-start`:{let e=sL(o);if(o.role===`tool`){i.add(e);break}let t=HI.local(),s=Object.assign(new mE(t.toAsyncIterable()),{namespace:a.params.namespace,node:a.params.node});r.set(e,{source:t,stream:s}),t.push(o),n.push(s);break}case`content-block-start`:case`content-block-delta`:case`content-block-finish`:if(i.has(sL(o)))break;r.get(sL(o))?.source.push(o);break;case`message-finish`:{let e=sL(o);if(i.delete(e))break;let t=r.get(e);t&&(t.source.push(o),t.source.close(),r.delete(e));break}case`error`:if(i.has(sL(o)))break;r.get(sL(o))?.source.push(o);break}return!0},finalize(){for(let[e,t]of r)t.source.push({event:`message-finish`}),t.source.close(),r.delete(e);i.clear(),n.close()},fail(e){for(let[t,n]of r)n.source.fail(e),r.delete(t);i.clear(),n.fail(e)}}}function lL(e,t,n=0){let r=t.length+1;return{[Symbol.asyncIterator](){let i=e.iterate(n);return{async next(){for(;;){let e=await i.next();if(e.done)return{value:void 0,done:!0};let{ns:n,stream:a}=e.value;if(n.length===r&&QI(n,t))return{value:a,done:!1}}}}}}}function uL(e,t){let{createStream:n}=t,r=new Set;return{__native:!0,init(){return{_discoveries:e._discoveries,subgraphs:lL(e._discoveries,[],0)}},process(t){let i=t.params.namespace;if(i.length===0)return!0;let a=i.slice(0,1),o=ZI(a);if(r.has(o))return!0;r.add(o);let s=n(a,e._discoveries.size,e._events.size);return e.register(a,s),e._discoveries.push({ns:a,stream:s}),!0}}}function dL(e){let t=HI.local();return{init:()=>({_valuesLog:t}),process(n){return n.method!==`values`||n.params.namespace.length!==e.length||!QI(n.params.namespace,e)||t.push(n.params.data),!0},finalize(){t.close()},fail(e){t.fail(e)}}}function fL(e){return`__native`in e&&e.__native===!0}var pL=Symbol(`setValuesLog`),mL=Symbol(`setMessagesIterable`),hL=Symbol(`setLifecycleIterable`),gL=Symbol(`setSubgraphsIterable`),_L={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},vL=class{path;extensions;_mux;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(e,t,n=0,r=0,i,a){this.path=e,this._mux=t,this.#t=n,this.#e=r,this.extensions=i??{},this.#n=a??new AbortController,this.#a=new Promise((e,t)=>{this.#r=e,this.#i=t}),this.#a.catch(()=>{})}[Symbol.asyncIterator](){return this._mux.subscribeEvents(this.path,this.#e)}get subgraphs(){return this.#l?this.#l:lL(this._mux._discoveries,this.path,this.#t)}get values(){let e=this.#o,t=this.#a,n=this._mux,r=this.#e,i=this.path,a=e?e.toAsyncIterable():{[Symbol.asyncIterator]:()=>{let e=n.subscribeEvents(i,r);return{async next(){for(;;){let t=await e.next();if(t.done)return{value:void 0,done:!0};if(t.value.method===`values`&&t.value.params.namespace.length===i.length)return{value:t.value.params.data,done:!1}}}}}};return{[Symbol.asyncIterator]:()=>a[Symbol.asyncIterator](),then:t.then.bind(t)}}get messages(){if(this.#s)return this.#s;let e=cL(this.path),t=e.init();return this._mux.addTransformer(e),this.#s=t.messages,this.#s}get lifecycle(){return this.#c??_L}messagesFrom(e){let t=cL(this.path,e),n=t.init();return this._mux.addTransformer(t),n.messages}get output(){return this.#a}get interrupted(){return this._mux.interrupted}get interrupts(){return this._mux.interrupts}abort(e){this.#n.abort(e)}get signal(){return this.#n.signal}[qI](e){this.#r?.(e),this.#r=void 0}[JI](e){this.#i?.(e),this.#i=void 0}[pL](e){this.#o=e}[mL](e){this.#s=e}[hL](e){this.#c=e}[gL](e){this.#l=e}},yL=class extends vL{name;index;constructor(e,t,n=0,r=0,i,a){super(e,t,n,r,i,a);let o=e[e.length-1]??``,s=o.lastIndexOf(`:`);if(s>=0){this.name=o.slice(0,s);let e=o.slice(s+1);this.index=/^\d+$/.test(e)?Number(e):0}else this.name=o,this.index=0}};function bL(e,t=[],n){let{abortController:r}=n instanceof AbortController?{abortController:n}:n??{},i=new YI,a=oL(),o=a.init(),s=o._lifecycleLog,c=uL(i,{createStream:(e,t,n)=>{let r=new yL(e,i,t,n);return r[gL](lL(i._discoveries,e,t)),r[hL]($I(s,e,s.size)),r}}),l=c.init();i.addTransformer(c),i.addTransformer(a);let u=dL([]),d=cL([]);i.addTransformer(u),i.addTransformer(d);let f={},p=[];for(let e of t){let t=e();i.addTransformer(t);let n=t.init();fL(t)?p.push(n):Object.assign(f,n),typeof n==`object`&&n&&!fL(t)&&i.wireChannels(n)}let m=new vL([],i,0,0,f,r);for(let e of p)Object.assign(m,e);let h=u.init();m[pL](h._valuesLog);let g=d.init();return m[mL](g.messages),m[hL](o.lifecycle),m[gL](l.subgraphs),i.register([],m),XI(e,i).catch(e=>{}),m}var xL=class extends Error{constructor(e){super(e),this.name=`GraphValidationError`}};function SL({nodes:e,channels:t,inputChannels:n,outputChannels:r,streamChannels:i,interruptAfterNodes:a,interruptBeforeNodes:o}){if(!t)throw new xL(`Channels not provided`);let s=new Set,c=new Set;for(let[t,n]of Object.entries(e)){if(t===`__interrupt__`)throw new xL(`"Node name ${zS} is reserved"`);if(n.constructor===cP)n.triggers.forEach(e=>s.add(e));else throw new xL(`Invalid node type ${typeof n}, expected PregelNode`)}for(let e of s)if(!(e in t))throw new xL(`Subscribed channel '${String(e)}' not in channels`);if(!Array.isArray(n)){if(!s.has(n))throw new xL(`Input channel ${String(n)} is not subscribed to by any node`)}else if(n.every(e=>!s.has(e)))throw new xL(`None of the input channels ${n} are subscribed to by any node`);Array.isArray(r)?r.forEach(e=>c.add(e)):c.add(r),i&&!Array.isArray(i)?c.add(i):Array.isArray(i)&&i.forEach(e=>c.add(e));for(let e of c)if(!(e in t))throw new xL(`Output channel '${String(e)}' not in channels`);if(a&&a!==`*`){for(let t of a)if(!(t in e))throw new xL(`Node ${String(t)} not in nodes`)}if(o&&o!==`*`){for(let t of o)if(!(t in e))throw new xL(`Node ${String(t)} not in nodes`)}}function CL(e,t){if(Array.isArray(e)){for(let n of e)if(!(n in t))throw Error(`Key ${String(n)} not found in channels`)}else if(!(e in t))throw Error(`Key ${String(e)} not found in channels`)}function wL(e){return Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1])}var TL=class e extends xN{lc_graph_name=`Topic`;unique=!1;accumulate=!1;seen;values;constructor(e){super(),this.unique=e?.unique??this.unique,this.accumulate=e?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(t){let n=new e({unique:this.unique,accumulate:this.accumulate});return t===void 0?n:wL(t)?(n.seen=new Set(t[0]),n.values=[...t[1]],n):(n.values=[...t],this.unique&&(n.seen=new Set(n.values)),n)}update(e){let t=!1;this.accumulate||(t=this.values.length>0,this.values=[]);let n=e.flat();if(n.length>0)if(this.unique)for(let e of n)this.seen.has(e)||(t=!0,this.seen.add(e),this.values.push(e));else t=!0,this.values.push(...n);return t}get(){if(this.values.length===0)throw new TC;return this.values}checkpoint(){return this.unique?[[...this.seen],[...this.values]]:[...this.values]}isAvailable(){return this.values.length!==0}};function EL(e){let t=Yl.getRunnableConfig();if(!t)throw Error(`Called interrupt() outside the context of a graph.`);let n=t.configurable;if(!n)throw Error(`No configurable found in config`);if(!n.__pregel_checkpointer)throw new pC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});let r=n[kS];r.interruptCounter+=1;let i=r.interruptCounter;if(r.resume.length>0&&i<r.resume.length)return n[bS]?.([[BS,r.resume]]),r.resume[i];if(r.nullResume!==void 0){if(r.resume.length!==i)throw Error(`Resume length mismatch: ${r.resume.length} !== ${i}`);let e=r.consumeNullResume();return r.resume.push(e),n[bS]?.([[BS,r.resume]]),e}let a=n[NS]?.split(`|`);throw new gC([{id:a?uF(a.join(`|`)):void 0,value:e}])}function DL(e){let t=new TextEncoder;return new ReadableStream({async start(n){try{for await(let r of e){let e=r.params.namespace,i=e.length?`${r.method}|${e.join(`|`)}`:r.method;n.enqueue(t.encode(`event: ${i}\ndata: ${JSON.stringify(r.params.data??{})}\n\n`))}}catch(e){n.enqueue(t.encode(`event: error\ndata: ${JSON.stringify({message:String(e)})}\n\n`))}finally{n.close()}}})}var OL=class{static subscribeTo(e,t){let{key:n,tags:r}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw Error(`Can't specify a key when subscribing to multiple channels`);let i;return i=typeof e==`string`?n?{[n]:e}:[e]:Object.fromEntries(e.map(e=>[e,e])),new cP({channels:i,triggers:Array.isArray(e)?e:[e],tags:r})}static writeTo(e,t){let n=[];for(let t of e)n.push({channel:t,value:eP,skipNone:!1});for(let[e,r]of Object.entries(t??{}))Dx.isRunnable(r)||typeof r==`function`?n.push({channel:e,value:eP,skipNone:!0,mapper:Rx(r)}):n.push({channel:e,value:r,skipNone:!1});return new rP(n)}},kL=class extends Dx{lc_namespace=[`langgraph`,`pregel`];invoke(e,t){throw Error(`Not implemented`)}withConfig(e){return super.withConfig(e)}stream(e,t){return super.stream(e,t)}},AL=class extends kL{static lc_name(){return`LangGraph`}lc_namespace=[`langgraph`,`pregel`];lg_is_pregel=!0;nodes;channels;inputChannels;outputChannels;autoValidate=!0;streamMode=[`values`];streamChannels;interruptAfter;interruptBefore;stepTimeout;debug=!1;checkpointer;retryPolicy;config;store;cache;userInterrupt;streamTransformers;triggerToNodes={};constructor(e){super(e);let{streamMode:t}=e;if(t!=null&&!Array.isArray(t)&&(t=[t]),this.nodes=e.nodes,this.channels=e.channels,`__pregel_tasks`in this.channels&&`lc_graph_name`in this.channels.__pregel_tasks&&this.channels.__pregel_tasks.lc_graph_name!==`Topic`)throw Error(`Channel '${KS}' is reserved and cannot be used in the graph.`);this.channels[KS]=new TL({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.triggerToNodes=e.triggerToNodes??this.triggerToNodes,this.userInterrupt=e.userInterrupt,this.streamTransformers=e.streamTransformers??[],this.autoValidate&&this.validate()}withConfig(e){let{streamTransformers:t,...n}=e,r=tu(this.config,n),i=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:r,streamTransformers:i})}validate(){SL({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[n,r]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let i=r.subgraphs?.length?r.subgraphs:[r.bound];for(let r of i){let i=_P(r);if(i!==void 0){if(n===e){yield[n,i];return}if(e===void 0&&(yield[n,i]),t){let r=e;e!==void 0&&(r=e.slice(n.length+1));for(let[e,a]of i.getSubgraphs(r,t))yield[`${n}|${e}`,a]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:r=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let i=await ON(this.channels,t.checkpoint,{saver:typeof this.checkpointer==`object`?this.checkpointer:void 0,config:t.config??e});if(t.pendingWrites?.length){let e=t.pendingWrites.filter(([e,t])=>e===YS).map(([e,t,n])=>[String(t),n]);e.length>0&&kF(t.checkpoint,i,[{name:hS,writes:e,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(MF(t.checkpoint,t.pendingWrites,this.nodes,i,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),o=await XN(this.getSubgraphsAsync()),s=t.config.configurable?.checkpoint_ns??``,c={};for(let e of a){let r=o.find(([t])=>t===e.name);if(!r)continue;let i=`${String(e.name)}:${e.id}`;if(s&&(i=`${s}|${i}`),n===void 0){let n={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:i}};c[e.id]=n}else{let a={configurable:{[CS]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:i}},o=r[1];c[e.id]=await o.getState(a,{subgraphs:!0})}}if(r&&t.pendingWrites?.length){let e=Object.fromEntries(a.map(e=>[e.id,e]));for(let[n,r,i]of t.pendingWrites)[`__error__`,`__interrupt__`,`__scheduled__`].includes(r)||n in e&&e[n].writes.push([String(r),i]);let n=a.filter(e=>e.writes.length>0);n.length>0&&kF(t.checkpoint,i,n,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let u=a.filter(e=>e.writes.length===0).map(e=>e.name);return{values:pF(i,this.streamChannelsAsIs),next:u,tasks:KF(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:pP(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new pC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});let r=e.configurable?.checkpoint_ns??``;if(r!==``&&e.configurable?.__pregel_read===void 0&&e.configurable?.__pregel_checkpointer===void 0){let i=KN(r);for await(let[r,a]of this.getSubgraphsAsync(i,!0))if(r===i)return await a.getState(QN(e,{[CS]:n}),{subgraphs:t?.subgraphs})}let i=tu(this.config,e),a=await n.getTuple(e);return await this._prepareStateSnapshot({config:i,saved:a,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new pC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});let r=e.configurable?.checkpoint_ns??``;if(r!==``&&e.configurable?.__pregel_checkpointer===void 0){let i=KN(r);for await(let[r,a]of this.getSubgraphsAsync(i,!0))if(r===i){yield*a.getStateHistory(QN(e,{[CS]:n}),t);return}}let i=tu(this.config,e,{configurable:{checkpoint_ns:r}});for await(let e of n.list(i,t))yield this._prepareStateSnapshot({config:e.config,saved:e})}async bulkUpdateState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new pC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});if(t.length===0)throw Error(`No supersteps provided`);if(t.some(e=>e.updates.length===0))throw Error(`No updates provided`);let r=e.configurable?.checkpoint_ns??``;if(r!==``&&e.configurable?.__pregel_checkpointer===void 0){let i=KN(r);for await(let[,r]of this.getSubgraphsAsync(i,!0))return await r.bulkUpdateState(QN(e,{[CS]:n}),t);throw Error(`Subgraph "${i}" not found`)}let i=async(e,t)=>{let r=this.config?tu(this.config,e):e,a=await n.getTuple(r),o=a===void 0?oN():sN(a.checkpoint),s={...a?.checkpoint.channel_versions},c=a?.metadata?.step??-1,l=QN(r,{checkpoint_ns:r.configurable?.checkpoint_ns??``}),u=r.metadata??{};a?.config.configurable&&(l=QN(r,a.config.configurable),u={...a.metadata,...u});let{values:d,asNode:f}=t[0];if(d==null&&f===void 0){if(t.length>1)throw new EC(`Cannot create empty checkpoint with multiple updates`);return pP(await n.put(l,DN(o,void 0,c),{source:`update`,step:c+1,parents:a?.metadata?.parents??{}},{}),a?a.metadata:void 0)}let p=await ON(this.channels,o,{saver:n,config:a?.config??l});if(d===null&&f===`__end__`){if(t.length>1)throw new EC(`Cannot apply multiple updates when clearing state`);if(a){let e=MF(o,a.pendingWrites||[],this.nodes,p,a.config,!0,{step:(a.metadata?.step??-1)+1,checkpointer:n,store:this.store}),t=(a.pendingWrites||[]).filter(e=>e[0]===YS).map(e=>e.slice(1));t.length>0&&kF(o,p,[{name:hS,writes:t,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[t,n,r]of a.pendingWrites||[])[`__error__`,`__interrupt__`,`__scheduled__`].includes(n)||t in e&&e[t].writes.push([n,r]);kF(o,p,Object.values(e),n.getNextVersion.bind(n),this.triggerToNodes)}return pP(await n.put(l,DN(o,p,c),{...u,source:`update`,step:c+1,parents:a?.metadata?.parents??{}},uP(s,o.channel_versions)),a?a.metadata:void 0)}if(f===`__copy__`){if(t.length>1)throw new EC(`Cannot copy checkpoint with multiple updates`);if(a==null)throw new EC(`Cannot copy a non-existent checkpoint`);let e=e=>!Array.isArray(e)||e.length===0?!1:e.every(e=>Array.isArray(e)&&e.length===2),r=DN(o,void 0,c),s=await n.put(a.parentConfig??QN(a.config,{checkpoint_id:void 0}),r,{source:`fork`,step:c+1,parents:a.metadata?.parents??{}},{});if(e(d)){let e=MF(r,a.pendingWrites,this.nodes,p,s,!1,{step:c+2}),t=Object.values(e).reduce((e,{name:t,id:n})=>(e[t]??=[],e[t].push({id:n}),e),{}),n=d.reduce((e,n)=>{let[r,i]=n;e[i]??=[];let a=e[i].length,o=t[i]?.[a]?.id;return e[i].push({values:r,asNode:i,taskId:o}),e},{});return i(pP(s,a.metadata),Object.values(n).flat())}return pP(s,a.metadata)}if(f===`__input__`){if(t.length>1)throw new EC(`Cannot apply multiple updates when updating as input`);let e=await XN(hF(this.inputChannels,d));if(e.length===0)throw new EC(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);kF(o,p,[{name:hS,writes:e,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let r=a?.metadata?.step==null?-1:a.metadata.step+1,i=await n.put(l,DN(o,p,r),{source:`input`,step:r,parents:a?.metadata?.parents??{}},uP(s,o.channel_versions));return await n.putWrites(i,e,MC(hS,o.id)),pP(i,a?a.metadata:void 0)}if(r.configurable?.checkpoint_id===void 0&&a?.pendingWrites!==void 0&&a.pendingWrites.length>0){let e=MF(o,a.pendingWrites,this.nodes,p,a.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(a.metadata?.step??-1)+1}),t=(a.pendingWrites??[]).filter(e=>e[0]===YS).map(e=>e.slice(1));t.length>0&&kF(a.checkpoint,p,[{name:hS,writes:t,triggers:[]}],void 0,this.triggerToNodes);for(let[t,n,r]of a.pendingWrites)[`__error__`,`__interrupt__`,`__scheduled__`].includes(n)||e[t]===void 0||e[t].writes.push([n,r]);let n=Object.values(e).filter(e=>e.writes.length>0);n.length>0&&kF(o,p,n,void 0,this.triggerToNodes)}let m=Object.values(o.versions_seen).map(e=>Object.values(e)).flat().find(e=>!!e),h=[];if(t.length===1){let{values:e,asNode:n,taskId:r}=t[0];if(n===void 0&&Object.keys(this.nodes).length===1)[n]=Object.keys(this.nodes);else if(n===void 0&&m===void 0)typeof this.inputChannels==`string`&&this.nodes[this.inputChannels]!==void 0&&(n=this.inputChannels);else if(n===void 0){let e=Object.entries(o.versions_seen).map(([e,t])=>Object.values(t).map(t=>[t,e])).flat().filter(([e,t])=>t!==zS).sort(([e],[t])=>cN(e,t));e&&(e.length===1?n=e[0][1]:e[e.length-1][0]!==e[e.length-2][0]&&(n=e[e.length-1][1]))}if(n===void 0)throw new EC(`Ambiguous update, specify "asNode"`);h.push({values:e,asNode:n,taskId:r})}else for(let{asNode:e,values:n,taskId:r}of t){if(e==null)throw new EC(`"asNode" is required when applying multiple updates`);h.push({values:n,asNode:e,taskId:r})}let g=[];for(let{asNode:e,values:t,taskId:n}of h){if(this.nodes[e]===void 0)throw new EC(`Node "${e.toString()}" does not exist`);let r=this.nodes[e].getWriters();if(!r.length)throw new EC(`No writers found for node "${e.toString()}"`);g.push({name:e,input:t,proc:r.length>1?jx.from(r,{omitSequenceTags:!0}):r[0],writes:[],triggers:[zS],id:n??MC(`__interrupt__`,o.id),writers:[]})}for(let e of g)await e.proc.invoke(e.input,ru({...r,store:r?.store??this.store},{runName:r.runName??`${this.getName()}UpdateState`,configurable:{[bS]:t=>e.writes.push(...t),[SS]:(t,n=!1)=>TF(o,p,e,t,n)}}));for(let e of g){let t=e.writes.filter(e=>e[0]!==qS);a!==void 0&&t.length>0&&await n.putWrites(l,t,e.id)}kF(o,p,g,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let _=uP(s,o.channel_versions),v=await n.put(l,DN(o,p,c+1),{source:`update`,step:c+1,parents:a?.metadata?.parents??{}},_);for(let e of g){let t=e.writes.filter(e=>e[0]===qS);t.length>0&&await n.putWrites(v,t,e.id)}return pP(v,a?a.metadata:void 0)},a=e;for(let{updates:e}of t)a=await i(a,e);return a}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:r,outputKeys:i,interruptAfter:a,interruptBefore:o,...s}=e,c=!0,l=t===void 0?this.debug:t,u=i;u===void 0?u=this.streamChannelsAsIs:CL(u,this.channels);let d=r;d===void 0?d=this.inputChannels:CL(d,this.channels);let f=o??this.interruptBefore??[],p=a??this.interruptAfter??[],m;n===void 0?(m=e.configurable?.__pregel_task_id===void 0?this.streamMode:[`values`],c=!0):(m=Array.isArray(n)?n:[n],c=typeof n==`string`);let h;if(this.checkpointer===!1)h=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)h=e.configurable[CS];else if(this.checkpointer===!0)throw Error(`checkpointer: true cannot be used for root graphs.`);else h=this.checkpointer;let g=e.store??this.store,_=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let v=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?`exit`:`async`})(),y=e.durability??v??e?.configurable?.__pregel_durability??`async`;return[l,m,d,u,s,f,p,h,g,c,_,y]}async stream(e,t){let n=new AbortController,r=GN()?.configurable;r?.__pregel_read!==void 0&&t?.configurable?.__pregel_read===void 0&&(t={...t,configurable:{...r,...t?.configurable}});let i={recursionLimit:this.config?.recursionLimit,...t,signal:mP(t?.signal,n.signal).signal},a=await super.stream(e,i);return new nI(t?.encoding===`text/event-stream`?dI(a):a,n)}async#e(e,t){let{version:n,encoding:r,transformers:i,...a}=t,o={recursionLimit:this.config?.recursionLimit,...a,configurable:{...this.config?.configurable,...a?.configurable},version:n,streamMode:XF,subgraphs:!0,encoding:void 0},s=this.stream(e,o),c=bL({[Symbol.asyncIterator]:async function*(){let e=await s;for await(let t of e)yield t}},[...this.streamTransformers??[],...i??[]]);if(r===`text/event-stream`){let e=new AbortController;return e.signal.addEventListener(`abort`,()=>c.abort(e.signal.reason),{once:!0}),new nI(DL(c),e)}return c}streamEvents(e,t,n){if(t.version===`v3`)return this.#e(e,t);let r=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,signal:mP(t?.signal,r.signal).signal};return new nI(super.streamEvents(e,i,n),r)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n=`version`in(t??{})?void 0:t?.encoding??void 0,r=t?.subgraphs,i=t?.version===`v3`,a=WN(this.config,t);if(a.recursionLimit===void 0||a.recursionLimit<1)throw Error(`Passed "recursionLimit" must be at least 1.`);if(this.checkpointer!==void 0&&this.checkpointer!==!1&&a.configurable===void 0)throw Error(`Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"`);let o=await this._validateInput(e),{runId:s,...c}=a,[l,u,,d,f,p,m,h,g,_,v,y]=this._defaults(c);f.metadata={ls_integration:`langgraph`,...f.metadata},f.context===void 0?f.configurable=await this._validateContext(f.configurable):f.context=await this._validateContext(f.context);let b=new rI({modes:new Set(u)});if(this.checkpointer===!0){f.configurable??={};let e=f.configurable.checkpoint_ns??``;f.configurable[NS]=e.split(`|`).map(e=>e.split(`:`)[0]).join(`|`)}if(u.includes(`messages`)){let e=i?new kI(e=>b.push(e)):new wI(e=>b.push(e)),{callbacks:t}=f;if(t===void 0)f.callbacks=[e];else if(Array.isArray(t))f.callbacks=t.concat(e);else{let n=t.copy();n.addHandler(e,!0),f.callbacks=n}}if(u.includes(`tools`)){let e=new iI(e=>b.push(e)),{callbacks:t}=f;if(t===void 0)f.callbacks=[e];else if(Array.isArray(t))f.callbacks=t.concat(e);else{let n=t.copy();n.addHandler(e,!0),f.callbacks=n}}f.writer??=e=>{if(!u.includes(`custom`))return;let t=(GN()?.configurable?.[NS])?.split(`|`).slice(0,-1);b.push([t??[],`custom`,e])},f.interrupt??=this.userInterrupt??EL,f.serverInfo??=jL(f),f.control??=new yP;let x={tracerInheritableMetadata:PL(f)},S=await(await Wl._configureSync(f?.callbacks,void 0,f?.tags,void 0,f?.metadata,void 0,x))?.handleChainStart(this.toJSON(),dP(e,`input`),s,void 0,void 0,void 0,f?.runName??this.getName()),ee=CN(this.channels),C,te,ne=(async()=>{try{C=await xI.initialize({input:o,config:f,checkpointer:h,nodes:this.nodes,channelSpecs:ee,outputKeys:d,streamKeys:this.streamChannelsAsIs,store:g,cache:v,stream:b,interruptAfter:m,interruptBefore:p,manager:S,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:y});let e=new zI({loop:C,nodeFinished:f.configurable?.[PS]});t?.subgraphs&&(C.config.configurable={...C.config.configurable,[ES]:C.stream}),await this._runLoop({loop:C,runner:e,debug:l,config:f}),y===`sync`&&await Promise.all(C?.checkpointerPromises??[])}catch(e){te=e}finally{try{C&&(await C.store?.stop(),await C.cache?.stop()),await Promise.all(C?.checkpointerPromises??[])}catch(e){te??=e}te?(await new Promise(e=>{queueMicrotask(e)}),b.error(te)):b.close()}})();try{for await(let e of b){if(e===void 0)throw Error(`Data structure error.`);let[a,o,s]=e,c=`version`in(t??{});if(u.includes(o)||o===`checkpoints`&&ZF(s)&&(i||c&&r&&u.includes(`values`))){if(n===`text/event-stream`){r?yield[a,o,s]:yield[null,o,s];continue}r&&!_?yield[a,o,s]:_?r?yield[a,s]:yield s:yield[o,s]}}}catch(e){throw await S?.handleChainError(te),e}finally{await ne}await S?.handleChainEnd(C?.output??{},s,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??`values`,r={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n,encoding:void 0},i=[],a=await this.stream(e,r),o=[],s;for await(let e of a)n===`values`?aC(e)?o.push(e[zS]):s=e:i.push(e);if(n===`values`){if(o.length>0){let e=o.flat(1);if(s==null)return{[zS]:e};if(typeof s==`object`)return{...s,[zS]:e}}return s}return i}async _runLoop(e){let{loop:t,runner:n,debug:r,config:i}=e,a;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:e}of await t._matchCachedWrites())t._outputWrites(e.id,e.writes,!0);r&&qF(t.checkpointMetadata.step,t.channels,this.streamChannelsList),r&&JF(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(e,t)=>{r&&YF(e,t,this.streamChannelsList)},maxConcurrency:i.maxConcurrency,signal:i.signal})}if(t.status===`draining`)throw t.control==null?Error(`Draining status requires run control`):new mC(t.control.drainReason??`shutdown`);if(t.status===`out_of_steps`)throw new fC([`Recursion limit of ${i.recursionLimit} reached`,`without hitting a stop condition. You can increase the`,`limit by setting the "recursionLimit" config key.`].join(` `),{lc_error_code:`GRAPH_RECURSION_LIMIT`})}catch(e){if(a=e,!await t.finishAndHandleError(a))throw e}finally{a===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};function jL(e){let t=e.metadata??{},n=e.configurable??{},r=n.assistant_id??t.assistant_id,i=n.graph_id??t.graph_id,a=n.langgraph_auth_user,o;if(typeof a==`object`&&a&&`identity`in a&&(o=a),r!=null||i!=null||o!=null)return{assistantId:r==null?``:String(r),graphId:i==null?``:String(i),user:o}}var ML=new Set([`key`,`token`,`secret`,`password`,`auth`]);function NL(e,t){let n=e.toLowerCase(),r=!1;for(let e of ML)if(n.includes(e)){r=!0;break}return e.startsWith(`__`)||!(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)||r}function PL(e){let t=e.configurable;if(!t)return;let n={};for(let[e,r]of Object.entries(t))NL(e,r)||(n[e]=r);return Object.keys(n).length>0?n:void 0}var FL=class{path;ends;constructor(e){Dx.isRunnable(e.path)?this.path=e.path:this.path=Rx(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((e,t)=>(e[t]=t,e),{}):e.pathMap}run(e,t){return rP.registerWriter(new JN({name:`<branch_run>`,trace:!1,func:async(n,r)=>{try{return await this._route(n,r,e,t)}catch(e){throw e.name===_C.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
|
|
190
|
+
NodeInterrupt should only be thrown inside a node, not in edge conditions.`),e}}}))}async _route(e,t,n,r){let i=await this.path.invoke(r?r(t):e,t);Array.isArray(i)||(i=[i]);let a;if(a=this.ends?i.map(e=>tC(e)?e:this.ends[e]):i,a.some(e=>!e))throw Error(`Branch condition returned unknown or null destination`);if(a.filter(tC).some(e=>e.node===`__end__`))throw new EC(`Cannot send a packet to the END node`);return await n(a,t)??e}},IL=class{nodes;edges;branches;entryPoint;compiled=!1;constructor(){this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(e){return e.length>=1&&typeof e[0]!=`string`}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(n.length===0)throw Error("No nodes provided in `addNode`");for(let[e,t,r]of n){for(let t of[`|`,`:`])if(e.includes(t))throw Error(`"${t}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled(`Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph.`),e in this.nodes)throw Error(`Node \`${e}\` already present.`);if(e===`__end__`)throw Error(`Node \`${e}\` is reserved.`);let n=Rx(t);this.nodes[e]={runnable:n,metadata:r?.metadata,subgraphs:gP(n)?[n]:r?.subgraphs,ends:r?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled(`Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.`),e===`__end__`)throw Error(`END cannot be a start node`);if(t===`__start__`)throw Error(`START cannot be an end node`);if(Array.from(this.edges).some(([t])=>t===e)&&!(`channels`in this))throw Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,n){let r=typeof e==`object`?e:{source:e,path:t,pathMap:n};this.warnIfCompiled(`Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.`),Dx.isRunnable(r.path)||(r.path=Rx(r.path));let i=r.path.getName()===`RunnableLambda`?`condition`:r.path.getName();if(this.branches[r.source]&&this.branches[r.source][i])throw Error(`Condition \`${i}\` already present for node \`${e}\``);return this.branches[r.source]??={},this.branches[r.source][i]=new FL(r),this}setEntryPoint(e){return this.warnIfCompiled(`Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph.`),this.addEdge(pS,e)}setFinishPoint(e){return this.warnIfCompiled(`Setting a finish point of a graph that has already been compiled. This will not be reflected in the compiled graph.`),this.addEdge(e,mS)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:r,transformers:i}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let a=new LL({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[pS]:new vP,[mS]:new vP},inputChannels:pS,outputChannels:mS,streamChannels:[],streamMode:`values`,name:r,streamTransformers:i});for(let[e,t]of Object.entries(this.nodes))a.attachNode(e,t);for(let[e,t]of this.edges)a.attachEdge(e,t);for(let[e,t]of Object.entries(this.branches))for(let[n,r]of Object.entries(t))a.attachBranch(e,n,r);return a.validate()}validate(e){let t=new Set([...this.allEdges].map(([e,t])=>e));for(let[e]of Object.entries(this.branches))t.add(e);for(let e of t)if(e!==`__start__`&&!(e in this.nodes))throw Error(`Found edge starting at unknown node \`${e}\``);let n=new Set([...this.allEdges].map(([e,t])=>t));for(let[e,t]of Object.entries(this.branches))for(let r of Object.values(t))if(r.ends!=null)for(let e of Object.values(r.ends))n.add(e);else{n.add(mS);for(let t of Object.keys(this.nodes))t!==e&&n.add(t)}for(let e of Object.values(this.nodes))for(let t of e.ends??[])n.add(t);if(Object.values(this.nodes).some(e=>e.isErrorHandler))for(let e of Object.keys(this.nodes))n.add(e);for(let e of Object.keys(this.nodes))if(!this.nodes[e].isErrorHandler&&!n.has(e))throw new DC([`Node \`${e}\` is not reachable.`,``,`If you are returning Command objects from your node,`,`make sure you are passing names of potential destination nodes as an "ends" array`,`into ".addNode(..., { ends: ["node1", "node2"] })".`].join(`
|
|
191
|
+
`),{lc_error_code:`UNREACHABLE_NODE`});for(let e of n)if(e!==`__end__`&&!(e in this.nodes))throw Error(`Found edge ending at unknown node \`${e}\``);if(e){for(let t of e)if(!(t in this.nodes))throw Error(`Interrupt node \`${t}\` is not present`)}this.compiled=!0}},LL=class extends AL{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new vP,this.nodes[e]=new cP({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new rP([{channel:e,value:eP}],[WS])),this.streamChannels.push(e)}attachEdge(e,t){if(t===`__end__`){if(e===`__start__`)throw Error(`Cannot have an edge from START to END`);this.nodes[e].writers.push(new rP([{channel:mS,value:eP}],[WS]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e===`__start__`&&!this.nodes.__start__&&(this.nodes[pS]=OL.subscribeTo(pS,{tags:[WS]})),this.nodes[e].pipe(n.run(n=>new rP(n.map(n=>tC(n)?n:{channel:n===`__end__`?mS:`branch:${e}:${t}:${n}`,value:eP}),[WS])));let r=n.ends?Object.values(n.ends):Object.keys(this.nodes);for(let n of r)if(n!==`__end__`){let r=`branch:${e}:${t}:${n}`;this.channels[r]=new vP,this.nodes[n].triggers.push(r),this.nodes[n].channels.push(r)}}async getGraphAsync(e){let t=e?.xray,n=new hx,r={[pS]:n.addNode({schema:EA()},pS)},i={},a={};t&&(a=Object.fromEntries((await XN(this.getSubgraphsAsync())).filter(e=>RL(e[1]))));let o=[];function s(e,t,a,s=!1){if(t===`__end__`&&i.__end__===void 0&&(i[mS]=n.addNode({schema:EA()},mS)),r[e]!==void 0){if(i[t]===void 0)throw Error(`End node ${t} not found!`);return o.push({src:e,dest:t,conditional:s}),n.addEdge(r[e],i[t],a===t?void 0:a,s)}}for(let[o,s]of Object.entries(this.builder.nodes)){let c=zL(o),l=s.runnable,u=s.metadata??{};if(this.interruptBefore?.includes(o)&&this.interruptAfter?.includes(o)?u.__interrupt=`before,after`:this.interruptBefore?.includes(o)?u.__interrupt=`before`:this.interruptAfter?.includes(o)&&(u.__interrupt=`after`),t){let s=typeof t==`number`?t-1:t,d=a[o]===void 0?l.getGraph(e):await a[o].getGraphAsync({...e,xray:s});if(d.trimFirstNode(),d.trimLastNode(),Object.keys(d.nodes).length>1){let[e,t]=n.extend(d,c);if(e===void 0)throw Error(`Could not extend subgraph "${o}" due to missing entrypoint.`);function a(e){return e?e.lc_runnable:!1}function s(e,t){if(e!==void 0&&!Ar(e))return e;if(a(t))try{let e=t.getName();return e=e.startsWith(`Runnable`)?e.slice(8):e,e}catch{return t.getName()}else return t.name??`UnknownSchema`}t!==void 0&&(r[c]={name:s(t.id,t.data),...t}),i[c]={name:s(e.id,e.data),...e}}else{let e=n.addNode(l,c,u);r[c]=e,i[c]=e}}else{let e=n.addNode(l,c,u);r[c]=e,i[c]=e}}let c=[...this.builder.allEdges].sort(([e],[t])=>e<t?-1:+(t>e));for(let[e,t]of c)s(zL(e),zL(t));for(let[e,t]of Object.entries(this.builder.branches)){let n={...Object.fromEntries(Object.keys(this.builder.nodes).filter(t=>t!==e).map(e=>[zL(e),zL(e)])),[mS]:mS};for(let r of Object.values(t)){let t;t=r.ends===void 0?n:r.ends;for(let[n,r]of Object.entries(t))s(zL(e),zL(r),n,!0)}}for(let[e,t]of Object.entries(this.builder.nodes))if(t.ends!==void 0)for(let n of t.ends)s(zL(e),zL(n),void 0,!0);return BL(this.builder.nodes,o,s),n}getGraph(e){let t=e?.xray,n=new hx,r={[pS]:n.addNode({schema:EA()},pS)},i={},a={};t&&(a=Object.fromEntries(ZN(this.getSubgraphs()).filter(e=>RL(e[1]))));let o=[];function s(e,t,a,s=!1){if(t===`__end__`&&i.__end__===void 0&&(i[mS]=n.addNode({schema:EA()},mS)),r[e]!==void 0){if(i[t]===void 0)throw Error(`End node ${t} not found!`);return o.push({src:e,dest:t,conditional:s}),n.addEdge(r[e],i[t],a===t?void 0:a,s)}}for(let[o,s]of Object.entries(this.builder.nodes)){let c=zL(o),l=s.runnable,u=s.metadata??{};if(this.interruptBefore?.includes(o)&&this.interruptAfter?.includes(o)?u.__interrupt=`before,after`:this.interruptBefore?.includes(o)?u.__interrupt=`before`:this.interruptAfter?.includes(o)&&(u.__interrupt=`after`),t){let s=typeof t==`number`?t-1:t,d=a[o]===void 0?l.getGraph(e):a[o].getGraph({...e,xray:s});if(d.trimFirstNode(),d.trimLastNode(),Object.keys(d.nodes).length>1){let[e,t]=n.extend(d,c);if(e===void 0)throw Error(`Could not extend subgraph "${o}" due to missing entrypoint.`);function a(e){return e?e.lc_runnable:!1}function s(e,t){if(e!==void 0&&!Ar(e))return e;if(a(t))try{let e=t.getName();return e=e.startsWith(`Runnable`)?e.slice(8):e,e}catch{return t.getName()}else return t.name??`UnknownSchema`}t!==void 0&&(r[c]={name:s(t.id,t.data),...t}),i[c]={name:s(e.id,e.data),...e}}else{let e=n.addNode(l,c,u);r[c]=e,i[c]=e}}else{let e=n.addNode(l,c,u);r[c]=e,i[c]=e}}let c=[...this.builder.allEdges].sort(([e],[t])=>e<t?-1:+(t>e));for(let[e,t]of c)s(zL(e),zL(t));for(let[e,t]of Object.entries(this.builder.branches)){let n={...Object.fromEntries(Object.keys(this.builder.nodes).filter(t=>t!==e).map(e=>[zL(e),zL(e)])),[mS]:mS};for(let r of Object.values(t)){let t;t=r.ends===void 0?n:r.ends;for(let[n,r]of Object.entries(t))s(zL(e),zL(r),n,!0)}}for(let[e,t]of Object.entries(this.builder.nodes))if(t.ends!==void 0)for(let n of t.ends)s(zL(e),zL(n),void 0,!0);return BL(this.builder.nodes,o,s),n}};function RL(e){return typeof e.attachNode==`function`&&typeof e.attachEdge==`function`}function zL(e){return e===`subgraph`?`"${e}"`:e}function BL(e,t,n){let r=new Set(t.map(e=>e.src)),i=[...new Set(t.filter(e=>!e.conditional&&e.dest!==`__end__`).map(e=>e.dest))].sort();for(let t of i){if(r.has(t))continue;let i=Object.keys(e).find(e=>zL(e)===t);i!==void 0&&e[i]?.isErrorHandler||n(t,mS)}}var VL=(e,t)=>e.size===t.size&&[...e].every(e=>t.has(e)),HL=class e extends xN{lc_graph_name=`NamedBarrierValue`;names;seen;constructor(e){super(),this.names=e,this.seen=new Set}fromCheckpoint(t){let n=new e(this.names);return t!==void 0&&(n.seen=new Set(t)),n}update(e){let t=!1;for(let n of e)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),t=!0);else throw new EC(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!VL(this.names,this.seen))throw new TC}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&VL(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&VL(this.names,this.seen)}},UL=class e extends xN{lc_graph_name=`NamedBarrierValueAfterFinish`;names;seen;finished;constructor(e){super(),this.names=e,this.seen=new Set,this.finished=!1}fromCheckpoint(t){let n=new e(this.names);if(t!==void 0){let[e,r]=t;n.seen=new Set(e),n.finished=r}return n}update(e){let t=!1;for(let n of e)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),t=!0;else if(!this.names.has(n))throw new EC(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!this.finished||!VL(this.names,this.seen))throw new TC}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&VL(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&VL(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&VL(this.names,this.seen)}};function WL(e){return typeof e==`object`&&!!e&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`validate`in e[`~standard`]}function GL(e){return typeof e==`object`&&!!e&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`jsonSchema`in e[`~standard`]}function KL(e){if(GL(e))try{return e[`~standard`].jsonSchema.input({target:`draft-07`})}catch{return}}function qL(e){if(e!=null&&WL(e))try{let t=e[`~standard`].validate(void 0);if(t&&typeof t==`object`&&!(`then`in t&&typeof t.then==`function`)){let e=t;if(!e.issues){let t=e.value;return()=>t}}}catch{}}var JL=e=>e!=null&&e.lc_graph_name===`DeltaChannel`,YL=class e extends xN{lc_graph_name=`DeltaChannel`;value;reducer;snapshotFrequency;initialValueFactory;constructor(e,t){super();let n=t?.snapshotFrequency??1e3;if(!Number.isInteger(n)||n<=0)throw Error(`snapshotFrequency must be a positive integer, got ${n}`);this.reducer=e,this.snapshotFrequency=n,this.initialValueFactory=t?.initialValueFactory??(()=>[]),this.value=void 0}fromCheckpoint(t){let n=new e(this.reducer,{snapshotFrequency:this.snapshotFrequency,initialValueFactory:this.initialValueFactory});return t===void 0?n.value=this.initialValueFactory():RC(t)?n.value=t.value:n.value=t,n}replayWrites(e){let t=e.map(e=>e[2]);if(t.length===0)return;let n=this.value,r=0;for(let e=0;e<t.length;e+=1){let[i,a]=rC(t[e]);i&&(n=a??this.initialValueFactory(),r=e+1)}let i=t.slice(r);this.value=i.length>0?this.reducer(n,i):n}update(e){if(e.length===0)return!1;let t,n=!1;for(let r of e)if(iC(r)){if(n)throw new EC(`Can receive only one Overwrite value per step.`);n=!0,[,t]=rC(r)}if(n)return this.value=t??this.initialValueFactory(),!0;let r=this.value===void 0?this.initialValueFactory():this.value;return this.value=this.reducer(r,e),!0}get(){if(this.value===void 0)throw new TC;return this.value}checkpoint(){}isAvailable(){return this.value!==void 0}equals(e){return this===e?!0:!JL(e)||this.snapshotFrequency!==e.snapshotFrequency?!1:this.reducer===e.reducer}},XL=Symbol.for(`langgraph.channel.missing`),ZL=class e extends xN{lc_graph_name=`UntrackedValue`;guard;_value=XL;initialValueFactory;constructor(e){super(),this.guard=e?.guard??!0,this.initialValueFactory=e?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new e({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(e){if(e.length===0)return!1;if(e.length!==1&&this.guard)throw new EC(`UntrackedValue(guard=true) can receive only one value per step. Use guard=false if you want to store any one of multiple values.`,{lc_error_code:`INVALID_CONCURRENT_GRAPH_UPDATE`});return this._value=e[e.length-1],!0}get(){if(this._value===XL)throw new TC;return this._value}checkpoint(){}isAvailable(){return this._value!==XL}},QL=Symbol.for(`langgraph.state.reduced_value`),$L=class{[QL]=!0;valueSchema;inputSchema;reducer;jsonSchemaExtra;constructor(e,t){this.reducer=t.reducer,this.jsonSchemaExtra=t.jsonSchemaExtra,this.valueSchema=e,this.inputSchema=`inputSchema`in t?t.inputSchema:e,this.jsonSchemaExtra=t.jsonSchemaExtra}static isInstance(e){return typeof e==`object`&&!!e&&QL in e&&e[QL]===!0}},eR=Symbol.for(`langgraph.state.untracked_value`),tR=class{[eR]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e==`object`&&!!e&&eR in e}},nR=Symbol.for(`langgraph.state.delta_value`),rR=class{[nR]=!0;valueSchema;inputSchema;reducer;snapshotFrequency;jsonSchemaExtra;constructor(e,t){this.reducer=t.reducer,this.valueSchema=e,this.inputSchema=`inputSchema`in t?t.inputSchema:e,this.snapshotFrequency=t.snapshotFrequency,this.jsonSchemaExtra=t.jsonSchemaExtra}static isInstance(e){return typeof e==`object`&&!!e&&nR in e&&e[nR]===!0}},iR=Symbol.for(`langgraph.state.state_schema`),aR=class{[iR]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,n]of Object.entries(this.fields))if(rR.isInstance(n)){let r=qL(n.valueSchema);e[t]=new YL(n.reducer,{snapshotFrequency:n.snapshotFrequency,initialValueFactory:r})}else if($L.isInstance(n)){let r=qL(n.valueSchema);e[t]=new MN(n.reducer,r)}else if(tR.isInstance(n)){let r=n.schema?qL(n.schema):void 0;e[t]=new ZL({guard:n.guard,initialValueFactory:r})}else if(WL(n))e[t]=new kN(qL(n));else throw Error(`Invalid state field "${t}": must be a schema, ReducedValue, DeltaValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[n,r]of Object.entries(this.fields)){let i;if(rR.isInstance(r)||$L.isInstance(r)?(i=KL(r.valueSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):tR.isInstance(r)?i=r.schema?KL(r.schema):void 0:WL(r)&&(i=KL(r)),i){e[n]=i;let a=!1;a=rR.isInstance(r)||$L.isInstance(r)?qL(r.valueSchema)!==void 0:tR.isInstance(r)?r.schema?qL(r.schema)!==void 0:!1:qL(r)!==void 0,a||t.push(n)}}return{type:`object`,properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,n]of Object.entries(this.fields)){let r;rR.isInstance(n)||$L.isInstance(n)?(r=KL(n.inputSchema),n.jsonSchemaExtra&&(r={...r??{},...n.jsonSchemaExtra})):tR.isInstance(n)?r=n.schema?KL(n.schema):void 0:WL(n)&&(r=KL(n)),r&&(e[t]=r)}return{type:`object`,properties:e}}getChannelKeys(){return Object.entries(this.fields).map(([e])=>e)}getAllKeys(){return Object.keys(this.fields)}async validateInput(e){if(typeof e!=`object`||!e)return e;let t={};for(let[n,r]of Object.entries(e)){let e=this.fields[n];if(e===void 0){t[n]=r;continue}let i;if(rR.isInstance(e)||$L.isInstance(e)){let[a,o]=rC(r);if(a){i=e.valueSchema;let r=await i[`~standard`].validate(o);if(r.issues)throw Error(`Validation failed for field "${n}": ${JSON.stringify(r.issues)}`);t[n]={[nC]:r.value};continue}i=e.inputSchema}else tR.isInstance(e)?i=e.schema:WL(e)&&(i=e);if(i){let e=await i[`~standard`].validate(r);if(e.issues)throw Error(`Validation failed for field "${n}": ${JSON.stringify(e.issues)}`);t[n]=e.value}else t[n]=r}return t}static isInstance(e){return typeof e==`object`&&!!e&&iR in e&&e[iR]===!0}};function oR(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t],i=n.map(Nn),a=r.map(Nn);for(let e of i)(e.id===null||e.id===void 0)&&(e.id=Er(),e.lc_kwargs.id=e.id);let o;for(let e=0;e<a.length;e+=1){let t=a[e];(t.id===null||t.id===void 0)&&(t.id=Er(),t.lc_kwargs.id=t.id),Cn.isInstance(t)&&t.id===`__remove_all__`&&(o=e)}if(o!=null)return a.slice(o+1);let s=[...i],c=new Map(s.map((e,t)=>[e.id,t])),l=new Set;for(let e of a){let t=c.get(e.id);if(t!==void 0)Cn.isInstance(e)?l.add(e.id):(l.delete(e.id),s[t]=e);else{if(Cn.isInstance(e))throw Error(`Attempting to delete a message with an ID that doesn't exist ('${e.id}')`);c.set(e.id,s.length),s.push(e)}}return s.filter(e=>!l.has(e.id))}function sR(e,t){let n=[];for(let e of t)Array.isArray(e)?n.push(...e):n.push(e);let r=e.length>0&&ut.isInstance(e[0])?e:e.map(Nn),i=n.map(Nn),a=new Map;for(let e=0;e<r.length;e+=1){let t=r[e].id;t!=null&&a.set(t,e)}let o=[...r];for(let e of i){let t=e.id;Cn.isInstance(e)&&t===`__remove_all__`?(o.length=0,a.clear()):t==null?o.push(e):Cn.isInstance(e)?a.has(t)&&(o[a.get(t)]=null,a.delete(t)):a.has(t)?o[a.get(t)]=e:(a.set(t,o.length),o.push(e))}return o.filter(e=>e!==null)}var cR=hj().default(()=>[]),lR=hj();new $L(cR,{inputSchema:lR,reducer:oR,jsonSchemaExtra:{langgraph_type:`messages`,description:`A list of chat messages`}}),new rR(cR,{inputSchema:lR,reducer:sR,jsonSchemaExtra:{langgraph_type:`messages`,description:`A list of chat messages`}});var uR=new class{_map=new Map;_extensionCache=new Map;get(e){return this._map.get(e)}extend(e,t){let n=this.get(e);this._map.set(e,t(n))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},n=C_(e);for(let[e,r]of Object.entries(n)){let n=this.get(r);n?.reducer?t[e]=new MN(n.reducer.fn,n.default):t[e]=new kN(n?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let n=Object.entries(t).filter(([,e])=>e===!0).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}:${t}`).join(`|`),r=this._extensionCache.get(n)??new Map;if(r.has(e))return r.get(e);let i=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let n=Object.entries(C_(e)).map(([e,n])=>{let r=this.get(n),i=t.withReducerSchema?r?.reducer?.schema??n:n;if(t.withJsonSchemaExtrasAsDescription&&r?.jsonSchemaExtra){let e=m_(i)??m_(n),t=JSON.stringify({...r.jsonSchemaExtra,description:e});i=i.describe(`lg:${t}`)}return[e,i]});i=w_(e,Object.fromEntries(n)),i_(i)&&(i._def.unknownKeys=`strip`)}return t.asPartial&&(i=T_(i)),r.set(e,i),this._extensionCache.set(n,r),i}};function dR(e){return e!=null&&!!(aR.isInstance(e)||S_(e)||typeof e==`object`&&`lc_graph_name`in e&&e.lc_graph_name===`AnnotationRoot`||typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length>0&&Object.values(e).every(e=>typeof e==`function`||bN(e)))}function fR(e){if(typeof e!=`object`||!e)return!1;let t=e,n=`state`in t&&dR(t.state),r=`stateSchema`in t&&dR(t.stateSchema),i=`input`in t&&dR(t.input);return!(!n&&!r&&!i||`input`in t&&t.input!=null&&!dR(t.input)||`output`in t&&t.output!=null&&!dR(t.output))}var pR=`__root__`,mR=`__default_error_handler__`,hR=Symbol.for(`langgraph.state.partial`),gR=class extends IL{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=uR;_configSchema;_configRuntimeSchema;_interrupt;_writer;_nodeDefaults={};constructor(e,t){super();let n=this._normalizeToStateGraphInit(e,t),r=n.state??n.stateSchema??n.input;if(!r)throw new OC;let i=this._getChannelsFromSchema(r);this._schemaDefinition=i,(aR.isInstance(r)||S_(r))&&(this._schemaRuntimeDefinition=r),n.input&&(aR.isInstance(n.input)||S_(n.input))?this._inputRuntimeDefinition=n.input:this._inputRuntimeDefinition=hR,n.output&&(aR.isInstance(n.output)||S_(n.output))?this._outputRuntimeDefinition=n.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=n.input?this._getChannelsFromSchema(n.input):i,o=n.output?this._getChannelsFromSchema(n.output):i;this._inputDefinition=a,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),n.context&&S_(n.context)&&(this._configRuntimeSchema=n.context),this._interrupt=n.interrupt,this._writer=n.writer}setNodeDefaults(e){return e.retryPolicy!==void 0&&(this._nodeDefaults.retryPolicy=e.retryPolicy),e.cachePolicy!==void 0&&(this._nodeDefaults.cachePolicy=typeof e.cachePolicy==`boolean`?e.cachePolicy?{}:void 0:e.cachePolicy),e.timeout!==void 0&&(this._nodeDefaults.timeout=fS(e.timeout)),e.errorHandler!==void 0&&(this._nodeDefaults.errorHandler=e.errorHandler),this}_createDefaultErrorHandlerSpec(){let e=this._nodeDefaults.errorHandler;if(e!==void 0)return{runnable:new JN({func:(t,n)=>{let r=n?.configurable?.[FS];return e(t,r,n)},name:mR,trace:!1}),metadata:void 0,input:this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0}}_normalizeToStateGraphInit(e,t){if(fR(e)){if(S_(t)||NN.isInstance(t))return{...e,context:t};let n=t;return{...e,input:e.input??n?.input,output:e.output??n?.output,context:e.context??n?.context,interrupt:e.interrupt??n?.interrupt,writer:e.writer??n?.writer,nodes:e.nodes??n?.nodes}}if(dR(e)){if(S_(t)||NN.isInstance(t))return{state:e,context:t};let n=t;return{state:e,input:n?.input,output:n?.output,context:n?.context,interrupt:n?.interrupt,writer:n?.writer,nodes:n?.nodes}}if(yR(e))return{state:_R(e.channels)};throw new OC}_getChannelsFromSchema(e){if(aR.isInstance(e))return e.getChannels();if(S_(e))return this._metaRegistry.getChannelsForSchema(e);if(typeof e==`object`&&`lc_graph_name`in e&&e.lc_graph_name===`AnnotationRoot`)return e.spec;if(typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length>0)return e;throw new OC(`Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.`)}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(e=>[e,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,n]of Object.entries(e)){let e;if(e=typeof n==`function`?n():n,this.channels[t]!==void 0){if(!this.channels[t].equals(e)&&e.lc_graph_name!==`LastValue`)throw Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=e}}}addNode(...e){function t(e){return e.length>=1&&typeof e[0]!=`string`}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([e,t])=>[e,t]):[[e[0],e[1],e[2]]];if(n.length===0)throw Error("No nodes provided in `addNode`");for(let[e,t,r]of n){if(e in this.channels)throw Error(`${e} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let t of[`|`,`:`])if(e.includes(t))throw Error(`"${t}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled(`Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph.`),e in this.nodes)throw Error(`Node \`${e}\` already present.`);if(e===`__end__`||e===`__start__`)throw Error(`Node \`${e}\` is reserved.`);let n=this._schemaDefinition;r?.input!==void 0&&(n=this._getChannelsFromSchema(r.input)),this._addSchema(n);let i;i=Dx.isRunnable(t)?t:typeof t==`function`?new JN({func:t,name:e,trace:!1}):Rx(t);let a=r?.cachePolicy,o;a!==void 0&&(o=typeof a==`boolean`?a?{}:!1:a);let s;if(r?.errorHandler!==void 0){if(s=`__error_handler__${e}`,s in this.nodes)throw Error(`Cannot add error handler to node \`${e}\`: the reserved name \`${s}\` is already in use. StateGraph registers \`__error_handler__<nodeName>\` when you pass \`errorHandler\` in addNode options. Remove or rename the existing node with that name (for example, you may have added it manually).`);let t=r.errorHandler,i={runnable:new JN({func:(e,n)=>{let r=n?.configurable?.[FS];return t(e,r,n)},name:s,trace:!1}),metadata:void 0,input:n??this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0};this.nodes[s]=i}let c={runnable:i,retryPolicy:r?.retryPolicy,cachePolicy:o,timeout:fS(r?.timeout),metadata:r?.metadata,input:n??this._schemaDefinition,subgraphs:gP(i)?[i]:r?.subgraphs,ends:r?.ends,defer:r?.defer,errorHandlerNode:s};this.nodes[e]=c}return this}addEdge(e,t){if(typeof e==`string`)return super.addEdge(e,t);this.compiled&&console.warn(`Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.`);for(let t of e){if(t===`__end__`)throw Error(`END cannot be a start node`);if(!Object.keys(this.nodes).some(e=>e===t))throw Error(`Need to add a node named "${t}" first`)}if(t===`__end__`)throw Error(`END cannot be an end node`);if(!Object.keys(this.nodes).some(e=>e===t))throw Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e);if(t.length===0)throw Error(`Sequence requires at least one node.`);let n;for(let[e,r,i]of t){if(e in this.nodes)throw Error(`Node names must be unique: node with the name "${e}" already exists.`);let t=e;this.addNode(e,r,i),n!=null&&this.addEdge(n,t),n=t}return this}compile({checkpointer:e,store:t,cache:n,interruptBefore:r,interruptAfter:i,name:a,description:o,transformers:s}={}){let c=this._createDefaultErrorHandlerSpec();if(c!==void 0){if(mR in this.nodes)throw Error(`Cannot apply a default error handler: the reserved node name \`${mR}\` is already in use. setNodeDefaults({ errorHandler }) registers a node with that name; rename the conflicting node.`);this.nodes[mR]=c}try{return this._compileResolved({checkpointer:e,store:t,cache:n,interruptBefore:r,interruptAfter:i,name:a,description:o,transformers:s,defaultErrorHandlerNode:c===void 0?void 0:mR})}finally{c!==void 0&&delete this.nodes[mR]}}_compileResolved({checkpointer:e,store:t,cache:n,interruptBefore:r,interruptAfter:i,name:a,description:o,transformers:s,defaultErrorHandlerNode:c}){this.validate([...Array.isArray(r)?r:[],...Array.isArray(i)?i:[]]);let l=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),u=l.length===1&&l[0]===pR?pR:l,d=Object.keys(this.channels),f=d.length===1&&d[0]===pR?pR:d,p=this._interrupt,m=new vR({builder:this,checkpointer:e,interruptAfter:i,interruptBefore:r,autoValidate:!1,nodes:{},channels:{...this.channels,[pS]:new vP},inputChannels:pS,outputChannels:u,streamChannels:f,streamMode:`updates`,store:t,cache:n,name:a,description:o,userInterrupt:p,streamTransformers:s});m.attachNode(pS);let h=this._nodeDefaults,g=h.retryPolicy!==void 0||h.cachePolicy!==void 0||h.timeout!==void 0||c!==void 0;for(let[e,t]of Object.entries(this.nodes)){let n=t.isErrorHandler===!0,r=g?{...t,retryPolicy:t.retryPolicy??h.retryPolicy,cachePolicy:n||t.cachePolicy===!1?void 0:t.cachePolicy??h.cachePolicy,timeout:t.timeout??h.timeout,errorHandlerNode:!n&&c!==void 0&&t.errorHandlerNode===void 0?c:t.errorHandlerNode}:t;m.attachNode(e,r)}m.attachBranch(pS,GS,xR(),{withReader:!1});for(let[e]of Object.entries(this.nodes))m.attachBranch(e,GS,xR(),{withReader:!1});for(let[e,t]of this.edges)m.attachEdge(e,t);for(let[e,t]of this.waitingEdges)m.attachEdge(e,t);for(let[e,t]of Object.entries(this.branches))for(let[n,r]of Object.entries(t))m.attachBranch(e,n,r);return m.validate()}};function _R(e){let t={};for(let[n,r]of Object.entries(e))t[n]=FN(r);return t}var vR=class extends LL{description;_metaRegistry=uR;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let n;n=e===`__start__`?Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([e])=>e):Object.keys(this.builder.channels);function r(e){if(sC(e))return e.graph===oC.PARENT?null:e._updateAsTuples();if(Array.isArray(e)&&e.length>0&&e.some(e=>sC(e))){let t=[];for(let n of e)if(sC(n)){if(n.graph===oC.PARENT)continue;t.push(...n._updateAsTuples())}else t.push([pR,n]);return t}else if(e!=null)return[[pR,e]];return null}let i=e,a=async e=>{if(e==null||e.length===0)return e;let t=this.builder._schemaRuntimeDefinition;if(aR.isInstance(t)){let n=new Set(t.getChannelKeys());return Promise.all(e.map(async([e,r])=>{if(!n.has(e))return[e,r];let i=await t.validateInput({[e]:r});return[e,Object.prototype.hasOwnProperty.call(i,e)?i[e]:r]}))}if(S_(t)){let n=new Set(Object.keys(C_(t)));if(e.filter(([e])=>n.has(e)).length===0)return e;let r=T_(this._metaRegistry.getExtendedChannelSchemas(t,{withReducerSchema:!0})),i=T_(t);return e.map(([e,t])=>{if(!n.has(e))return[e,t];let[a,o]=rC(t);if(a){let n=p_(i,{[e]:o});return[e,Object.prototype.hasOwnProperty.call(n,e)?{[nC]:n[e]}:t]}let s=p_(r,{[e]:t});return[e,Object.prototype.hasOwnProperty.call(s,e)?s[e]:t]})}return e};async function o(e){if(!e)return null;if(sC(e))return e.graph===oC.PARENT?null:a(e._updateAsTuples().filter(([e])=>n.includes(e)));if(Array.isArray(e)&&e.length>0&&e.some(sC)){let t=[];for(let r of e)if(sC(r)){if(r.graph===oC.PARENT)continue;t.push(...r._updateAsTuples().filter(([e])=>n.includes(e)))}else{let e=await o(r);e&&t.push(...e??[])}return a(t)}else if(typeof e==`object`&&!Array.isArray(e))return a(Object.entries(e).filter(([e])=>n.includes(e)));else{let t=Array.isArray(e)?`array`:typeof e;throw new EC(`Expected node "${i.toString()}" to return an object or an array containing at least one Command object, received ${t}`,{lc_error_code:`INVALID_GRAPH_NODE_RETURN_VALUE`})}}let s=[{value:eP,mapper:new JN({func:n.length&&n[0]===pR?r:o,trace:!1,recurse:!1})}];if(e===`__start__`)this.nodes[e]=new cP({tags:[WS],triggers:[pS],channels:[pS],writers:[new rP(s,[WS])]});else{let n=t?.input??this.builder._schemaDefinition,r=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(n)).map(e=>[e,e])),i=Object.keys(r).length===1&&pR in r,a=`branch:to:${e}`;this.channels[a]=t?.defer?new AN:new vP(!1);let o=t?.cachePolicy,c=o===!1?void 0:o;this.nodes[e]=new cP({triggers:[a],channels:i?Object.keys(r):r,writers:[new rP(s,[WS])],mapper:i?void 0:e=>Object.fromEntries(Object.entries(e).filter(([e])=>e in r)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:c,timeout:t?.timeout,subgraphs:t?.subgraphs,ends:t?.ends,isErrorHandler:t?.isErrorHandler,errorHandlerNode:t?.errorHandlerNode})}}attachEdge(e,t){if(t!==`__end__`){if(typeof e==`string`)this.nodes[e].writers.push(new rP([{channel:`branch:to:${t}`,value:null}],[WS]));else if(Array.isArray(e)){let n=`join:${e.join(`+`)}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new UL(new Set(e)):new HL(new Set(e)),this.nodes[t].triggers.push(n);for(let t of e)this.nodes[t].writers.push(new rP([{channel:n,value:t}],[WS]))}}}attachBranch(e,t,n,r={withReader:!0}){this.nodes[e].writers.push(n.run(async(t,n)=>{let r=t.filter(e=>e!==mS);if(!r.length)return;let i=r.map(t=>tC(t)?t:{channel:t===`__end__`?t:`branch:to:${t}`,value:e});await rP.doWrite({...n,tags:(n.tags??[]).concat([WS])},i)},r.withReader?e=>oP.doRead(e,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,n=this.builder._schemaRuntimeDefinition;if(aR.isInstance(t)){if(sC(e)){let n=e;return e.update&&(n.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await t.validateInput(e)}if(t===hR&&aR.isInstance(n)){if(sC(e)){let t=e;return e.update&&(t.update=await n.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),t}return await n.validateInput(e)}let r=(()=>{let e=e=>{if(e!=null)return this._metaRegistry.getExtendedChannelSchemas(e,{withReducerSchema:!0})};if(S_(t))return e(t);if(t===hR)return S_(n)?T_(e(n)):void 0})();if(sC(e)){let t=e;if(e.update&&r!=null){let n=Array.isArray(e.update)?Object.fromEntries(e.update):e.update,i=p_(r,n);t.update=Object.fromEntries(Object.keys(n).map(e=>[e,i[e]]))}return t}return r==null?e:p_(r,e)}isInterrupted(e){return aC(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return S_(t)&&p_(t,e),e}};function yR(e){return typeof e==`object`&&!!e&&e.channels!==void 0}function bR(e){if(tC(e))return[e];let t=[];sC(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(sC));let n=[];for(let e of t){if(e.graph===oC.PARENT)throw new yC(e);tC(e.goto)||typeof e.goto==`string`?n.push(e.goto):Array.isArray(e.goto)&&n.push(...e.goto)}return n}function xR(){return new FL({path:new JN({func:bR,tags:[WS],trace:!1,recurse:!1,name:`<control_branch>`})})}var SR=e=>Array.isArray(e)&&e.every(wt),CR=e=>typeof e==`object`&&!!e&&`messages`in e&&SR(e.messages),wR=e=>typeof e==`object`&&!!e&&`lg_tool_call`in e,TR=class extends JN{tools;handleToolErrors=!0;trace=!1;constructor(e,t){let{name:n,tags:r,handleToolErrors:i}=t??{};super({name:n,tags:r,func:(e,t)=>this.run(e,t)}),this.tools=e,this.handleToolErrors=i??this.handleToolErrors}async runTool(e,t,n){let r=this.tools.find(t=>t.name===e.name);try{if(r===void 0)throw Error(`Tool "${e.name}" not found.`);let i={...e,type:`tool_call`},a={...t,state:n,toolCallId:e.id??``,config:t,context:t.context,store:t.store??null,writer:t.writer??t.configurable?.writer??null},o=await r.invoke(i,a);return wt(o)&&o.getType()===`tool`||sC(o)?o:new Ot({status:`success`,name:r.name,content:typeof o==`string`?o:JSON.stringify(o),tool_call_id:e.id})}catch(t){if(!this.handleToolErrors||SC(t))throw t;return new Ot({status:`error`,content:`Error: ${t.message}\n Please fix your mistakes.`,name:e.name,tool_call_id:e.id??``})}}async run(e,t){let n;if(wR(e)){let{lg_tool_call:r,...i}=e;n=[await this.runTool(r,t,i)]}else{let r;if(SR(e))r=e;else if(CR(e))r=e.messages;else throw Error(`ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.`);let i=new Set(r.filter(e=>e.getType()===`tool`).map(e=>e.tool_call_id)),a;for(let e=r.length-1;e>=0;--e){let t=r[e];if(cn(t)){a=t;break}}if(a==null||!cn(a))throw Error(`ToolNode only accepts AIMessages as input.`);n=await Promise.all(a.tool_calls?.filter(e=>e.id==null||!i.has(e.id)).map(n=>this.runTool(n,t,e))??[])}if(!n.some(sC))return Array.isArray(e)?n:{messages:n};let r=[],i=null;for(let t of n)sC(t)?t.graph===oC.PARENT&&Array.isArray(t.goto)&&t.goto.every(e=>tC(e))?i?i.goto.push(...t.goto):i=new oC({graph:oC.PARENT,goto:t.goto}):r.push(t):r.push(Array.isArray(e)?[t]:{messages:[t]});return i&&r.push(i),r}},ER=/<name>(.*?)<\/name>/s,DR=/<content>(.*?)<\/content>/s;function OR(e){if(!(wt(e)&&(cn(e)||Tt(e)&&ln(e)))||!e.name)return e;let{name:t}=e;if(typeof e.content==`string`)return new k({...Object.keys(e.lc_kwargs??{}).length>0?e.lc_kwargs:e,content:`<name>${t}</name><content>${e.content}</content>`,name:void 0});let n=[],r=0;for(let i of e.content)typeof i==`string`?(r+=1,n.push(`<name>${t}</name><content>${i}</content>`)):typeof i==`object`&&`type`in i&&i.type===`text`?(r+=1,n.push({...i,text:`<name>${t}</name><content>${i.text}</content>`})):n.push(i);return r||n.unshift({type:`text`,text:`<name>${t}</name><content></content>`}),new k({...e.lc_kwargs,content:n,name:void 0})}function kR(e){if(!cn(e)||!e.content)return e;let t=[],n;if(Array.isArray(e.content))t=e.content.filter(e=>{if(e.type===`text`&&typeof e.text==`string`){let t=e.text.match(ER),r=e.text.match(DR);return t&&(!r||r[1]===``)?(n=t[1],!1):!0}return!0}).map(e=>{if(e.type===`text`&&typeof e.text==`string`){let t=e.text.match(ER),r=e.text.match(DR);return!t||!r?e:(n=t[1],{...e,text:r[1]})}return e});else{let r=e.content,i=r.match(ER),a=r.match(DR);if(!i||!a)return e;n=i[1],t=a[1]}return new k({...Object.keys(e.lc_kwargs??{}).length>0?e.lc_kwargs:e,content:t,name:n})}function AR(e,t){let n,r;if(t===`inline`)n=OR,r=kR;else throw Error(`Invalid agent name mode: ${t}. Needs to be one of: "inline"`);function i(e){return e.map(n)}return jx.from([Fx.from(i),e,Fx.from(r)])}function jR(e){if(typeof e==`string`||wt(e)&&e._getType()===`system`)return e;if(typeof e==`function`)return async t=>e(t.messages);if(Dx.isRunnable(e))return Fx.from(e=>e.messages).pipe(e);throw Error(`Unexpected type for messageModifier: ${typeof e}`)}var MR=`prompt`;function NR(e){let t;if(e==null)t=Fx.from(e=>e.messages).withConfig({runName:MR});else if(typeof e==`string`){let n=new wn(e);t=Fx.from(e=>[n,...e.messages??[]]).withConfig({runName:MR})}else if(wt(e)&&e._getType()===`system`)t=Fx.from(t=>[e,...t.messages]).withConfig({runName:MR});else if(typeof e==`function`)t=Fx.from(e).withConfig({runName:MR});else if(Dx.isRunnable(e))t=e;else throw Error(`Got unexpected type for 'prompt': ${typeof e}`);return t}function PR(e){return Dx.isRunnable(e)}function FR(e,t,n){if([e,t,n].filter(e=>e!=null).length>1)throw Error(`Expected only one of prompt, stateModifier, or messageModifier, got multiple values`);let r=e;return t==null?n!=null&&(r=jR(n)):r=t,NR(r)}function IR(e){return`invoke`in e&&typeof e.invoke==`function`&&`_modelType`in e}function LR(e){return`_queuedMethodOperations`in e&&`_model`in e&&typeof e._model==`function`}function RR(e){return IR(e)?`bindTools`in e&&typeof e.bindTools==`function`:!1}async function zR(e,t){let n=e;if(jx.isRunnableSequence(n)&&(n=n.steps.find(e=>Ox.isRunnableBinding(e)||IR(e)||LR(e))||n),LR(n)&&(n=await n._model()),!Ox.isRunnableBinding(n))return!0;let r=n.kwargs!=null&&typeof n.kwargs==`object`&&`tools`in n.kwargs&&Array.isArray(n.kwargs.tools)?n.kwargs.tools??null:n.config!=null&&typeof n.config==`object`&&`tools`in n.config&&Array.isArray(n.config.tools)?n.config.tools??null:null;if(r!=null&&r.length===1&&`functionDeclarations`in r[0]&&(r=r[0].functionDeclarations),r==null)return!0;if(t.length!==r.length)throw Error(`Number of tools in the model.bindTools() and tools passed to createReactAgent must match`);let i=new Set(t.flatMap(e=>PR(e)?e.name:[])),a=new Set;for(let e of r){let t;if(`type`in e&&e.type===`function`)t=e.function.name;else if(`name`in e)t=e.name;else if(`toolSpec`in e&&`name`in e.toolSpec)t=e.toolSpec.name;else continue;t&&a.add(t)}let o=[...i].filter(e=>!a.has(e));if(o.length>0)throw Error(`Missing tools '${o}' in the model.bindTools().Tools in the model.bindTools() must match the tools passed to createReactAgent.`);return!1}var BR=(e,t)=>{if(RR(e))return e.bindTools(t);if(Ox.isRunnableBinding(e)&&RR(e.bound)){let n=e.bound.bindTools(t);return Ox.isRunnableBinding(n)?new Ox({bound:n.bound,config:{...e.config,...n.config},kwargs:{...e.kwargs,...n.kwargs},configFactories:n.configFactories??e.configFactories}):new Ox({bound:n,config:e.config,kwargs:e.kwargs,configFactories:e.configFactories})}return null};async function VR(e,t){let n=BR(e,t);if(n)return n;if(LR(e)){let n=BR(await e._model(),t);if(n)return n}if(jx.isRunnableSequence(e)){let n=e.steps.findIndex(e=>Ox.isRunnableBinding(e)||IR(e)||LR(e));if(n>=0){let r=BR(e.steps[n],t);if(r){let t=e.steps.slice();return t.splice(n,1,r),jx.from(t)}}}throw Error(`llm ${e} must define bindTools method.`)}async function HR(e){let t=e;if(jx.isRunnableSequence(t)&&(t=t.steps.find(e=>Ox.isRunnableBinding(e)||IR(e)||LR(e))||t),LR(t)&&(t=await t._model()),Ox.isRunnableBinding(t)&&(t=t.bound),!IR(t))throw Error(`Expected \`llm\` to be a ChatModel or RunnableBinding (e.g. llm.bind_tools(...)) with invoke() and generate() methods, got ${t.constructor.name}`);return t}var UR=()=>PN.Root({messages:PN({reducer:oR,default:()=>[]}),structuredResponse:PN}),WR=PN.Root({llmInputMessages:PN({reducer:(e,t)=>oR([],t),default:()=>[]})});function GR(e){let{llm:t,tools:n,messageModifier:r,stateModifier:i,prompt:a,stateSchema:o,contextSchema:s,checkpointSaver:c,checkpointer:l,interruptBefore:u,interruptAfter:d,store:f,responseFormat:p,preModelHook:m,postModelHook:h,name:g,description:_,version:v=`v1`,includeAgentName:y}=e,b,x;Array.isArray(n)?(b=n,x=new TR(b.filter(PR))):(b=n.tools,x=n);let S=null,ee=async e=>{if(S)return S;let t;t=await zR(e,b)?await VR(e,b):e;let n=FR(a,i,r),o=y===`inline`?AR(t,y):t;return S=n.pipe(o),S},C=async(e,t,n)=>{let o=await e(t,n);return FR(a,i,r).pipe(y===`inline`?AR(o,y):o)},te=new Set(b.filter(PR).filter(e=>`returnDirect`in e&&e.returnDirect).map(e=>e.name));function ne(e){let{messages:t,llmInputMessages:n,...r}=e;return n!=null&&n.length>0?{messages:n,...r}:{messages:t,...r}}let re=async(e,n)=>{if(p==null)throw Error(`Attempted to generate structured output with no passed response schema. Please contact us for help.`);let r=[...e.messages],i,a=typeof t==`function`?await t(e,n):await HR(t);if(!IR(a))throw Error(`Expected \`llm\` to be a ChatModel with .withStructuredOutput() method, got ${a.constructor.name}`);if(typeof p==`object`&&`schema`in p){let{prompt:e,schema:t,...n}=p;i=a.withStructuredOutput(t,n),e!=null&&r.unshift(new wn({content:e}))}else i=a.withStructuredOutput(p);let o=await i.invoke(r,n);if(o==null)throw Error("Failed to parse structured response against the provided `responseFormat` schema: the structured-output parser returned null/undefined, which usually means the model output did not satisfy the schema.");return{structuredResponse:o}},ie=async(e,n)=>{let r=await(typeof t==`function`?await C(t,e,n):await ee(t)).invoke(ne(e),n);return r.name=g,r.lc_kwargs.name=g,{messages:[r]}},ae=new gR(o??UR(),s).addNode(`tools`,x);if(!(`messages`in ae._schemaDefinition))throw Error("Missing required `messages` key in state schema.");let oe=ae,se=e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)),w=`agent`,ce;return m==null?w=`agent`:(oe.addNode(`pre_model_hook`,m).addEdge(`pre_model_hook`,`agent`),w=`pre_model_hook`,ce=PN.Root({...ae._schemaDefinition,...WR.spec})),oe.addNode(`agent`,ie,{input:ce}).addEdge(pS,w),h!=null&&oe.addNode(`post_model_hook`,h).addEdge(`agent`,`post_model_hook`).addConditionalEdges(`post_model_hook`,e=>{let{messages:t}=e,n=new Set(t.filter(jt).map(e=>e.tool_call_id)),r;for(let e=t.length-1;e>=0;--e){let n=t[e];if(cn(n)){r=n;break}}let i=r?.tool_calls?.filter(e=>e.id==null||!n.has(e.id))??[],a=t[t.length-1];return i.length>0?v===`v2`?i.map(t=>new eC(`tools`,{...e,lg_tool_call:t})):`tools`:a&&jt(a)?w:p==null?mS:`generate_structured_response`},se({tools:`tools`,[w]:w,generate_structured_response:p==null?null:`generate_structured_response`,[mS]:p==null?mS:null})),p!==void 0&&ae.addNode(`generate_structured_response`,re).addEdge(`generate_structured_response`,mS),h??oe.addConditionalEdges(`agent`,e=>{let{messages:t}=e,n=t[t.length-1];return!cn(n)||!n.tool_calls?.length?p==null?mS:`generate_structured_response`:v===`v2`?n.tool_calls.map(t=>new eC(`tools`,{...e,lg_tool_call:t})):`tools`},se({tools:`tools`,generate_structured_response:p==null?null:`generate_structured_response`,[mS]:p==null?mS:null})),te.size>0?oe.addConditionalEdges(`tools`,e=>{let t=e;for(let e=t.messages.length-1;e>=0;--e){let n=t.messages[e];if(!jt(n))break;if(n.name!==void 0&&te.has(n.name))return mS}return w},se({[w]:w,[mS]:mS})):oe.addEdge(`tools`,w),oe.compile({checkpointer:l??c,interruptBefore:u,interruptAfter:d,store:f,name:g,description:_})}function KR(e,t){return e.lc_error_code=t,e.message=`${e.message}\n\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${t}/\n`,e}function q(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function J(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var qR=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return qR=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))};function JR(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var YR=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)},Y=class extends Error{},XR=class e extends Y{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new QR({message:r,cause:YR(n)});let a=n?.error;return t===400?new ez(t,a,r,i):t===401?new tz(t,a,r,i):t===403?new nz(t,a,r,i):t===404?new rz(t,a,r,i):t===409?new iz(t,a,r,i):t===422?new az(t,a,r,i):t===429?new oz(t,a,r,i):t>=500?new sz(t,a,r,i):new e(t,a,r,i)}},ZR=class extends XR{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},QR=class extends XR{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},$R=class extends QR{constructor({message:e}={}){super({message:e??`Request timed out.`})}},ez=class extends XR{},tz=class extends XR{},nz=class extends XR{},rz=class extends XR{},iz=class extends XR{},az=class extends XR{},oz=class extends XR{},sz=class extends XR{},cz=class extends Y{constructor(){super(`Could not parse response content as the length limit was reached`)}},lz=class extends Y{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},uz=class extends Error{constructor(e){super(e)}},dz=class extends XR{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},fz=class extends Y{constructor(e,t,n){super(e),this.provider=t,this.cause=n}},pz=/^[a-z][a-z0-9+.-]*:/i,mz=e=>pz.test(e),hz=e=>(hz=Array.isArray,hz(e)),gz=hz;function _z(e){return typeof e==`object`?e??{}:{}}function vz(e){if(!e)return!0;for(let t in e)return!1;return!0}function yz(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bz(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var xz=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new Y(`${e} must be an integer`);if(t<0)throw new Y(`${e} must be a positive integer`);return t},Sz=e=>{try{return JSON.parse(e)}catch{return}},Cz=e=>new Promise(t=>setTimeout(t,e)),wz=`6.45.0`,Tz=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`;function Ez(){return typeof Deno<`u`&&Deno.build!=null?`deno`:typeof EdgeRuntime<`u`?`edge`:Object.prototype.toString.call(globalThis.process===void 0?0:globalThis.process)===`[object process]`?`node`:`unknown`}var Dz=()=>{let e=Ez();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":wz,"X-Stainless-OS":Az(Deno.build.os),"X-Stainless-Arch":kz(Deno.build.arch),"X-Stainless-Runtime":`deno`,"X-Stainless-Runtime-Version":typeof Deno.version==`string`?Deno.version:Deno.version?.deno??`unknown`};if(typeof EdgeRuntime<`u`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":wz,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":`edge`,"X-Stainless-Runtime-Version":globalThis.process.version};if(e===`node`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":wz,"X-Stainless-OS":Az(globalThis.process.platform??`unknown`),"X-Stainless-Arch":kz(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=Oz();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":wz,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":wz,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}};function Oz(){if(typeof navigator>`u`||!navigator)return null;for(let{key:e,pattern:t}of[{key:`edge`,pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`chrome`,pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`firefox`,pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`safari`,pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let n=t.exec(navigator.userAgent);if(n)return{browser:e,version:`${n[1]||0}.${n[2]||0}.${n[3]||0}`}}return null}var kz=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,Az=e=>(e=e.toLowerCase(),e.includes(`ios`)?`iOS`:e===`android`?`Android`:e===`darwin`?`MacOS`:e===`win32`?`Windows`:e===`freebsd`?`FreeBSD`:e===`openbsd`?`OpenBSD`:e===`linux`?`Linux`:e?`Other:${e}`:`Unknown`),jz,Mz=()=>jz??=Dz();function Nz(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Pz(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function Fz(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return Pz({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function Iz(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Lz(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var Rz=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)}),zz=`RFC3986`,Bz=e=>String(e),Vz={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:Bz},Hz=(e,t)=>(Hz=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Hz(e,t)),Uz=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),Wz=1024,Gz=(e,t,n,r,i)=>{if(e.length===0)return e;let a=e;if(typeof e==`symbol`?a=Symbol.prototype.toString.call(e):typeof e!=`string`&&(a=String(e)),n===`iso-8859-1`)return escape(a).replace(/%u[0-9a-f]{4}/gi,function(e){return`%26%23`+parseInt(e.slice(2),16)+`%3B`});let o=``;for(let e=0;e<a.length;e+=Wz){let t=a.length>=Wz?a.slice(e,e+Wz):a,n=[];for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r===45||r===46||r===95||r===126||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||i===`RFC1738`&&(r===40||r===41)){n[n.length]=t.charAt(e);continue}if(r<128){n[n.length]=Uz[r];continue}if(r<2048){n[n.length]=Uz[192|r>>6]+Uz[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=Uz[224|r>>12]+Uz[128|r>>6&63]+Uz[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=Uz[240|r>>18]+Uz[128|r>>12&63]+Uz[128|r>>6&63]+Uz[128|r&63]}o+=n.join(``)}return o};function Kz(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function qz(e,t){if(hz(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}var Jz={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},Yz=function(e,t){Array.prototype.push.apply(e,hz(t)?t:[t])},Xz,Zz={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:Gz,encodeValuesOnly:!1,format:zz,formatter:Bz,indices:!1,serializeDate(e){return(Xz??=Function.prototype.call.bind(Date.prototype.toISOString))(e)},skipNulls:!1,strictNullHandling:!1};function Qz(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}var $z={};function eB(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=e,y=_,b=0,x=!1;for(;(y=y.get($z))!==void 0&&!x;){let t=y.get(e);if(b+=1,t!==void 0){if(t===b)throw RangeError(`Cyclic object value`);x=!0}y.get($z)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&hz(v)&&(v=qz(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,Zz.encoder,g,`key`,p):t;v=``}if(Qz(v)||Kz(v)){if(c){let e=h?t:c(t,Zz.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,Zz.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let ee;if(n===`comma`&&hz(v))h&&c&&(v=qz(v,c)),ee=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(hz(l))ee=l;else{let e=Object.keys(v);ee=u?e.sort(u):e}let C=s?String(t).replace(/\./g,`%2E`):String(t),te=r&&hz(v)&&v.length===1?C+`[]`:C;if(i&&hz(v)&&v.length===0)return te+`[]`;for(let t=0;t<ee.length;++t){let y=ee[t],x=typeof y==`object`&&y.value!==void 0?y.value:v[y];if(o&&x===null)continue;let C=d&&s?y.replace(/\./g,`%2E`):y,ne=hz(v)?typeof n==`function`?n(te,C):te:te+(d?`.`+C:`[`+C+`]`);_.set(e,b);let re=new WeakMap;re.set($z,_),Yz(S,eB(x,ne,n,r,i,a,o,s,n===`comma`&&h&&hz(v)?null:c,l,u,d,f,p,m,h,g,re))}return S}function tB(e=Zz){if(e.allowEmptyArrays!==void 0&&typeof e.allowEmptyArrays!=`boolean`)throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(e.encodeDotInKeys!==void 0&&typeof e.encodeDotInKeys!=`boolean`)throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&e.encoder!==void 0&&typeof e.encoder!=`function`)throw TypeError(`Encoder has to be a function.`);let t=e.charset||Zz.charset;if(e.charset!==void 0&&e.charset!==`utf-8`&&e.charset!==`iso-8859-1`)throw TypeError(`The charset option must be either utf-8, iso-8859-1, or undefined`);let n=zz;if(e.format!==void 0){if(!Hz(Vz,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=Vz[n],i=Zz.filter;(typeof e.filter==`function`||hz(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in Jz?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:Zz.arrayFormat,`commaRoundTrip`in e&&typeof e.commaRoundTrip!=`boolean`)throw TypeError("`commaRoundTrip` must be a boolean, or absent");let o=e.allowDots===void 0?e.encodeDotInKeys?!0:Zz.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:Zz.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:Zz.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:Zz.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?Zz.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:Zz.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:Zz.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:Zz.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:Zz.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:Zz.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:Zz.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:Zz.strictNullHandling}}function nB(e,t={}){let n=e,r=tB(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):hz(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=Jz[r.arrayFormat],c=s===`comma`&&r.commaRoundTrip;i||=Object.keys(n),r.sort&&i.sort(r.sort);let l=new WeakMap;for(let e=0;e<i.length;++e){let t=i[e];r.skipNulls&&n[t]===null||Yz(o,eB(n[t],t,s,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,l))}let u=o.join(r.delimiter),d=r.addQueryPrefix===!0?`?`:``;return r.charsetSentinel&&(r.charset===`iso-8859-1`?d+=`utf8=%26%2310003%3B&`:d+=`utf8=%E2%9C%93&`),u.length>0?d+u:``}function rB(e){return nB(e,{arrayFormat:`brackets`})}function iB(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var aB;function oB(e){let t;return(aB??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var sB;function cB(e){let t;return(sB??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var lB,uB,dB=class{constructor(){lB.set(this,void 0),uB.set(this,void 0),q(this,lB,new Uint8Array,`f`),q(this,uB,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?oB(e):e;q(this,lB,iB([J(this,lB,`f`),t]),`f`);let n=[],r;for(;(r=fB(J(this,lB,`f`),J(this,uB,`f`)))!=null;){if(r.carriage&&J(this,uB,`f`)==null){q(this,uB,r.index,`f`);continue}if(J(this,uB,`f`)!=null&&(r.index!==J(this,uB,`f`)+1||r.carriage)){n.push(cB(J(this,lB,`f`).subarray(0,J(this,uB,`f`)-1))),q(this,lB,J(this,lB,`f`).subarray(J(this,uB,`f`)),`f`),q(this,uB,null,`f`);continue}let e=J(this,uB,`f`)===null?r.preceding:r.preceding-1,t=cB(J(this,lB,`f`).subarray(0,e));n.push(t),q(this,lB,J(this,lB,`f`).subarray(r.index),`f`),q(this,uB,null,`f`)}return n}flush(){return J(this,lB,`f`).length?this.decode(`
|
|
192
|
+
`):[]}};lB=new WeakMap,uB=new WeakMap,dB.NEWLINE_CHARS=new Set([`
|
|
193
|
+
`,`\r`]),dB.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function fB(e,t){for(let n=t??0;n<e.length;n++){if(e[n]===10)return{preceding:n,index:n+1,carriage:!1};if(e[n]===13)return{preceding:n,index:n+1,carriage:!0}}return null}function pB(e){for(let t=0;t<e.length-1;t++){if(e[t]===10&&e[t+1]===10||e[t]===13&&e[t+1]===13)return t+2;if(e[t]===13&&e[t+1]===10&&t+3<e.length&&e[t+2]===13&&e[t+3]===10)return t+4}return-1}var mB={off:0,error:200,warn:300,info:400,debug:500},hB=(e,t,n)=>{if(e){if(yz(mB,e))return e;bB(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(mB))}`)}};function gB(){}function _B(e,t,n){return!t||mB[e]>mB[n]?gB:t[e].bind(t)}var vB={error:gB,warn:gB,info:gB,debug:gB},yB=new WeakMap;function bB(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return vB;let r=yB.get(t);if(r&&r[0]===n)return r[1];let i={error:_B(`error`,t,n),warn:_B(`warn`,t,n),info:_B(`info`,t,n),debug:_B(`debug`,t,n)};return yB.set(t,[n,i]),i}var xB=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`authorization`||e.toLowerCase()===`api-key`||e.toLowerCase()===`x-api-key`||e.toLowerCase()===`x-amz-security-token`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e),SB,CB=class e{constructor(e,t,n){this.iterator=e,SB.set(this,void 0),this.controller=t,q(this,SB,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?bB(r):console;async function*s(){if(a)throw new Y("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1;try{for await(let r of wB(t,n))if(!e){if(r.data.startsWith(`[DONE]`)){e=!0;continue}if(r.event===null||!r.event.startsWith(`thread.`)){let e;try{e=JSON.parse(r.data)}catch(e){throw o.error(`Could not parse message into JSON:`,r.data),o.error(`From chunk:`,r.raw),e}if(e&&e.error)throw new XR(void 0,e.error,void 0,t.headers);yield i?{event:r.event,data:e}:e}else{let e;try{e=JSON.parse(r.data)}catch(e){throw console.error(`Could not parse message into JSON:`,r.data),console.error(`From chunk:`,r.raw),e}if(r.event==`error`)throw new XR(void 0,e.error,e.message,void 0);yield{event:r.event,data:e}}}e=!0}catch(e){if(JR(e))return;throw e}finally{e||n.abort()}}return new e(s,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new dB,n=Iz(t);for await(let t of n)for(let n of e.decode(t))yield n;for(let t of e.flush())yield t}async function*o(){if(i)throw new Y("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(JR(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(SB=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,J(this,SB,`f`)),new e(()=>i(n),this.controller,J(this,SB,`f`))]}toReadableStream(){let e=this,t;return Pz({async start(){t=e[Symbol.asyncIterator]()},async pull(e){try{let{value:n,done:r}=await t.next();if(r)return e.close();let i=oB(JSON.stringify(n)+`
|
|
194
|
+
`);e.enqueue(i)}catch(t){e.error(t)}},async cancel(){await t.return?.()}})}};async function*wB(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new Y(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new Y(`Attempted to iterate over a response with no body`);let n=new EB,r=new dB,i=Iz(e.body);for await(let e of TB(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}async function*TB(e){let t=new Uint8Array;for await(let n of e){if(n==null)continue;let e=n instanceof ArrayBuffer?new Uint8Array(n):typeof n==`string`?oB(n):n,r=new Uint8Array(t.length+e.length);r.set(t),r.set(e,t.length),t=r;let i;for(;(i=pB(t))!==-1;)yield t.slice(0,i),t=t.slice(i)}t.length>0&&(yield t)}var EB=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|
|
195
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(`:`))return null;let[t,n,r]=DB(e,`:`);return r.startsWith(` `)&&(r=r.substring(1)),t===`event`?this.event=r:t===`data`&&this.data.push(r),null}};function DB(e,t){let n=e.indexOf(t);return n===-1?[e,``,``]:[e.substring(0,n),t,e.substring(n+t.length)]}async function OB(e,t){let{response:n,requestLogID:r,retryOfRequestLogID:i,startTime:a}=t,o=await(async()=>{if(t.options.stream)return bB(e).debug(`response`,n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e,t.options.__synthesizeEventData):CB.fromSSEResponse(n,t.controller,e,t.options.__synthesizeEventData);if(n.status===204)return null;if(t.options.__binaryResponse)return n;let r=n.headers.get(`content-type`)?.split(`;`)[0]?.trim();return r?.includes(`application/json`)||r?.endsWith(`+json`)?n.headers.get(`content-length`)===`0`?void 0:kB(await n.json(),n):await n.text()})();return bB(e).debug(`[${r}] response parsed`,xB({retryOfRequestLogID:i,url:n.url,status:n.status,body:o,durationMs:Date.now()-a})),o}function kB(e,t){return!e||typeof e!=`object`||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get(`x-request-id`),enumerable:!1})}var AB,jB=class e extends Promise{constructor(e,t,n=OB){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=n,AB.set(this,void 0),q(this,AB,e,`f`)}_thenUnwrap(t){return new e(J(this,AB,`f`),this.responsePromise,async(e,n)=>kB(t(await this.parseResponse(e,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get(`x-request-id`)}}parse(){return this.parsedPromise||=this.responsePromise.then(e=>this.parseResponse(J(this,AB,`f`),e)),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};AB=new WeakMap;var MB,NB=class{constructor(e,t,n,r){MB.set(this,void 0),q(this,MB,e,`f`),this.options=r,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new Y("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await J(this,MB,`f`).requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(MB=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},PB=class extends jB{constructor(e,t,n){super(e,t,async(e,t)=>new n(e,t.response,await OB(e,t),t.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},FB=class extends NB{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},IB=class extends NB{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.getPaginatedItems(),t=e[e.length-1]?.id;return t?{...this.options,query:{..._z(this.options.query),after:t}}:null}},LB=class extends NB{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1,this.last_id=n.last_id||``}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.last_id;return e?{...this.options,query:{..._z(this.options.query),after:e}}:null}},RB=class extends NB{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1,this.next=n.next||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.next;return e?{...this.options,query:{..._z(this.options.query),after:e}}:null}},zB={jwt:`urn:ietf:params:oauth:token-type:jwt`,id:`urn:ietf:params:oauth:token-type:id_token`},BB=`urn:ietf:params:oauth:grant-type:token-exchange`,VB=class{constructor(e,t){this.cachedToken=null,this.refreshPromise=null,this.tokenExchangeUrl=`https://auth.openai.com/oauth/token`,this.config=e,this.fetch=t??Nz()}async getToken(){if(!this.cachedToken||this.isTokenExpired(this.cachedToken)){if(this.refreshPromise)return await this.refreshPromise;this.refreshPromise=this.refreshToken();try{return await this.refreshPromise}finally{this.refreshPromise=null}}return this.needsRefresh(this.cachedToken)&&!this.refreshPromise&&(this.refreshPromise=this.refreshToken().finally(()=>{this.refreshPromise=null})),this.cachedToken.token}async refreshToken(){let e={grant_type:BB,subject_token:await this.config.provider.getToken(),subject_token_type:zB[this.config.provider.tokenType],identity_provider_id:this.config.identityProviderId,service_account_id:this.config.serviceAccountId};this.config.clientId&&(e.client_id=this.config.clientId);let t=await this.fetch(this.tokenExchangeUrl,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.text(),n;try{n=JSON.parse(e)}catch{}throw t.status===400||t.status===401||t.status===403?new dz(t.status,n,t.headers):XR.generate(t.status,n,`Token exchange failed with status ${t.status}`,t.headers)}let n=await t.json();if(typeof n!=`object`||!n||!(`access_token`in n)||typeof n.access_token!=`string`||n.access_token.trim().length===0)throw new Y(`Token exchange response missing 'access_token' field`);let r=n.access_token,i=n.expires_in??3600,a=Date.now()+i*1e3;return this.cachedToken={token:r,expiresAt:a},r}isTokenExpired(e){return Date.now()>=e.expiresAt}needsRefresh(e){let t=(this.config.refreshBufferSeconds??1200)*1e3;return Date.now()>=e.expiresAt-t}invalidateToken(){this.cachedToken=null,this.refreshPromise=null}},HB=()=>{if(typeof File>`u`){let{process:e}=globalThis,t=typeof e?.versions?.node==`string`&&parseInt(e.versions.node.split(`.`))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":``))}};function UB(e,t,n){return HB(),new File(e,t??`unknown_file`,n)}function WB(e){return(typeof e==`object`&&!!e&&(`name`in e&&e.name&&String(e.name)||`url`in e&&e.url&&String(e.url)||`filename`in e&&e.filename&&String(e.filename)||`path`in e&&e.path&&String(e.path))||``).split(/[\\/]/).pop()||void 0}var GB=e=>typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`,KB=async(e,t)=>$B(e.body)?{...e,body:await XB(e.body,t)}:e,qB=async(e,t)=>({...e,body:await XB(e.body,t)}),JB=new WeakMap;function YB(e){let t=typeof e==`function`?e:e.fetch,n=JB.get(t);if(n)return n;let r=(async()=>{try{let e=`Response`in t?t.Response:(await t(`data:,`)).constructor,n=new FormData;return n.toString()!==await new e(n).text()}catch{return!0}})();return JB.set(t,r),r}var XB=async(e,t)=>{if(!await YB(t))throw TypeError(`The provided fetch function does not support file uploads with the current global FormData class.`);let n=new FormData;return await Promise.all(Object.entries(e||{}).map(([e,t])=>eV(n,e,t))),n},ZB=e=>e instanceof Blob&&`name`in e,QB=e=>typeof e==`object`&&!!e&&(e instanceof Response||GB(e)||ZB(e)),$B=e=>{if(QB(e))return!0;if(Array.isArray(e))return e.some($B);if(e&&typeof e==`object`){for(let t in e)if($B(e[t]))return!0}return!1},eV=async(e,t,n)=>{if(n!==void 0){if(n==null)throw TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeof n==`string`||typeof n==`number`||typeof n==`boolean`)e.append(t,String(n));else if(n instanceof Response)e.append(t,UB([await n.blob()],WB(n)));else if(GB(n))e.append(t,UB([await new Response(Fz(n)).blob()],WB(n)));else if(ZB(n))e.append(t,n,WB(n));else if(Array.isArray(n))await Promise.all(n.map(n=>eV(e,t+`[]`,n)));else if(typeof n==`object`)await Promise.all(Object.entries(n).map(([n,r])=>eV(e,`${t}[${n}]`,r)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${n} instead`)}},tV=e=>typeof e==`object`&&!!e&&typeof e.size==`number`&&typeof e.type==`string`&&typeof e.text==`function`&&typeof e.slice==`function`&&typeof e.arrayBuffer==`function`,nV=e=>typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.lastModified==`number`&&tV(e),rV=e=>typeof e==`object`&&!!e&&typeof e.url==`string`&&typeof e.blob==`function`;async function iV(e,t,n){if(HB(),e=await e,nV(e))return e instanceof File?e:UB([await e.arrayBuffer()],e.name);if(rV(e)){let r=await e.blob();return t||=new URL(e.url).pathname.split(/[\\/]/).pop(),UB(await aV(r),t,n)}let r=await aV(e);if(t||=WB(e),!n?.type){let e=r.find(e=>typeof e==`object`&&`type`in e&&e.type);typeof e==`string`&&(n={...n,type:e})}return UB(r,t,n)}async function aV(e){let t=[];if(typeof e==`string`||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(tV(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(GB(e))for await(let n of e)t.push(...await aV(n));else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:``}${oV(e)}`)}return t}function oV(e){return typeof e!=`object`||!e?``:`; props: [${Object.getOwnPropertyNames(e).map(e=>`"${e}"`).join(`, `)}]`}var X=class{constructor(e){this._client=e}};function sV(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var cV=Object.freeze(Object.create(null)),Z=((e=sV)=>function(t,...n){if(t.length===1)return t[0];let r=!1,i=[],a=t.reduce((t,a,o)=>{/[?#]/.test(a)&&(r=!0);let s=n[o],c=(r?encodeURIComponent:e)(``+s);return o!==n.length&&(s==null||typeof s==`object`&&s.toString===Object.getPrototypeOf(Object.getPrototypeOf(s.hasOwnProperty??cV)??cV)?.toString)&&(c=s+``,i.push({start:t.length+a.length,length:c.length,error:`Value of type ${Object.prototype.toString.call(s).slice(8,-1)} is not a valid path parameter`})),t+a+(o===n.length?``:c)},``),o=a.split(/[?#]/,1)[0],s=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=s.exec(o))!==null;)i.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can\'t be safely passed as a path parameter`});if(i.sort((e,t)=>e.start-t.start),i.length>0){let e=0,t=i.reduce((t,n)=>{let r=` `.repeat(n.start-e),i=`^`.repeat(n.length);return e=n.start+n.length,t+r+i},``);throw new Y(`Path parameters result in path with invalid segments:\n${i.map(e=>e.error).join(`
|
|
196
|
+
`)}\n${a}\n${t}`)}return a})(sV),lV=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/chat/completions/${e}/messages`,IB,{query:t,...n,__security:{bearerAuth:!0}})}};function uV(e){return e!==void 0&&`function`in e&&e.function!==void 0}function dV(e,t){let n={...e};return Object.defineProperties(n,{$brand:{value:`auto-parseable-response-format`,enumerable:!1},$parseRaw:{value:t,enumerable:!1}}),n}function fV(e){return e?.$brand===`auto-parseable-response-format`}function pV(e){return e?.$brand===`auto-parseable-tool`}function mV(e,t){return!t||!yV(t)?{...e,choices:e.choices.map(e=>(bV(e.message.tool_calls),{...e,message:{...e.message,parsed:null,...e.message.tool_calls?{tool_calls:e.message.tool_calls}:void 0}}))}:hV(e,t)}function hV(e,t){let n=e.choices.map(e=>{if(e.finish_reason===`length`)throw new cz;if(e.finish_reason===`content_filter`)throw new lz;return bV(e.message.tool_calls),{...e,message:{...e.message,...e.message.tool_calls?{tool_calls:e.message.tool_calls?.map(e=>_V(t,e))??void 0}:void 0,parsed:e.message.content&&!e.message.refusal?gV(t,e.message.content):null}}});return{...e,choices:n}}function gV(e,t){return e.response_format?.type===`json_schema`&&e.response_format?.type===`json_schema`?`$parseRaw`in e.response_format?e.response_format.$parseRaw(t):JSON.parse(t):null}function _V(e,t){let n=e.tools?.find(e=>uV(e)&&e.function?.name===t.function.name);return{...t,function:{...t.function,parsed_arguments:pV(n)?n.$parseRaw(t.function.arguments):n?.function.strict?JSON.parse(t.function.arguments):null}}}function vV(e,t){if(!e||!(`tools`in e)||!e.tools)return!1;let n=e.tools?.find(e=>uV(e)&&e.function?.name===t.function.name);return uV(n)&&(pV(n)||n?.function.strict||!1)}function yV(e){return fV(e.response_format)?!0:e.tools?.some(e=>pV(e)||e.type===`function`&&e.function.strict===!0)??!1}function bV(e){for(let t of e||[])if(t.type!==`function`)throw new Y(`Currently only \`function\` tool calls are supported; Received \`${t.type}\``)}function xV(e){for(let t of e??[]){if(t.type!==`function`)throw new Y(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new Y(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var SV=e=>e?.role===`assistant`,CV=e=>e?.role===`tool`,wV,TV,EV,DV,OV,kV,AV,jV,MV,NV,PV,FV,IV,LV,RV,zV=class{constructor(){wV.add(this),this.controller=new AbortController,TV.set(this,void 0),EV.set(this,()=>{}),DV.set(this,()=>{}),OV.set(this,void 0),kV.set(this,()=>{}),AV.set(this,()=>{}),jV.set(this,{}),MV.set(this,[]),NV.set(this,!1),PV.set(this,!1),FV.set(this,!1),IV.set(this,!1),q(this,TV,new Promise((e,t)=>{q(this,EV,e,`f`),q(this,DV,t,`f`)}),`f`),q(this,OV,new Promise((e,t)=>{q(this,kV,e,`f`),q(this,AV,t,`f`)}),`f`),J(this,TV,`f`).catch(()=>{}),J(this,OV,`f`).catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit(`end`)},J(this,wV,`m`,RV).bind(this))},0)}_connected(){this.ended||(J(this,EV,`f`).call(this),this._emit(`connect`))}get ended(){return J(this,NV,`f`)}get errored(){return J(this,PV,`f`)}get aborted(){return J(this,FV,`f`)}abort(){this.controller.abort()}_listenForAbort(e){if(!e||this.ended)return;if(e.aborted){this.controller.abort();return}let t=()=>this.controller.abort();e.addEventListener(`abort`,t,{once:!0}),J(this,MV,`f`).push({signal:e,listener:t})}on(e,t){return(J(this,jV,`f`)[e]||(J(this,jV,`f`)[e]=[])).push({listener:t}),this}off(e,t){let n=J(this,jV,`f`)[e];if(!n)return this;let r=n.findIndex(e=>e.listener===t);return r>=0&&n.splice(r,1),this}once(e,t){return(J(this,jV,`f`)[e]||(J(this,jV,`f`)[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{q(this,IV,!0,`f`),e!==`error`&&this.once(`error`,n),this.once(e,t)})}async done(){q(this,IV,!0,`f`),await J(this,OV,`f`)}_emit(e,...t){if(J(this,NV,`f`))return;e===`end`&&(J(this,wV,`m`,LV).call(this),q(this,NV,!0,`f`),J(this,kV,`f`).call(this));let n=J(this,jV,`f`)[e];if(n&&(J(this,jV,`f`)[e]=n.filter(e=>!e.once),n.forEach(({listener:e})=>e(...t))),e===`abort`){let e=t[0];!J(this,IV,`f`)&&!n?.length&&Promise.reject(e),J(this,DV,`f`).call(this,e),J(this,AV,`f`).call(this,e),this._emit(`end`);return}if(e===`error`){let e=t[0];!J(this,IV,`f`)&&!n?.length&&Promise.reject(e),J(this,DV,`f`).call(this,e),J(this,AV,`f`).call(this,e),this._emit(`end`)}}_emitFinal(){}};TV=new WeakMap,EV=new WeakMap,DV=new WeakMap,OV=new WeakMap,kV=new WeakMap,AV=new WeakMap,jV=new WeakMap,MV=new WeakMap,NV=new WeakMap,PV=new WeakMap,FV=new WeakMap,IV=new WeakMap,wV=new WeakSet,LV=function(){for(let{signal:e,listener:t}of J(this,MV,`f`).splice(0))e.removeEventListener(`abort`,t)},RV=function(e){if(q(this,PV,!0,`f`),e instanceof Error&&e.name===`AbortError`&&(e=new ZR),e instanceof ZR)return q(this,FV,!0,`f`),this._emit(`abort`,e);if(e instanceof Y)return this._emit(`error`,e);if(e instanceof Error){let t=new Y(e.message);return t.cause=e,this._emit(`error`,t)}return this._emit(`error`,new Y(String(e)))};function BV(e){return typeof e.parse==`function`}var VV,HV,UV,WV,GV,KV,qV,JV,YV=10,XV=class extends zV{constructor(){super(...arguments),VV.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){this._chatCompletions.push(e),this._emit(`chatCompletion`,e);let t=e.choices[0]?.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if(`content`in e||(e.content=null),this.messages.push(e),t){if(this._emit(`message`,e),CV(e)&&e.content)this._emit(`functionToolCallResult`,e.content);else if(SV(e)&&e.tool_calls)for(let t of e.tool_calls)t.type===`function`&&this._emit(`functionToolCall`,t.function)}}async finalChatCompletion(){await this.done();let e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new Y(`stream ended without producing a ChatCompletion`);return e}async finalContent(){return await this.done(),J(this,VV,`m`,HV).call(this)}async finalMessage(){return await this.done(),J(this,VV,`m`,UV).call(this)}async finalFunctionToolCall(){return await this.done(),J(this,VV,`m`,WV).call(this)}async finalFunctionToolCallResult(){return await this.done(),J(this,VV,`m`,GV).call(this)}async totalUsage(){return await this.done(),J(this,VV,`m`,KV).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit(`finalChatCompletion`,e);let t=J(this,VV,`m`,UV).call(this);t&&this._emit(`finalMessage`,t);let n=J(this,VV,`m`,HV).call(this);n&&this._emit(`finalContent`,n);let r=J(this,VV,`m`,WV).call(this);r&&this._emit(`finalFunctionToolCall`,r);let i=J(this,VV,`m`,GV).call(this);i!=null&&this._emit(`finalFunctionToolCallResult`,i),this._chatCompletions.some(e=>e.usage)&&this._emit(`totalUsage`,J(this,VV,`m`,KV).call(this))}async _createChatCompletion(e,t,n){this._listenForAbort(n?.signal),J(this,VV,`m`,qV).call(this,t);let r=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(hV(r,t))}async _runChatCompletion(e,t,n){for(let e of t.messages)this._addMessage(e,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n,r){let i=`tool`,{tool_choice:a=`auto`,stream:o,...s}=t,c=typeof a!=`string`&&a.type===`function`&&a?.function?.name,{maxChatCompletions:l=YV,afterCompletion:u}=r||{},d=t.tools.map(e=>{if(pV(e)){if(!e.$callback)throw new Y("Tool given to `.runTools()` that does not have an associated function");return{type:`function`,function:{function:e.$callback,name:e.function.name,description:e.function.description||``,parameters:e.function.parameters,parse:e.$parseRaw,strict:!0}}}return e}),f={};for(let e of d)e.type===`function`&&(f[e.function.name||e.function.function.name]=e.function);let p=`tools`in t?d.map(e=>e.type===`function`?{type:`function`,function:{name:e.function.name||e.function.function.name,parameters:e.function.parameters,description:e.function.description,strict:e.function.strict}}:e):void 0;for(let e of t.messages)this._addMessage(e,!1);let m=async e=>{if(e.type!==`function`)return{message:void 0,functionCalled:!1};let t=e.id,{name:r,arguments:a}=e.function,o=f[r];if(!o){let e=`Invalid tool_call: ${JSON.stringify(r)}. Available options are: ${Object.keys(f).map(e=>JSON.stringify(e)).join(`, `)}. Please try again`;return{message:{role:i,tool_call_id:t,content:e},functionCalled:!1}}if(c&&c!==r){let e=`Invalid tool_call: ${JSON.stringify(r)}. ${JSON.stringify(c)} requested. Please try again`;return{message:{role:i,tool_call_id:t,content:e},functionCalled:!1}}let s;if(BV(o)){let e;try{e=await o.parse(a)}catch(e){let n=e instanceof Error?e.message:String(e);return{message:{role:i,tool_call_id:t,content:n},functionCalled:!1}}s=await o.function(e,n)}else s=await o.function(a,n);let l=J(this,VV,`m`,JV).call(this,s);return{message:{role:i,tool_call_id:t,content:l},functionCalled:!0}};for(let i=0;i<l;++i){let i=await this._createChatCompletion(e,{...s,tool_choice:a,tools:p,messages:[...this.messages]},r),o=i.choices[0]?.message;if(!o)throw new Y(`missing message in ChatCompletion response`);if(!o.tool_calls?.length){await u?.(i,n);return}if(c||t.parallel_tool_calls===!1)for(let e of o.tool_calls){let t=await m(e);if(t.message&&this._addMessage(t.message),c&&t.functionCalled){await u?.(i,n);return}}else{let e=await Promise.allSettled(o.tool_calls.map(m));for(let t of e)if(t.status===`rejected`)throw t.reason;for(let t of e)t.status===`fulfilled`&&t.value.message&&this._addMessage(t.value.message)}await u?.(i,n)}}};VV=new WeakSet,HV=function(){return J(this,VV,`m`,UV).call(this).content??null},UV=function(){let e=this.messages.length;for(;e-->0;){let t=this.messages[e];if(SV(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new Y(`stream ended without producing a ChatCompletionMessage with role=assistant`)},WV=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(SV(t)&&t?.tool_calls?.length)for(let e=t.tool_calls.length-1;e>=0;e--){let n=t.tool_calls[e];if(n?.type===`function`)return n.function}}},GV=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(CV(t)&&t.content!=null&&typeof t.content==`string`&&this.messages.some(e=>e.role===`assistant`&&e.tool_calls?.some(e=>e.type===`function`&&e.id===t.tool_call_id)))return t.content}},KV=function(){let e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},qV=function(e){if(e.n!=null&&e.n>1)throw new Y(`ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.`)},JV=function(e){return typeof e==`string`?e:e===void 0?`undefined`:JSON.stringify(e)};var ZV=class e extends XV{static runTools(t,n,r){let i=new e,a={...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`runTools`}};return i._run(()=>i._runTools(t,n,i,a)),i}_addMessage(e,t=!0){super._addMessage(e,t),SV(e)&&e.content&&this._emit(`content`,e.content)}},QV={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511},$V=class extends Error{},eH=class extends Error{};function tH(e,t=QV.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return nH(e.trim(),t)}var nH=(e,t)=>{let n=e.length,r=0,i=e=>{throw new $V(`${e} at position ${r}`)},a=e=>{throw new eH(`${e} at position ${r}`)},o=()=>(d(),r>=n&&i(`Unexpected end of input`),e[r]===`"`?s():e[r]===`{`?c():e[r]===`[`?l():e.substring(r,r+4)===`null`||QV.NULL&t&&n-r<4&&`null`.startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)===`true`||QV.BOOL&t&&n-r<4&&`true`.startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)===`false`||QV.BOOL&t&&n-r<5&&`false`.startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)===`Infinity`||QV.INFINITY&t&&n-r<8&&`Infinity`.startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)===`-Infinity`||QV.MINUS_INFINITY&t&&1<n-r&&n-r<9&&`-Infinity`.startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)===`NaN`||QV.NAN&t&&n-r<3&&`NaN`.startsWith(e.substring(r))?(r+=3,NaN):u()),s=()=>{let o=r,s=!1;for(r++;r<n&&(e[r]!==`"`||s&&e[r-1]===`\\`);)s=e[r]===`\\`&&!s,r++;if(e.charAt(r)==`"`)try{return JSON.parse(e.substring(o,++r-Number(s)))}catch(e){a(String(e))}else if(QV.STR&t)try{return JSON.parse(e.substring(o,r-Number(s))+`"`)}catch{return JSON.parse(e.substring(o,e.lastIndexOf(`\\`))+`"`)}i(`Unterminated string literal`)},c=()=>{r++,d();let a={};try{for(;e[r]!==`}`;){if(d(),r>=n&&QV.OBJ&t)return a;let i=s();d(),r++;try{let e=o();Object.defineProperty(a,i,{value:e,writable:!0,enumerable:!0,configurable:!0})}catch(e){if(QV.OBJ&t)return a;throw e}d(),e[r]===`,`&&r++}}catch{if(QV.OBJ&t)return a;i(`Expected '}' at end of object`)}return r++,a},l=()=>{r++;let n=[];try{for(;e[r]!==`]`;)n.push(o()),d(),e[r]===`,`&&r++}catch{if(QV.ARR&t)return n;i(`Expected ']' at end of array`)}return r++,n},u=()=>{if(r===0){e===`-`&&QV.NUM&t&&i(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(QV.NUM&t)try{return e[e.length-1]===`.`?JSON.parse(e.substring(0,e.lastIndexOf(`.`))):JSON.parse(e.substring(0,e.lastIndexOf(`e`)))}catch{}a(String(n))}}let o=r;for(e[r]===`-`&&r++;e[r]&&!`,]}`.includes(e[r]);)r++;r==n&&!(QV.NUM&t)&&i(`Unterminated number literal`);try{return JSON.parse(e.substring(o,r))}catch{e.substring(o,r)===`-`&&QV.NUM&t&&i(`Not sure what '-' is`);try{return JSON.parse(e.substring(o,e.lastIndexOf(`e`)))}catch(e){a(String(e))}}},d=()=>{for(;r<n&&`
|
|
197
|
+
\r `.includes(e[r]);)r++};return o()},rH=e=>tH(e,QV.ALL^QV.NUM),iH,aH,oH,sH,cH,lH,uH,dH,fH,pH,mH,hH,gH=class e extends XV{constructor(e){super(),iH.add(this),aH.set(this,void 0),oH.set(this,void 0),sH.set(this,void 0),q(this,aH,e,`f`),q(this,oH,[],`f`)}get currentChatCompletionSnapshot(){return J(this,sH,`f`)}static fromReadableStream(t){let n=new e(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){let i=new e(n);return i._run(()=>i._runChatCompletion(t,{...n,stream:!0},{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}async _createChatCompletion(e,t,n){super._createChatCompletion,this._listenForAbort(n?.signal),J(this,iH,`m`,cH).call(this);let r=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(let e of r)J(this,iH,`m`,uH).call(this,e);if(r.controller.signal?.aborted)throw new ZR;return this._addChatCompletion(J(this,iH,`m`,pH).call(this))}async _fromReadableStream(e,t){this._listenForAbort(t?.signal),J(this,iH,`m`,cH).call(this),this._connected();let n=CB.fromReadableStream(e,this.controller),r;for await(let e of n)r&&r!==e.id&&this._addChatCompletion(J(this,iH,`m`,pH).call(this)),J(this,iH,`m`,uH).call(this,e),r=e.id;if(n.controller.signal?.aborted)throw new ZR;return this._addChatCompletion(J(this,iH,`m`,pH).call(this))}[(aH=new WeakMap,oH=new WeakMap,sH=new WeakMap,iH=new WeakSet,cH=function(){this.ended||q(this,sH,void 0,`f`)},lH=function(e){let t=J(this,oH,`f`)[e.index];return t||(t={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},J(this,oH,`f`)[e.index]=t,t)},uH=function(e){if(this.ended)return;let t=J(this,iH,`m`,hH).call(this,e);this._emit(`chunk`,e,t);for(let n of e.choices){let e=t.choices[n.index];n.delta.content!=null&&e.message?.role===`assistant`&&e.message?.content&&(this._emit(`content`,n.delta.content,e.message.content),this._emit(`content.delta`,{delta:n.delta.content,snapshot:e.message.content,parsed:e.message.parsed})),n.delta.refusal!=null&&e.message?.role===`assistant`&&e.message?.refusal&&this._emit(`refusal.delta`,{delta:n.delta.refusal,snapshot:e.message.refusal}),n.logprobs?.content!=null&&e.message?.role===`assistant`&&this._emit(`logprobs.content.delta`,{content:n.logprobs?.content,snapshot:e.logprobs?.content??[]}),n.logprobs?.refusal!=null&&e.message?.role===`assistant`&&this._emit(`logprobs.refusal.delta`,{refusal:n.logprobs?.refusal,snapshot:e.logprobs?.refusal??[]});let r=J(this,iH,`m`,lH).call(this,e);e.finish_reason&&(J(this,iH,`m`,fH).call(this,e),r.current_tool_call_index!=null&&J(this,iH,`m`,dH).call(this,e,r.current_tool_call_index));for(let t of n.delta.tool_calls??[])r.current_tool_call_index!==t.index&&(J(this,iH,`m`,fH).call(this,e),r.current_tool_call_index!=null&&J(this,iH,`m`,dH).call(this,e,r.current_tool_call_index)),r.current_tool_call_index=t.index;for(let t of n.delta.tool_calls??[]){let n=e.message.tool_calls?.[t.index];n?.type&&(n?.type===`function`?this._emit(`tool_calls.function.arguments.delta`,{name:n.function?.name,index:t.index,arguments:n.function.arguments,parsed_arguments:n.function.parsed_arguments,arguments_delta:t.function?.arguments??``}):n?.type)}}},dH=function(e,t){if(J(this,iH,`m`,lH).call(this,e).done_tool_calls.has(t))return;let n=e.message.tool_calls?.[t];if(!n)throw Error(`no tool call snapshot`);if(!n.type)throw Error("tool call snapshot missing `type`");if(n.type===`function`){let e=J(this,aH,`f`)?.tools?.find(e=>uV(e)&&e.function.name===n.function.name);this._emit(`tool_calls.function.arguments.done`,{name:n.function.name,index:t,arguments:n.function.arguments,parsed_arguments:pV(e)?e.$parseRaw(n.function.arguments):e?.function.strict?JSON.parse(n.function.arguments):null})}else n.type},fH=function(e){let t=J(this,iH,`m`,lH).call(this,e);if(e.message.content&&!t.content_done){t.content_done=!0;let n=J(this,iH,`m`,mH).call(this);this._emit(`content.done`,{content:e.message.content,parsed:n?n.$parseRaw(e.message.content):null})}e.message.refusal&&!t.refusal_done&&(t.refusal_done=!0,this._emit(`refusal.done`,{refusal:e.message.refusal})),e.logprobs?.content&&!t.logprobs_content_done&&(t.logprobs_content_done=!0,this._emit(`logprobs.content.done`,{content:e.logprobs.content})),e.logprobs?.refusal&&!t.logprobs_refusal_done&&(t.logprobs_refusal_done=!0,this._emit(`logprobs.refusal.done`,{refusal:e.logprobs.refusal}))},pH=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);let e=J(this,sH,`f`);if(!e)throw new Y(`request ended without sending any chunks`);return q(this,sH,void 0,`f`),q(this,oH,[],`f`),_H(e,J(this,aH,`f`))},mH=function(){let e=J(this,aH,`f`)?.response_format;return fV(e)?e:null},hH=function(e){var t,n,r,i;let a=J(this,sH,`f`),{choices:o,...s}=e;a?Object.assign(a,s):a=q(this,sH,{...s,choices:[]},`f`);for(let{delta:o,finish_reason:s,index:c,logprobs:l=null,...u}of e.choices){let e=a.choices[c];if(e||=a.choices[c]={finish_reason:s,index:c,message:{},logprobs:l,...u},l)if(!e.logprobs)e.logprobs=Object.assign({},l);else{let{content:r,refusal:i,...a}=l;Object.assign(e.logprobs,a),r&&((t=e.logprobs).content??(t.content=[]),e.logprobs.content.push(...r)),i&&((n=e.logprobs).refusal??(n.refusal=[]),e.logprobs.refusal.push(...i))}if(s&&(e.finish_reason=s,J(this,aH,`f`)&&yV(J(this,aH,`f`)))){if(s===`length`)throw new cz;if(s===`content_filter`)throw new lz}if(Object.assign(e,u),!o)continue;let{content:d,refusal:f,function_call:p,role:m,tool_calls:h,...g}=o;if(Object.assign(e.message,g),f&&(e.message.refusal=(e.message.refusal||``)+f),m&&(e.message.role=m),p&&(e.message.function_call?(p.name&&(e.message.function_call.name=p.name),p.arguments&&((r=e.message.function_call).arguments??(r.arguments=``),e.message.function_call.arguments+=p.arguments)):e.message.function_call=p),d&&(e.message.content=(e.message.content||``)+d,!e.message.refusal&&J(this,iH,`m`,mH).call(this)&&(e.message.parsed=e.message.content.trim()?rH(e.message.content):null)),h){e.message.tool_calls||(e.message.tool_calls=[]);for(let{index:t,id:n,type:r,function:a,...o}of h){let s=(i=e.message.tool_calls)[t]??(i[t]={});Object.assign(s,o),n&&(s.id=n),r&&(s.type=r),a&&(s.function??={name:a.name??``,arguments:``}),a?.name&&(s.function.name=a.name),a?.arguments&&(s.function.arguments+=a.arguments,vV(J(this,aH,`f`),s)&&(s.function.parsed_arguments=rH(s.function.arguments)))}}}return a},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on(`chunk`,n=>{let r=t.shift();r?r.resolve(n):e.push(n)}),this.on(`end`,()=>{n=!0;for(let e of t)e.resolve(void 0);t.length=0}),this.on(`abort`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),this.on(`error`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((e,n)=>t.push({resolve:e,reject:n})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new CB(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function _H(e,t){let{id:n,choices:r,created:i,model:a,system_fingerprint:o,...s}=e;return mV({...s,id:n,choices:r.map(({message:t,finish_reason:n,index:r,logprobs:i,...a})=>{if(!n)throw new Y(`missing finish_reason for choice ${r}`);let{content:o=null,function_call:s,tool_calls:c,...l}=t,u=t.role;if(!u)throw new Y(`missing role for choice ${r}`);if(s){let{arguments:e,name:c}=s;if(e==null)throw new Y(`missing function_call.arguments for choice ${r}`);if(!c)throw new Y(`missing function_call.name for choice ${r}`);return{...a,message:{content:o,function_call:{arguments:e,name:c},role:u,refusal:t.refusal??null},finish_reason:n,index:r,logprobs:i}}return c?{...a,index:r,finish_reason:n,logprobs:i,message:{...l,role:u,content:o,refusal:t.refusal??null,tool_calls:c.map((t,n)=>{let{function:i,type:a,id:o,...s}=t,{arguments:c,name:l,...u}=i||{};if(o==null)throw new Y(`missing choices[${r}].tool_calls[${n}].id\n${vH(e)}`);if(a==null)throw new Y(`missing choices[${r}].tool_calls[${n}].type\n${vH(e)}`);if(l==null)throw new Y(`missing choices[${r}].tool_calls[${n}].function.name\n${vH(e)}`);if(c==null)throw new Y(`missing choices[${r}].tool_calls[${n}].function.arguments\n${vH(e)}`);return{...s,id:o,type:a,function:{...u,name:l,arguments:c}}})}}:{...a,message:{...l,content:o,role:u,refusal:t.refusal??null},finish_reason:n,index:r,logprobs:i}}),created:i,model:a,object:`chat.completion`,...o?{system_fingerprint:o}:{}},t)}function vH(e){return JSON.stringify(e)}var yH=class e extends gH{static fromReadableStream(t){let n=new e(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){let i=new e(n),a={...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`runTools`}};return i._run(()=>i._runTools(t,n,i,a)),i}},bH=class extends X{constructor(){super(...arguments),this.messages=new lV(this._client)}create(e,t){return this._client.post(`/chat/completions`,{body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/chat/completions/${e}`,{...t,__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/chat/completions/${e}`,{body:t,...n,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/chat/completions`,IB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/chat/completions/${e}`,{...t,__security:{bearerAuth:!0}})}parse(e,t){return xV(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t?.headers,"X-Stainless-Helper-Method":`chat.completions.parse`}})._thenUnwrap(t=>hV(t,e))}runTools(e,t){return e.stream?yH.runTools(this._client,e,t):ZV.runTools(this._client,e,t)}stream(e,t){return gH.createChatCompletion(this._client,e,t)}};bH.Messages=lV;var xH=class extends X{constructor(){super(...arguments),this.completions=new bH(this._client)}};xH.Completions=bH;var SH=class extends X{create(e,t){return this._client.post(`/organization/admin_api_keys`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/admin_api_keys/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/admin_api_keys`,IB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/admin_api_keys/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},CH=class extends X{list(e={},t){return this._client.getAPIList(`/organization/audit_logs`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}},wH=class extends X{create(e,t){return this._client.post(`/organization/certificates`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t={},n){return this._client.get(Z`/organization/certificates/${e}`,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/certificates/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/certificates`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/certificates/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}activate(e,t){return this._client.getAPIList(`/organization/certificates/activate`,FB,{body:e,method:`post`,...t,__security:{adminAPIKeyAuth:!0}})}deactivate(e,t){return this._client.getAPIList(`/organization/certificates/deactivate`,FB,{body:e,method:`post`,...t,__security:{adminAPIKeyAuth:!0}})}},TH=class extends X{retrieve(e){return this._client.get(`/organization/data_retention`,{...e,__security:{adminAPIKeyAuth:!0}})}update(e,t){return this._client.post(`/organization/data_retention`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}},EH=class extends X{create(e,t){return this._client.post(`/organization/invites`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/invites/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/invites`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/invites/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},DH=class extends X{create(e,t){return this._client.post(`/organization/roles`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/roles/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/roles/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/roles`,RB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/roles/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},OH=class extends X{create(e,t){return this._client.post(`/organization/spend_alerts`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/spend_alerts/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/spend_alerts/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/spend_alerts`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/spend_alerts/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},kH=class extends X{audioSpeeches(e,t){return this._client.get(`/organization/usage/audio_speeches`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}audioTranscriptions(e,t){return this._client.get(`/organization/usage/audio_transcriptions`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}codeInterpreterSessions(e,t){return this._client.get(`/organization/usage/code_interpreter_sessions`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}completions(e,t){return this._client.get(`/organization/usage/completions`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}costs(e,t){return this._client.get(`/organization/costs`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}embeddings(e,t){return this._client.get(`/organization/usage/embeddings`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}fileSearchCalls(e,t){return this._client.get(`/organization/usage/file_search_calls`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}images(e,t){return this._client.get(`/organization/usage/images`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}moderations(e,t){return this._client.get(`/organization/usage/moderations`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}vectorStores(e,t){return this._client.get(`/organization/usage/vector_stores`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}webSearchCalls(e,t){return this._client.get(`/organization/usage/web_search_calls`,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}},AH=class extends X{create(e,t,n){return this._client.post(Z`/organization/groups/${e}/roles`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{group_id:r}=t;return this._client.get(Z`/organization/groups/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/groups/${e}/roles`,RB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{group_id:r}=t;return this._client.delete(Z`/organization/groups/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},jH=class extends X{create(e,t,n){return this._client.post(Z`/organization/groups/${e}/users`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{group_id:r}=t;return this._client.get(Z`/organization/groups/${r}/users/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/groups/${e}/users`,RB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{group_id:r}=t;return this._client.delete(Z`/organization/groups/${r}/users/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},MH=class extends X{constructor(){super(...arguments),this.users=new jH(this._client),this.roles=new AH(this._client)}create(e,t){return this._client.post(`/organization/groups`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/groups/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/groups/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/groups`,RB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/groups/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}};MH.Users=jH,MH.Roles=AH;var NH=class extends X{retrieve(e,t,n){let{project_id:r}=t;return this._client.get(Z`/organization/projects/${r}/api_keys/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/api_keys`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/organization/projects/${r}/api_keys/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},PH=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}activate(e,t,n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates/activate`,FB,{body:t,method:`post`,...n,__security:{adminAPIKeyAuth:!0}})}deactivate(e,t,n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates/deactivate`,FB,{body:t,method:`post`,...n,__security:{adminAPIKeyAuth:!0}})}},FH=class extends X{retrieve(e,t){return this._client.get(Z`/organization/projects/${e}/data_retention`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/projects/${e}/data_retention`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}},IH=class extends X{retrieve(e,t){return this._client.get(Z`/organization/projects/${e}/hosted_tool_permissions`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/projects/${e}/hosted_tool_permissions`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}},LH=class extends X{retrieve(e,t){return this._client.get(Z`/organization/projects/${e}/model_permissions`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/projects/${e}/model_permissions`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/projects/${e}/model_permissions`,{...t,__security:{adminAPIKeyAuth:!0}})}},RH=class extends X{listRateLimits(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/rate_limits`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}updateRateLimit(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/organization/projects/${r}/rate_limits/${e}`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}},zH=class extends X{create(e,t,n){return this._client.post(Z`/projects/${e}/roles`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r}=t;return this._client.get(Z`/projects/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/projects/${r}/roles/${e}`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/projects/${e}/roles`,RB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/projects/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},BH=class extends X{create(e,t,n){return this._client.post(Z`/organization/projects/${e}/service_accounts`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r}=t;return this._client.get(Z`/organization/projects/${r}/service_accounts/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/organization/projects/${r}/service_accounts/${e}`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/service_accounts`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/organization/projects/${r}/service_accounts/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},VH=class extends X{create(e,t,n){return this._client.post(Z`/organization/projects/${e}/spend_alerts`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r}=t;return this._client.get(Z`/organization/projects/${r}/spend_alerts/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/organization/projects/${r}/spend_alerts/${e}`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/spend_alerts`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/organization/projects/${r}/spend_alerts/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},HH=class extends X{create(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/projects/${r}/groups/${e}/roles`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r,group_id:i}=t;return this._client.get(Z`/projects/${r}/groups/${i}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t,n){let{project_id:r,...i}=t;return this._client.getAPIList(Z`/projects/${r}/groups/${e}/roles`,RB,{query:i,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r,group_id:i}=t;return this._client.delete(Z`/projects/${r}/groups/${i}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},UH=class extends X{constructor(){super(...arguments),this.roles=new HH(this._client)}create(e,t,n){return this._client.post(Z`/organization/projects/${e}/groups`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r,...i}=t;return this._client.get(Z`/organization/projects/${r}/groups/${e}`,{query:i,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/groups`,RB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/organization/projects/${r}/groups/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}};UH.Roles=HH;var WH=class extends X{create(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/projects/${r}/users/${e}/roles`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r,user_id:i}=t;return this._client.get(Z`/projects/${r}/users/${i}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t,n){let{project_id:r,...i}=t;return this._client.getAPIList(Z`/projects/${r}/users/${e}/roles`,RB,{query:i,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r,user_id:i}=t;return this._client.delete(Z`/projects/${r}/users/${i}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},GH=class extends X{constructor(){super(...arguments),this.roles=new WH(this._client)}create(e,t,n){return this._client.post(Z`/organization/projects/${e}/users`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{project_id:r}=t;return this._client.get(Z`/organization/projects/${r}/users/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){let{project_id:r,...i}=t;return this._client.post(Z`/organization/projects/${r}/users/${e}`,{body:i,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/users`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{project_id:r}=t;return this._client.delete(Z`/organization/projects/${r}/users/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}};GH.Roles=WH;var KH=class extends X{constructor(){super(...arguments),this.users=new GH(this._client),this.serviceAccounts=new BH(this._client),this.apiKeys=new NH(this._client),this.rateLimits=new RH(this._client),this.modelPermissions=new LH(this._client),this.hostedToolPermissions=new IH(this._client),this.groups=new UH(this._client),this.roles=new zH(this._client),this.dataRetention=new FH(this._client),this.spendAlerts=new VH(this._client),this.certificates=new PH(this._client)}create(e,t){return this._client.post(`/organization/projects`,{body:e,...t,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t){return this._client.get(Z`/organization/projects/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/projects/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/projects`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}archive(e,t){return this._client.post(Z`/organization/projects/${e}/archive`,{...t,__security:{adminAPIKeyAuth:!0}})}};KH.Users=GH,KH.ServiceAccounts=BH,KH.APIKeys=NH,KH.RateLimits=RH,KH.ModelPermissions=LH,KH.HostedToolPermissions=IH,KH.Groups=UH,KH.Roles=zH,KH.DataRetention=FH,KH.SpendAlerts=VH,KH.Certificates=PH;var qH=class extends X{create(e,t,n){return this._client.post(Z`/organization/users/${e}/roles`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t,n){let{user_id:r}=t;return this._client.get(Z`/organization/users/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/organization/users/${e}/roles`,RB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{user_id:r}=t;return this._client.delete(Z`/organization/users/${r}/roles/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},JH=class extends X{constructor(){super(...arguments),this.roles=new qH(this._client)}retrieve(e,t){return this._client.get(Z`/organization/users/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}update(e,t,n){return this._client.post(Z`/organization/users/${e}`,{body:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e={},t){return this._client.getAPIList(`/organization/users`,LB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/users/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}};JH.Roles=qH;var YH=class extends X{constructor(){super(...arguments),this.auditLogs=new CH(this._client),this.adminAPIKeys=new SH(this._client),this.usage=new kH(this._client),this.invites=new EH(this._client),this.users=new JH(this._client),this.groups=new MH(this._client),this.roles=new DH(this._client),this.dataRetention=new TH(this._client),this.spendAlerts=new OH(this._client),this.certificates=new wH(this._client),this.projects=new KH(this._client)}};YH.AuditLogs=CH,YH.AdminAPIKeys=SH,YH.Usage=kH,YH.Invites=EH,YH.Users=JH,YH.Groups=MH,YH.Roles=DH,YH.DataRetention=TH,YH.SpendAlerts=OH,YH.Certificates=wH,YH.Projects=KH;var XH=class extends X{constructor(){super(...arguments),this.organization=new YH(this._client)}};XH.Organization=YH;var ZH=Symbol(`brand.privateNullableHeaders`);function*QH(e){if(!e)return;if(ZH in e){let{values:t,nulls:n}=e;yield*t.entries();for(let e of n)yield[e,null];return}let t=!1,n;e instanceof Headers?n=e.entries():gz(e)?n=e:(t=!0,n=Object.entries(e??{}));for(let e of n){let n=e[0];if(typeof n!=`string`)throw TypeError(`expected header name to be a string`);let r=gz(e[1])?e[1]:[e[1]],i=!1;for(let e of r)e!==void 0&&(t&&!i&&(i=!0,yield[n,null]),yield[n,e])}}var Q=e=>{let t=new Headers,n=new Set;for(let r of e){let e=new Set;for(let[i,a]of QH(r)){let r=i.toLowerCase();e.has(r)||(t.delete(i),e.add(r)),a===null?(t.delete(i),n.add(r)):(t.append(i,a),n.delete(r))}}return{[ZH]:!0,values:t,nulls:n}},$H=class extends X{create(e,t){return this._client.post(`/audio/speech`,{body:e,...t,headers:Q([{Accept:`application/octet-stream`},t?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}},eU=class extends X{create(e,t){return this._client.post(`/audio/transcriptions`,qB({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model},__security:{bearerAuth:!0}},this._client))}},tU=class extends X{create(e,t){return this._client.post(`/audio/translations`,qB({body:e,...t,__metadata:{model:e.model},__security:{bearerAuth:!0}},this._client))}},nU=class extends X{constructor(){super(...arguments),this.transcriptions=new eU(this._client),this.translations=new tU(this._client),this.speech=new $H(this._client)}};nU.Transcriptions=eU,nU.Translations=tU,nU.Speech=$H;var rU=class extends X{create(e,t){return this._client.post(`/batches`,{body:e,...t,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/batches/${e}`,{...t,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/batches`,IB,{query:e,...t,__security:{bearerAuth:!0}})}cancel(e,t){return this._client.post(Z`/batches/${e}/cancel`,{...t,__security:{bearerAuth:!0}})}},iU=class extends X{create(e,t){return this._client.post(`/assistants`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/assistants/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/assistants/${e}`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/assistants`,IB,{query:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/assistants/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}},aU=class extends X{create(e,t){return this._client.post(`/realtime/sessions`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}},oU=class extends X{create(e,t){return this._client.post(`/realtime/transcription_sessions`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}},sU=class extends X{constructor(){super(...arguments),this.sessions=new aU(this._client),this.transcriptionSessions=new oU(this._client)}};sU.Sessions=aU,sU.TranscriptionSessions=oU;var cU=class extends X{create(e,t){return this._client.post(`/chatkit/sessions`,{body:e,...t,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},t?.headers]),__security:{bearerAuth:!0}})}cancel(e,t){return this._client.post(Z`/chatkit/sessions/${e}/cancel`,{...t,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},t?.headers]),__security:{bearerAuth:!0}})}},lU=class extends X{retrieve(e,t){return this._client.get(Z`/chatkit/threads/${e}`,{...t,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},t?.headers]),__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/chatkit/threads`,LB,{query:e,...t,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},t?.headers]),__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/chatkit/threads/${e}`,{...t,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},t?.headers]),__security:{bearerAuth:!0}})}listItems(e,t={},n){return this._client.getAPIList(Z`/chatkit/threads/${e}/items`,LB,{query:t,...n,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},n?.headers]),__security:{bearerAuth:!0}})}},uU=class extends X{constructor(){super(...arguments),this.sessions=new cU(this._client),this.threads=new lU(this._client)}};uU.Sessions=cU,uU.Threads=lU;var dU=class extends X{create(e,t,n){return this._client.post(Z`/threads/${e}/messages`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t,n){let{thread_id:r}=t;return this._client.get(Z`/threads/${r}/messages/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){let{thread_id:r,...i}=t;return this._client.post(Z`/threads/${r}/messages/${e}`,{body:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/threads/${e}/messages`,IB,{query:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}delete(e,t,n){let{thread_id:r}=t;return this._client.delete(Z`/threads/${r}/messages/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}},fU=class extends X{retrieve(e,t,n){let{thread_id:r,run_id:i,...a}=t;return this._client.get(Z`/threads/${r}/runs/${i}/steps/${e}`,{query:a,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e,t,n){let{thread_id:r,...i}=t;return this._client.getAPIList(Z`/threads/${r}/runs/${e}/steps`,IB,{query:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}},pU=e=>{if(typeof Buffer<`u`){let t=Buffer.from(e,`base64`);return Array.from(new Float32Array(t.buffer,t.byteOffset,t.length/Float32Array.BYTES_PER_ELEMENT))}else{let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return Array.from(new Float32Array(r.buffer))}},mU=e=>{if(globalThis.process!==void 0)return{}[e]?.trim()||void 0;if(globalThis.Deno!==void 0)return globalThis.Deno.env?.get?.(e)?.trim()||void 0},hU,gU,_U,vU,yU,bU,xU,SU,CU,wU,TU,EU,DU,OU,kU,AU,jU,MU,NU,PU,FU,IU,LU,RU=class extends zV{constructor(){super(...arguments),hU.add(this),_U.set(this,[]),vU.set(this,{}),yU.set(this,{}),bU.set(this,void 0),xU.set(this,void 0),SU.set(this,void 0),CU.set(this,void 0),wU.set(this,void 0),TU.set(this,void 0),EU.set(this,void 0),DU.set(this,void 0),OU.set(this,void 0)}[(_U=new WeakMap,vU=new WeakMap,yU=new WeakMap,bU=new WeakMap,xU=new WeakMap,SU=new WeakMap,CU=new WeakMap,wU=new WeakMap,TU=new WeakMap,EU=new WeakMap,DU=new WeakMap,OU=new WeakMap,hU=new WeakSet,Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on(`event`,n=>{let r=t.shift();r?r.resolve(n):e.push(n)}),this.on(`end`,()=>{n=!0;for(let e of t)e.resolve(void 0);t.length=0}),this.on(`abort`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),this.on(`error`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((e,n)=>t.push({resolve:e,reject:n})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){let t=new gU;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){this._listenForAbort(t?.signal),this._connected();let n=CB.fromReadableStream(e,this.controller);for await(let e of n)J(this,hU,`m`,kU).call(this,e);if(n.controller.signal?.aborted)throw new ZR;return this._addRun(J(this,hU,`m`,AU).call(this))}toReadableStream(){return new CB(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,r){let i=new gU;return i._run(()=>i._runToolAssistantStream(e,t,n,{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}async _createToolAssistantStream(e,t,n,r){this._listenForAbort(r?.signal);let i={...n,stream:!0},a=await e.submitToolOutputs(t,i,{...r,signal:this.controller.signal});this._connected();for await(let e of a)J(this,hU,`m`,kU).call(this,e);if(a.controller.signal?.aborted)throw new ZR;return this._addRun(J(this,hU,`m`,AU).call(this))}static createThreadAssistantStream(e,t,n){let r=new gU;return r._run(()=>r._threadAssistantStream(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":`stream`}})),r}static createAssistantStream(e,t,n,r){let i=new gU;return i._run(()=>i._runAssistantStream(e,t,n,{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}currentEvent(){return J(this,EU,`f`)}currentRun(){return J(this,DU,`f`)}currentMessageSnapshot(){return J(this,bU,`f`)}currentRunStepSnapshot(){return J(this,OU,`f`)}async finalRunSteps(){return await this.done(),Object.values(J(this,vU,`f`))}async finalMessages(){return await this.done(),Object.values(J(this,yU,`f`))}async finalRun(){if(await this.done(),!J(this,xU,`f`))throw Error(`Final run was not received.`);return J(this,xU,`f`)}async _createThreadAssistantStream(e,t,n){this._listenForAbort(n?.signal);let r={...t,stream:!0},i=await e.createAndRun(r,{...n,signal:this.controller.signal});this._connected();for await(let e of i)J(this,hU,`m`,kU).call(this,e);if(i.controller.signal?.aborted)throw new ZR;return this._addRun(J(this,hU,`m`,AU).call(this))}async _createAssistantStream(e,t,n,r){this._listenForAbort(r?.signal);let i={...n,stream:!0},a=await e.create(t,i,{...r,signal:this.controller.signal});this._connected();for await(let e of a)J(this,hU,`m`,kU).call(this,e);if(a.controller.signal?.aborted)throw new ZR;return this._addRun(J(this,hU,`m`,AU).call(this))}static accumulateDelta(e,t){for(let[n,r]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=r;continue}let t=e[n];if(t==null){e[n]=r;continue}if(n===`index`||n===`type`){e[n]=r;continue}if(typeof t==`string`&&typeof r==`string`)t+=r;else if(typeof t==`number`&&typeof r==`number`)t+=r;else if(bz(t)&&bz(r))t=this.accumulateDelta(t,r);else if(Array.isArray(t)&&Array.isArray(r)){if(t.every(e=>typeof e==`string`||typeof e==`number`)){t.push(...r);continue}for(let e of r){if(!bz(e))throw Error(`Expected array delta entry to be an object but got: ${e}`);let n=e.index;if(n==null)throw console.error(e),Error("Expected array delta entry to have an `index` property");if(typeof n!=`number`)throw Error(`Expected array delta entry \`index\` property to be a number but got ${n}`);let r=t[n];r==null?t.push(e):t[n]=this.accumulateDelta(r,e)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${r}, accValue: ${t}`);e[n]=t}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,r){return await this._createAssistantStream(t,e,n,r)}async _runToolAssistantStream(e,t,n,r){return await this._createToolAssistantStream(t,e,n,r)}};gU=RU,kU=function(e){if(!this.ended)switch(q(this,EU,e,`f`),J(this,hU,`m`,NU).call(this,e),e.event){case`thread.created`:break;case`thread.run.created`:case`thread.run.queued`:case`thread.run.in_progress`:case`thread.run.requires_action`:case`thread.run.completed`:case`thread.run.incomplete`:case`thread.run.failed`:case`thread.run.cancelling`:case`thread.run.cancelled`:case`thread.run.expired`:J(this,hU,`m`,LU).call(this,e);break;case`thread.run.step.created`:case`thread.run.step.in_progress`:case`thread.run.step.delta`:case`thread.run.step.completed`:case`thread.run.step.failed`:case`thread.run.step.cancelled`:case`thread.run.step.expired`:J(this,hU,`m`,MU).call(this,e);break;case`thread.message.created`:case`thread.message.in_progress`:case`thread.message.delta`:case`thread.message.completed`:case`thread.message.incomplete`:J(this,hU,`m`,jU).call(this,e);break;case`error`:throw Error(`Encountered an error event in event processing - errors should be processed earlier`);default:}},AU=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);if(!J(this,xU,`f`))throw Error(`Final run has not been received`);return J(this,xU,`f`)},jU=function(e){let[t,n]=J(this,hU,`m`,FU).call(this,e,J(this,bU,`f`));q(this,bU,t,`f`),J(this,yU,`f`)[t.id]=t;for(let e of n){let n=t.content[e.index];n?.type==`text`&&this._emit(`textCreated`,n.text)}switch(e.event){case`thread.message.created`:this._emit(`messageCreated`,e.data);break;case`thread.message.in_progress`:break;case`thread.message.delta`:if(this._emit(`messageDelta`,e.data.delta,t),e.data.delta.content)for(let n of e.data.delta.content){if(n.type==`text`&&n.text){let e=n.text,r=t.content[n.index];if(r&&r.type==`text`)this._emit(`textDelta`,e,r.text);else throw Error(`The snapshot associated with this text delta is not text or missing`)}if(n.index!=J(this,SU,`f`)){if(J(this,CU,`f`))switch(J(this,CU,`f`).type){case`text`:this._emit(`textDone`,J(this,CU,`f`).text,J(this,bU,`f`));break;case`image_file`:this._emit(`imageFileDone`,J(this,CU,`f`).image_file,J(this,bU,`f`));break}q(this,SU,n.index,`f`)}q(this,CU,t.content[n.index],`f`)}break;case`thread.message.completed`:case`thread.message.incomplete`:if(J(this,SU,`f`)!==void 0){let t=e.data.content[J(this,SU,`f`)];if(t)switch(t.type){case`image_file`:this._emit(`imageFileDone`,t.image_file,J(this,bU,`f`));break;case`text`:this._emit(`textDone`,t.text,J(this,bU,`f`));break}}J(this,bU,`f`)&&this._emit(`messageDone`,e.data),q(this,bU,void 0,`f`)}},MU=function(e){let t=J(this,hU,`m`,PU).call(this,e);switch(q(this,OU,t,`f`),e.event){case`thread.run.step.created`:this._emit(`runStepCreated`,e.data);break;case`thread.run.step.delta`:let n=e.data.delta;if(n.step_details&&n.step_details.type==`tool_calls`&&n.step_details.tool_calls&&t.step_details.type==`tool_calls`)for(let e of n.step_details.tool_calls)e.index==J(this,wU,`f`)?this._emit(`toolCallDelta`,e,t.step_details.tool_calls[e.index]):(J(this,TU,`f`)&&this._emit(`toolCallDone`,J(this,TU,`f`)),q(this,wU,e.index,`f`),q(this,TU,t.step_details.tool_calls[e.index],`f`),J(this,TU,`f`)&&this._emit(`toolCallCreated`,J(this,TU,`f`)));this._emit(`runStepDelta`,e.data.delta,t);break;case`thread.run.step.completed`:case`thread.run.step.failed`:case`thread.run.step.cancelled`:case`thread.run.step.expired`:q(this,OU,void 0,`f`),e.data.step_details.type==`tool_calls`&&J(this,TU,`f`)&&(this._emit(`toolCallDone`,J(this,TU,`f`)),q(this,TU,void 0,`f`)),this._emit(`runStepDone`,e.data,t);break;case`thread.run.step.in_progress`:break}},NU=function(e){J(this,_U,`f`).push(e),this._emit(`event`,e)},PU=function(e){switch(e.event){case`thread.run.step.created`:return J(this,vU,`f`)[e.data.id]=e.data,e.data;case`thread.run.step.delta`:let t=J(this,vU,`f`)[e.data.id];if(!t)throw Error(`Received a RunStepDelta before creation of a snapshot`);let n=e.data;if(n.delta){let r=gU.accumulateDelta(t,n.delta);J(this,vU,`f`)[e.data.id]=r}return J(this,vU,`f`)[e.data.id];case`thread.run.step.completed`:case`thread.run.step.failed`:case`thread.run.step.cancelled`:case`thread.run.step.expired`:case`thread.run.step.in_progress`:J(this,vU,`f`)[e.data.id]=e.data;break}if(J(this,vU,`f`)[e.data.id])return J(this,vU,`f`)[e.data.id];throw Error(`No snapshot available`)},FU=function(e,t){let n=[];switch(e.event){case`thread.message.created`:return[e.data,n];case`thread.message.delta`:if(!t)throw Error(`Received a delta with no existing snapshot (there should be one from message creation)`);let r=e.data;if(r.delta.content)for(let e of r.delta.content)if(e.index in t.content){let n=t.content[e.index];t.content[e.index]=J(this,hU,`m`,IU).call(this,e,n)}else t.content[e.index]=e,n.push(e);return[t,n];case`thread.message.in_progress`:case`thread.message.completed`:case`thread.message.incomplete`:if(t)return[t,n];throw Error(`Received thread message event with no existing snapshot`)}throw Error(`Tried to accumulate a non-message event`)},IU=function(e,t){return gU.accumulateDelta(t,e)},LU=function(e){switch(q(this,DU,e.data,`f`),e.event){case`thread.run.created`:break;case`thread.run.queued`:break;case`thread.run.in_progress`:break;case`thread.run.requires_action`:case`thread.run.cancelled`:case`thread.run.failed`:case`thread.run.completed`:case`thread.run.expired`:case`thread.run.incomplete`:q(this,xU,e.data,`f`),J(this,TU,`f`)&&(this._emit(`toolCallDone`,J(this,TU,`f`)),q(this,TU,void 0,`f`));break;case`thread.run.cancelling`:break}};var zU=class extends X{constructor(){super(...arguments),this.steps=new fU(this._client)}create(e,t,n){let{include:r,...i}=t;return this._client.post(Z`/threads/${e}/runs`,{query:{include:r},body:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),stream:t.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}retrieve(e,t,n){let{thread_id:r}=t;return this._client.get(Z`/threads/${r}/runs/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){let{thread_id:r,...i}=t;return this._client.post(Z`/threads/${r}/runs/${e}`,{body:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/threads/${e}/runs`,IB,{query:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}cancel(e,t,n){let{thread_id:r}=t;return this._client.post(Z`/threads/${r}/runs/${e}/cancel`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(e,t,n){let r=await this.create(e,t,n);return await this.poll(r.id,{thread_id:e},n)}createAndStream(e,t,n){return RU.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){let r=Q([n?.headers,{"X-Stainless-Poll-Helper":`true`,"X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:a}=await this.retrieve(e,t,{...n,headers:{...n?.headers,...r}}).withResponse();switch(i.status){case`queued`:case`in_progress`:case`cancelling`:let e=5e3;if(n?.pollIntervalMs)e=n.pollIntervalMs;else{let t=a.headers.get(`openai-poll-after-ms`);if(t){let n=parseInt(t);isNaN(n)||(e=n)}}await Cz(e);break;case`requires_action`:case`incomplete`:case`cancelled`:case`completed`:case`failed`:case`expired`:return i}}}stream(e,t,n){return RU.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){let{thread_id:r,...i}=t;return this._client.post(Z`/threads/${r}/runs/${e}/submit_tool_outputs`,{body:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),stream:t.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}async submitToolOutputsAndPoll(e,t,n){let r=await this.submitToolOutputs(e,t,n);return await this.poll(r.id,t,n)}submitToolOutputsStream(e,t,n){return RU.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};zU.Steps=fU;var BU=class extends X{constructor(){super(...arguments),this.runs=new zU(this._client),this.messages=new dU(this._client)}create(e={},t){return this._client.post(`/threads`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/threads/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/threads/${e}`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/threads/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}createAndRun(e,t){return this._client.post(`/threads/runs`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),stream:e.stream??!1,__synthesizeEventData:!0,__security:{bearerAuth:!0}})}async createAndRunPoll(e,t){let n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return RU.createThreadAssistantStream(e,this._client.beta.threads,t)}};BU.Runs=zU,BU.Messages=dU;var VU=class extends X{constructor(){super(...arguments),this.realtime=new sU(this._client),this.chatkit=new uU(this._client),this.assistants=new iU(this._client),this.threads=new BU(this._client)}};VU.Realtime=sU,VU.ChatKit=uU,VU.Assistants=iU,VU.Threads=BU;var HU=class extends X{create(e,t){return this._client.post(`/completions`,{body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}})}},UU=class extends X{retrieve(e,t,n){let{container_id:r}=t;return this._client.get(Z`/containers/${r}/files/${e}/content`,{...n,headers:Q([{Accept:`application/binary`},n?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}},WU=class extends X{constructor(){super(...arguments),this.content=new UU(this._client)}create(e,t,n){return this._client.post(Z`/containers/${e}/files`,KB({body:t,...n,__security:{bearerAuth:!0}},this._client))}retrieve(e,t,n){let{container_id:r}=t;return this._client.get(Z`/containers/${r}/files/${e}`,{...n,__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/containers/${e}/files`,IB,{query:t,...n,__security:{bearerAuth:!0}})}delete(e,t,n){let{container_id:r}=t;return this._client.delete(Z`/containers/${r}/files/${e}`,{...n,headers:Q([{Accept:`*/*`},n?.headers]),__security:{bearerAuth:!0}})}};WU.Content=UU;var GU=class extends X{constructor(){super(...arguments),this.files=new WU(this._client)}create(e,t){return this._client.post(`/containers`,{body:e,...t,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/containers/${e}`,{...t,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/containers`,IB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/containers/${e}`,{...t,headers:Q([{Accept:`*/*`},t?.headers]),__security:{bearerAuth:!0}})}};GU.Files=WU;var KU=class extends X{create(e,t,n){let{include:r,...i}=t;return this._client.post(Z`/conversations/${e}/items`,{query:{include:r},body:i,...n,__security:{bearerAuth:!0}})}retrieve(e,t,n){let{conversation_id:r,...i}=t;return this._client.get(Z`/conversations/${r}/items/${e}`,{query:i,...n,__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/conversations/${e}/items`,LB,{query:t,...n,__security:{bearerAuth:!0}})}delete(e,t,n){let{conversation_id:r}=t;return this._client.delete(Z`/conversations/${r}/items/${e}`,{...n,__security:{bearerAuth:!0}})}},qU=class extends X{constructor(){super(...arguments),this.items=new KU(this._client)}create(e={},t){return this._client.post(`/conversations`,{body:e,...t,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/conversations/${e}`,{...t,__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/conversations/${e}`,{body:t,...n,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/conversations/${e}`,{...t,__security:{bearerAuth:!0}})}};qU.Items=KU;var JU=class extends X{create(e,t){let n=!!e.encoding_format,r=n?e.encoding_format:`base64`;n&&bB(this._client).debug(`embeddings/user defined encoding_format:`,e.encoding_format);let i=this._client.post(`/embeddings`,{body:{...e,encoding_format:r},...t,__security:{bearerAuth:!0}});return n?i:(bB(this._client).debug(`embeddings/decoding base64 embeddings from base64`),i._thenUnwrap(e=>(e&&e.data&&e.data.forEach(e=>{let t=e.embedding;e.embedding=pU(t)}),e)))}},YU=class extends X{retrieve(e,t,n){let{eval_id:r,run_id:i}=t;return this._client.get(Z`/evals/${r}/runs/${i}/output_items/${e}`,{...n,__security:{bearerAuth:!0}})}list(e,t,n){let{eval_id:r,...i}=t;return this._client.getAPIList(Z`/evals/${r}/runs/${e}/output_items`,IB,{query:i,...n,__security:{bearerAuth:!0}})}},XU=class extends X{constructor(){super(...arguments),this.outputItems=new YU(this._client)}create(e,t,n){return this._client.post(Z`/evals/${e}/runs`,{body:t,...n,__security:{bearerAuth:!0}})}retrieve(e,t,n){let{eval_id:r}=t;return this._client.get(Z`/evals/${r}/runs/${e}`,{...n,__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/evals/${e}/runs`,IB,{query:t,...n,__security:{bearerAuth:!0}})}delete(e,t,n){let{eval_id:r}=t;return this._client.delete(Z`/evals/${r}/runs/${e}`,{...n,__security:{bearerAuth:!0}})}cancel(e,t,n){let{eval_id:r}=t;return this._client.post(Z`/evals/${r}/runs/${e}`,{...n,__security:{bearerAuth:!0}})}};XU.OutputItems=YU;var ZU=class extends X{constructor(){super(...arguments),this.runs=new XU(this._client)}create(e,t){return this._client.post(`/evals`,{body:e,...t,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/evals/${e}`,{...t,__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/evals/${e}`,{body:t,...n,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/evals`,IB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/evals/${e}`,{...t,__security:{bearerAuth:!0}})}};ZU.Runs=XU;var QU=class extends X{create(e,t){return this._client.post(`/files`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}retrieve(e,t){return this._client.get(Z`/files/${e}`,{...t,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/files`,IB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/files/${e}`,{...t,__security:{bearerAuth:!0}})}content(e,t){return this._client.get(Z`/files/${e}/content`,{...t,headers:Q([{Accept:`application/binary`},t?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=1800*1e3}={}){let r=new Set([`processed`,`error`,`deleted`]),i=Date.now(),a=await this.retrieve(e);for(;!a.status||!r.has(a.status);)if(await Cz(t),a=await this.retrieve(e),Date.now()-i>n)throw new $R({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return a}},$U=class extends X{},eW=class extends X{run(e,t){return this._client.post(`/fine_tuning/alpha/graders/run`,{body:e,...t,__security:{bearerAuth:!0}})}validate(e,t){return this._client.post(`/fine_tuning/alpha/graders/validate`,{body:e,...t,__security:{bearerAuth:!0}})}},tW=class extends X{constructor(){super(...arguments),this.graders=new eW(this._client)}};tW.Graders=eW;var nW=class extends X{create(e,t,n){return this._client.getAPIList(Z`/fine_tuning/checkpoints/${e}/permissions`,FB,{body:t,method:`post`,...n,__security:{adminAPIKeyAuth:!0}})}retrieve(e,t={},n){return this._client.get(Z`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/fine_tuning/checkpoints/${e}/permissions`,LB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}delete(e,t,n){let{fine_tuned_model_checkpoint:r}=t;return this._client.delete(Z`/fine_tuning/checkpoints/${r}/permissions/${e}`,{...n,__security:{adminAPIKeyAuth:!0}})}},rW=class extends X{constructor(){super(...arguments),this.permissions=new nW(this._client)}};rW.Permissions=nW;var iW=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/fine_tuning/jobs/${e}/checkpoints`,IB,{query:t,...n,__security:{bearerAuth:!0}})}},aW=class extends X{constructor(){super(...arguments),this.checkpoints=new iW(this._client)}create(e,t){return this._client.post(`/fine_tuning/jobs`,{body:e,...t,__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/fine_tuning/jobs/${e}`,{...t,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/fine_tuning/jobs`,IB,{query:e,...t,__security:{bearerAuth:!0}})}cancel(e,t){return this._client.post(Z`/fine_tuning/jobs/${e}/cancel`,{...t,__security:{bearerAuth:!0}})}listEvents(e,t={},n){return this._client.getAPIList(Z`/fine_tuning/jobs/${e}/events`,IB,{query:t,...n,__security:{bearerAuth:!0}})}pause(e,t){return this._client.post(Z`/fine_tuning/jobs/${e}/pause`,{...t,__security:{bearerAuth:!0}})}resume(e,t){return this._client.post(Z`/fine_tuning/jobs/${e}/resume`,{...t,__security:{bearerAuth:!0}})}};aW.Checkpoints=iW;var oW=class extends X{constructor(){super(...arguments),this.methods=new $U(this._client),this.jobs=new aW(this._client),this.checkpoints=new rW(this._client),this.alpha=new tW(this._client)}};oW.Methods=$U,oW.Jobs=aW,oW.Checkpoints=rW,oW.Alpha=tW;var sW=class extends X{},cW=class extends X{constructor(){super(...arguments),this.graderModels=new sW(this._client)}};cW.GraderModels=sW;var lW=class extends X{createVariation(e,t){return this._client.post(`/images/variations`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}edit(e,t){return this._client.post(`/images/edits`,qB({body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}},this._client))}generate(e,t){return this._client.post(`/images/generations`,{body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}})}},uW=class extends X{retrieve(e,t){return this._client.get(Z`/models/${e}`,{...t,__security:{bearerAuth:!0}})}list(e){return this._client.getAPIList(`/models`,FB,{...e,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/models/${e}`,{...t,__security:{bearerAuth:!0}})}},dW=class extends X{create(e,t){return this._client.post(`/moderations`,{body:e,...t,__security:{bearerAuth:!0}})}},fW=class extends X{accept(e,t,n){return this._client.post(Z`/realtime/calls/${e}/accept`,{body:t,...n,headers:Q([{Accept:`*/*`},n?.headers]),__security:{bearerAuth:!0}})}hangup(e,t){return this._client.post(Z`/realtime/calls/${e}/hangup`,{...t,headers:Q([{Accept:`*/*`},t?.headers]),__security:{bearerAuth:!0}})}refer(e,t,n){return this._client.post(Z`/realtime/calls/${e}/refer`,{body:t,...n,headers:Q([{Accept:`*/*`},n?.headers]),__security:{bearerAuth:!0}})}reject(e,t={},n){return this._client.post(Z`/realtime/calls/${e}/reject`,{body:t,...n,headers:Q([{Accept:`*/*`},n?.headers]),__security:{bearerAuth:!0}})}},pW=class extends X{create(e,t){return this._client.post(`/realtime/client_secrets`,{body:e,...t,__security:{bearerAuth:!0}})}},mW=class extends X{constructor(){super(...arguments),this.clientSecrets=new pW(this._client),this.calls=new fW(this._client)}};mW.ClientSecrets=pW,mW.Calls=fW;function hW(e,t){if(!t||!vW(t)){let t={...e,output_parsed:null,output:e.output.map(e=>e.type===`function_call`?{...e,parsed_arguments:null}:e.type===`message`?{...e,content:e.content.map(e=>({...e,parsed:null}))}:e)};return SW(e,t)&&CW(t),t}return gW(e,t)}function gW(e,t){let n=!e.status||e.status===`completed`,r=e.output.map(e=>{if(e.type===`function_call`)return{...e,parsed_arguments:n?xW(t,e):null};if(e.type===`message`){let r=e.content.map(e=>e.type===`output_text`?{...e,parsed:n?_W(t,e.text):null}:e);return{...e,content:r}}return e}),i=Object.assign({},e,{output:r});return SW(e,i)&&CW(i),Object.defineProperty(i,"output_parsed",{enumerable:!0,get(){for(let e of i.output)if(e.type===`message`){for(let t of e.content)if(t.type===`output_text`&&t.parsed!==null)return t.parsed}return null}}),i}function _W(e,t){return e.text?.format?.type===`json_schema`?`$parseRaw`in e.text?.format?(e.text?.format).$parseRaw(t):JSON.parse(t):null}function vW(e){return!!fV(e.text?.format)}function yW(e){return e?.$brand===`auto-parseable-tool`}function bW(e,t){return e.find(e=>e.type===`function`&&e.name===t)}function xW(e,t){let n=bW(e.tools??[],t.name);return{...t,...t,parsed_arguments:yW(n)?n.$parseRaw(t.arguments):n?.strict?JSON.parse(t.arguments):null}}function SW(e,t){return!Object.getOwnPropertyDescriptor(e,`output_text`)||t.output_text==null}function CW(e){let t=[];for(let n of e.output)if(n.type===`message`)for(let e of n.content)e.type===`output_text`&&t.push(e.text);e.output_text=t.join(``)}function wW(e,t){if(!t){if(e.type!==`response.created`)throw new Y(`When snapshot hasn't been set yet, expected 'response.created' event, got ${e.type}`);return TW(e.response)}switch(e.type){case`response.output_item.added`:t.output.push(structuredClone(e.item)),e.item.type===`message`&&CW(t);break;case`response.output_item.done`:EW(t,e.output_index),t.output[e.output_index]=structuredClone(e.item),e.item.type===`message`&&CW(t);break;case`response.content_part.added`:{let n=EW(t,e.output_index),r=n.type,i=e.part;r===`message`&&i.type!==`reasoning_text`?(n.content.push(structuredClone(i)),i.type===`output_text`&&CW(t)):r===`reasoning`&&i.type===`reasoning_text`&&(n.content||=[],n.content.push(structuredClone(i)));break}case`response.content_part.done`:{let n=EW(t,e.output_index),r=e.part;if(n.type===`message`&&r.type!==`reasoning_text`)DW(n.content,e.content_index),n.content[e.content_index]=structuredClone(r),r.type===`output_text`&&CW(t);else if(n.type===`reasoning`&&r.type===`reasoning_text`){let t=n.content;if(!t)throw new Y(`missing content at index ${e.content_index}`);DW(t,e.content_index),t[e.content_index]=structuredClone(r)}break}case`response.output_text.delta`:{let n=EW(t,e.output_index);if(n.type===`message`){let r=DW(n.content,e.content_index);if(r.type!==`output_text`)throw new Y(`expected content to be 'output_text', got ${r.type}`);r.text+=e.delta,t.output_text+=e.delta}break}case`response.output_text.done`:{let n=EW(t,e.output_index);if(n.type===`message`){let r=DW(n.content,e.content_index);if(r.type!==`output_text`)throw new Y(`expected content to be 'output_text', got ${r.type}`);r.text=e.text,CW(t)}break}case`response.output_text.annotation.added`:{let n=EW(t,e.output_index);if(n.type===`message`){let t=DW(n.content,e.content_index);if(t.type!==`output_text`)throw new Y(`expected content to be 'output_text', got ${t.type}`);t.annotations[e.annotation_index]=structuredClone(e.annotation)}break}case`response.refusal.delta`:{let n=EW(t,e.output_index);if(n.type===`message`){let t=DW(n.content,e.content_index);if(t.type!==`refusal`)throw new Y(`expected content to be 'refusal', got ${t.type}`);t.refusal+=e.delta}break}case`response.refusal.done`:{let n=EW(t,e.output_index);if(n.type===`message`){let t=DW(n.content,e.content_index);if(t.type!==`refusal`)throw new Y(`expected content to be 'refusal', got ${t.type}`);t.refusal=e.refusal}break}case`response.function_call_arguments.delta`:{let n=EW(t,e.output_index);n.type===`function_call`&&(n.arguments+=e.delta);break}case`response.function_call_arguments.done`:{let n=EW(t,e.output_index);n.type===`function_call`&&(n.arguments=e.arguments);break}case`response.reasoning_text.delta`:{let n=EW(t,e.output_index);if(n.type===`reasoning`){if(!n.content)throw new Y(`missing content at index ${e.content_index}`);let t=DW(n.content,e.content_index);if(t.type!==`reasoning_text`)throw new Y(`expected content to be 'reasoning_text', got ${t.type}`);t.text+=e.delta}break}case`response.reasoning_text.done`:{let n=EW(t,e.output_index);if(n.type===`reasoning`){if(!n.content)throw new Y(`missing content at index ${e.content_index}`);let t=DW(n.content,e.content_index);if(t.type!==`reasoning_text`)throw new Y(`expected content to be 'reasoning_text', got ${t.type}`);t.text=e.text}break}case`response.reasoning_summary_part.added`:{let n=EW(t,e.output_index);n.type===`reasoning`&&n.summary.push(structuredClone(e.part));break}case`response.reasoning_summary_part.done`:{let n=EW(t,e.output_index);n.type===`reasoning`&&(DW(n.summary,e.summary_index),n.summary[e.summary_index]=structuredClone(e.part));break}case`response.reasoning_summary_text.delta`:{let n=EW(t,e.output_index);if(n.type===`reasoning`){let t=DW(n.summary,e.summary_index);t.text+=e.delta}break}case`response.reasoning_summary_text.done`:{let n=EW(t,e.output_index);if(n.type===`reasoning`){let t=DW(n.summary,e.summary_index);t.text=e.text}break}case`response.custom_tool_call_input.delta`:{let n=EW(t,e.output_index);n.type===`custom_tool_call`&&(n.input+=e.delta);break}case`response.custom_tool_call_input.done`:{let n=EW(t,e.output_index);n.type===`custom_tool_call`&&(n.input=e.input);break}case`response.mcp_call_arguments.delta`:{let n=EW(t,e.output_index);n.type===`mcp_call`&&(n.arguments+=e.delta);break}case`response.mcp_call_arguments.done`:{let n=EW(t,e.output_index);n.type===`mcp_call`&&(n.arguments=e.arguments);break}case`response.code_interpreter_call_code.delta`:{let n=EW(t,e.output_index);n.type===`code_interpreter_call`&&(n.code=(n.code??``)+e.delta);break}case`response.code_interpreter_call_code.done`:{let n=EW(t,e.output_index);n.type===`code_interpreter_call`&&(n.code=e.code);break}case`response.code_interpreter_call.in_progress`:{let n=EW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`in_progress`);break}case`response.code_interpreter_call.interpreting`:{let n=EW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`interpreting`);break}case`response.code_interpreter_call.completed`:{let n=EW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`completed`);break}case`response.file_search_call.in_progress`:{let n=EW(t,e.output_index);n.type===`file_search_call`&&(n.status=`in_progress`);break}case`response.file_search_call.searching`:{let n=EW(t,e.output_index);n.type===`file_search_call`&&(n.status=`searching`);break}case`response.file_search_call.completed`:{let n=EW(t,e.output_index);n.type===`file_search_call`&&(n.status=`completed`);break}case`response.web_search_call.in_progress`:{let n=EW(t,e.output_index);n.type===`web_search_call`&&(n.status=`in_progress`);break}case`response.web_search_call.searching`:{let n=EW(t,e.output_index);n.type===`web_search_call`&&(n.status=`searching`);break}case`response.web_search_call.completed`:{let n=EW(t,e.output_index);n.type===`web_search_call`&&(n.status=`completed`);break}case`response.image_generation_call.in_progress`:{let n=EW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`in_progress`);break}case`response.image_generation_call.generating`:{let n=EW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`generating`);break}case`response.image_generation_call.completed`:{let n=EW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`completed`);break}case`response.mcp_call.in_progress`:{let n=EW(t,e.output_index);n.type===`mcp_call`&&(n.status=`in_progress`);break}case`response.mcp_call.completed`:{let n=EW(t,e.output_index);n.type===`mcp_call`&&(n.status=`completed`);break}case`response.mcp_call.failed`:{let n=EW(t,e.output_index);n.type===`mcp_call`&&(n.status=`failed`);break}case`response.created`:case`response.queued`:case`response.in_progress`:case`response.completed`:case`response.failed`:case`response.incomplete`:t=TW(e.response);break;case`response.audio.delta`:case`response.audio.done`:case`response.audio.transcript.delta`:case`response.audio.transcript.done`:case`response.image_generation_call.partial_image`:case`response.mcp_list_tools.in_progress`:case`response.mcp_list_tools.completed`:case`response.mcp_list_tools.failed`:case`error`:break;default:OW(e)}return t}function TW(e){let t=structuredClone(e);return(!Object.getOwnPropertyDescriptor(t,`output_text`)||t.output_text==null)&&CW(t),t}function EW(e,t){let n=e.output[t];if(!n)throw new Y(`missing output at index ${t}`);return n}function DW(e,t){let n=e[t];if(!n)throw new Y(`missing content at index ${t}`);return n}function OW(e){throw new Y(`Unhandled response stream event: ${JSON.stringify(e)}`)}var kW,AW,jW,MW,NW,PW,FW,IW=class e extends zV{constructor(e){super(),kW.add(this),AW.set(this,void 0),jW.set(this,void 0),MW.set(this,void 0),q(this,AW,e,`f`)}static createResponse(t,n,r){let i=new e(n);return i._run(()=>i._createOrRetrieveResponse(t,n,{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}async _createOrRetrieveResponse(e,t,n){this._listenForAbort(n?.signal),J(this,kW,`m`,NW).call(this);let r,i=null;`response_id`in t?(r=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),i=t.starting_after??null):r=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(let e of r)J(this,kW,`m`,PW).call(this,e,i);if(r.controller.signal?.aborted)throw new ZR;return J(this,kW,`m`,FW).call(this)}[(AW=new WeakMap,jW=new WeakMap,MW=new WeakMap,kW=new WeakSet,NW=function(){this.ended||q(this,jW,void 0,`f`)},PW=function(e,t){if(this.ended)return;let n=(e,n)=>{(t==null||n.sequence_number>t)&&this._emit(e,n)},r=wW(e,J(this,jW,`f`));switch(q(this,jW,r,`f`),n(`event`,e),e.type){case`response.output_text.delta`:{let t=r.output[e.output_index];if(!t)throw new Y(`missing output at index ${e.output_index}`);if(t.type===`message`){let r=t.content[e.content_index];if(!r)throw new Y(`missing content at index ${e.content_index}`);if(r.type!==`output_text`)throw new Y(`expected content to be 'output_text', got ${r.type}`);n(`response.output_text.delta`,{...e,snapshot:r.text})}break}case`response.function_call_arguments.delta`:{let t=r.output[e.output_index];if(!t)throw new Y(`missing output at index ${e.output_index}`);t.type===`function_call`&&n(`response.function_call_arguments.delta`,{...e,snapshot:t.arguments});break}default:n(e.type,e);break}},FW=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);let e=J(this,jW,`f`);if(!e)throw new Y(`request ended without sending any events`);q(this,jW,void 0,`f`);let t=LW(e,J(this,AW,`f`));return q(this,MW,t,`f`),t},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on(`event`,n=>{let r=t.shift();r?r.resolve(n):e.push(n)}),this.on(`end`,()=>{n=!0;for(let e of t)e.resolve(void 0);t.length=0}),this.on(`abort`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),this.on(`error`,e=>{n=!0;for(let n of t)n.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((e,n)=>t.push({resolve:e,reject:n})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let e=J(this,MW,`f`);if(!e)throw new Y(`stream ended without producing a ChatCompletion`);return e}};function LW(e,t){return hW(e,t)}var RW=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/responses/${e}/input_items`,IB,{query:t,...n,__security:{bearerAuth:!0}})}},zW=class extends X{count(e={},t){return this._client.post(`/responses/input_tokens`,{body:e,...t,__security:{bearerAuth:!0}})}},BW=class extends X{constructor(){super(...arguments),this.inputItems=new RW(this._client),this.inputTokens=new zW(this._client)}create(e,t){return this._client.post(`/responses`,{body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}})._thenUnwrap(e=>(`object`in e&&e.object===`response`&&CW(e),e))}retrieve(e,t={},n){return this._client.get(Z`/responses/${e}`,{query:t,...n,stream:t?.stream??!1,__security:{bearerAuth:!0}})._thenUnwrap(e=>(`object`in e&&e.object===`response`&&CW(e),e))}delete(e,t){return this._client.delete(Z`/responses/${e}`,{...t,headers:Q([{Accept:`*/*`},t?.headers]),__security:{bearerAuth:!0}})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(t=>gW(t,e))}stream(e,t){return IW.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(Z`/responses/${e}/cancel`,{...t,__security:{bearerAuth:!0}})}compact(e,t){return this._client.post(`/responses/compact`,{body:e,...t,__security:{bearerAuth:!0}})}};BW.InputItems=RW,BW.InputTokens=zW;var VW=class extends X{retrieve(e,t){return this._client.get(Z`/skills/${e}/content`,{...t,headers:Q([{Accept:`application/binary`},t?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}},HW=class extends X{retrieve(e,t,n){let{skill_id:r}=t;return this._client.get(Z`/skills/${r}/versions/${e}/content`,{...n,headers:Q([{Accept:`application/binary`},n?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}},UW=class extends X{constructor(){super(...arguments),this.content=new HW(this._client)}create(e,t={},n){return this._client.post(Z`/skills/${e}/versions`,KB({body:t,...n,__security:{bearerAuth:!0}},this._client))}retrieve(e,t,n){let{skill_id:r}=t;return this._client.get(Z`/skills/${r}/versions/${e}`,{...n,__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/skills/${e}/versions`,IB,{query:t,...n,__security:{bearerAuth:!0}})}delete(e,t,n){let{skill_id:r}=t;return this._client.delete(Z`/skills/${r}/versions/${e}`,{...n,__security:{bearerAuth:!0}})}};UW.Content=HW;var WW=class extends X{constructor(){super(...arguments),this.content=new VW(this._client),this.versions=new UW(this._client)}create(e={},t){return this._client.post(`/skills`,KB({body:e,...t,__security:{bearerAuth:!0}},this._client))}retrieve(e,t){return this._client.get(Z`/skills/${e}`,{...t,__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/skills/${e}`,{body:t,...n,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/skills`,IB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/skills/${e}`,{...t,__security:{bearerAuth:!0}})}};WW.Content=VW,WW.Versions=UW;var GW=class extends X{create(e,t,n){return this._client.post(Z`/uploads/${e}/parts`,qB({body:t,...n,__security:{bearerAuth:!0}},this._client))}},KW=class extends X{constructor(){super(...arguments),this.parts=new GW(this._client)}create(e,t){return this._client.post(`/uploads`,{body:e,...t,__security:{bearerAuth:!0}})}cancel(e,t){return this._client.post(Z`/uploads/${e}/cancel`,{...t,__security:{bearerAuth:!0}})}complete(e,t,n){return this._client.post(Z`/uploads/${e}/complete`,{body:t,...n,__security:{bearerAuth:!0}})}};KW.Parts=GW;var qW=async e=>{let t=await Promise.allSettled(e),n=t.filter(e=>e.status===`rejected`);if(n.length){for(let e of n)console.error(e.reason);throw Error(`${n.length} promise(s) failed - see the above errors`)}let r=[];for(let e of t)e.status===`fulfilled`&&r.push(e.value);return r},JW=class extends X{create(e,t,n){return this._client.post(Z`/vector_stores/${e}/file_batches`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t,n){let{vector_store_id:r}=t;return this._client.get(Z`/vector_stores/${r}/file_batches/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}cancel(e,t,n){let{vector_store_id:r}=t;return this._client.post(Z`/vector_stores/${r}/file_batches/${e}/cancel`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(e,t,n){let r=await this.create(e,t);return await this.poll(e,r.id,n)}listFiles(e,t,n){let{vector_store_id:r,...i}=t;return this._client.getAPIList(Z`/vector_stores/${r}/file_batches/${e}/files`,IB,{query:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}async poll(e,t,n){let r=Q([n?.headers,{"X-Stainless-Poll-Helper":`true`,"X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:a}=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse();switch(i.status){case`in_progress`:let e=5e3;if(n?.pollIntervalMs)e=n.pollIntervalMs;else{let t=a.headers.get(`openai-poll-after-ms`);if(t){let n=parseInt(t);isNaN(n)||(e=n)}}await Cz(e);break;case`failed`:case`cancelled`:case`completed`:return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},r){if(t==null||t.length==0)throw Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let i=r?.maxConcurrency??5,a=Math.min(i,t.length),o=this._client,s=t.values(),c=[...n];async function l(e){for(let t of e){let e=await o.files.create({file:t,purpose:`assistants`},r);c.push(e.id)}}return await qW(Array(a).fill(s).map(l)),await this.createAndPoll(e,{file_ids:c})}},YW=class extends X{create(e,t,n){return this._client.post(Z`/vector_stores/${e}/files`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t,n){let{vector_store_id:r}=t;return this._client.get(Z`/vector_stores/${r}/files/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){let{vector_store_id:r,...i}=t;return this._client.post(Z`/vector_stores/${r}/files/${e}`,{body:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e,t={},n){return this._client.getAPIList(Z`/vector_stores/${e}/files`,IB,{query:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}delete(e,t,n){let{vector_store_id:r}=t;return this._client.delete(Z`/vector_stores/${r}/files/${e}`,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}async createAndPoll(e,t,n){let r=await this.create(e,t,n);return await this.poll(e,r.id,n)}async poll(e,t,n){let r=Q([n?.headers,{"X-Stainless-Poll-Helper":`true`,"X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let i=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse(),a=i.data;switch(a.status){case`in_progress`:let e=5e3;if(n?.pollIntervalMs)e=n.pollIntervalMs;else{let t=i.response.headers.get(`openai-poll-after-ms`);if(t){let n=parseInt(t);isNaN(n)||(e=n)}}await Cz(e);break;case`failed`:case`completed`:return a}}}async upload(e,t,n){let r=await this._client.files.create({file:t,purpose:`assistants`},n);return this.create(e,{file_id:r.id},n)}async uploadAndPoll(e,t,n){let r=await this.upload(e,t,n);return await this.poll(e,r.id,n)}content(e,t,n){let{vector_store_id:r}=t;return this._client.getAPIList(Z`/vector_stores/${r}/files/${e}/content`,FB,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}},XW=class extends X{constructor(){super(...arguments),this.files=new YW(this._client),this.fileBatches=new JW(this._client)}create(e,t){return this._client.post(`/vector_stores`,{body:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}retrieve(e,t){return this._client.get(Z`/vector_stores/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}update(e,t,n){return this._client.post(Z`/vector_stores/${e}`,{body:t,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/vector_stores`,IB,{query:e,...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/vector_stores/${e}`,{...t,headers:Q([{"OpenAI-Beta":`assistants=v2`},t?.headers]),__security:{bearerAuth:!0}})}search(e,t,n){return this._client.getAPIList(Z`/vector_stores/${e}/search`,FB,{body:t,method:`post`,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}};XW.Files=YW,XW.FileBatches=JW;var ZW=class extends X{create(e,t){return this._client.post(`/videos`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}retrieve(e,t){return this._client.get(Z`/videos/${e}`,{...t,__security:{bearerAuth:!0}})}list(e={},t){return this._client.getAPIList(`/videos`,LB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/videos/${e}`,{...t,__security:{bearerAuth:!0}})}createCharacter(e,t){return this._client.post(`/videos/characters`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}downloadContent(e,t={},n){return this._client.get(Z`/videos/${e}/content`,{query:t,...n,headers:Q([{Accept:`application/binary`},n?.headers]),__security:{bearerAuth:!0},__binaryResponse:!0})}edit(e,t){return this._client.post(`/videos/edits`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}extend(e,t){return this._client.post(`/videos/extensions`,qB({body:e,...t,__security:{bearerAuth:!0}},this._client))}getCharacter(e,t){return this._client.get(Z`/videos/characters/${e}`,{...t,__security:{bearerAuth:!0}})}remix(e,t,n){return this._client.post(Z`/videos/${e}/remix`,KB({body:t,...n,__security:{bearerAuth:!0}},this._client))}},QW,$W,eG,tG=class extends X{constructor(){super(...arguments),QW.add(this)}async unwrap(e,t,n=this._client.webhookSecret,r=300){return await this.verifySignature(e,t,n,r),JSON.parse(e)}async verifySignature(e,t,n=this._client.webhookSecret,r=300){if(typeof crypto>`u`||typeof crypto.subtle.importKey!=`function`||typeof crypto.subtle.verify!=`function`)throw Error("Webhook signature verification is only supported when the `crypto` global is defined");J(this,QW,`m`,$W).call(this,n);let i=Q([t]).values,a=J(this,QW,`m`,eG).call(this,i,`webhook-signature`),o=J(this,QW,`m`,eG).call(this,i,`webhook-timestamp`),s=J(this,QW,`m`,eG).call(this,i,`webhook-id`),c=parseInt(o,10);if(isNaN(c))throw new uz(`Invalid webhook timestamp format`);let l=Math.floor(Date.now()/1e3);if(l-c>r)throw new uz(`Webhook timestamp is too old`);if(c>l+r)throw new uz(`Webhook timestamp is too new`);let u=a.split(` `).map(e=>e.startsWith(`v1,`)?e.substring(3):e),d=n.startsWith(`whsec_`)?Buffer.from(n.replace(`whsec_`,``),`base64`):Buffer.from(n,`utf-8`),f=s?`${s}.${o}.${e}`:`${o}.${e}`,p=await crypto.subtle.importKey(`raw`,d,{name:`HMAC`,hash:`SHA-256`},!1,[`verify`]);for(let e of u)try{let t=Buffer.from(e,`base64`);if(await crypto.subtle.verify(`HMAC`,p,t,new TextEncoder().encode(f)))return}catch{continue}throw new uz(`The given webhook signature does not match the expected signature`)}};QW=new WeakSet,$W=function(e){if(typeof e!=`string`||e.length===0)throw Error(`The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function`)},eG=function(e,t){if(!e)throw Error(`Headers are required`);let n=e.get(t);if(n==null)throw Error(`Missing required header: ${t}`);return n};var nG=Symbol.for(`openai.node.providerDefinitions.v1`),rG=globalThis,iG=rG[nG],aG=iG??new WeakMap;iG||Object.defineProperty(rG,nG,{value:aG});function oG(e){let t=aG.get(e);if(!t)throw Error(`Invalid provider. Providers must be created with createProvider().`);return t.configure()}var sG,cG,lG,uG,dG=`workload-identity-auth`,$=class{constructor(e={}){sG.add(this),lG.set(this,void 0),this.completions=new HU(this),this.chat=new xH(this),this.embeddings=new JU(this),this.files=new QU(this),this.images=new lW(this),this.audio=new nU(this),this.moderations=new dW(this),this.models=new uW(this),this.fineTuning=new oW(this),this.graders=new cW(this),this.vectorStores=new XW(this),this.webhooks=new tG(this),this.beta=new VU(this),this.batches=new rU(this),this.uploads=new KW(this),this.admin=new XH(this),this.responses=new BW(this),this.realtime=new mW(this),this.conversations=new qU(this),this.evals=new ZU(this),this.containers=new GU(this),this.skills=new WW(this),this.videos=new ZW(this);let t=e.provider;if(t){let t=[`apiKey`,`adminAPIKey`,`workloadIdentity`,`baseURL`].filter(t=>e[t]!=null);if(t.length)throw new Y(`The \`provider\` option cannot be used with ${t.map(e=>`\`${e}\``).join(`, `)}. Configure authentication and the base URL through the provider instead.`)}let{baseURL:n=t?null:mU(`OPENAI_BASE_URL`),apiKey:r=t?null:mU(`OPENAI_API_KEY`)??null,adminAPIKey:i=t?null:mU(`OPENAI_ADMIN_KEY`)??null,organization:a=t?null:mU(`OPENAI_ORG_ID`)??null,project:o=t?null:mU(`OPENAI_PROJECT_ID`)??null,webhookSecret:s=mU(`OPENAI_WEBHOOK_SECRET`)??null,workloadIdentity:c,...l}=e,u=t?oG(t):void 0,d={apiKey:r,adminAPIKey:i,organization:a,project:o,webhookSecret:s,workloadIdentity:c,provider:t,...l,baseURL:u?.baseURL??(n||`https://api.openai.com/v1`)};if(r&&c)throw new Y("The `apiKey` and `workloadIdentity` options are mutually exclusive");if(!u&&!r&&!i&&!c)throw new Y("Missing credentials. Please pass an `apiKey`, `workloadIdentity`, `adminAPIKey`, or set the `OPENAI_API_KEY` or `OPENAI_ADMIN_KEY` environment variable.");if(!d.dangerouslyAllowBrowser&&Tz())throw new Y(`It looks like you're running in a browser-like environment.
|
|
198
|
+
|
|
199
|
+
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
200
|
+
If you understand the risks and have appropriate mitigations in place,
|
|
201
|
+
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
202
|
+
|
|
203
|
+
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
204
|
+
|
|
205
|
+
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
206
|
+
`);this.baseURL=d.baseURL,this.timeout=d.timeout??cG.DEFAULT_TIMEOUT,this.logger=d.logger??console;let f=`warn`;this.logLevel=f,this.logLevel=hB(d.logLevel,`ClientOptions.logLevel`,this)??hB(mU(`OPENAI_LOG`),`process.env['OPENAI_LOG']`,this)??f,this.fetchOptions=d.fetchOptions,this.maxRetries=d.maxRetries??2,this.fetch=d.fetch??Nz(),q(this,lG,Rz,`f`);let p=t?void 0:mU(`OPENAI_CUSTOM_HEADERS`);if(p){let e={};for(let t of p.split(`
|
|
207
|
+
`)){let n=t.indexOf(`:`);n>=0&&(e[t.substring(0,n).trim()]=t.substring(n+1).trim())}d.defaultHeaders=Q([e,d.defaultHeaders])}this._options=d,this._provider=u,c&&(this._workloadIdentityAuth=new VB(c,this.fetch)),this.apiKey=typeof r==`string`?r:null,this.adminAPIKey=i,this.organization=a,this.project=o,this.webhookSecret=s}withOptions(e){let t=this._options.provider,n=e.provider??t,r={...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret};return n&&(delete r.apiKey,delete r.adminAPIKey,delete r.workloadIdentity,delete r.baseURL,n!==t&&(delete r.organization,delete r.project,delete r.defaultHeaders)),new this.constructor({...r,...e,provider:n})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t},n={bearerAuth:!0,adminAPIKeyAuth:!0}){if(!(e.get(`authorization`)||e.get(`api-key`))&&!(t.has(`authorization`)||t.has(`api-key`))&&!(this._workloadIdentityAuth&&n.bearerAuth))throw Error(`Could not resolve authentication method. Expected either apiKey or adminAPIKey to be set. Or for one of the "Authorization" or "api-key" headers to be explicitly omitted`)}async authHeaders(e,t={bearerAuth:!0,adminAPIKeyAuth:!0}){return Q([t.bearerAuth?await this.bearerAuth(e):null,t.adminAPIKeyAuth?await this.adminAPIKeyAuth(e):null])}async bearerAuth(e){if(this._workloadIdentityAuth)return Q([{Authorization:`Bearer ${await this._workloadIdentityAuth.getToken()}`}]);if(this.apiKey!=null)return Q([{Authorization:`Bearer ${this.apiKey}`}])}async adminAPIKeyAuth(e){if(this.adminAPIKey!=null)return Q([{Authorization:`Bearer ${this.adminAPIKey}`}])}stringifyQuery(e){return rB(e)}getUserAgent(){return`${this.constructor.name}/JS ${wz}`}defaultIdempotencyKey(){return`stainless-node-retry-${qR()}`}makeStatusError(e,t,n,r){return XR.generate(e,t,n,r)}async _callApiKey(){if(this._provider)return!1;let e=this._options.apiKey;if(typeof e!=`function`)return!1;let t;try{t=await e()}catch(e){throw e instanceof Y?e:new Y(`Failed to get token from 'apiKey' function: ${e.message}`,{cause:e})}if(typeof t!=`string`||!t)throw new Y(`Expected 'apiKey' function argument to return a string but it returned ${t}`);return this.apiKey=t,!0}buildURL(e,t,n){let r=!J(this,sG,`m`,uG).call(this)&&n||this.baseURL,i=mz(e)?new URL(e):new URL(r+(r.endsWith(`/`)&&e.startsWith(`/`)?e.slice(1):e)),a=this.defaultQuery(),o=Object.fromEntries(i.searchParams);return(!vz(a)||!vz(o))&&(t={...o,...a,...t}),typeof t==`object`&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){this._provider||(e.__security??{bearerAuth:!0}).bearerAuth&&await this._callApiKey()}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest(`get`,e,t)}post(e,t){return this.methodRequest(`post`,e,t)}patch(e,t){return this.methodRequest(`patch`,e,t)}put(e,t){return this.methodRequest(`put`,e,t)}delete(e,t){return this.methodRequest(`delete`,e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(n=>({method:e,path:t,...n})))}request(e,t=null){return new jB(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let r=await e,i=r.maxRetries??this.maxRetries;t??=i,await this.prepareOptions(r);let{req:a,url:o,timeout:s}=await this.buildRequest(r,{retryCount:i-t});await this.prepareRequest(a,{url:o,options:r}),await this._provider?.prepareRequest?.(a,{url:o,options:r});let c=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),l=n===void 0?``:`, retryOf: ${n}`,u=Date.now();if(bB(this).debug(`[${c}] sending request`,xB({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:a.headers})),r.signal?.aborted)throw new ZR;let d=r.__security??{bearerAuth:!0},f=new AbortController,p=await this.fetchWithAuth(o,a,s,f,d).catch(YR),m=Date.now();if(p instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new ZR;let i=JR(p)||/timed? ?out/i.test(String(p)+(`cause`in p?String(p.cause):``));if(t)return bB(this).info(`[${c}] connection ${i?`timed out`:`failed`} - ${e}`),bB(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (${e})`,xB({retryOfRequestLogID:n,url:o,durationMs:m-u,message:p.message})),this.retryRequest(r,t,n??c);throw bB(this).info(`[${c}] connection ${i?`timed out`:`failed`} - error; no more retries left`),bB(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (error; no more retries left)`,xB({retryOfRequestLogID:n,url:o,durationMs:m-u,message:p.message})),p instanceof dz||p instanceof fz?p:i?new $R:new QR({message:fG(p),cause:p})}let h=`[${c}${l}${[...p.headers.entries()].filter(([e])=>e===`x-request-id`).map(([e,t])=>`, `+e+`: `+JSON.stringify(t)).join(``)}] ${a.method} ${o} ${p.ok?`succeeded`:`failed`} with status ${p.status} in ${m-u}ms`;if(!p.ok){if(p.status===401&&this._workloadIdentityAuth&&d.bearerAuth&&!r.__metadata?.hasStreamingBody&&!r.__metadata?.workloadIdentityTokenRefreshed)return await Lz(p.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...r,__metadata:{...r.__metadata,workloadIdentityTokenRefreshed:!0}},t,n??c);let e=await this.shouldRetry(p);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await Lz(p.body),bB(this).info(`${h} - ${e}`),bB(this).debug(`[${c}] response error (${e})`,xB({retryOfRequestLogID:n,url:p.url,status:p.status,headers:p.headers,durationMs:m-u})),this.retryRequest(r,t,n??c,p.headers)}let i=e?`error; no more retries left`:`error; not retryable`;bB(this).info(`${h} - ${i}`);let a=await p.text().catch(e=>YR(e).message),o=Sz(a),s=o?void 0:a;throw bB(this).debug(`[${c}] response error (${i})`,xB({retryOfRequestLogID:n,url:p.url,status:p.status,headers:p.headers,message:s,durationMs:Date.now()-u})),this.makeStatusError(p.status,o,s,p.headers)}return bB(this).info(h),bB(this).debug(`[${c}] response start`,xB({retryOfRequestLogID:n,url:p.url,status:p.status,headers:p.headers,durationMs:m-u})),{response:p,options:r,controller:f,requestLogID:c,retryOfRequestLogID:n,startTime:u}}getAPIList(e,t,n){return this.requestAPIList(t,n&&`then`in n?n.then(t=>({method:`get`,path:e,...t})):{method:`get`,path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new PB(this,n,e)}async fetchWithAuth(e,t,n,r,i={bearerAuth:!0,adminAPIKeyAuth:!0}){if(this._workloadIdentityAuth&&i.bearerAuth){let e=t.headers,n=e.get(`Authorization`);if(!n||n===`Bearer ${dG}`){let t=await this._workloadIdentityAuth.getToken();e.set(`Authorization`,`Bearer ${t}`)}}return await this.fetchWithTimeout(e,t,n,r)}async fetchWithTimeout(e,t,n,r){let{signal:i,method:a,...o}=t||{},s=this._makeAbort(r);i&&i.addEventListener(`abort`,s,{once:!0});let c=setTimeout(s,n),l=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body==`object`&&o.body!==null&&Symbol.asyncIterator in o.body,u={signal:r.signal,...l?{duplex:`half`}:{},method:`GET`,...o};a&&(u.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,u)}finally{clearTimeout(c)}}async shouldRetry(e){let t=e.headers.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let i,a=r?.get(`retry-after-ms`);if(a){let e=parseFloat(a);Number.isNaN(e)||(i=e)}let o=r?.get(`retry-after`);if(o&&!i){let e=parseFloat(o);i=Number.isNaN(e)?Date.parse(o)-Date.now():e*1e3}if(i===void 0){let n=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,n)}return await Cz(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let n=t-e;return Math.min(.5*2**n,8)*(1-Math.random()*.25)*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:r,path:i,query:a,defaultBaseURL:o}=n,s=this.buildURL(i,a,o);`timeout`in n&&xz(`timeout`,n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l,isStreamingBody:u}=this.buildBody({options:n});return u&&(e.__metadata={...e.__metadata,hasStreamingBody:!0}),{req:{method:r,headers:await this.buildHeaders({options:e,method:r,bodyHeaders:c,retryCount:t}),...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:`half`},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:s,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let i={};this.idempotencyHeader&&t!==`get`&&(e.idempotencyKey||=this.defaultIdempotencyKey(),i[this.idempotencyHeader]=e.idempotencyKey);let a=Q([i,{Accept:`application/json`,"User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...Mz(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},this._provider?void 0:await this.authHeaders(e,e.__security??{bearerAuth:!0}),this._options.defaultHeaders,n,e.headers]);return this._provider||this.validateHeaders(a,e.__security??{bearerAuth:!0}),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:e}){let{body:t,headers:n}=e;if(!t)return t===void 0&&`body`in e?{...J(this,lG,`f`).call(this,{body:t,headers:Q([n])}),isStreamingBody:!1}:{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let r=Q([n]),i=globalThis.ReadableStream!==void 0&&t instanceof globalThis.ReadableStream,a=!i&&(typeof t==`string`||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||globalThis.Blob!==void 0&&t instanceof globalThis.Blob||t instanceof URLSearchParams||t instanceof FormData);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t==`string`&&r.values.has(`content-type`)||globalThis.Blob&&t instanceof globalThis.Blob||t instanceof FormData||t instanceof URLSearchParams||i?{bodyHeaders:void 0,body:t,isStreamingBody:!a}:typeof t==`object`&&(Symbol.asyncIterator in t||Symbol.iterator in t&&`next`in t&&typeof t.next==`function`)?{bodyHeaders:void 0,body:Fz(t),isStreamingBody:!0}:typeof t==`object`&&r.values.get(`content-type`)===`application/x-www-form-urlencoded`?{bodyHeaders:{"content-type":`application/x-www-form-urlencoded`},body:this.stringifyQuery(t),isStreamingBody:!1}:{...J(this,lG,`f`).call(this,{body:t,headers:r}),isStreamingBody:!1}}};cG=$,lG=new WeakMap,sG=new WeakSet,uG=function(){return this._provider!==void 0||this.baseURL!==`https://api.openai.com/v1`},$.OpenAI=cG,$.DEFAULT_TIMEOUT=6e5,$.OpenAIError=Y,$.APIError=XR,$.APIConnectionError=QR,$.APIConnectionTimeoutError=$R,$.APIUserAbortError=ZR,$.NotFoundError=rz,$.ConflictError=iz,$.RateLimitError=oz,$.BadRequestError=ez,$.AuthenticationError=tz,$.InternalServerError=sz,$.PermissionDeniedError=nz,$.UnprocessableEntityError=az,$.InvalidWebhookSignatureError=uz,$.toFile=iV,$.Completions=HU,$.Chat=xH,$.Embeddings=JU,$.Files=QU,$.Images=lW,$.Audio=nU,$.Moderations=dW,$.Models=uW,$.FineTuning=oW,$.Graders=cW,$.VectorStores=XW,$.Webhooks=tG,$.Beta=VU,$.Batches=rU,$.Uploads=KW,$.Admin=XH,$.Responses=BW,$.Realtime=mW,$.Conversations=qU,$.Evals=ZU,$.Containers=GU,$.Skills=WW,$.Videos=ZW;function fG(e){if(pG(e))return`Connection error. This may be caused by passing an undici dispatcher, such as ProxyAgent, that is incompatible with the fetch implementation. If you are using undici's ProxyAgent, pass the fetch implementation from the same undici package: import { fetch, ProxyAgent } from 'undici'; new OpenAI({ fetch, fetchOptions: { dispatcher: new ProxyAgent(...) } });`}function pG(e){let t=e;for(let e=0;e<8&&t&&typeof t==`object`;e++){let e=t;if(e.code===`UND_ERR_INVALID_ARG`&&typeof e.message==`string`&&e.message.includes(`invalid onRequestStart method`))return!0;t=e.cause}return!1}var mG=class extends ${constructor({baseURL:e=mU(`OPENAI_BASE_URL`),apiKey:t=mU(`AZURE_OPENAI_API_KEY`),apiVersion:n=mU(`OPENAI_API_VERSION`),endpoint:r,deployment:i,azureADTokenProvider:a,dangerouslyAllowBrowser:o,...s}={}){if(!n)throw new Y(`The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).`);if(typeof a==`function`&&(o=!0),!a&&!t)throw new Y("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(a&&t)throw new Y("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(s.defaultQuery={...s.defaultQuery,"api-version":n},!e){if(r||={}.AZURE_OPENAI_ENDPOINT,!r)throw new Y("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${r}/openai`}else if(r)throw new Y(`baseURL and endpoint are mutually exclusive`);super({apiKey:a??t,baseURL:e,...s,...o===void 0?{}:{dangerouslyAllowBrowser:o}}),this.apiVersion=``,this.apiVersion=n,this.deploymentName=i}async buildRequest(e,t={}){if(hG.has(e.path)&&e.method===`post`&&e.body!==void 0){if(!bz(e.body))throw Error(`Expected request body to be an object`);let t=this.deploymentName||e.body.model||e.__metadata?.model;t!==void 0&&!this.baseURL.includes(`/deployments`)&&(e.path=`/deployments/${t}${e.path}`)}return super.buildRequest(e,t)}async authHeaders(e,t){let n=t??{bearerAuth:!0,adminAPIKeyAuth:!0};return n.bearerAuth&&typeof this._options.apiKey==`string`?Q([{"api-key":this.apiKey}]):super.authHeaders(e,n)}},hG=new Set([`/completions`,`/chat/completions`,`/embeddings`,`/audio/transcriptions`,`/audio/translations`,`/audio/speech`,`/images/generations`,`/batches`,`/images/edits`]);function gG(e){return!!(String(e).includes(`context_length_exceeded`)||`message`in e&&typeof e.message==`string`&&(e.message.includes(`Input tokens exceed the configured limit`)||e.message.includes(`exceeds the context window`)||e.message.includes(`maximum context length`)))}function _G(e){if(!e||typeof e!=`object`)return e;let t;return e.constructor.name===$R.name&&`message`in e&&typeof e.message==`string`?(t=Error(e.message),t.name=`TimeoutError`):e.constructor.name===ZR.name&&`message`in e&&typeof e.message==`string`?(t=Error(e.message),t.name=`AbortError`):t=gG(e)?ee.fromError(e):`status`in e&&e.status===400&&`message`in e&&typeof e.message==`string`&&e.message.includes(`tool_calls`)?KR(e,`INVALID_TOOL_RESULTS`):`status`in e&&e.status===401?KR(e,`MODEL_AUTHENTICATION`):`status`in e&&e.status===429?KR(e,`MODEL_RATE_LIMIT`):`status`in e&&e.status===404?KR(e,`MODEL_NOT_FOUND`):e,t}var vG=e=>e();function yG(e){return e?!!(/^o\d/.test(e??``)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-chat`)):!1}function bG(e){return e.role!==`system`&&e.role!==`developer`&&e.role!==`assistant`&&e.role!==`user`&&e.role!==`function`&&e.role!==`tool`&&console.warn(`Unknown message role: ${e.role}`),e.role}function xG(e){return e.metadata?.filename??e.metadata?.name??e.metadata?.title}var SG=`LC_AUTOGENERATED`;function CG(e){return(e.metadata?.filename??e.metadata?.name??e.metadata?.title)||(console.warn(`OpenAI may require a filename for file uploads. Specify a filename in the content block metadata, e.g.: { type: 'file', mimeType: '...', data: '...', metadata: { filename: 'my-file.pdf' } }. Using placeholder filename 'LC_AUTOGENERATED'.`),SG)}function wG(e){let t=e._getType();switch(t){case`system`:return`system`;case`ai`:return`assistant`;case`human`:return`user`;case`function`:return`function`;case`tool`:return`tool`;case`generic`:if(!dn.isInstance(e))throw Error(`Invalid generic chat message`);return bG(e);default:throw Error(`Unknown message type: ${t}`)}}function TG(e){return!!(e.includes(`gpt-5.2-pro`)||e.includes(`gpt-5.4-pro`)||e.includes(`gpt-5.5-pro`)||e.includes(`codex`))}function EG(e){let{azureOpenAIApiDeploymentName:t,azureOpenAIApiInstanceName:n,azureOpenAIApiKey:r,azureOpenAIBasePath:i,baseURL:a,azureADTokenProvider:o,azureOpenAIEndpoint:s}=e;if((r||o)&&i&&t)return`${i}/${t}`;if((r||o)&&s&&t)return`${s}/openai/deployments/${t}`;if(r||o){if(!n)throw Error(`azureOpenAIApiInstanceName is required when using azureOpenAIApiKey`);if(!t)throw Error(`azureOpenAIApiDeploymentName is a required parameter when using azureOpenAIApiKey`);return`https://${n}.openai.azure.com/openai/deployments/${t}`}return a}function DG(e){return typeof Headers<`u`&&typeof e==`object`&&!!e&&Object.prototype.toString.call(e)===`[object Headers]`}function OG(e){let t=vG(()=>{if(DG(e))return e;if(Array.isArray(e))return new Headers(e);if(typeof e==`object`&&e&&`values`in e&&DG(e.values))return e.values;if(typeof e==`object`&&e){let t=Object.entries(e).filter(([,e])=>typeof e==`string`).map(([e,t])=>[e,t]);return new Headers(t)}return new Headers});return Object.fromEntries(t.entries())}function kG(){let e=Rr();return(e===`node`||e===`deno`)&&(e=`(${e}/${process.version}; ${process.platform}; ${process.arch})`),e}function AG(e,t=!1,n=`1.0.0`){let r=OG(e),i=kG(),a=`langchainjs${t?`-azure`:``}-openai`;return{...r,"User-Agent":r[`User-Agent`]?`${a}/${n} (${i})${r[`User-Agent`]}`:`${a}/${n} (${i})`}}function jG(e,t){let n;return n=Ek(e)?Yj(e):e,t?.strict!==void 0&&(n.function.strict=t.strict),n}function MG(e){return e.anyOf!==void 0&&Array.isArray(e.anyOf)}function NG(e){let t=[`namespace functions {`,``];for(let n of e)n.description&&t.push(`// ${n.description}`),Object.keys(n.parameters.properties??{}).length>0?(t.push(`type ${n.name} = (_: {`),t.push(PG(n.parameters,0)),t.push(`}) => any;`)):t.push(`type ${n.name} = () => any;`),t.push(``);return t.push(`} // namespace functions`),t.join(`
|
|
208
|
+
`)}function PG(e,t){let n=[];for(let[r,i]of Object.entries(e.properties??{}))i.description&&t<2&&n.push(`// ${i.description}`),e.required?.includes(r)?n.push(`${r}: ${FG(i,t)},`):n.push(`${r}?: ${FG(i,t)},`);return n.map(e=>` `.repeat(t)+e).join(`
|
|
209
|
+
`)}function FG(e,t){if(MG(e))return e.anyOf.map(e=>FG(e,t)).join(` | `);switch(e.type){case`string`:return e.enum?e.enum.map(e=>`"${e}"`).join(` | `):`string`;case`number`:return e.enum?e.enum.map(e=>`${e}`).join(` | `):`number`;case`integer`:return e.enum?e.enum.map(e=>`${e}`).join(` | `):`number`;case`boolean`:return`boolean`;case`null`:return`null`;case`object`:return[`{`,PG(e,t+2),`}`].join(`
|
|
210
|
+
`);case`array`:return e.items?`${FG(e.items,t)}[]`:`any[]`;default:return``}}function IG(e){if(e)return e===`any`||e===`required`?`required`:e===`auto`?`auto`:e===`none`?`none`:typeof e==`string`?{type:`function`,function:{name:e}}:e}function LG(e){return`type`in e&&e.type!==`function`}function RG(e){return typeof e==`object`&&!!e&&`extras`in e&&typeof e.extras==`object`&&e.extras!==null&&`providerToolDefinition`in e.extras&&typeof e.extras.providerToolDefinition==`object`&&e.extras.providerToolDefinition!==null}function zG(e){return typeof e==`object`&&!!e&&`type`in e&&e.type!==`function`}function BG(e){return typeof e==`object`&&!!e&&`metadata`in e&&typeof e.metadata==`object`&&e.metadata!==null&&`customTool`in e.metadata&&typeof e.metadata.customTool==`object`&&e.metadata.customTool!==null}function VG(e){return`type`in e&&e.type===`custom`&&`custom`in e&&typeof e.custom==`object`&&e.custom!==null}function HG(e){if(e.type===`custom_tool_call`)return{...e,type:`tool_call`,call_id:e.id,id:e.call_id,name:e.name,isCustomTool:!0,args:{input:e.input}}}function UG(e){if(e.type===`computer_call`)return{...e,type:`tool_call`,call_id:e.id,id:e.call_id,name:`computer_use`,isComputerTool:!0,args:{action:e.action}}}function WG(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_call`&&`isComputerTool`in e&&e.isComputerTool===!0}function GG(e,t){return typeof e!=`object`||!e||!(`type`in e)||e.type!==`tool_call`?!1:!!(`isCustomTool`in e&&e.isCustomTool===!0||t&&`id`in e&&typeof e.id==`string`&&e.id in t)}function KG(e){return{type:`custom`,name:e.custom.name,description:e.custom.description,format:(()=>{if(e.custom.format){if(e.custom.format.type===`grammar`)return{type:`grammar`,definition:e.custom.format.grammar.definition,syntax:e.custom.format.grammar.syntax};if(e.custom.format.type===`text`)return{type:`text`}}})()}}function qG(e){return{type:`custom`,custom:{name:e.name,description:e.description,format:(()=>{if(e.format){if(e.format.type===`grammar`)return{type:`grammar`,grammar:{definition:e.format.definition,syntax:e.format.syntax}};if(e.format.type===`text`)return{type:`text`}}})()}}}var JG=Symbol(`Let zodToJsonSchema decide on which parser to use`),YG={name:void 0,$refStrategy:`root`,effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,nullableStrategy:`from-target`,removeAdditionalStrategy:`passthrough`,definitionPath:`definitions`,target:`jsonSchema7`,strictUnions:!1,errorMessages:!1,markdownDescription:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`},XG=e=>typeof e==`string`?{...YG,basePath:[`#`],definitions:{},name:e}:{...YG,basePath:[`#`],definitions:{},...e},ZG=e=>`_def`in e?e._def:e;function QG(e){if(!e)return!0;for(let t in e)return!1;return!0}var $G=e=>{let t=XG(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,currentPath:n,propertyPath:void 0,seenRefs:new Set,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[ZG(n),{def:ZG(n),path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}};function eK(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function tK(e,t,n,r,i){e[t]=n,eK(e,t,r,i)}function nK(){return{}}function rK(e,t){let n={type:`array`};return e.type?._def?.typeName!==H.ZodAny&&(n.items=UK(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&tK(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&tK(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(tK(n,`minItems`,e.exactLength.value,e.exactLength.message,t),tK(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function iK(e,t){let n={type:`integer`,format:`int64`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`min`:t.target===`jsonSchema7`?r.inclusive?tK(n,`minimum`,r.value,r.message,t):tK(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),tK(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?tK(n,`maximum`,r.value,r.message,t):tK(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),tK(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:tK(n,`multipleOf`,r.value,r.message,t);break}return n}function aK(){return{type:`boolean`}}function oK(e,t,n){return UK(e.type._def,t,n)}var sK=(e,t,n)=>UK(e.innerType._def,t,n);function cK(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>cK(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return lK(e,t)}}var lK=(e,t)=>{let n={type:`integer`,format:`unix-time`};if(t.target===`openApi3`)return n;for(let r of e.checks)switch(r.kind){case`min`:tK(n,`minimum`,r.value,r.message,t);break;case`max`:tK(n,`maximum`,r.value,r.message,t);break}return n};function uK(e,t,n){return{...UK(e.innerType._def,t,n),default:e.defaultValue()}}function dK(e,t,n){return t.effectStrategy===`input`?UK(e.schema._def,t,n):{}}function fK(e){return{type:`string`,enum:[...e.values]}}var pK=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function mK(e,t){let n=[UK(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),UK(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=t.target===`jsonSchema2019-09`?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(e=>{if(pK(e))i.push(...e.allOf),e.unevaluatedProperties===void 0&&(r=void 0);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}else r=void 0;i.push(t)}}),i.length?{allOf:i,...r}:void 0}function hK(e,t){let n=typeof e.value;return n!==`bigint`&&n!==`number`&&n!==`boolean`&&n!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:t.target===`openApi3`?{type:n===`bigint`?`integer`:n,enum:[e.value]}:{type:n===`bigint`?`integer`:n,const:e.value}}var gK,_K={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(gK===void 0&&(gK=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),gK),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/};function vK(e,t){let n={type:`string`};function r(e){return t.patternStrategy===`escape`?yK(e):e}if(e.checks)for(let i of e.checks)switch(i.kind){case`min`:tK(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,i.value):i.value,i.message,t);break;case`max`:tK(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,i.value):i.value,i.message,t);break;case`email`:switch(t.emailStrategy){case`format:email`:bK(n,`email`,i.message,t);break;case`format:idn-email`:bK(n,`idn-email`,i.message,t);break;case`pattern:zod`:xK(n,_K.email,i.message,t);break}break;case`url`:bK(n,`uri`,i.message,t);break;case`uuid`:bK(n,`uuid`,i.message,t);break;case`regex`:xK(n,i.regex,i.message,t);break;case`cuid`:xK(n,_K.cuid,i.message,t);break;case`cuid2`:xK(n,_K.cuid2,i.message,t);break;case`startsWith`:xK(n,RegExp(`^${r(i.value)}`),i.message,t);break;case`endsWith`:xK(n,RegExp(`${r(i.value)}$`),i.message,t);break;case`datetime`:bK(n,`date-time`,i.message,t);break;case`date`:bK(n,`date`,i.message,t);break;case`time`:bK(n,`time`,i.message,t);break;case`duration`:bK(n,`duration`,i.message,t);break;case`length`:tK(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,i.value):i.value,i.message,t),tK(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,i.value):i.value,i.message,t);break;case`includes`:xK(n,RegExp(r(i.value)),i.message,t);break;case`ip`:i.version!==`v6`&&bK(n,`ipv4`,i.message,t),i.version!==`v4`&&bK(n,`ipv6`,i.message,t);break;case`emoji`:xK(n,_K.emoji,i.message,t);break;case`ulid`:xK(n,_K.ulid,i.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:bK(n,`binary`,i.message,t);break;case`contentEncoding:base64`:tK(n,`contentEncoding`,`base64`,i.message,t);break;case`pattern:zod`:xK(n,_K.base64,i.message,t);break}break;case`nanoid`:xK(n,_K.nanoid,i.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}var yK=e=>Array.from(e).map(e=>/[a-zA-Z0-9]/.test(e)?e:`\\${e}`).join(``),bK=(e,t,n,r)=>{e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):tK(e,`format`,t,n,r)},xK=(e,t,n,r)=>{e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:SK(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):tK(e,`pattern`,SK(t,r),n,r)},SK=(e,t)=>{let n=typeof e==`function`?e():e;if(!t.applyRegexFlags||!n.flags)return n.source;let r={i:n.flags.includes(`i`),m:n.flags.includes(`m`),s:n.flags.includes(`s`)},i=r.i?n.source.toLowerCase():n.source,a=``,o=!1,s=!1,c=!1;for(let e=0;e<i.length;e++){if(o){a+=i[e],o=!1;continue}if(r.i){if(s){if(i[e].match(/[a-z]/)){c?(a+=i[e],a+=`${i[e-2]}-${i[e]}`.toUpperCase(),c=!1):i[e+1]===`-`&&i[e+2]?.match(/[a-z]/)?(a+=i[e],c=!0):a+=`${i[e]}${i[e].toUpperCase()}`;continue}}else if(i[e].match(/[a-z]/)){a+=`[${i[e]}${i[e].toUpperCase()}]`;continue}}if(r.m){if(i[e]===`^`){a+=`(^|(?<=[\r
|
|
211
|
+
]))`;continue}else if(i[e]===`$`){a+=`($|(?=[\r
|
|
212
|
+
]))`;continue}}if(r.s&&i[e]===`.`){a+=s?`${i[e]}\r\n`:`[${i[e]}\r\n]`;continue}a+=i[e],i[e]===`\\`?o=!0:s&&i[e]===`]`?s=!1:!s&&i[e]===`[`&&(s=!0)}try{new RegExp(a)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),n.source}return a};function CK(e,t){if(t.target===`openApi3`&&e.keyType?._def.typeName===H.ZodEnum)return{type:`object`,required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,r)=>({...n,[r]:UK(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??{}}),{}),additionalProperties:!1};let n={type:`object`,additionalProperties:UK(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??{}};if(t.target===`openApi3`)return n;if(e.keyType?._def.typeName===H.ZodString&&e.keyType._def.checks?.length){let r=Object.entries(vK(e.keyType._def,t)).reduce((e,[t,n])=>t===`type`?e:{...e,[t]:n},{});return{...n,propertyNames:r}}else if(e.keyType?._def.typeName===H.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};return n}function wK(e,t){return t.mapStrategy===`record`?CK(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[UK(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||{},UK(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||{}],minItems:2,maxItems:2}}}function TK(e){let t=e.values,n=Object.keys(e.values).filter(e=>typeof t[t[e]]!=`number`).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:r.length===1?r[0]===`string`?`string`:`number`:[`string`,`number`],enum:n}}function EK(){return{not:{}}}function DK(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}var OK={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function kK(e,t){if(t.target===`openApi3`)return AK(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in OK&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=OK[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}else if(n.every(e=>e._def.typeName===`ZodLiteral`&&!e.description)){let e=n.reduce((e,t)=>{let n=typeof t._def.value;switch(n){case`string`:case`number`:case`boolean`:return[...e,n];case`bigint`:return[...e,`integer`];case`object`:if(t._def.value===null)return[...e,`null`];default:return e}},[]);if(e.length===n.length){let t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>e._def.typeName===`ZodEnum`))return{type:`string`,enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return AK(e,t)}var AK=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>UK(e._def,{...t,currentPath:[...t.currentPath,`anyOf`,`${n}`]})).filter(e=>!!e&&(!t.strictUnions||typeof e==`object`&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0};function jK(e,t,n){if([`ZodString`,`ZodNumber`,`ZodBigInt`,`ZodBoolean`,`ZodNull`].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target===`openApi3`||t.nullableStrategy===`property`?{type:OK[e.innerType._def.typeName],nullable:!0}:{type:[OK[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let r=UK(e.innerType._def,{...t,currentPath:[...t.currentPath]},n);return r&&`$ref`in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let r=UK(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return r&&{anyOf:[r,{type:`null`}]}}function MK(e,t){let n={type:`number`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`int`:n.type=`integer`,eK(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?tK(n,`minimum`,r.value,r.message,t):tK(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),tK(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?tK(n,`maximum`,r.value,r.message,t):tK(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),tK(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:tK(n,`multipleOf`,r.value,r.message,t);break}return n}function NK(e,t){return t.removeAdditionalStrategy===`strict`?e.catchall._def.typeName===`ZodNever`?e.unknownKeys!==`strict`:UK(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??!0:e.catchall._def.typeName===`ZodNever`?e.unknownKeys===`passthrough`:UK(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??!0}function PK(e,t){let n={type:`object`,...Object.entries(e.shape()).reduce((e,[n,r])=>{if(r===void 0||r._def===void 0)return e;let i=[...t.currentPath,`properties`,n],a=UK(r._def,{...t,currentPath:i,propertyPath:i});if(a===void 0)return e;if(t.openaiStrictMode&&r.isOptional()&&!r.isNullable()&&r._def?.defaultValue===void 0)throw Error(`Zod field at \`${i.join(`/`)}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);return{properties:{...e.properties,[n]:a},required:r.isOptional()&&!t.openaiStrictMode?e.required:[...e.required,n]}},{properties:{},required:[]}),additionalProperties:NK(e,t)};return n.required.length||delete n.required,n}var FK=(e,t,n)=>{if(t.propertyPath&&t.currentPath.slice(0,t.propertyPath.length).toString()===t.propertyPath.toString())return UK(e.innerType._def,{...t,currentPath:t.currentPath},n);let r=UK(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]},n);return r?{anyOf:[{not:{}},r]}:{}},IK=(e,t,n)=>{if(t.pipeStrategy===`input`)return UK(e.in._def,t,n);if(t.pipeStrategy===`output`)return UK(e.out._def,t,n);let r=UK(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[r,UK(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,r?`1`:`0`]})].filter(e=>e!==void 0)}};function LK(e,t,n){return UK(e.type._def,t,n)}function RK(e,t){let n={type:`array`,uniqueItems:!0,items:UK(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&tK(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&tK(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function zK(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>UK(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:UK(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>UK(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function BK(){return{not:{}}}function VK(){return{}}var HK=(e,t,n)=>UK(e.innerType._def,t,n);function UK(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==JG)return i}if(r&&!n){let e=WK(r,t);if(e!==void 0)return`$ref`in e&&t.seenRefs.add(e.$ref),e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);try{let r=JK(e,e.typeName,t,n);return r&&YK(e,t,r),i.jsonSchema=r,r}finally{n&&r&&t.seen.set(e,r)}}var WK=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`extract-to-root`:let n=e.path.slice(t.basePath.length+1).map((e,t)=>t===0?e:KK(e)).join(`_`);return n!==t.name&&t.nameStrategy===`duplicate-ref`&&(t.definitions[n]=e.def),{$ref:[...t.basePath,t.definitionPath,n].join(`/`)};case`relative`:return{$ref:qK(t.currentPath,e.path)};case`none`:case`seen`:return e.path.length<t.currentPath.length&&e.path.every((e,n)=>t.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join(`/`)}! Defaulting to any`),{}):t.$refStrategy===`seen`?{}:void 0}},GK=`_x_`,KK=e=>{if(/^[A-Za-z0-9_-]*$/.test(e)&&!e.startsWith(GK))return e;let t=GK;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n).toString(16).padStart(4,`0`);return t},qK=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)},JK=(e,t,n,r)=>{switch(t){case H.ZodString:return vK(e,n);case H.ZodNumber:return MK(e,n);case H.ZodObject:return PK(e,n);case H.ZodBigInt:return iK(e,n);case H.ZodBoolean:return aK();case H.ZodDate:return cK(e,n);case H.ZodUndefined:return BK();case H.ZodNull:return DK(n);case H.ZodArray:return rK(e,n);case H.ZodUnion:case H.ZodDiscriminatedUnion:return kK(e,n);case H.ZodIntersection:return mK(e,n);case H.ZodTuple:return zK(e,n);case H.ZodRecord:return CK(e,n);case H.ZodLiteral:return hK(e,n);case H.ZodEnum:return fK(e);case H.ZodNativeEnum:return TK(e);case H.ZodNullable:return jK(e,n,r);case H.ZodOptional:return FK(e,n,r);case H.ZodMap:return wK(e,n);case H.ZodSet:return RK(e,n);case H.ZodLazy:return UK(e.getter()._def,n,r);case H.ZodPromise:return LK(e,n,r);case H.ZodNaN:case H.ZodNever:return EK();case H.ZodEffects:return dK(e,n,r);case H.ZodAny:return nK();case H.ZodUnknown:return VK();case H.ZodDefault:return uK(e,n,r);case H.ZodBranded:return oK(e,n,r);case H.ZodReadonly:return HK(e,n,r);case H.ZodCatch:return sK(e,n,r);case H.ZodPipeline:return IK(e,n,r);case H.ZodFunction:case H.ZodVoid:case H.ZodSymbol:return;default:return(e=>void 0)(t)}},YK=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),XK=(e,t)=>{let n=$G(t),r=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,i=UK(e._def,r===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,r]},!1)??{},a=typeof t==`object`&&t.name!==void 0&&t.nameStrategy===`title`?t.name:void 0;a!==void 0&&(i.title=a);let o=(()=>{if(QG(n.definitions))return;let e={},t=new Set;for(let r=0;r<500;r++){let r=Object.entries(n.definitions).filter(([e])=>!t.has(e));if(r.length===0)break;for(let[i,a]of r)e[i]=UK(ZG(a),{...n,currentPath:[...n.basePath,n.definitionPath,i]},!0)??{},t.add(i)}return e})(),s=r===void 0?o?{...i,[n.definitionPath]:o}:i:n.nameStrategy===`duplicate-ref`?{...i,...o||n.seenRefs.size?{[n.definitionPath]:{...o,...n.seenRefs.size?{[r]:i}:void 0}}:void 0}:{$ref:[...n.$refStrategy===`relative`?[]:n.basePath,n.definitionPath,r].join(`/`),[n.definitionPath]:{...o,[r]:i}};return n.target===`jsonSchema7`?s.$schema=`http://json-schema.org/draft-07/schema#`:n.target===`jsonSchema2019-09`&&(s.$schema=`https://json-schema.org/draft/2019-09/schema#`),s};function ZK(e){if(e.type!==`object`)throw Error(`Root schema must have type: 'object' but got type: ${e.type?`'${e.type}'`:`undefined`}`);let t=structuredClone(e);return $K(t,[],t)}function QK(e){if(typeof e==`boolean`)return!1;if(e.type===`null`)return!0;for(let t of e.oneOf??[])if(QK(t))return!0;for(let t of e.anyOf??[])if(QK(t))return!0;return!1}function $K(e,t,n){if(typeof e==`boolean`)throw TypeError(`Expected object schema but got boolean; path=${t.join(`/`)}`);if(!tq(e))throw TypeError(`Expected ${JSON.stringify(e)} to be an object; path=${t.join(`/`)}`);let r=e.$defs;if(tq(r))for(let[e,i]of Object.entries(r))$K(i,[...t,`$defs`,e],n);let i=e.definitions;if(tq(i))for(let[e,r]of Object.entries(i))$K(r,[...t,`definitions`,e],n);e.type===`object`&&!(`additionalProperties`in e)&&(e.additionalProperties=!1);let a=e.required??[],o=e.properties;if(tq(o)){for(let[e,n]of Object.entries(o))if(!QK(n)&&!a.includes(e))throw Error(`Zod field at \`${[...t,`properties`,e].join(`/`)}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);e.required=Object.keys(o),e.properties=Object.fromEntries(Object.entries(o).map(([e,r])=>[e,$K(r,[...t,`properties`,e],n)]))}let s=e.items;tq(s)&&(e.items=$K(s,[...t,`items`],n));let c=e.anyOf;Array.isArray(c)&&(e.anyOf=c.map((e,r)=>$K(e,[...t,`anyOf`,String(r)],n)));let l=e.allOf;if(Array.isArray(l))if(l.length===1){let r=$K(l[0],[...t,`allOf`,`0`],n);Object.assign(e,r),delete e.allOf}else e.allOf=l.map((e,r)=>$K(e,[...t,`allOf`,String(r)],n));e.default===null&&delete e.default;let u=e.$ref;if(u&&nq(e,1)){if(typeof u!=`string`)throw TypeError(`Received non-string $ref - ${u}; path=${t.join(`/`)}`);let r=eq(n,u);if(typeof r==`boolean`)throw Error(`Expected \`$ref: ${u}\` to resolve to an object schema but got boolean`);if(!tq(r))throw Error(`Expected \`$ref: ${u}\` to resolve to an object but got ${JSON.stringify(r)}`);return Object.assign(e,{...r,...e}),delete e.$ref,$K(e,t,n)}return e}function eq(e,t){if(!t.startsWith(`#/`))throw Error(`Unexpected $ref format ${JSON.stringify(t)}; Does not start with #/`);let n=t.slice(2).split(`/`),r=e;for(let e of n){if(!tq(r))throw Error(`encountered non-object entry while resolving ${t} - ${JSON.stringify(r)}`);let n=r[e];if(n===void 0)throw Error(`Key ${e} not found while resolving ${t}`);r=n}return r}function tq(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nq(e,t){let n=0;for(let r in e)if(n++,n>t)return!0;return!1}function rq(e,t){return XK(e,{openaiStrictMode:!0,name:t.name,nameStrategy:`duplicate-ref`,$refStrategy:`extract-to-root`,nullableStrategy:`property`})}function iq(e){return ZK(n_(e,{target:`draft-7`,override:({zodSchema:e,jsonSchema:t})=>{let n=e._zod.def;if(n.type===`union`&&`discriminator`in n&&Array.isArray(t.oneOf)){if(t.anyOf!==void 0)throw Error("Zod discriminated union generated both `anyOf` and `oneOf`, which cannot be represented in an OpenAI strict schema");t.anyOf=t.oneOf,delete t.oneOf}}}))}function aq(e){return`_zod`in e}function oq(e,t,n){return dV({type:`json_schema`,json_schema:{...n,name:t,strict:!0,schema:aq(e)?iq(e):rq(e,{name:t})}},t=>e.parse(JSON.parse(t)))}var sq=[`jsonSchema`,`functionCalling`,`jsonMode`];function cq(e,t){if(t!==void 0&&!sq.includes(t))throw Error(`Invalid method: ${t}. Supported methods are: ${sq.join(`, `)}`);let n=!e.startsWith(`gpt-3`)&&!e.startsWith(`gpt-4-`)&&e!==`gpt-4`;if(n&&!t)return`jsonSchema`;if(!n&&t===`jsonSchema`)throw Error(`JSON Schema is not supported for model "${e}". Please use a different method, e.g. "functionCalling" or "jsonMode".`);return t??`functionCalling`}function lq(e,t){let n={...e};return Object.defineProperties(n,{$brand:{value:`auto-parseable-response-format`,enumerable:!1},$parseRaw:{value:t,enumerable:!1}}),n}function uq(e,t,n){if(i_(e))return oq(e,t,n);if(r_(e))return lq({type:`json_schema`,json_schema:{...n,name:t,strict:!0,schema:ux(e,{cycles:`ref`,reused:`ref`,override(e){e.jsonSchema.title=t}})}},t=>Ef(e,JSON.parse(t)));throw Error(`Unsupported schema response format`)}function dq(e,t){if(t&&typeof t==`object`&&`images`in t&&Array.isArray(t.images)){let n=t.images.filter(e=>typeof e?.image_url?.url==`string`).map(e=>({type:`image`,url:e.image_url.url}));return[{type:`text`,text:e},...n]}return e}var fq={"gpt-4o-2024-11-20":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.3-codex":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-codex":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-pro":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:272e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-mini":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-ada-002":{maxInputTokens:8192,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1536,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-chat-latest":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"codex-mini-latest":{maxInputTokens:2e5,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-codex-max":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-2024-05-13":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-chat-latest":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-codex":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-deep-research":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},o1:{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o4-mini-deep-research":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.3-codex-spark":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},o3:{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-3-small":{maxInputTokens:8191,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1536,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1-nano":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-3-large":{maxInputTokens:8191,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:3072,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-3.5-turbo":{maxInputTokens:16385,imageInputs:!1,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!1,imageUrlInputs:!1,pdfToolMessage:!1,imageToolMessage:!1,toolChoice:!0},"gpt-5.1-codex-mini":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-pro":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4-turbo":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o4-mini":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1-mini":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.4":{maxInputTokens:105e4,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-preview":{maxInputTokens:128e3,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.4-pro":{maxInputTokens:105e4,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.5":{maxInputTokens:105e4,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:13e4,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.5-pro":{maxInputTokens:105e4,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-pro":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-codex":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-pro":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-mini":{maxInputTokens:2e5,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-2024-08-06":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-mini":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-chat-latest":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4":{maxInputTokens:8192,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-nano":{maxInputTokens:4e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-mini":{maxInputTokens:128e3,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0}};function pq(e,t){return typeof e==`string`?{model:e,...t??{}}:e??t}var mq=class extends AE{temperature;topP;frequencyPenalty;presencePenalty;n;logitBias;model=`gpt-3.5-turbo`;modelKwargs;stop;stopSequences;user;timeout;streaming=!1;streamUsage=!0;maxTokens;logprobs;topLogprobs;apiKey;organization;__includeRawResponse;client;clientConfig;supportsStrictToolCalling;audio;modalities;reasoning;zdrEnabled;service_tier;promptCacheKey;promptCacheRetention;verbosity;defaultOptions;_llmType(){return`openai`}static lc_name(){return`ChatOpenAI`}get callKeys(){return[...super.callKeys,`options`,`function_call`,`functions`,`tools`,`tool_choice`,`promptIndex`,`response_format`,`seed`,`reasoning`,`reasoning_effort`,`service_tier`]}lc_serializable=!0;get lc_secrets(){return{apiKey:`OPENAI_API_KEY`,organization:`OPENAI_ORGANIZATION`}}get lc_aliases(){return{apiKey:`openai_api_key`,modelName:`model`}}get lc_serializable_keys(){return`configuration.logprobs.topLogprobs.prefixMessages.supportsStrictToolCalling.modalities.audio.temperature.maxTokens.topP.frequencyPenalty.presencePenalty.n.logitBias.user.streaming.streamUsage.model.modelName.modelKwargs.stop.stopSequences.timeout.apiKey.cache.maxConcurrency.maxRetries.verbose.callbacks.tags.metadata.disableStreaming.zdrEnabled.reasoning.promptCacheKey.promptCacheRetention.verbosity`.split(`.`)}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:`openai`,ls_model_name:this.model,ls_model_type:`chat`,ls_temperature:t.temperature??void 0,ls_max_tokens:t.max_tokens??void 0,ls_stop:e.stop}}_identifyingParams(){return{model_name:this.model,...this.invocationParams(),...this.clientConfig}}identifyingParams(){return this._identifyingParams()}constructor(e){super(e??{});let t=typeof e?.configuration?.apiKey==`string`||typeof e?.configuration?.apiKey==`function`?e?.configuration?.apiKey:void 0;this.apiKey=e?.apiKey??t??Vr(`OPENAI_API_KEY`),this.organization=e?.configuration?.organization??Vr(`OPENAI_ORGANIZATION`),this.model=e?.model??e?.modelName??this.model,this.modelKwargs=e?.modelKwargs??{},this.timeout=e?.timeout,this.temperature=e?.temperature??this.temperature,this.topP=e?.topP??this.topP,this.frequencyPenalty=e?.frequencyPenalty??this.frequencyPenalty,this.presencePenalty=e?.presencePenalty??this.presencePenalty,this.logprobs=e?.logprobs,this.topLogprobs=e?.topLogprobs,this.n=e?.n??this.n,this.logitBias=e?.logitBias,this.stop=e?.stopSequences??e?.stop,this.stopSequences=this.stop,this.user=e?.user,this.__includeRawResponse=e?.__includeRawResponse,this.audio=e?.audio,this.modalities=e?.modalities,this.reasoning=e?.reasoning,this.maxTokens=e?.maxCompletionTokens??e?.maxTokens,this.promptCacheKey=e?.promptCacheKey??this.promptCacheKey,this.promptCacheRetention=e?.promptCacheRetention??this.promptCacheRetention,this.verbosity=e?.verbosity??this.verbosity,this.disableStreaming=e?.disableStreaming===!0,this.streaming=e?.streaming===!0,this.disableStreaming&&(this.streaming=!1),e?.streaming===!1&&(this.disableStreaming=!0),this.streamUsage=e?.streamUsage??this.streamUsage,this.disableStreaming&&(this.streamUsage=!1),this.clientConfig={apiKey:this.apiKey,organization:this.organization,dangerouslyAllowBrowser:!0,...e?.configuration},e?.supportsStrictToolCalling!==void 0&&(this.supportsStrictToolCalling=e.supportsStrictToolCalling),e?.service_tier!==void 0&&(this.service_tier=e.service_tier),this.zdrEnabled=e?.zdrEnabled??!1,this._addVersion(`@langchain/openai`,`1.5.3`)}_getReasoningParams(e){if(!yG(this.model))return;let t;return this.reasoning!==void 0&&(t={...t,...this.reasoning}),e?.reasoning!==void 0&&(t={...t,...e.reasoning}),e?.reasoningEffort!==void 0&&t?.effort===void 0&&(t={...t,effort:e.reasoningEffort}),t}_getResponseFormat(e){return e&&e.type===`json_schema`&&e.json_schema.schema&&o_(e.json_schema.schema)?uq(e.json_schema.schema,e.json_schema.name,{description:e.json_schema.description}):e}_combineCallOptions(e){return{...this.defaultOptions,...e??{}}}_getClientOptions(e){if(!this.client){let e=EG({baseURL:this.clientConfig.baseURL}),t={...this.clientConfig,baseURL:e,timeout:this.timeout,maxRetries:0};t.baseURL||delete t.baseURL,t.defaultHeaders=AG(t.defaultHeaders),this.client=new $(t)}return{...this.clientConfig,...e}}_convertChatOpenAIToolToCompletionsTool(e,t){return BG(e)?qG(e.metadata.customTool):hT(e)?t?.strict===void 0?e:{...e,function:{...e.function,strict:t.strict}}:jG(e,t)}bindTools(e,t){let n;return t?.strict===void 0?this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling):n=t.strict,this.withConfig({tools:e.map(e=>{if(LG(e)||BG(e))return e;if(RG(e))return e.extras.providerToolDefinition;let t=this._convertChatOpenAIToolToCompletionsTool(e,{strict:n});return Ek(e)&&e.extras?.defer_loading===!0?{...t,defer_loading:!0}:t}),...t})}async stream(e,t){return super.stream(e,this._combineCallOptions(t))}async invoke(e,t){return super.invoke(e,this._combineCallOptions(t))}_combineLLMOutput(...e){return e.reduce((e,t)=>(t&&t.tokenUsage&&(e.tokenUsage.completionTokens+=t.tokenUsage.completionTokens??0,e.tokenUsage.promptTokens+=t.tokenUsage.promptTokens??0,e.tokenUsage.totalTokens+=t.tokenUsage.totalTokens??0),e),{tokenUsage:{completionTokens:0,promptTokens:0,totalTokens:0}})}async getNumTokensFromMessages(e){let t=0,n=0,r=0;this.model===`gpt-3.5-turbo-0301`?(n=4,r=-1):(n=3,r=1);let i=await Promise.all(e.map(async e=>{let[i,a]=await Promise.all([this.getNumTokens(e.content),this.getNumTokens(wG(e))]),o=e.name===void 0?0:r+await this.getNumTokens(e.name),s=i+n+a+o,c=e;if(c._getType()===`function`&&(s-=2),c.additional_kwargs?.function_call&&(s+=3),c?.additional_kwargs.function_call?.name&&(s+=await this.getNumTokens(c.additional_kwargs.function_call?.name)),c.additional_kwargs.function_call?.arguments)try{s+=await this.getNumTokens(JSON.stringify(JSON.parse(c.additional_kwargs.function_call?.arguments)))}catch(e){console.error(`Error parsing function arguments`,e,JSON.stringify(c.additional_kwargs.function_call)),s+=await this.getNumTokens(c.additional_kwargs.function_call?.arguments)}return t+=s,s}));return t+=3,{totalCount:t,countPerMessage:i}}async _getNumTokensFromGenerations(e){return(await Promise.all(e.map(async e=>e.message.additional_kwargs?.function_call?(await this.getNumTokensFromMessages([e.message])).countPerMessage[0]:await this.getNumTokens(e.message.content)))).reduce((e,t)=>e+t,0)}async _getEstimatedTokenCountFromPrompt(e,t,n){let r=(await this.getNumTokensFromMessages(e)).totalCount;if(t&&n!==`auto`){let e=NG(t);r+=await this.getNumTokens(e),r+=9}return t&&e.find(e=>e._getType()===`system`)&&(r-=4),n===`none`?r+=1:typeof n==`object`&&(r+=await this.getNumTokens(n.name)+4),r}async moderateContent(e,t){let n=this._getClientOptions(t?.options),r={input:e,model:t?.model??`omni-moderation-latest`};return this.caller.call(async()=>{try{return await this.client.moderations.create(r,n)}catch(e){throw _G(e)}})}get profile(){return fq[this.model]??{}}_getStructuredOutputMethod(e){let t={...e};if(!this.model.startsWith(`gpt-3`)&&!this.model.startsWith(`gpt-4-`)&&this.model!==`gpt-4`){if(t?.method===void 0)return`jsonSchema`}else t.method===`jsonSchema`&&console.warn(`[WARNING]: JSON Schema is not supported for model "${this.model}". Falling back to tool calling.`);return t.method}withStructuredOutput(e,t){let n,r,{schema:i,name:a,includeRaw:o}={...t,schema:e};if(t?.strict!==void 0&&t.method===`jsonMode`)throw Error("Argument `strict` is only supported for `method` = 'function_calling'");let s=cq(this.model,t?.method);if(s===`jsonMode`){r=QT(i);let e=ux(i);n=this.withConfig({outputVersion:`v0`,response_format:{type:`json_object`},ls_structured_output_format:{kwargs:{method:`json_mode`},schema:{title:a??`extract`,...e}}})}else if(s===`jsonSchema`){let e=ux(i),o={name:a??`extract`,description:m_(e),schema:o_(i)?i:e,strict:t?.strict};if(n=this.withConfig({outputVersion:`v0`,response_format:{type:`json_schema`,json_schema:o},ls_structured_output_format:{kwargs:{method:`json_schema`},schema:{title:o.name,description:o.description,...e}}}),o_(i)||Cb(i)){let e=QT(i);r=Fx.from(async t=>`parsed`in t.additional_kwargs?t.additional_kwargs.parsed:e.invoke(t.content))}else r=new NT}else{let e=a??`extract`,o=ux(i),s;o_(i)||Cb(i)?s={name:e,description:o.description,parameters:o}:typeof i.name==`string`&&typeof i.parameters==`object`&&i.parameters!=null?(s=i,e=i.name):(e=i.title??e,s={name:e,description:i.description??``,parameters:i}),n=this.withConfig({outputVersion:`v0`,tools:[{type:`function`,function:s}],tool_choice:{type:`function`,function:{name:e}},ls_structured_output_format:{kwargs:{method:`function_calling`},schema:{title:e,...o}},...t?.strict===void 0?{}:{strict:t.strict}}),r=$T(i,e)}return eE(n,r,o)}},hq={providerName:`ChatOpenAI`,fromStandardTextBlock(e){return{type:`text`,text:e.text}},fromStandardImageBlock(e){if(e.source_type===`url`)return{type:`image_url`,image_url:{url:e.url,...e.metadata?.detail?{detail:e.metadata.detail}:{}}};if(e.source_type===`base64`)return{type:`image_url`,image_url:{url:`data:${e.mime_type??``};base64,${e.data}`,...e.metadata?.detail?{detail:e.metadata.detail}:{}}};throw Error(`Image content blocks with source_type ${e.source_type} are not supported for ChatOpenAI`)},fromStandardAudioBlock(e){if(e.source_type===`url`){let t=Me({dataUrl:e.url});if(!t)throw Error(`URL audio blocks with source_type ${e.source_type} must be formatted as a data URL for ChatOpenAI`);let n=t.mime_type||e.mime_type||``,r;try{r=je(n)}catch{throw Error(`Audio blocks with source_type ${e.source_type} must have mime type of audio/wav or audio/mp3`)}if(r.type!==`audio`||r.subtype!==`wav`&&r.subtype!==`mp3`)throw Error(`Audio blocks with source_type ${e.source_type} must have mime type of audio/wav or audio/mp3`);return{type:`input_audio`,input_audio:{format:r.subtype,data:t.data}}}if(e.source_type===`base64`){let t;try{t=je(e.mime_type??``)}catch{throw Error(`Audio blocks with source_type ${e.source_type} must have mime type of audio/wav or audio/mp3`)}if(t.type!==`audio`||t.subtype!==`wav`&&t.subtype!==`mp3`)throw Error(`Audio blocks with source_type ${e.source_type} must have mime type of audio/wav or audio/mp3`);return{type:`input_audio`,input_audio:{format:t.subtype,data:e.data}}}throw Error(`Audio content blocks with source_type ${e.source_type} are not supported for ChatOpenAI`)},fromStandardFileBlock(e){if(e.source_type===`url`){let t=Me({dataUrl:e.url}),n=CG(e);if(!t)throw Error(`URL file blocks with source_type ${e.source_type} must be formatted as a data URL for ChatOpenAI`);return{type:`file`,file:{file_data:e.url,filename:n}}}if(e.source_type===`base64`){let t=CG(e);return{type:`file`,file:{file_data:`data:${e.mime_type??``};base64,${e.data}`,filename:t}}}if(e.source_type===`id`)return{type:`file`,file:{file_id:e.id}};throw Error(`File content blocks with source_type ${e.source_type} are not supported for ChatOpenAI`)}},gq=({message:e,rawResponse:t,includeRawResponse:n})=>{let r=e.tool_calls,i=e.reasoning_content;switch(e.role){case`assistant`:{let a=[],o=[];for(let e of r??[])try{a.push(KT(e,{returnId:!0}))}catch(t){o.push(JT(e,t.message))}let s={function_call:e.function_call,tool_calls:r};n!==void 0&&(s.__raw_response=t),i!==void 0&&(s.reasoning_content=i);let c={model_provider:`openai`,model_name:t.model,...t.system_fingerprint?{usage:{...t.usage},system_fingerprint:t.system_fingerprint}:{}};return e.audio&&(s.audio=e.audio),new k({content:dq(e.content||``,t.choices?.[0]?.message),tool_calls:a,invalid_tool_calls:o,additional_kwargs:s,response_metadata:c,id:t.id})}default:return new dn(e.content||``,e.role??`unknown`)}},_q=({delta:e,rawResponse:t,includeRawResponse:n,defaultRole:r})=>{let i=e.role??r,a=e.content??``,o;o=e.function_call?{function_call:e.function_call}:e.tool_calls?{tool_calls:e.tool_calls}:{},n&&(o.__raw_response=t),e.reasoning_content!==void 0&&(o.reasoning_content=e.reasoning_content),e.audio&&(o.audio={...e.audio,index:t.choices[0].index});let s={model_provider:`openai`,usage:{...t.usage}};if(i===`user`)return new bn({content:a,response_metadata:s});if(i===`assistant`){let n=[];if(Array.isArray(e.tool_calls))for(let t of e.tool_calls)n.push({name:t.function?.name,args:t.function?.arguments,id:t.id,index:t.index,type:`tool_call_chunk`});return new un({content:a,tool_call_chunks:n,additional_kwargs:o,id:t.id,response_metadata:s})}else if(i===`system`)return new Tn({content:a,response_metadata:s});else if(i===`developer`)return new Tn({content:a,response_metadata:s,additional_kwargs:{__openai_role__:`developer`}});else if(i===`function`)return new gn({content:a,additional_kwargs:o,name:e.name,response_metadata:s});else if(i===`tool`)return new kt({content:a,additional_kwargs:o,tool_call_id:e.tool_call_id,response_metadata:s});else return new fn({content:a,role:i,response_metadata:s})},vq=e=>{if(e.type===`image`){if(e.url)return{type:`image_url`,image_url:{url:e.url}};if(e.data)return{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}}if(e.type===`audio`&&e.data){let t=kn(()=>{let[,t]=e.mimeType.split(`/`);return t===`wav`||t===`mp3`?t:`wav`});return{type:`input_audio`,input_audio:{data:e.data.toString(),format:t}}}if(e.type===`file`){if(e.data){let t=CG(e);return{type:`file`,file:{file_data:`data:${e.mimeType};base64,${e.data}`,filename:t}}}if(e.fileId)return{type:`file`,file:{file_id:e.fileId}}}},yq=({message:e,model:t})=>{let n=wG(e);if(n===`system`&&yG(t)&&(n=`developer`),n===`developer`)return{role:`developer`,content:e.contentBlocks.filter(e=>e.type===`text`)};if(n===`system`)return{role:`system`,content:e.contentBlocks.filter(e=>e.type===`text`)};if(n===`assistant`){let t={role:`assistant`,content:e.contentBlocks.filter(e=>e.type===`text`)};return k.isInstance(e)&&e.tool_calls?.length?t.tool_calls=e.tool_calls.map(qT):e.additional_kwargs.tool_calls!=null&&(t.tool_calls=e.additional_kwargs.tool_calls),t}else if(n===`tool`&&Ot.isInstance(e))return{role:`tool`,tool_call_id:e.tool_call_id,content:e.contentBlocks.filter(e=>e.type===`text`)};else if(n===`function`)return{role:`function`,name:e.name??``,content:e.contentBlocks.filter(e=>e.type===`text`).join(``)};function*r(e){for(let t of e){t.type===`text`&&(yield{type:`text`,text:t.text});let e=vq(t);e&&(yield e)}}return{role:`user`,content:Array.from(r(e.contentBlocks))}},bq=({messages:e,model:t})=>e.flatMap(e=>{if(`output_version`in e.response_metadata&&e.response_metadata?.output_version===`v1`)return yq({message:e});let n=wG(e);n===`system`&&yG(t)&&(n=`developer`);let r=typeof e.content==`string`?e.content:e.content.flatMap(e=>Ee(e)?Ne(e,hq):typeof e==`object`&&e&&`type`in e&&e.type===`tool_use`?[]:e),i={role:n,content:r};return e.name!=null&&(i.name=e.name),e.additional_kwargs.function_call!=null&&(i.function_call=e.additional_kwargs.function_call),k.isInstance(e)&&e.tool_calls?.length?i.tool_calls=e.tool_calls.map(qT):(e.additional_kwargs.tool_calls!=null&&(i.tool_calls=e.additional_kwargs.tool_calls),Ot.isInstance(e)&&e.tool_call_id!=null&&(i.tool_call_id=e.tool_call_id)),e.additional_kwargs.audio&&typeof e.additional_kwargs.audio==`object`&&`id`in e.additional_kwargs.audio?[i,{role:`assistant`,audio:{id:e.additional_kwargs.audio.id}}]:i}),xq=class extends mq{constructor(e,t){super(pq(e,t))}invocationParams(e,t){let n;e?.strict===void 0?this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling):n=e.strict,!(this.streaming||t?.streaming)&&e?.response_format?.type===`json_schema`&&n!==!1&&(n=!0);let r={};e?.stream_options===void 0?this.streamUsage&&(this.streaming||t?.streaming)&&(r={stream_options:{include_usage:!0}}):r={stream_options:e.stream_options};let i={model:this.model,temperature:this.temperature,top_p:this.topP,frequency_penalty:this.frequencyPenalty,presence_penalty:this.presencePenalty,logprobs:this.logprobs,top_logprobs:this.topLogprobs,n:this.n,logit_bias:this.logitBias,stop:e?.stop??this.stopSequences,user:this.user,stream:this.streaming,functions:e?.functions,function_call:e?.function_call,tools:e?.tools?.length?e.tools.map(e=>this._convertChatOpenAIToolToCompletionsTool(e,{strict:n})):void 0,tool_choice:IG(e?.tool_choice),response_format:this._getResponseFormat(e?.response_format),seed:e?.seed,...r,parallel_tool_calls:e?.parallel_tool_calls,...this.audio||e?.audio?{audio:this.audio||e?.audio}:{},...this.modalities||e?.modalities?{modalities:this.modalities||e?.modalities}:{},...this.modelKwargs,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,prompt_cache_retention:e?.promptCacheRetention??this.promptCacheRetention,verbosity:e?.verbosity??this.verbosity};e?.prediction!==void 0&&(i.prediction=e.prediction),this.service_tier!==void 0&&(i.service_tier=this.service_tier),e?.service_tier!==void 0&&(i.service_tier=e.service_tier);let a=this._getReasoningParams(e);return a!==void 0&&a.effort!==void 0&&(i.reasoning_effort=a.effort),yG(i.model)?i.max_completion_tokens=this.maxTokens===-1?void 0:this.maxTokens:i.max_tokens=this.maxTokens===-1?void 0:this.maxTokens,i}async _generate(e,t,n){t.signal?.throwIfAborted();let r={},i=this.invocationParams(t),a=bq({messages:e,model:this.model});if(i.stream){let i=this._streamResponseChunks(e,t,n),a={};for await(let e of i){e.message.response_metadata={...e.generationInfo,...e.message.response_metadata};let t=e.generationInfo?.completion??0;a[t]===void 0?a[t]=e:a[t]=a[t].concat(e)}let o=Object.entries(a).sort(([e],[t])=>parseInt(e,10)-parseInt(t,10)).map(([e,t])=>t),{functions:s,function_call:c}=this.invocationParams(t),l=await this._getEstimatedTokenCountFromPrompt(e,s,c),u=await this._getNumTokensFromGenerations(o);return r.input_tokens=l,r.output_tokens=u,r.total_tokens=l+u,{generations:o,llmOutput:{estimatedTokenUsage:{promptTokens:r.input_tokens,completionTokens:r.output_tokens,totalTokens:r.total_tokens}}}}else{let e=await this.completionWithRetry({...i,stream:!1,messages:a},{signal:t?.signal,...t?.options}),{completion_tokens:n,prompt_tokens:o,total_tokens:s,prompt_tokens_details:c,completion_tokens_details:l}=e?.usage??{};n&&(r.output_tokens=(r.output_tokens??0)+n),o&&(r.input_tokens=(r.input_tokens??0)+o),s&&(r.total_tokens=(r.total_tokens??0)+s),(c?.audio_tokens!==null||c?.cached_tokens!==null)&&(r.input_token_details={...c?.audio_tokens!==null&&{audio:c?.audio_tokens},...c?.cached_tokens!==null&&{cache_read:c?.cached_tokens}}),(l?.audio_tokens!==null||l?.reasoning_tokens!==null)&&(r.output_token_details={...l?.audio_tokens!==null&&{audio:l?.audio_tokens},...l?.reasoning_tokens!==null&&{reasoning:l?.reasoning_tokens}});let u=[];for(let t of e?.choices??[]){let n={text:t.message?.content??``,message:this._convertCompletionsMessageToBaseMessage(t.message??{role:`assistant`},e)};n.generationInfo={...t.finish_reason?{finish_reason:t.finish_reason}:{},...t.logprobs?{logprobs:t.logprobs}:{}},cn(n.message)&&(n.message.usage_metadata=r),n.message=new k(Object.fromEntries(Object.entries(n.message).filter(([e])=>!e.startsWith(`lc_`)))),u.push(n)}return{generations:u,llmOutput:{tokenUsage:{promptTokens:r.input_tokens,completionTokens:r.output_tokens,totalTokens:r.total_tokens}}}}}async*_streamChatModelEvents(e,t,n){let r=bq({messages:e,model:this.model}),i={...this.invocationParams(t,{streaming:!0}),messages:r,stream:!0},a=await this.completionWithRetry(i,t),o=this.streamUsage??t.streamUsage;yield*NE(async function*(e,t){for await(let n of e){if(t?.aborted)return;yield n}}(a,t.signal),{streamUsage:o??!0,provider:this.streamEventProvider})}get streamEventProvider(){return`openai`}async*_streamResponseChunks(e,t,n){let r=bq({messages:e,model:this.model}),i={...this.invocationParams(t,{streaming:!0}),messages:r,stream:!0},a,o=await this.completionWithRetry(i,t),s;for await(let e of o){if(t.signal?.aborted)return;let r=e?.choices?.[0];if(e.usage&&(s=e.usage),!r)continue;let{delta:i}=r;if(!i)continue;let o=this._convertCompletionsDeltaToBaseMessageChunk(i,e,a);a=i.role??a;let c={prompt:t.promptIndex??0,completion:r.index??0};if(typeof o.content!=`string`){console.log(`[WARNING]: Received non-string content from OpenAI. This is currently not supported.`);continue}let l={...c};r.finish_reason!=null&&(l.finish_reason=r.finish_reason,l.system_fingerprint=e.system_fingerprint,l.model_name=e.model,l.service_tier=e.service_tier),this.logprobs&&(l.logprobs=r.logprobs);let u=new Ju({message:o,text:o.content,generationInfo:l});yield u,await n?.handleLLMNewToken(u.text??``,c,void 0,void 0,void 0,{chunk:u})}if(s){let e={...s.prompt_tokens_details?.audio_tokens!==null&&{audio:s.prompt_tokens_details?.audio_tokens},...s.prompt_tokens_details?.cached_tokens!==null&&{cache_read:s.prompt_tokens_details?.cached_tokens}},t={...s.completion_tokens_details?.audio_tokens!==null&&{audio:s.completion_tokens_details?.audio_tokens},...s.completion_tokens_details?.reasoning_tokens!==null&&{reasoning:s.completion_tokens_details?.reasoning_tokens}},r=new Ju({message:new un({content:``,response_metadata:{usage:{...s}},usage_metadata:{input_tokens:s.prompt_tokens,output_tokens:s.completion_tokens,total_tokens:s.total_tokens,...Object.keys(e).length>0&&{input_token_details:e},...Object.keys(t).length>0&&{output_token_details:t}}}),text:``});yield r,await n?.handleLLMNewToken(r.text??``,{prompt:0,completion:0},void 0,void 0,void 0,{chunk:r})}if(t.signal?.aborted)throw Error(`AbortError`)}async completionWithRetry(e,t){let n=this._getClientOptions(t),r=e.response_format&&e.response_format.type===`json_schema`;return this.caller.call(async()=>{try{return r&&!e.stream?await this.client.chat.completions.parse(e,n):await this.client.chat.completions.create(e,n)}catch(e){throw _G(e)}})}_convertCompletionsDeltaToBaseMessageChunk(e,t,n){return _q({delta:e,rawResponse:t,includeRawResponse:this.__includeRawResponse,defaultRole:n})}_convertCompletionsMessageToBaseMessage(e,t){return gq({message:e,rawResponse:t,includeRawResponse:this.__includeRawResponse})}},Sq={openAIApiKey:`openai_api_key`,openAIApiVersion:`openai_api_version`,openAIBasePath:`openai_api_base`,deploymentName:`deployment_name`,azureOpenAIEndpoint:`azure_endpoint`,azureOpenAIApiVersion:`openai_api_version`,azureOpenAIBasePath:`openai_api_base`,azureOpenAIApiDeploymentName:`deployment_name`},Cq={azureOpenAIApiKey:`AZURE_OPENAI_API_KEY`},wq=[`azureOpenAIApiKey`,`azureOpenAIApiVersion`,`azureOpenAIBasePath`,`azureOpenAIEndpoint`,`azureOpenAIApiInstanceName`,`azureOpenAIApiDeploymentName`,`deploymentName`,`openAIApiKey`,`openAIApiVersion`];function Tq(e,t){return typeof e==`string`?{model:e,deploymentName:e,azureOpenAIApiDeploymentName:e,...t??{}}:e??t}function Eq(e){if(this.azureOpenAIApiKey=e?.azureOpenAIApiKey??(typeof e?.openAIApiKey==`string`?e?.openAIApiKey:void 0)??(typeof e?.apiKey==`string`?e?.apiKey:void 0)??Vr(`AZURE_OPENAI_API_KEY`),this.azureOpenAIApiInstanceName=e?.azureOpenAIApiInstanceName??Vr(`AZURE_OPENAI_API_INSTANCE_NAME`),this.azureOpenAIApiDeploymentName=e?.azureOpenAIApiDeploymentName??e?.deploymentName??Vr(`AZURE_OPENAI_API_DEPLOYMENT_NAME`),this.azureOpenAIApiVersion=e?.azureOpenAIApiVersion??e?.openAIApiVersion??Vr(`AZURE_OPENAI_API_VERSION`),this.azureOpenAIBasePath=e?.azureOpenAIBasePath??Vr(`AZURE_OPENAI_BASE_PATH`),this.azureOpenAIEndpoint=e?.azureOpenAIEndpoint??Vr(`AZURE_OPENAI_ENDPOINT`),this.azureADTokenProvider=e?.azureADTokenProvider,!this.azureOpenAIApiKey&&!this.apiKey&&!this.azureADTokenProvider)throw Error(`Azure OpenAI API key or Token Provider not found`)}function Dq(e){if(!this.client){let e={azureOpenAIApiDeploymentName:this.azureOpenAIApiDeploymentName,azureOpenAIApiInstanceName:this.azureOpenAIApiInstanceName,azureOpenAIApiKey:this.azureOpenAIApiKey,azureOpenAIBasePath:this.azureOpenAIBasePath,azureADTokenProvider:this.azureADTokenProvider,baseURL:this.clientConfig.baseURL,azureOpenAIEndpoint:this.azureOpenAIEndpoint},t=EG(e),{apiKey:n,...r}=this.clientConfig,i={...r,baseURL:t,timeout:this.timeout,maxRetries:0};this.azureADTokenProvider||(i.apiKey=e.azureOpenAIApiKey),i.baseURL||delete i.baseURL,i.defaultHeaders=AG(i.defaultHeaders,!0,`2.0.0`),this.client=new mG({apiVersion:this.azureOpenAIApiVersion,azureADTokenProvider:this.azureADTokenProvider,deployment:this.azureOpenAIApiDeploymentName,...i})}let t={...this.clientConfig,...e};return this.azureOpenAIApiKey&&(t.headers={"api-key":this.azureOpenAIApiKey,...t.headers},t.query={"api-version":this.azureOpenAIApiVersion,...t.query}),t}function Oq(e){let t=e;function n(e){return typeof e==`object`&&!!e}if(n(t)&&n(t.kwargs)){if(delete t.kwargs.azure_openai_base_path,delete t.kwargs.azure_openai_api_deployment_name,delete t.kwargs.azure_openai_api_key,delete t.kwargs.azure_openai_api_version,delete t.kwargs.azure_open_ai_base_path,!t.kwargs.azure_endpoint&&this.azureOpenAIEndpoint&&(t.kwargs.azure_endpoint=this.azureOpenAIEndpoint),!t.kwargs.azure_endpoint&&this.azureOpenAIBasePath){let e=this.azureOpenAIBasePath.split(`/openai/deployments/`);if(e.length===2&&e[0].startsWith(`http`)){let[n]=e;t.kwargs.azure_endpoint=n}}if(!t.kwargs.azure_endpoint&&this.azureOpenAIApiInstanceName&&(t.kwargs.azure_endpoint=`https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`),!t.kwargs.deployment_name&&this.azureOpenAIApiDeploymentName&&(t.kwargs.deployment_name=this.azureOpenAIApiDeploymentName),!t.kwargs.deployment_name&&this.azureOpenAIBasePath){let e=this.azureOpenAIBasePath.split(`/openai/deployments/`);if(e.length===2){let[,n]=e;t.kwargs.deployment_name=n}}t.kwargs.azure_endpoint&&t.kwargs.deployment_name&&t.kwargs.openai_api_base&&delete t.kwargs.openai_api_base,t.kwargs.azure_openai_api_instance_name&&t.kwargs.azure_endpoint&&delete t.kwargs.azure_openai_api_instance_name}return t}var kq=class extends xq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...Sq}}get lc_secrets(){return{...super.lc_secrets,...Cq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...wq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Tq(e,t);super(n),Eq.call(this,n)}_getClientOptions(e){return Dq.call(this,e)}toJSON(){return Oq.call(this,super.toJSON())}},Aq=`__openai_function_call_ids__`,jq=`__openai_custom_tool_call_ids__`;function Mq(e){return e.type===`url_citation`?{type:`citation`,source:`url_citation`,url:e.url,title:e.title,startIndex:e.start_index,endIndex:e.end_index}:e.type===`file_citation`?{type:`citation`,source:`file_citation`,title:e.filename,startIndex:e.index,file_id:e.file_id}:e.type===`container_file_citation`?{type:`citation`,source:`container_file_citation`,title:e.filename,startIndex:e.start_index,endIndex:e.end_index,file_id:e.file_id,container_id:e.container_id}:e.type===`file_path`?{type:`citation`,source:`file_path`,startIndex:e.index,file_id:e.file_id}:{type:`non_standard`,value:e}}function Nq(e){if(e.type===`url_citation`||e.type===`file_citation`||e.type===`container_file_citation`||e.type===`file_path`)return e;if(e.type===`citation`){let t=e;if(t.source===`url_citation`)return{type:`url_citation`,url:t.url??``,title:t.title??``,start_index:t.startIndex??0,end_index:t.endIndex??0};if(t.source===`file_citation`)return{type:`file_citation`,file_id:t.file_id??``,filename:t.title??``,index:t.startIndex??0};if(t.source===`container_file_citation`)return{type:`container_file_citation`,file_id:t.file_id??``,filename:t.title??``,container_id:t.container_id??``,start_index:t.startIndex??0,end_index:t.endIndex??0};if(t.source===`file_path`)return{type:`file_path`,file_id:t.file_id??``,index:t.startIndex??0}}return e.type===`non_standard`?e.value:e}var Pq=e=>{let t={...e?.input_tokens_details?.cached_tokens!=null&&{cache_read:e?.input_tokens_details?.cached_tokens}},n={...e?.output_tokens_details?.reasoning_tokens!=null&&{reasoning:e?.output_tokens_details?.reasoning_tokens}};return{input_tokens:e?.input_tokens??0,output_tokens:e?.output_tokens??0,total_tokens:e?.total_tokens??0,input_token_details:t,output_token_details:n}},Fq=e=>{if(e.error){let t=Error(e.error.message);throw t.name=e.error.code,t}let t=[],n=[],r=[],i=e.output.map(e=>{if(e.type===`function_call`&&`parsed_arguments`in e){let t={...e};return delete t.parsed_arguments,t}return e}),a={model_provider:`openai`,model:e.model,created_at:e.created_at,id:e.id,incomplete_details:e.incomplete_details,metadata:e.metadata,object:e.object,output:i,status:e.status,user:e.user,service_tier:e.service_tier,model_name:e.model},o={};for(let i of e.output)if(i.type===`message`)t.push(...i.content.flatMap(e=>e.type===`output_text`?(`parsed`in e&&e.parsed!=null&&(o.parsed=e.parsed),{type:`text`,text:e.text,annotations:e.annotations.map(Mq),...i.phase===null?{}:{phase:i.phase}}):e.type===`refusal`?(o.refusal=e.refusal,[]):e));else if(i.type===`function_call`){let e={function:{name:i.name,arguments:i.arguments},id:i.call_id};try{n.push(KT(e,{returnId:!0}))}catch(t){let n;typeof t==`object`&&t&&`message`in t&&typeof t.message==`string`&&(n=t.message),r.push(JT(e,n))}o[Aq]??={},i.id&&(o[Aq][i.call_id]=i.id)}else if(i.type===`reasoning`){o.reasoning=i;let e=i.summary?.map(e=>e.text).filter(Boolean).join(``);e&&t.push({type:`reasoning`,reasoning:e})}else if(i.type===`custom_tool_call`){let e=HG(i);e?(n.push(e),o[jq]??={},i.id&&i.call_id&&(o[jq][i.call_id]=i.id)):r.push(JT(i,`Malformed custom tool call`))}else if(i.type===`computer_call`){let e=UG(i);e?n.push(e):r.push(JT(i,`Malformed computer call`))}else i.type===`image_generation_call`?(i.result&&t.push({type:`image`,mimeType:`image/png`,data:i.result,id:i.id,metadata:{status:i.status}}),o.tool_outputs??=[],o.tool_outputs.push(i)):(o.tool_outputs??=[],o.tool_outputs.push(i));return new k({id:e.id,content:t,tool_calls:n,invalid_tool_calls:r,usage_metadata:Pq(e.usage),additional_kwargs:o,response_metadata:a})},Iq=e=>{let t=(e.summary.length>1?e.summary.reduce((e,t)=>{let n=e[e.length-1];return n.index===t.index?n.text+=t.text:e.push(t),e},[{...e.summary[0]}]):e.summary).map(e=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==`index`)));return{...e,summary:t}},Lq=e=>{let t=[],n={},r,i=[],a={model_provider:`openai`},o={},s;if(e.type===`response.output_text.delta`)t.push({type:`text`,text:e.delta,index:e.content_index});else if(e.type===`response.output_text.annotation.added`)t.push({type:`text`,text:``,annotations:[Mq(e.annotation)],index:e.content_index});else if(e.type===`response.output_item.added`&&e.item.type===`message`){let n=`phase`in e.item?e.item.phase:void 0;n&&t.push({type:`text`,text:``,phase:n,index:0})}else if(e.type===`response.output_item.added`&&e.item.type===`function_call`)i.push({type:`tool_call_chunk`,name:e.item.name,args:e.item.arguments,id:e.item.call_id,index:e.output_index}),o[Aq]={[e.item.call_id]:e.item.id};else if(e.type===`response.output_item.added`&&e.item.type===`custom_tool_call`)i.push({type:`tool_call_chunk`,isCustomTool:!0,name:e.item.name,args:e.item.input,id:e.item.call_id,index:e.output_index}),o[jq]={[e.item.call_id]:e.item.id};else if(e.type===`response.output_item.done`&&e.item.type===`computer_call`)i.push({type:`tool_call_chunk`,name:`computer_use`,args:JSON.stringify({action:e.item.action}),id:e.item.call_id,index:e.output_index}),o.tool_outputs=[e.item];else if(e.type===`response.output_item.done`&&e.item.type===`image_generation_call`)e.item.result&&t.push({type:`image`,mimeType:`image/png`,data:e.item.result,id:e.item.id,metadata:{status:e.item.status}}),o.tool_outputs=[e.item];else if(e.type===`response.output_item.done`&&[`web_search_call`,`file_search_call`,`code_interpreter_call`,`shell_call`,`local_shell_call`,`mcp_call`,`mcp_list_tools`,`mcp_approval_request`,`custom_tool_call`,`tool_search_call`,`tool_search_output`].includes(e.item.type))o.tool_outputs=[e.item];else if(e.type===`response.created`)s=e.response.id,a.id=e.response.id,a.model_name=e.response.model,a.model=e.response.model;else if(e.type===`response.completed`||e.type===`response.incomplete`){s=e.response.id;let t=Fq(e.response);if(r=Pq(e.response.usage),e.response.text?.format?.type===`json_schema`&&t.text)try{o.parsed??=JSON.parse(t.text)}catch{}for(let[n,r]of Object.entries(e.response))n!==`id`&&(n===`output`?a[n]=t.response_metadata.output:a[n]=r)}else if(e.type===`response.function_call_arguments.delta`||e.type===`response.custom_tool_call_input.delta`)i.push({type:`tool_call_chunk`,args:e.delta,index:e.output_index,...e.type===`response.custom_tool_call_input.delta`?{isCustomTool:!0}:{}});else if(e.type===`response.web_search_call.in_progress`||e.type===`response.web_search_call.searching`||e.type===`response.web_search_call.completed`||e.type===`response.file_search_call.in_progress`||e.type===`response.file_search_call.searching`||e.type===`response.file_search_call.completed`||e.type===`response.image_generation_call.in_progress`||e.type===`response.image_generation_call.generating`||e.type===`response.image_generation_call.completed`){let[,t,r]=e.type.match(/^response\.(.*)\.([^.]+)$/)??[``,``,``];n={tool_outputs:{id:e.item_id,type:t,status:r}}}else if(e.type===`response.refusal.done`)o.refusal=e.refusal;else if(e.type===`response.output_item.added`&&`item`in e&&e.item.type===`reasoning`){let n=e.item.summary?e.item.summary.map((e,t)=>({...e,index:t})):void 0;o.reasoning={id:e.item.id,type:e.item.type,...n?{summary:n}:{}};let r=e.item.summary?.map(e=>e.text).filter(Boolean).join(``);r&&t.push({type:`reasoning`,reasoning:r})}else if(e.type===`response.reasoning_summary_part.added`)o.reasoning={type:`reasoning`,summary:[{...e.part,index:e.summary_index}]},e.part.text&&t.push({type:`reasoning`,reasoning:e.part.text,index:e.summary_index});else if(e.type===`response.reasoning_summary_text.delta`)o.reasoning={type:`reasoning`,summary:[{text:e.delta,type:`summary_text`,index:e.summary_index}]},e.delta&&t.push({type:`reasoning`,reasoning:e.delta,index:e.summary_index});else if(e.type===`response.image_generation_call.partial_image`)return null;else return null;return new Ju({text:t.map(e=>e.text).join(``),message:new un({id:s,content:t,tool_call_chunks:i,usage_metadata:r,additional_kwargs:o,response_metadata:a}),generationInfo:n})},Rq=e=>{let t=k.isInstance(e)&&e.response_metadata?.model_provider===`openai`;function*n(){let n=vG(()=>{try{let t=wG(e);return t===`system`||t===`developer`||t===`assistant`||t===`user`?t:`assistant`}catch{return`assistant`}}),r,i=new Set,a=new Set,o=new Map,s=new Map;function*c(){if(!r)return;let e=r.content;(typeof e==`string`&&e.length>0||Array.isArray(e)&&e.length>0)&&(yield r),r=void 0}let l=(e,t)=>{r||={type:`message`,role:n,content:[],...t?{phase:t}:{}},typeof r.content==`string`?r.content=r.content.length>0?[{type:`input_text`,text:r.content},...e]:[...e]:r.content.push(...e)},u=e=>{if(typeof e==`string`)return e;try{return JSON.stringify(e??{})}catch{return`{}`}},d=e=>{let t=vG(()=>{let t=e.metadata?.detail;return t===`low`||t===`high`||t===`auto`?t:`auto`});if(e.fileId)return{type:`input_image`,detail:t,file_id:e.fileId};if(e.url)return{type:`input_image`,detail:t,image_url:e.url};if(e.data){let n=typeof e.data==`string`?e.data:Buffer.from(e.data).toString(`base64`);return{type:`input_image`,detail:t,image_url:`data:${e.mimeType??`image/png`};base64,${n}`}}},f=e=>{if(e.fileId){let t=xG(e);return{type:`input_file`,file_id:e.fileId,...t?{filename:t}:{}}}if(e.url){let t=xG(e);return{...t?{filename:t}:{},type:`input_file`,file_url:e.url}}if(e.data){let t=CG(e),n=typeof e.data==`string`?e.data:Buffer.from(e.data).toString(`base64`);return{type:`input_file`,file_data:`data:${e.mimeType??`application/octet-stream`};base64,${n}`,filename:t}}},p=e=>{let t=vG(()=>{if(Array.isArray(e.summary)){let t=e.summary?.map(e=>e?.text).filter(e=>typeof e==`string`)??[];if(t.length>0)return t}return e.reasoning?[e.reasoning]:[]}),n=t.length>0?t.map(e=>({type:`summary_text`,text:e})):[{type:`summary_text`,text:``}];return{type:`reasoning`,...e.id?{id:e.id}:{},summary:n}},m=e=>({type:`function_call`,name:e.name??``,call_id:e.id??``,arguments:u(e.args)}),h=e=>{let t=u(e.output),n=e.status===`success`?`completed`:e.status===`error`?`incomplete`:void 0;return{type:`function_call_output`,call_id:e.toolCallId??``,output:t,...n?{status:n}:{}}};for(let n of e.contentBlocks)if(n.type===`text`){let e=vG(()=>{if(`extras`in n&&typeof n.extras==`object`&&n.extras!==null&&`phase`in n.extras)return n.extras.phase});l([{type:`input_text`,text:n.text}],e)}else if(n.type!==`invalid_tool_call`){if(n.type===`reasoning`)yield*c(),yield p(n);else if(n.type===`tool_call`){yield*c();let e=n.id??``;e&&(i.add(e),o.delete(e)),yield m(n)}else if(n.type===`tool_call_chunk`){if(n.id){let e=o.get(n.id)??{name:n.name,args:[]};n.name&&(e.name=n.name),n.args&&e.args.push(n.args),o.set(n.id,e)}}else if(n.type===`server_tool_call`){yield*c();let e=n.id??``;e&&(a.add(e),s.delete(e)),yield m(n)}else if(n.type===`server_tool_call_chunk`){if(n.id){let e=s.get(n.id)??{name:n.name,args:[]};n.name&&(e.name=n.name),n.args&&e.args.push(n.args),s.set(n.id,e)}}else if(n.type===`server_tool_call_result`)yield*c(),yield h(n);else if(n.type!==`audio`)if(n.type===`file`){let e=f(n);e&&l([e])}else if(n.type===`image`){let e=d(n);e&&l([e])}else if(n.type===`video`){let e=f(n);e&&l([e])}else n.type===`text-plain`?n.text&&l([{type:`input_text`,text:n.text}]):n.type===`non_standard`&&t&&(yield*c(),yield n.value)}yield*c();for(let[e,t]of o){if(!e||i.has(e))continue;let n=t.args.join(``);!t.name&&!n||(yield{type:`function_call`,call_id:e,name:t.name??``,arguments:n})}for(let[e,t]of s){if(!e||a.has(e))continue;let n=t.args.join(``);!t.name&&!n||(yield{type:`function_call`,call_id:e,name:t.name??``,arguments:n})}}return Array.from(n())},zq=({messages:e,zdrEnabled:t,model:n})=>e.flatMap(e=>{let r=e.response_metadata;if(r?.output_version===`v1`)return Rq(e);let i=e.additional_kwargs,a=wG(e);if(a===`system`&&yG(n)&&(a=`developer`),a===`function`)throw Error(`Function messages are not supported in Responses API`);if(a===`tool`){let t=e;if(i?.type===`computer_call_output`)return{type:`computer_call_output`,output:(()=>{if(typeof t.content==`string`)return{type:`input_image`,image_url:t.content};if(Array.isArray(t.content)){let e=t.content.find(e=>e.type===`input_image`);if(e)return e;let n=t.content.find(e=>e.type===`computer_screenshot`);if(n)return n;let r=t.content.find(e=>e.type===`image_url`);if(r)return{type:`input_image`,image_url:typeof r.image_url==`string`?r.image_url:r.image_url.url}}throw Error(`Invalid computer call output`)})(),call_id:t.tool_call_id};if(t.additional_kwargs?.customTool)return{type:`custom_tool_call_output`,call_id:t.tool_call_id,output:t.content};let n=Array.isArray(t.content)&&t.content.every(e=>typeof e==`object`&&!!e&&`type`in e&&(e.type===`input_file`||e.type===`input_image`||e.type===`input_text`));return{type:`function_call_output`,call_id:t.tool_call_id,id:t.id?.startsWith(`fc_`)?t.id:void 0,output:n||typeof t.content==`string`?t.content:JSON.stringify(t.content)}}if(a===`assistant`){if(!t&&r?.output!=null&&Array.isArray(r?.output)&&r?.output.length>0&&r?.output.every(e=>`type`in e))return r?.output;let n=[],a=i?.reasoning,o=!!a?.encrypted_content;if(a&&(!t||o)){let e=Iq(a);n.push(e)}let{content:s}=e;if(i?.refusal&&(typeof s==`string`&&(s=[{type:`output_text`,text:s,annotations:[]}]),s=[...s,{type:`refusal`,refusal:i.refusal}]),typeof s==`string`||s.length>0){let r={type:`message`,role:`assistant`,...e.id&&!t&&e.id.startsWith(`msg_`)?{id:e.id}:{},content:vG(()=>typeof s==`string`?s:s.flatMap(e=>{if(e.type===`text`){let t=e;return{type:`output_text`,text:t.text,annotations:(t.annotations??[]).map(Nq)}}return e.type===`output_text`||e.type===`refusal`?e:[]})),phase:vG(()=>{if(Array.isArray(s))return s.find(e=>`phase`in e&&typeof e.phase==`string`)?.phase})};n.push(r)}let c=i?.[Aq],l=i?.[jq];k.isInstance(e)&&e.tool_calls?.length?n.push(...e.tool_calls.map(e=>GG(e,l)?{type:`custom_tool_call`,id:`call_id`in e&&typeof e.call_id==`string`?e.call_id:l?.[e.id??``]??``,call_id:e.id??``,input:e.args.input,name:e.name}:WG(e)?{type:`computer_call`,id:e.call_id,call_id:e.id??``,action:e.args.action}:{type:`function_call`,name:e.name,arguments:JSON.stringify(e.args),call_id:e.id,...t?{}:{id:c?.[e.id]}})):i?.tool_calls&&n.push(...i.tool_calls.map(e=>({type:`function_call`,name:e.function.name,call_id:e.id,arguments:e.function.arguments,...t?{}:{id:c?.[e.id]}})));let u=r?.output?.length?r?.output:i.tool_outputs,d=[`computer_call`,`mcp_call`,`code_interpreter_call`,`image_generation_call`,`shell_call`,`local_shell_call`];if(u!=null){let e=u?.filter(e=>d.includes(e.type));e.length>0&&n.push(...e)}return n}if(a===`user`||a===`system`||a===`developer`){if(typeof e.content==`string`)return{type:`message`,role:a,content:e.content};let t=[],n=e.content.flatMap(e=>{if(e.type===`mcp_approval_response`&&t.push({type:`mcp_approval_response`,approval_request_id:e.approval_request_id,approve:e.approve}),Ee(e)){if(e.type===`file`){let t=xG(e);if(e.source_type===`url`)return{type:`input_file`,file_url:e.url,...t?{filename:t}:{}};if(e.source_type===`id`)return{type:`input_file`,file_id:e.id,...t?{filename:t}:{}};if(e.source_type===`base64`)return{type:`input_file`,file_data:`data:${e.mime_type??``};base64,${e.data}`,filename:CG(e)}}return Ne(e,hq)}return e.type===`text`?{type:`input_text`,text:e.text}:e.type===`image_url`?{type:`input_image`,image_url:vG(()=>{if(typeof e.image_url==`string`)return e.image_url;if(typeof e.image_url==`object`&&e.image_url!==null&&`url`in e.image_url)return e.image_url.url}),detail:vG(()=>{if(typeof e.image_url==`string`)return`auto`;if(typeof e.image_url==`object`&&e.image_url!==null&&`detail`in e.image_url)return e.image_url.detail})}:e.type===`input_text`||e.type===`input_image`||e.type===`input_file`?e:[]});return n.length>0&&t.push({type:`message`,role:a,content:n}),t}return console.warn(`Unsupported role found when converting to OpenAI Responses API: ${a}`),[]});async function*Bq(e,t={}){let n=t.streamUsage??!0,r=t.provider??`openai`,i=new Map,a=new Map,o=0,s=!1,c,l,u,d,f=new Set,p=(e,t)=>{let n=a.get(e);if(n!==void 0)return{index:n,isNew:!1};let r=o++;return a.set(e,r),i.set(r,{...t}),{index:r,isNew:!0}},m=function*(){s||(s=!0,yield{event:`message-start`,id:c})},h=function*(e){if(f.has(e))return;let t=i.get(e);t&&(f.add(e),yield{event:`content-block-finish`,index:e,content:TE(t)})};for await(let t of e){if(t.type===`response.created`){c=t.response.id,yield*m(),yield{event:`provider`,provider:r,name:`response.created`,payload:{model:t.response.model,id:t.response.id}};continue}if(t.type===`response.output_text.delta`){yield*m();let{index:e,isNew:n}=p(`text:${t.output_index}:${t.content_index}`,{type:`text`,text:``});n&&(yield{event:`content-block-start`,index:e,content:{type:`text`,text:``}});let r=i.get(e);r.text=(r.text??``)+t.delta,yield{event:`content-block-delta`,index:e,delta:{type:`text-delta`,text:t.delta}};continue}if(t.type===`response.reasoning_summary_text.delta`){yield*m();let{index:e,isNew:n}=p(`reasoning:${t.output_index}:${t.summary_index}`,{type:`reasoning`,reasoning:``});n&&(yield{event:`content-block-start`,index:e,content:{type:`reasoning`,reasoning:``}});let r=i.get(e);r.reasoning=(r.reasoning??``)+t.delta,yield{event:`content-block-delta`,index:e,delta:{type:`reasoning-delta`,reasoning:t.delta}};continue}if(t.type===`response.output_item.added`&&(t.item.type===`function_call`||t.item.type===`custom_tool_call`)){yield*m();let e=`tool:${t.output_index}`,n=t.item.type===`custom_tool_call`,r=t.item.type===`function_call`?t.item.arguments??``:t.item.input??``,{index:a,isNew:o}=p(e,{type:`tool_call_chunk`,id:t.item.call_id,name:t.item.name,args:r,index:t.output_index,...n?{isCustomTool:!0}:{}});if(o&&(yield{event:`content-block-start`,index:a,content:{type:`tool_call_chunk`,id:t.item.call_id,name:t.item.name,args:r,index:t.output_index}}),r){let e=i.get(a);yield{event:`content-block-delta`,index:a,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,...e.id==null?{}:{id:e.id},...e.name==null?{}:{name:e.name},args:e.args}}}}continue}if(t.type===`response.function_call_arguments.delta`||t.type===`response.custom_tool_call_input.delta`){yield*m();let{index:e,isNew:n}=p(`tool:${t.output_index}`,{type:`tool_call_chunk`,args:``,index:t.output_index,...t.type===`response.custom_tool_call_input.delta`?{isCustomTool:!0}:{}});n&&(yield{event:`content-block-start`,index:e,content:{type:`tool_call_chunk`,args:``,index:t.output_index}});let r=i.get(e);r.args=(r.args??``)+t.delta,yield{event:`content-block-delta`,index:e,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,...r.id==null?{}:{id:r.id},...r.name==null?{}:{name:r.name},args:r.args}}};continue}if(t.type===`response.output_item.done`&&(t.item.type===`function_call`||t.item.type===`custom_tool_call`)){yield*m();let e=`tool:${t.output_index}`,n=t.item.type===`function_call`?t.item.arguments??``:t.item.input??``,{index:r,isNew:a}=p(e,{type:`tool_call_chunk`,id:t.item.call_id,name:t.item.name,args:n,index:t.output_index});if(a)yield{event:`content-block-start`,index:r,content:{type:`tool_call_chunk`,id:t.item.call_id,name:t.item.name,args:n,index:t.output_index}};else{let e=i.get(r);e.args=n,e.id=t.item.call_id,e.name=t.item.name}yield*h(r);continue}if(t.type===`response.completed`||t.type===`response.incomplete`){yield*m(),c=t.response.id,u=Vq(t.response.status,t.type),d={model_provider:r,id:t.response.id,model:t.response.model,status:t.response.status},n&&t.response.usage&&(l=Pq(t.response.usage),yield{event:`usage`,usage:l});continue}t.type!==`response.image_generation_call.partial_image`&&(yield*m(),yield{event:`provider`,provider:r,name:t.type,payload:t})}s||(yield{event:`message-start`});for(let[e]of i)f.has(e)||(yield*h(e));yield{event:`message-finish`,reason:u,...l?{usage:l}:{},...d?{responseMetadata:d}:{}}}function Vq(e,t){return t===`response.incomplete`?`length`:e===`completed`?`stop`:e===`incomplete`?`length`:`stop`}var Hq=class extends mq{constructor(e,t){super(pq(e,t))}invocationParams(e){let t;e?.strict!==void 0&&(t=e.strict),t===void 0&&this.supportsStrictToolCalling!==void 0&&(t=this.supportsStrictToolCalling);let n={model:this.model,temperature:this.temperature,top_p:this.topP,user:this.user,service_tier:this.service_tier,stream:this.streaming,previous_response_id:e?.previous_response_id,truncation:e?.truncation,include:e?.include,tools:e?.tools?.length?this._reduceChatOpenAITools(e.tools,{stream:this.streaming,strict:t}):void 0,tool_choice:zG(e?.tool_choice)?e?.tool_choice:(()=>{let t=IG(e?.tool_choice);if(typeof t==`object`&&`type`in t){if(t.type===`function`)return{type:`function`,name:t.function.name};if(t.type===`allowed_tools`)return{type:`allowed_tools`,mode:t.allowed_tools.mode,tools:t.allowed_tools.tools};if(t.type===`custom`)return{type:`custom`,name:t.custom.name}}})(),text:(()=>{if(e?.text)return e.text;let t=this._getResponseFormat(e?.response_format);return t?.type===`json_schema`?t.json_schema.schema==null?void 0:{format:{type:`json_schema`,schema:t.json_schema.schema,description:t.json_schema.description,name:t.json_schema.name,strict:t.json_schema.strict},verbosity:e?.verbosity}:{format:t,verbosity:e?.verbosity}})(),parallel_tool_calls:e?.parallel_tool_calls,max_output_tokens:this.maxTokens===-1?void 0:this.maxTokens,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,prompt_cache_retention:e?.promptCacheRetention??this.promptCacheRetention,...this.zdrEnabled?{store:!1}:{},...this.modelKwargs},r=this._getReasoningParams(e);return r!==void 0&&(n.reasoning=r),n}async _generate(e,t,n){t.signal?.throwIfAborted();let r=this.invocationParams(t);if(r.stream){let r=this._streamResponseChunks(e,t,n),i;for await(let e of r)e.message.response_metadata={...e.generationInfo,...e.message.response_metadata},i=i?.concat(e)??e;return{generations:i?[i]:[],llmOutput:{estimatedTokenUsage:i?.message?.usage_metadata}}}else{let n=await this.completionWithRetry({input:zq({messages:e,zdrEnabled:this.zdrEnabled??!1,model:this.model}),...r,stream:!1},{signal:t?.signal,...t?.options});return{generations:[{text:n.output_text,message:Fq(n)}],llmOutput:{id:n.id,estimatedTokenUsage:n.usage?{promptTokens:n.usage.input_tokens,completionTokens:n.usage.output_tokens,totalTokens:n.usage.total_tokens}:void 0}}}}async*_streamChatModelEvents(e,t,n){let r=await this.completionWithRetry({...this.invocationParams(t),input:zq({messages:e,zdrEnabled:this.zdrEnabled??!1,model:this.model}),stream:!0},t),i=this.streamUsage??t.streamUsage;yield*Bq(async function*(e,t){for await(let n of e){if(t?.aborted)return;yield n}}(r,t.signal),{streamUsage:i??!0,provider:this.streamEventProvider})}get streamEventProvider(){return`openai`}async*_streamResponseChunks(e,t,n){let r=await this.completionWithRetry({...this.invocationParams(t),input:zq({messages:e,zdrEnabled:this.zdrEnabled??!1,model:this.model}),stream:!0},t);try{for await(let e of r){if(t.signal?.aborted)return;let r=Lq(e);r!=null&&(yield r,await n?.handleLLMNewToken(r.text||``,{prompt:t.promptIndex??0,completion:0},void 0,void 0,void 0,{chunk:r}))}}catch(e){throw _G(e)}}async completionWithRetry(e,t){return this.caller.call(async()=>{let n=this._getClientOptions(t);try{return e.text?.format?.type===`json_schema`&&!e.stream?await this.client.responses.parse(e,n):await this.client.responses.create(e,n)}catch(e){throw _G(e)}})}_reduceChatOpenAITools(e,t){let n=[];for(let r of e)if(LG(r))r.type===`image_generation`&&t?.stream&&(r.partial_images=1),n.push(r);else if(BG(r)){let e=r.metadata.customTool;n.push({type:`custom`,name:e.name,description:e.description,format:e.format})}else if(hT(r)){let e={};for(let[t,n]of Object.entries(r))t!==`type`&&t!==`function`&&(e[t]=n);n.push({type:`function`,name:r.function.name,parameters:r.function.parameters,description:r.function.description,strict:t?.strict??null,...e})}else VG(r)&&n.push(KG(r));return n}},Uq=class extends Hq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...Sq}}get lc_secrets(){return{...super.lc_secrets,...Cq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...wq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Tq(e,t);super(n),Eq.call(this,n)}_getClientOptions(e){return Dq.call(this,e)}toJSON(){return Oq.call(this,super.toJSON())}},Wq=class e extends mq{useResponsesApi=!1;responses;completions;get lc_serializable_keys(){return[...super.lc_serializable_keys,`useResponsesApi`]}get callKeys(){return[...super.callKeys,`useResponsesApi`]}fields;constructor(e,t){let n=pq(e,t);super(n),this.fields=n,this.useResponsesApi=n?.useResponsesApi??!1,this.responses=n?.responses??new Hq(n),this.completions=n?.completions??new xq(n)}_useResponsesApi(e){let t=e?.tools?.some(LG),n=e?.previous_response_id!=null||e?.text!=null||e?.truncation!=null||e?.include!=null||e?.reasoning?.summary!=null||this.reasoning?.summary!=null,r=e?.tools?.some(VG)||e?.tools?.some(BG);return this.useResponsesApi||t||n||r||TG(this.model)}getLsParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.getLsParams(t):this.completions.getLsParams(t)}invocationParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.invocationParams(t):this.completions.invocationParams(t)}async _generate(e,t,n){return this._useResponsesApi(t)?this.responses._generate(e,t,n):this.completions._generate(e,t,n)}async*_streamChatModelEvents(e,t,n){if(this._useResponsesApi(t)){yield*this.responses._streamChatModelEvents(e,this._combineCallOptions(t),n);return}yield*this.completions._streamChatModelEvents(e,this._combineCallOptions(t),n)}async*_streamResponseChunks(e,t,n){if(this._useResponsesApi(t)){yield*this.responses._streamResponseChunks(e,this._combineCallOptions(t),n);return}yield*this.completions._streamResponseChunks(e,this._combineCallOptions(t),n)}withConfig(t){let n=new e(this.fields);return n.defaultOptions={...this.defaultOptions,...t},n}},Gq=class extends Wq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...Sq}}get lc_secrets(){return{...super.lc_secrets,...Cq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...wq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Tq(e,t);super({...n,completions:new kq(n),responses:new Uq(n)}),Eq.call(this,n)}_getStructuredOutputMethod(e){let t={...e};return this.model.startsWith(`gpt-4o`)&&t?.method===void 0?`functionCalling`:super._getStructuredOutputMethod(t)}toJSON(){return Oq.call(this,super.toJSON())}};G({action:FA([G({type:qA(`screenshot`)}),G({type:qA(`click`),x:bA(),y:bA(),button:GA([`left`,`right`,`wheel`,`back`,`forward`]).default(`left`)}),G({type:qA(`double_click`),x:bA(),y:bA(),button:GA([`left`,`right`,`wheel`,`back`,`forward`]).default(`left`)}),G({type:qA(`drag`),path:MA(G({x:bA(),y:bA()}))}),G({type:qA(`keypress`),keys:MA(W())}),G({type:qA(`move`),x:bA(),y:bA()}),G({type:qA(`scroll`),x:bA(),y:bA(),scroll_x:bA(),scroll_y:bA()}),G({type:qA(`type`),text:W()}),G({type:qA(`wait`),duration:bA().optional()})])}),FA([G({type:qA(`exec`),command:MA(W()),env:UA(W(),W()).optional(),working_directory:W().optional(),timeout_ms:bA().optional(),user:W().optional()})]),G({commands:MA(W()).describe(`Array of shell commands to execute`),timeout_ms:bA().optional().describe(`Optional timeout in milliseconds for the commands`),max_output_length:bA().optional().describe(`Optional maximum number of characters to return from each command`)}),FA([G({type:qA(`create_file`),path:W(),diff:W()}),G({type:qA(`update_file`),path:W(),diff:W()}),G({type:qA(`delete_file`),path:W()})]);function Kq(e){if(typeof e==`object`&&e){let t={...e};`additionalProperties`in t&&delete t.additionalProperties,`$schema`in t&&delete t.$schema,`strict`in t&&delete t.strict;for(let e in t)e in t&&(Array.isArray(t[e])?t[e]=t[e].map(Kq):typeof t[e]==`object`&&t[e]!==null&&(t[e]=Kq(t[e])));return t}return e}function qq(e){let{$schema:t,...n}=Kq(o_(e)||Cb(e)?ux(e):e);return n}function Jq(e){let{$schema:t,...n}=Kq(e);return n}function Yq(e,t,n=[]){if(typeof e!=`object`||!e)return;let r=e;if(Array.isArray(r.enum)&&r.enum.some(e=>e===``)){let e=n.length?` at path "${n.join(`.`)}"`:``,r=t?` in tool "${t}"`:``;throw Error(`Invalid enum: empty string not allowed${r}${e}. Gemini API rejects empty strings in enums.`)}if(r.type===`object`&&r.properties&&typeof r.properties==`object`)for(let[e,i]of Object.entries(r.properties))Yq(i,t,[...n,e]);r.items&&Yq(r.items,t,[...n,`[]`]);for(let e of[`anyOf`,`oneOf`,`allOf`]){let i=r[e];Array.isArray(i)&&i.forEach((r,i)=>Yq(r,t,[...n,`${e}[${i}]`]))}r.additionalProperties&&typeof r.additionalProperties==`object`&&Yq(r.additionalProperties,t,[...n,`additionalProperties`])}var Xq=`__gemini_function_call_thought_signatures__`,Zq=`ErYCCrMCAdHtim9kOoOkrPiCNVsmlpMIKd7ZMxgiFbVQOkgp7nlLcDMzVsZwIzvuT7nQROivoXA72ccC2lSDvR0Gh7dkWaGuj7ctv6t7ZceHnecx0QYa+ix8tYpRfjhyWozQ49lWiws6+YGjCt10KRTyWsZ2h6O7iHTYJwKIRwGUHRKy/qK/6kFxJm5ML00gLq4D8s5Z6DBpp2ZlR+uF4G8jJgeWQgyHWVdx2wGYElaceVAc66tZdPQRdOHpWtgYSI1YdaXgVI8KHY3/EfNc2YqqMIulvkDBAnuMhkAjV9xmBa54Tq+ih3Im4+r3DzqhGqYdsSkhS0kZMwte4Hjs65dZzCw9lANxIqYi1DJ639WNPYihp/DCJCos7o+/EeSPJaio5sgWDyUnMGkY1atsJZ+m7pj7DD5tvQ==`,Qq=e=>e();function $q(e){return dn.isInstance(e)?e.role:e.type}function eJ(e){switch(e){case`supervisor`:case`ai`:case`model`:return`model`;case`system`:return`system`;case`human`:return`user`;case`tool`:case`function`:return`function`;default:throw Error(`Unknown / unsupported author: ${e}`)}}function tJ(e){if(`mimeType`in e&&`data`in e)return{inlineData:{mimeType:e.mimeType,data:e.data}};if(`mimeType`in e&&`fileUri`in e)return{fileData:{mimeType:e.mimeType,fileUri:e.fileUri}};throw Error(`Invalid media content`)}function nJ(e,t){return t.map(e=>cn(e)?e.tool_calls??[]:[]).flat().find(t=>t.id===e.tool_call_id)?.name}function rJ(e,t){if(`data`in e&&e.data!==void 0){let n=e.data instanceof Uint8Array?btoa(String.fromCharCode(...e.data)):e.data;return{inlineData:{mimeType:e.mimeType||t,data:n}}}if(`url`in e&&e.url!==void 0){let n=Me({dataUrl:e.url});return n?{inlineData:{mimeType:n.mime_type,data:n.data}}:{fileData:{mimeType:e.mimeType||t,fileUri:e.url}}}throw`fileId`in e&&e.fileId!==void 0?Error(`ContentBlock.Multimodal fileId is not supported by Google Generative AI. Use a URL or base64 data instead.`):Error(`Invalid multimodal content block: must have "data", "url", or "fileId" property. Received: ${JSON.stringify(e)}`)}function iJ(e){return{providerName:`Google Gemini`,fromStandardTextBlock(e){return{text:e.text}},fromStandardImageBlock(t){if(!e)throw Error(`This model does not support images`);if(t.source_type===`url`){let e=Me({dataUrl:t.url});return e?{inlineData:{mimeType:e.mime_type,data:e.data}}:{fileData:{mimeType:t.mime_type??``,fileUri:t.url}}}if(t.source_type===`base64`)return{inlineData:{mimeType:t.mime_type??``,data:t.data}};throw Error(`Unsupported source type: ${t.source_type}`)},fromStandardAudioBlock(t){if(!e)throw Error(`This model does not support audio`);if(t.source_type===`url`){let e=Me({dataUrl:t.url});return e?{inlineData:{mimeType:e.mime_type,data:e.data}}:{fileData:{mimeType:t.mime_type??``,fileUri:t.url}}}if(t.source_type===`base64`)return{inlineData:{mimeType:t.mime_type??``,data:t.data}};throw Error(`Unsupported source type: ${t.source_type}`)},fromStandardFileBlock(t){if(!e)throw Error(`This model does not support files`);if(t.source_type===`text`)return{text:t.text};if(t.source_type===`url`){let e=Me({dataUrl:t.url});return e?{inlineData:{mimeType:e.mime_type,data:e.data}}:{fileData:{mimeType:t.mime_type??``,fileUri:t.url}}}if(t.source_type===`base64`)return{inlineData:{mimeType:t.mime_type??``,data:t.data}};throw Error(`Unsupported source type: ${t.source_type}`)}}}function aJ(e,t){if(Ee(e))return Ne(e,iJ(t));if(e.type===`text`)return{text:e.text};if(e.type===`executableCode`)return{executableCode:e.executableCode};if(e.type===`codeExecutionResult`)return{codeExecutionResult:e.codeExecutionResult};if(e.type===`image_url`){if(!t)throw Error(`This model does not support images`);let n;if(typeof e.image_url==`string`)n=e.image_url;else if(typeof e.image_url==`object`&&`url`in e.image_url)n=e.image_url.url;else throw Error(`Please provide image as base64 encoded data URL`);let[r,i]=n.split(`,`);if(!r.startsWith(`data:`))throw Error(`Please provide image as base64 encoded data URL`);let[a,o]=r.replace(/^data:/,``).split(`;`);if(o!==`base64`)throw Error(`Please provide image as base64 encoded data URL`);return{inlineData:{data:i,mimeType:a}}}else if(e.type===`media`)return tJ(e);else if(e.type===`image`)return rJ(e,`image/png`);else if(e.type===`video`)return rJ(e,`video/mp4`);else if(e.type===`audio`)return rJ(e,`audio/mpeg`);else if(e.type===`file`)return rJ(e,`application/octet-stream`);else if(e.type===`text-plain`)return`text`in e&&typeof e.text==`string`?{text:e.text}:rJ(e,`text/plain`);else if(e.type===`tool_use`)return{functionCall:{name:e.name,args:e.input}};else if(e.type===`tool_call`)return{functionCall:{name:e.name,args:e.args}};else if(e.type?.includes(`/`)&&e.type.split(`/`).length===2&&`data`in e&&typeof e.data==`string`)return{inlineData:{mimeType:e.type,data:e.data}};else if(e.type===`thinking`){let t=e;return{text:t.thinking,thought:!0,...t.signature?{thoughtSignature:t.signature}:{}}}else if(`functionCall`in e)return;else if(`type`in e)throw Error(`Unknown content type ${e.type}`);else throw Error(`Unknown content ${JSON.stringify(e)}`)}function oJ(e,t,n,r){if(jt(e)){let r=e.name??nJ(e,n);if(r===void 0)throw Error(`Google requires a tool name for each tool call response, and we could not infer a called tool name for ToolMessage "${e.id}" from your passed messages. Please populate a "name" field on that ToolMessage explicitly.`);let i=Array.isArray(e.content)?e.content.map(e=>aJ(e,t)).filter(e=>e!==void 0):e.content;return e.status===`error`?[{functionResponse:{name:r,response:{error:{details:i}}}}]:[{functionResponse:{name:r,response:{result:i}}}]}let i=[],a=[];typeof e.content==`string`&&e.content&&a.push({text:e.content}),Array.isArray(e.content)&&a.push(...e.content.map(e=>aJ(e,t)).filter(e=>e!==void 0));let o=e.additional_kwargs?.[Xq];return cn(e)&&e.tool_calls?.length&&(i=e.tool_calls.map(e=>{let t=Qq(()=>{if(e.id){let t=o?.[e.id];if(t)return t}return r?.includes(`gemini-3`)?Zq:``});return{functionCall:{name:e.name,args:e.args},...t?{thoughtSignature:t}:{}}})),[...a,...i]}function sJ(e,t,n=!1,r){return e.reduce((i,a,o)=>{if(!wt(a))throw Error(`Unsupported message input`);let s=$q(a);if(s===`system`&&o!==0)throw Error(`System message should be the first one`);let c=eJ(s),l=i.content[i.content.length];if(!i.mergeWithPreviousContent&&l&&l.role===c)throw Error(`Google Generative AI requires alternate messages between authors`);let u=oJ(a,t,e.slice(0,o),r);if(i.mergeWithPreviousContent){let e=i.content[i.content.length-1];if(!e)throw Error(`There was a problem parsing your system message. Please try a prompt without one.`);return e.parts.push(...u),{mergeWithPreviousContent:!1,content:i.content}}let d=c;(d===`function`||d===`system`&&!n)&&(d=`user`);let f={role:d,parts:u};return{mergeWithPreviousContent:s===`system`&&!n,content:[...i.content,f]}},{content:[],mergeWithPreviousContent:!1}).content}function cJ(e,t){if(!e.candidates||e.candidates.length===0||!e.candidates[0])return{generations:[],llmOutput:{filters:e.promptFeedback}};let[n]=e.candidates,{content:r,...i}=n,a=r?.parts?.reduce((e,t)=>(`functionCall`in t&&t.functionCall&&e.push({...t,id:`id`in t.functionCall&&typeof t.functionCall.id==`string`?t.functionCall.id:Er()}),e),[]),o,s=r?.parts;o=Array.isArray(s)&&s.length===1&&`text`in s[0]&&s[0].text&&!s[0].thought?s[0].text:Array.isArray(s)&&s.length>0?s.map(e=>e.thought&&`text`in e&&e.text?{type:`thinking`,thinking:e.text,...e.thoughtSignature?{signature:e.thoughtSignature}:{}}:`text`in e?{type:`text`,text:e.text}:`inlineData`in e?{type:`inlineData`,inlineData:e.inlineData}:`functionCall`in e?{type:`functionCall`,functionCall:e.functionCall}:`functionResponse`in e?{type:`functionResponse`,functionResponse:e.functionResponse}:`fileData`in e?{type:`fileData`,fileData:e.fileData}:`executableCode`in e?{type:`executableCode`,executableCode:e.executableCode}:`codeExecutionResult`in e?{type:`codeExecutionResult`,codeExecutionResult:e.codeExecutionResult}:e):[];let c=a?.reduce((e,t)=>(`thoughtSignature`in t&&typeof t.thoughtSignature==`string`&&(e[t.id]=t.thoughtSignature),e),{}),l=``;return typeof o==`string`?l=o:Array.isArray(o)&&o.length>0&&(l=o.find(e=>`text`in e)?.text??l),{generations:[{text:l,message:new k({content:o??``,tool_calls:a?.map(e=>({type:`tool_call`,id:e.id,name:e.functionCall.name,args:e.functionCall.args})),additional_kwargs:{...i,[Xq]:c},usage_metadata:t?.usageMetadata}),generationInfo:i}],llmOutput:{tokenUsage:{promptTokens:t?.usageMetadata?.input_tokens,completionTokens:t?.usageMetadata?.output_tokens,totalTokens:t?.usageMetadata?.total_tokens}}}}function lJ(e,t){if(!e.candidates||e.candidates.length===0)return null;let[n]=e.candidates,{content:r,...i}=n,a=r.parts?.reduce((e,t)=>(`functionCall`in t&&t.functionCall&&e.push({...t,id:`id`in t.functionCall&&typeof t.functionCall.id==`string`?t.functionCall.id:Er()}),e),[]),o,s=r?.parts;o=Array.isArray(s)&&s.every(e=>`text`in e&&!e.thought)?s.map(e=>e.text).join(``):Array.isArray(s)?s.map(e=>e.thought&&`text`in e&&e.text?{type:`thinking`,thinking:e.text,...e.thoughtSignature?{signature:e.thoughtSignature}:{}}:`text`in e?{type:`text`,text:e.text}:`inlineData`in e?{type:`inlineData`,inlineData:e.inlineData}:`functionCall`in e?{type:`functionCall`,functionCall:e.functionCall}:`functionResponse`in e?{type:`functionResponse`,functionResponse:e.functionResponse}:`fileData`in e?{type:`fileData`,fileData:e.fileData}:`executableCode`in e?{type:`executableCode`,executableCode:e.executableCode}:`codeExecutionResult`in e?{type:`codeExecutionResult`,codeExecutionResult:e.codeExecutionResult}:e):[];let c=``;o&&typeof o==`string`?c=o:Array.isArray(o)&&(c=o.find(e=>`text`in e)?.text??``);let l=[];a&&l.push(...a.map(e=>({type:`tool_call_chunk`,id:e.id,name:e.functionCall.name,args:JSON.stringify(e.functionCall.args)})));let u=a?.reduce((e,t)=>(`thoughtSignature`in t&&typeof t.thoughtSignature==`string`&&(e[t.id]=t.thoughtSignature),e),{});return new Ju({text:c,message:new un({content:o||``,name:r?r.role:void 0,tool_call_chunks:l,additional_kwargs:{[Xq]:u},response_metadata:{model_provider:`google-genai`},usage_metadata:t.usageMetadata}),generationInfo:i})}function uJ(e){return e.every(e=>`functionDeclarations`in e&&Array.isArray(e.functionDeclarations))?e:[{functionDeclarations:e.map(e=>{if(Ek(e)){let t=qq(e.schema);return t.type===`object`&&`properties`in t&&Object.keys(t.properties).length===0?{name:e.name,description:e.description}:(Yq(t,e.name),{name:e.name,description:e.description,parameters:t})}if(hT(e)){let t=Jq(e.function.parameters);return Yq(t,e.function.name),{name:e.function.name,description:e.function.description??`A function available to call.`,parameters:t}}return e})}]}function dJ(e,t){let n={input_tokens:e?.promptTokenCount??0,output_tokens:e?.candidatesTokenCount??0,total_tokens:e?.totalTokenCount??0};if(e?.cachedContentTokenCount&&(n.input_token_details??={},n.input_token_details.cache_read=e.cachedContentTokenCount),t===`gemini-3-pro-preview`){let t=Math.max(0,e?.promptTokenCount??-2e5),r=Math.max(0,e?.cachedContentTokenCount??-2e5);t&&(n.input_token_details={...n.input_token_details,over_200k:t}),r&&(n.input_token_details={...n.input_token_details,cache_read_over_200k:r})}return n}async function*fJ(e,t={}){let n=t.streamUsage??!0,r=new Map,i=new Map,a=0,o=!1,s,c=`stop`,l=(e,t)=>{let n=i.get(e);if(n!==void 0)return{index:n,isNew:!1};let o=a++;return i.set(e,o),r.set(o,{...t}),{index:o,isNew:!0}};for await(let i of e){o||(o=!0,yield{event:`message-start`}),n&&`usageMetadata`in i&&i.usageMetadata&&(s=dJ(i.usageMetadata,t.model??``),yield{event:`usage`,usage:s});let e=i.candidates?.[0];e?.finishReason&&(c=pJ(e.finishReason));let a=e?.content?.parts;if(!a)continue;let u=0;for(let e of a)if(`text`in e&&e.text)if(`thought`in e&&e.thought){let{index:t,isNew:n}=l(`reasoning`,{type:`reasoning`,reasoning:``});n&&(yield{event:`content-block-start`,index:t,content:{type:`reasoning`,reasoning:``}});let i=r.get(t);i.reasoning=(i.reasoning??``)+e.text,yield{event:`content-block-delta`,index:t,delta:{type:`reasoning-delta`,reasoning:e.text}}}else{let{index:t,isNew:n}=l(`text`,{type:`text`,text:``});n&&(yield{event:`content-block-start`,index:t,content:{type:`text`,text:``}});let i=r.get(t);i.text=(i.text??``)+e.text,yield{event:`content-block-delta`,index:t,delta:{type:`text-delta`,text:e.text}}}else if(`functionCall`in e&&e.functionCall){let t=`tool:${u}`,n=JSON.stringify(e.functionCall.args??{}),{index:i,isNew:a}=l(t,{type:`tool_call_chunk`,name:e.functionCall.name,args:``,index:u});a&&(yield{event:`content-block-start`,index:i,content:{type:`tool_call_chunk`,name:e.functionCall.name,args:``,index:u}});let o=r.get(i);o.args=n,yield{event:`content-block-delta`,index:i,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,name:o.name,args:o.args}}},u+=1}}for(let[e,t]of r)yield{event:`content-block-finish`,index:e,content:TE(t)};yield{event:`message-finish`,reason:c,...s?{usage:s}:{},responseMetadata:{model_provider:`google-genai`}}}function pJ(e){switch(e.toLowerCase()){case`max_tokens`:case`max-token`:case`max_token`:return`length`;case`safety`:case`recitation`:case`language`:case`blocklist`:case`prohibited_content`:case`prohibited-content`:case`spii`:case`image_safety`:case`image-safety`:case`image_prohibited_content`:case`image-prohibited-content`:case`image_recitation`:case`image-recitation`:return`content_filter`;default:return`stop`}}var mJ=class extends xT{static lc_name(){return`GoogleGenerativeAIToolsOutputParser`}lc_namespace=[`langchain`,`google_genai`,`output_parsers`];returnId=!1;keyName;returnSingle=!1;zodSchema;serializableSchema;constructor(e){super(e),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,this.zodSchema=e.zodSchema,this.serializableSchema=e.serializableSchema}async _validateResult(e){if(this.serializableSchema!==void 0){let t=await this.serializableSchema[`~standard`].validate(e);if(t.issues)throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.issues)}`,JSON.stringify(e,null,2));return t.value}if(this.zodSchema===void 0)return e;let t=await u_(this.zodSchema,e);if(t.success)return t.data;throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error.issues)}`,JSON.stringify(e,null,2))}async parseResult(e){let t=e.flatMap(e=>{let{message:t}=e;return!(`tool_calls`in t)||!Array.isArray(t.tool_calls)?[]:t.tool_calls});if(t[0]===void 0)throw Error(`No parseable tool calls provided to GoogleGenerativeAIToolsOutputParser.`);let[n]=t;return await this._validateResult(n.args)}},hJ;(function(e){e.STRING=`string`,e.NUMBER=`number`,e.INTEGER=`integer`,e.BOOLEAN=`boolean`,e.ARRAY=`array`,e.OBJECT=`object`})(hJ||={});var gJ;(function(e){e.LANGUAGE_UNSPECIFIED=`language_unspecified`,e.PYTHON=`python`})(gJ||={});var _J;(function(e){e.OUTCOME_UNSPECIFIED=`outcome_unspecified`,e.OUTCOME_OK=`outcome_ok`,e.OUTCOME_FAILED=`outcome_failed`,e.OUTCOME_DEADLINE_EXCEEDED=`outcome_deadline_exceeded`})(_J||={});var vJ=[`user`,`model`,`function`,`system`],yJ;(function(e){e.HARM_CATEGORY_UNSPECIFIED=`HARM_CATEGORY_UNSPECIFIED`,e.HARM_CATEGORY_HATE_SPEECH=`HARM_CATEGORY_HATE_SPEECH`,e.HARM_CATEGORY_SEXUALLY_EXPLICIT=`HARM_CATEGORY_SEXUALLY_EXPLICIT`,e.HARM_CATEGORY_HARASSMENT=`HARM_CATEGORY_HARASSMENT`,e.HARM_CATEGORY_DANGEROUS_CONTENT=`HARM_CATEGORY_DANGEROUS_CONTENT`,e.HARM_CATEGORY_CIVIC_INTEGRITY=`HARM_CATEGORY_CIVIC_INTEGRITY`})(yJ||={});var bJ;(function(e){e.HARM_BLOCK_THRESHOLD_UNSPECIFIED=`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,e.BLOCK_LOW_AND_ABOVE=`BLOCK_LOW_AND_ABOVE`,e.BLOCK_MEDIUM_AND_ABOVE=`BLOCK_MEDIUM_AND_ABOVE`,e.BLOCK_ONLY_HIGH=`BLOCK_ONLY_HIGH`,e.BLOCK_NONE=`BLOCK_NONE`})(bJ||={});var xJ;(function(e){e.HARM_PROBABILITY_UNSPECIFIED=`HARM_PROBABILITY_UNSPECIFIED`,e.NEGLIGIBLE=`NEGLIGIBLE`,e.LOW=`LOW`,e.MEDIUM=`MEDIUM`,e.HIGH=`HIGH`})(xJ||={});var SJ;(function(e){e.BLOCKED_REASON_UNSPECIFIED=`BLOCKED_REASON_UNSPECIFIED`,e.SAFETY=`SAFETY`,e.OTHER=`OTHER`})(SJ||={});var CJ;(function(e){e.FINISH_REASON_UNSPECIFIED=`FINISH_REASON_UNSPECIFIED`,e.STOP=`STOP`,e.MAX_TOKENS=`MAX_TOKENS`,e.SAFETY=`SAFETY`,e.RECITATION=`RECITATION`,e.LANGUAGE=`LANGUAGE`,e.BLOCKLIST=`BLOCKLIST`,e.PROHIBITED_CONTENT=`PROHIBITED_CONTENT`,e.SPII=`SPII`,e.MALFORMED_FUNCTION_CALL=`MALFORMED_FUNCTION_CALL`,e.OTHER=`OTHER`})(CJ||={});var wJ;(function(e){e.TASK_TYPE_UNSPECIFIED=`TASK_TYPE_UNSPECIFIED`,e.RETRIEVAL_QUERY=`RETRIEVAL_QUERY`,e.RETRIEVAL_DOCUMENT=`RETRIEVAL_DOCUMENT`,e.SEMANTIC_SIMILARITY=`SEMANTIC_SIMILARITY`,e.CLASSIFICATION=`CLASSIFICATION`,e.CLUSTERING=`CLUSTERING`})(wJ||={});var TJ;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.AUTO=`AUTO`,e.ANY=`ANY`,e.NONE=`NONE`})(TJ||={});var EJ;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.MODE_DYNAMIC=`MODE_DYNAMIC`})(EJ||={});var DJ=class extends Error{constructor(e){super(`[GoogleGenerativeAI Error]: ${e}`)}},OJ=class extends DJ{constructor(e,t){super(e),this.response=t}},kJ=class extends DJ{constructor(e,t,n,r){super(e),this.status=t,this.statusText=n,this.errorDetails=r}},AJ=class extends DJ{},jJ=class extends DJ{},MJ=`https://generativelanguage.googleapis.com`,NJ=`v1beta`,PJ=`0.24.1`,FJ=`genai-js`,IJ;(function(e){e.GENERATE_CONTENT=`generateContent`,e.STREAM_GENERATE_CONTENT=`streamGenerateContent`,e.COUNT_TOKENS=`countTokens`,e.EMBED_CONTENT=`embedContent`,e.BATCH_EMBED_CONTENTS=`batchEmbedContents`})(IJ||={});var LJ=class{constructor(e,t,n,r,i){this.model=e,this.task=t,this.apiKey=n,this.stream=r,this.requestOptions=i}toString(){let e=this.requestOptions?.apiVersion||NJ,t=`${this.requestOptions?.baseUrl||MJ}/${e}/${this.model}:${this.task}`;return this.stream&&(t+=`?alt=sse`),t}};function RJ(e){let t=[];return e?.apiClient&&t.push(e.apiClient),t.push(`${FJ}/${PJ}`),t.join(` `)}async function zJ(e){let t=new Headers;t.append(`Content-Type`,`application/json`),t.append(`x-goog-api-client`,RJ(e.requestOptions)),t.append(`x-goog-api-key`,e.apiKey);let n=e.requestOptions?.customHeaders;if(n){if(!(n instanceof Headers))try{n=new Headers(n)}catch(e){throw new AJ(`unable to convert customHeaders value ${JSON.stringify(n)} to Headers: ${e.message}`)}for(let[e,r]of n.entries()){if(e===`x-goog-api-key`)throw new AJ(`Cannot set reserved header name ${e}`);if(e===`x-goog-api-client`)throw new AJ(`Header name ${e} can only be set using the apiClient field`);t.append(e,r)}}return t}async function BJ(e,t,n,r,i,a){let o=new LJ(e,t,n,r,a);return{url:o.toString(),fetchOptions:Object.assign(Object.assign({},GJ(a)),{method:`POST`,headers:await zJ(o),body:i})}}async function VJ(e,t,n,r,i,a={},o=fetch){let{url:s,fetchOptions:c}=await BJ(e,t,n,r,i,a);return HJ(s,c,o)}async function HJ(e,t,n=fetch){let r;try{r=await n(e,t)}catch(t){UJ(t,e)}return r.ok||await WJ(r,e),r}function UJ(e,t){let n=e;throw n.name===`AbortError`?(n=new jJ(`Request aborted when fetching ${t.toString()}: ${e.message}`),n.stack=e.stack):e instanceof kJ||e instanceof AJ||(n=new DJ(`Error fetching from ${t.toString()}: ${e.message}`),n.stack=e.stack),n}async function WJ(e,t){let n=``,r;try{let t=await e.json();n=t.error.message,t.error.details&&(n+=` ${JSON.stringify(t.error.details)}`,r=t.error.details)}catch{}throw new kJ(`Error fetching from ${t.toString()}: [${e.status} ${e.statusText}] ${n}`,e.status,e.statusText,r)}function GJ(e){let t={};if(e?.signal!==void 0||e?.timeout>=0){let n=new AbortController;e?.timeout>=0&&setTimeout(()=>n.abort(),e.timeout),e?.signal&&e.signal.addEventListener(`abort`,()=>{n.abort()}),t.signal=n.signal}return t}function KJ(e){return e.text=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning text from the first candidate only. Access response.candidates directly to use the other candidates.`),XJ(e.candidates[0]))throw new OJ(`${ZJ(e)}`,e);return qJ(e)}else if(e.promptFeedback)throw new OJ(`Text not available. ${ZJ(e)}`,e);return``},e.functionCall=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),XJ(e.candidates[0]))throw new OJ(`${ZJ(e)}`,e);return console.warn(`response.functionCall() is deprecated. Use response.functionCalls() instead.`),JJ(e)[0]}else if(e.promptFeedback)throw new OJ(`Function call not available. ${ZJ(e)}`,e)},e.functionCalls=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),XJ(e.candidates[0]))throw new OJ(`${ZJ(e)}`,e);return JJ(e)}else if(e.promptFeedback)throw new OJ(`Function call not available. ${ZJ(e)}`,e)},e}function qJ(e){let t=[];if(e.candidates?.[0].content?.parts)for(let n of e.candidates?.[0].content?.parts)n.text&&t.push(n.text),n.executableCode&&t.push("\n```"+n.executableCode.language+`
|
|
213
|
+
`+n.executableCode.code+"\n```\n"),n.codeExecutionResult&&t.push("\n```\n"+n.codeExecutionResult.output+"\n```\n");return t.length>0?t.join(``):``}function JJ(e){let t=[];if(e.candidates?.[0].content?.parts)for(let n of e.candidates?.[0].content?.parts)n.functionCall&&t.push(n.functionCall);if(t.length>0)return t}var YJ=[CJ.RECITATION,CJ.SAFETY,CJ.LANGUAGE];function XJ(e){return!!e.finishReason&&YJ.includes(e.finishReason)}function ZJ(e){let t=``;if((!e.candidates||e.candidates.length===0)&&e.promptFeedback)t+=`Response was blocked`,e.promptFeedback?.blockReason&&(t+=` due to ${e.promptFeedback.blockReason}`),e.promptFeedback?.blockReasonMessage&&(t+=`: ${e.promptFeedback.blockReasonMessage}`);else if(e.candidates?.[0]){let n=e.candidates[0];XJ(n)&&(t+=`Candidate was blocked due to ${n.finishReason}`,n.finishMessage&&(t+=`: ${n.finishMessage}`))}return t}function QJ(e){return this instanceof QJ?(this.v=e,this):new QJ(e)}function $J(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i={},o(`next`),o(`throw`),o(`return`),i[Symbol.asyncIterator]=function(){return this},i;function o(e){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||s(e,t)})})}function s(e,t){try{c(r[e](t))}catch(e){d(a[0][3],e)}}function c(e){e.value instanceof QJ?Promise.resolve(e.value.v).then(l,u):d(a[0][2],e)}function l(e){s(`next`,e)}function u(e){s(`throw`,e)}function d(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}var eY=/^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/;function tY(e){let[t,n]=iY(e.body.pipeThrough(new TextDecoderStream(`utf8`,{fatal:!0}))).tee();return{stream:rY(t),response:nY(n)}}async function nY(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return KJ(aY(t));t.push(r)}}function rY(e){return $J(this,arguments,function*(){let t=e.getReader();for(;;){let{value:e,done:n}=yield QJ(t.read());if(n)break;yield yield QJ(KJ(e))}})}function iY(e){let t=e.getReader();return new ReadableStream({start(e){let n=``;return r();function r(){return t.read().then(({value:t,done:i})=>{if(i){if(n.trim()){e.error(new DJ(`Failed to parse stream`));return}e.close();return}n+=t;let a=n.match(eY),o;for(;a;){try{o=JSON.parse(a[1])}catch{e.error(new DJ(`Error parsing JSON response: "${a[1]}"`));return}e.enqueue(o),n=n.substring(a[0].length),a=n.match(eY)}return r()}).catch(e=>{let t=e;throw t.stack=e.stack,t=t.name===`AbortError`?new jJ(`Request aborted when reading from the stream`):new DJ(`Error reading from the stream`),t})}}})}function aY(e){let t={promptFeedback:e[e.length-1]?.promptFeedback};for(let n of e){if(n.candidates){let e=0;for(let r of n.candidates)if(t.candidates||=[],t.candidates[e]||(t.candidates[e]={index:e}),t.candidates[e].citationMetadata=r.citationMetadata,t.candidates[e].groundingMetadata=r.groundingMetadata,t.candidates[e].finishReason=r.finishReason,t.candidates[e].finishMessage=r.finishMessage,t.candidates[e].safetyRatings=r.safetyRatings,r.content&&r.content.parts){t.candidates[e].content||(t.candidates[e].content={role:r.content.role||`user`,parts:[]});let n={};for(let i of r.content.parts)i.text&&(n.text=i.text),i.functionCall&&(n.functionCall=i.functionCall),i.executableCode&&(n.executableCode=i.executableCode),i.codeExecutionResult&&(n.codeExecutionResult=i.codeExecutionResult),Object.keys(n).length===0&&(n.text=``),t.candidates[e].content.parts.push(n)}e++}n.usageMetadata&&(t.usageMetadata=n.usageMetadata)}return t}async function oY(e,t,n,r){return tY(await VJ(t,IJ.STREAM_GENERATE_CONTENT,e,!0,JSON.stringify(n),r))}async function sY(e,t,n,r){return{response:KJ(await(await VJ(t,IJ.GENERATE_CONTENT,e,!1,JSON.stringify(n),r)).json())}}function cY(e){if(e!=null){if(typeof e==`string`)return{role:`system`,parts:[{text:e}]};if(e.text)return{role:`system`,parts:[e]};if(e.parts)return e.role?e:{role:`system`,parts:e.parts}}}function lY(e){let t=[];if(typeof e==`string`)t=[{text:e}];else for(let n of e)typeof n==`string`?t.push({text:n}):t.push(n);return uY(t)}function uY(e){let t={role:`user`,parts:[]},n={role:`function`,parts:[]},r=!1,i=!1;for(let a of e)`functionResponse`in a?(n.parts.push(a),i=!0):(t.parts.push(a),r=!0);if(r&&i)throw new DJ(`Within a single message, FunctionResponse cannot be mixed with other type of part in the request for sending chat message.`);if(!r&&!i)throw new DJ(`No content is provided for sending chat message.`);return r?t:n}function dY(e,t){let n={model:t?.model,generationConfig:t?.generationConfig,safetySettings:t?.safetySettings,tools:t?.tools,toolConfig:t?.toolConfig,systemInstruction:t?.systemInstruction,cachedContent:t?.cachedContent?.name,contents:[]},r=e.generateContentRequest!=null;if(e.contents){if(r)throw new AJ(`CountTokensRequest must have one of contents or generateContentRequest, not both.`);n.contents=e.contents}else if(r)n=Object.assign(Object.assign({},n),e.generateContentRequest);else{let t=lY(e);n.contents=[t]}return{generateContentRequest:n}}function fY(e){let t;return t=e.contents?e:{contents:[lY(e)]},e.systemInstruction&&(t.systemInstruction=cY(e.systemInstruction)),t}function pY(e){return typeof e==`string`||Array.isArray(e)?{content:lY(e)}:e}var mY=[`text`,`inlineData`,`functionCall`,`functionResponse`,`executableCode`,`codeExecutionResult`],hY={user:[`text`,`inlineData`],function:[`functionResponse`],model:[`text`,`functionCall`,`executableCode`,`codeExecutionResult`],system:[`text`]};function gY(e){let t=!1;for(let n of e){let{role:e,parts:r}=n;if(!t&&e!==`user`)throw new DJ(`First content should be with role 'user', got ${e}`);if(!vJ.includes(e))throw new DJ(`Each item should include role field. Got ${e} but valid roles are: ${JSON.stringify(vJ)}`);if(!Array.isArray(r))throw new DJ(`Content should have 'parts' property with an array of Parts`);if(r.length===0)throw new DJ(`Each Content should have at least one part`);let i={text:0,inlineData:0,functionCall:0,functionResponse:0,fileData:0,executableCode:0,codeExecutionResult:0};for(let e of r)for(let t of mY)t in e&&(i[t]+=1);let a=hY[e];for(let t of mY)if(!a.includes(t)&&i[t]>0)throw new DJ(`Content with role '${e}' can't contain '${t}' part`);t=!0}}function _Y(e){if(e.candidates===void 0||e.candidates.length===0)return!1;let t=e.candidates[0]?.content;if(t===void 0||t.parts===void 0||t.parts.length===0)return!1;for(let e of t.parts)if(e===void 0||Object.keys(e).length===0||e.text!==void 0&&e.text===``)return!1;return!0}var vY=`SILENT_ERROR`,yY=class{constructor(e,t,n,r={}){this.model=t,this.params=n,this._requestOptions=r,this._history=[],this._sendPromise=Promise.resolve(),this._apiKey=e,n?.history&&(gY(n.history),this._history=n.history)}async getHistory(){return await this._sendPromise,this._history}async sendMessage(e,t={}){await this._sendPromise;let n=lY(e),r={safetySettings:this.params?.safetySettings,generationConfig:this.params?.generationConfig,tools:this.params?.tools,toolConfig:this.params?.toolConfig,systemInstruction:this.params?.systemInstruction,cachedContent:this.params?.cachedContent,contents:[...this._history,n]},i=Object.assign(Object.assign({},this._requestOptions),t),a;return this._sendPromise=this._sendPromise.then(()=>sY(this._apiKey,this.model,r,i)).then(e=>{if(_Y(e.response)){this._history.push(n);let t=Object.assign({parts:[],role:`model`},e.response.candidates?.[0].content);this._history.push(t)}else{let t=ZJ(e.response);t&&console.warn(`sendMessage() was unsuccessful. ${t}. Inspect response object for details.`)}a=e}).catch(e=>{throw this._sendPromise=Promise.resolve(),e}),await this._sendPromise,a}async sendMessageStream(e,t={}){await this._sendPromise;let n=lY(e),r={safetySettings:this.params?.safetySettings,generationConfig:this.params?.generationConfig,tools:this.params?.tools,toolConfig:this.params?.toolConfig,systemInstruction:this.params?.systemInstruction,cachedContent:this.params?.cachedContent,contents:[...this._history,n]},i=Object.assign(Object.assign({},this._requestOptions),t),a=oY(this._apiKey,this.model,r,i);return this._sendPromise=this._sendPromise.then(()=>a).catch(e=>{throw Error(vY)}).then(e=>e.response).then(e=>{if(_Y(e)){this._history.push(n);let t=Object.assign({},e.candidates[0].content);t.role||=`model`,this._history.push(t)}else{let t=ZJ(e);t&&console.warn(`sendMessageStream() was unsuccessful. ${t}. Inspect response object for details.`)}}).catch(e=>{e.message!==vY&&console.error(e)}),a}};async function bY(e,t,n,r){return(await VJ(t,IJ.COUNT_TOKENS,e,!1,JSON.stringify(n),r)).json()}async function xY(e,t,n,r){return(await VJ(t,IJ.EMBED_CONTENT,e,!1,JSON.stringify(n),r)).json()}async function SY(e,t,n,r){let i=n.requests.map(e=>Object.assign(Object.assign({},e),{model:t}));return(await VJ(t,IJ.BATCH_EMBED_CONTENTS,e,!1,JSON.stringify({requests:i}),r)).json()}var CY=class{constructor(e,t,n={}){this.apiKey=e,this._requestOptions=n,t.model.includes(`/`)?this.model=t.model:this.model=`models/${t.model}`,this.generationConfig=t.generationConfig||{},this.safetySettings=t.safetySettings||[],this.tools=t.tools,this.toolConfig=t.toolConfig,this.systemInstruction=cY(t.systemInstruction),this.cachedContent=t.cachedContent}async generateContent(e,t={}){let n=fY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return sY(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:this.cachedContent?.name},n),r)}async generateContentStream(e,t={}){let n=fY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return oY(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:this.cachedContent?.name},n),r)}startChat(e){return new yY(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:this.cachedContent?.name},e),this._requestOptions)}async countTokens(e,t={}){let n=dY(e,{model:this.model,generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:this.cachedContent}),r=Object.assign(Object.assign({},this._requestOptions),t);return bY(this.apiKey,this.model,n,r)}async embedContent(e,t={}){let n=pY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return xY(this.apiKey,this.model,n,r)}async batchEmbedContents(e,t={}){let n=Object.assign(Object.assign({},this._requestOptions),t);return SY(this.apiKey,this.model,e,n)}},wY=class{constructor(e){this.apiKey=e}getGenerativeModel(e,t){if(!e.model)throw new DJ(`Must provide a model name. Example: genai.getGenerativeModel({ model: 'my-model-name' })`);return new CY(this.apiKey,e,t)}getGenerativeModelFromCachedContent(e,t,n){if(!e.name)throw new AJ("Cached content must contain a `name` field.");if(!e.model)throw new AJ("Cached content must contain a `model` field.");for(let n of[`model`,`systemInstruction`])if(t?.[n]&&e[n]&&t?.[n]!==e[n]){if(n===`model`&&(t.model.startsWith(`models/`)?t.model.replace(`models/`,``):t.model)===(e.model.startsWith(`models/`)?e.model.replace(`models/`,``):e.model))continue;throw new AJ(`Different value for "${n}" specified in modelParams (${t[n]}) and cachedContent (${e[n]})`)}let r=Object.assign(Object.assign({},t),{model:e.model,tools:e.tools,toolConfig:e.toolConfig,systemInstruction:e.systemInstruction,cachedContent:e});return new CY(this.apiKey,r,n)}};function TY(e,t){let n=EY(e);return{tools:n,toolConfig:OY(n,t)}}function EY(e){let t=[],n=[];return e.forEach(e=>{if(Ek(e)){let[n]=uJ([e]);n.functionDeclarations&&t.push(...n.functionDeclarations)}else if(hT(e)){let{functionDeclarations:n}=DY(e);if(n)t.push(...n);else throw Error(`Failed to convert OpenAI structured tool to GenerativeAI tool`)}else n.push(e)}),n.find(e=>`functionDeclarations`in e)?n.map(e=>{if(t?.length>0&&`functionDeclarations`in e){let n={functionDeclarations:[...e.functionDeclarations||[],...t]};return t=[],n}return e}):[...n,...t.length>0?[{functionDeclarations:t}]:[]]}function DY(e){return{functionDeclarations:[{name:e.function.name,description:e.function.description,parameters:Kq(e.function.parameters)}]}}function OY(e,t){if(!e.length||!t)return;let{toolChoice:n,allowedFunctionNames:r}=t,i={any:TJ.ANY,auto:TJ.AUTO,none:TJ.NONE};if(n&&[`any`,`auto`,`none`].includes(n))return{functionCallingConfig:{mode:i[n]??`MODE_UNSPECIFIED`,allowedFunctionNames:r}};if(typeof n==`string`||r)return{functionCallingConfig:{mode:TJ.ANY,allowedFunctionNames:[...r??[],...n&&typeof n==`string`?[n]:[]]}}}var kY={"gemini-embedding-001":{maxInputTokens:2048,imageInputs:!1,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:3072,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!1},"gemini-2.5-flash-lite-preview-09-2025":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-pro-preview-06-05":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-flash-preview-04-17":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-2.5-flash-preview-09-2025":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-pro-preview-05-06":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-flash-preview-05-20":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-flash":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-live-2.5-flash":{maxInputTokens:128e3,imageInputs:!0,audioInputs:!0,pdfInputs:!1,videoInputs:!0,maxOutputTokens:8e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!0,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-3-flash-preview":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-live-2.5-flash-preview-native-audio":{maxInputTokens:131072,imageInputs:!1,audioInputs:!0,pdfInputs:!1,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!0,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-2.5-flash-lite":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-flash-preview-tts":{maxInputTokens:8e3,imageInputs:!1,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:16e3,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!0,videoOutputs:!1,toolCalling:!1,structuredOutput:!1},"gemini-flash-latest":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-flash-lite-preview-06-17":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-2.5-flash-image":{maxInputTokens:32768,imageInputs:!0,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!0,imageOutputs:!0,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!1},"gemini-2.5-pro-preview-tts":{maxInputTokens:8e3,imageInputs:!1,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:16e3,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!0,videoOutputs:!1,toolCalling:!1,structuredOutput:!1},"gemini-2.5-flash-image-preview":{maxInputTokens:32768,imageInputs:!0,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!0,imageOutputs:!0,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!1},"gemini-1.5-flash-8b":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!0,pdfInputs:!1,videoInputs:!0,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-3-pro-preview":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.0-flash-lite":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-1.5-flash":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!0,pdfInputs:!1,videoInputs:!0,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1},"gemini-flash-lite-latest":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.5-pro":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-2.0-flash":{maxInputTokens:1048576,imageInputs:!0,audioInputs:!0,pdfInputs:!0,videoInputs:!0,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0},"gemini-1.5-pro":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!0,pdfInputs:!1,videoInputs:!0,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1}},AY=class extends AE{static lc_name(){return`ChatGoogleGenerativeAI`}lc_serializable=!0;get lc_secrets(){return{apiKey:`GOOGLE_API_KEY`}}lc_namespace=[`langchain`,`chat_models`,`google_genai`];get lc_aliases(){return{apiKey:`google_api_key`}}model;temperature;maxOutputTokens;topP;topK;stopSequences=[];safetySettings;apiKey;streaming=!1;json;streamUsage=!0;convertSystemMessageToHumanContent;thinkingConfig;client;get _isMultimodalModel(){return this.model.includes(`vision`)||this.model.startsWith(`gemini-1.5`)||this.model.startsWith(`gemini-2`)||this.model.startsWith(`gemma-3-`)&&!this.model.startsWith(`gemma-3-1b`)||this.model.startsWith(`gemini-3`)}constructor(e,t){let n=typeof e==`string`?{...t??{},model:e}:e;if(super(n),this._addVersion(`@langchain/google-genai`,`2.2.0`),this.model=n.model.replace(/^models\//,``),this.maxOutputTokens=n.maxOutputTokens??this.maxOutputTokens,this.maxOutputTokens&&this.maxOutputTokens<0)throw Error("`maxOutputTokens` must be a positive integer");if(this.temperature=n.temperature??this.temperature,this.temperature&&(this.temperature<0||this.temperature>2))throw Error("`temperature` must be in the range of [0.0,2.0]");if(this.topP=n.topP??this.topP,this.topP&&this.topP<0)throw Error("`topP` must be a positive integer");if(this.topP&&this.topP>1)throw Error("`topP` must be below 1.");if(this.topK=n.topK??this.topK,this.topK&&this.topK<0)throw Error("`topK` must be a positive integer");if(this.stopSequences=n.stopSequences??this.stopSequences,this.apiKey=n.apiKey??Vr(`GOOGLE_API_KEY`),!this.apiKey)throw Error("Please set an API key for Google GenerativeAI in the environment variable GOOGLE_API_KEY or in the `apiKey` field of the ChatGoogleGenerativeAI constructor");if(this.safetySettings=n.safetySettings??this.safetySettings,this.safetySettings&&this.safetySettings.length>0&&new Set(this.safetySettings.map(e=>e.category)).size!==this.safetySettings.length)throw Error("The categories in `safetySettings` array must be unique");this.streaming=n.streaming??this.streaming,this.json=n.json,this.thinkingConfig=n.thinkingConfig??this.thinkingConfig,this.client=new wY(this.apiKey).getGenerativeModel({model:this.model,safetySettings:this.safetySettings,generationConfig:{stopSequences:this.stopSequences,maxOutputTokens:this.maxOutputTokens,temperature:this.temperature,topP:this.topP,topK:this.topK,...this.json?{responseMimeType:`application/json`}:{},...this.thinkingConfig?{thinkingConfig:this.thinkingConfig}:{}}},{apiVersion:n.apiVersion,baseUrl:n.baseUrl,customHeaders:n.customHeaders}),this.streamUsage=n.streamUsage??this.streamUsage}useCachedContent(e,t,n){this.apiKey&&(this.client=new wY(this.apiKey).getGenerativeModelFromCachedContent(e,t,n))}get useSystemInstruction(){return typeof this.convertSystemMessageToHumanContent==`boolean`?!this.convertSystemMessageToHumanContent:this.computeUseSystemInstruction}get computeUseSystemInstruction(){return this.model!==`gemini-1.0-pro-001`&&!this.model.startsWith(`gemini-pro-vision`)&&!this.model.startsWith(`gemini-1.0-pro-vision`)&&this.model!==`gemini-pro`}getLsParams(e){return{ls_provider:`google_genai`,ls_model_name:this.model,ls_model_type:`chat`,ls_temperature:this.client.generationConfig.temperature,ls_max_tokens:this.client.generationConfig.maxOutputTokens,ls_stop:e.stop}}_combineLLMOutput(){return[]}_llmType(){return`googlegenerativeai`}bindTools(e,t){return this.withConfig({tools:TY(e)?.tools,...t})}invocationParams(e){let t=e?.tools?.length?TY(e.tools,{toolChoice:e.tool_choice,allowedFunctionNames:e.allowedFunctionNames}):void 0;return{...t?.tools?{tools:t.tools}:{},...t?.toolConfig?{toolConfig:t.toolConfig}:{},generationConfig:{stopSequences:this.stopSequences,maxOutputTokens:this.maxOutputTokens,temperature:this.temperature,topP:this.topP,topK:this.topK,...this.json?{responseMimeType:`application/json`}:{},...this.thinkingConfig?{thinkingConfig:this.thinkingConfig}:{},...e?.responseSchema?{responseSchema:e.responseSchema,responseMimeType:`application/json`}:{}}}}_buildGenerateContentRequest(e,t){let n=sJ(e,this._isMultimodalModel,this.useSystemInstruction,this.model),r=n,i;return n[0]?.role===`system`&&([i,...r]=n),{...this.invocationParams(t),...i?{systemInstruction:i}:{},contents:r}}async _generate(e,t,n){if(t.signal?.throwIfAborted(),this.streaming){let r={},i=this._streamResponseChunks(e,t,n),a=[];for await(let e of i){let t=e.generationInfo?.completion??0;a[t]===void 0?a[t]=e:a[t]=a[t].concat(e)}return{generations:a.filter(e=>e!==void 0),llmOutput:{estimatedTokenUsage:r}}}let r=await this.completionWithRetry(this._buildGenerateContentRequest(e,t)),i;`usageMetadata`in r.response&&(i=dJ(r.response.usageMetadata,this.model));let a=cJ(r.response,{usageMetadata:i});return a.generations?.length>0&&await n?.handleLLMNewToken(a.generations[0]?.text??``),a}async*_streamChatModelEvents(e,t,n){let r=this._buildGenerateContentRequest(e,t),i=await this.caller.callWithOptions({signal:t?.signal},async()=>{let{stream:e}=await this.client.generateContentStream(r,{signal:t?.signal});return e}),a=this.streamUsage!==!1&&t.streamUsage!==!1;yield*fJ(async function*(e,t){for await(let n of e){if(t?.aborted)return;yield n}}(i,t.signal),{streamUsage:a,model:this.model})}async*_streamResponseChunks(e,t,n){let r=this._buildGenerateContentRequest(e,t),i=await this.caller.callWithOptions({signal:t?.signal},async()=>{let{stream:e}=await this.client.generateContentStream(r,{signal:t?.signal});return e}),a,o=0,s=0,c=0,l=0;for await(let e of i){if(t.signal?.aborted)return;if(`usageMetadata`in e&&e.usageMetadata!==void 0&&this.streamUsage!==!1&&t.streamUsage!==!1){a=dJ(e.usageMetadata,this.model);let t=e.usageMetadata.promptTokenCount??0;a.input_tokens=Math.max(0,t-o),o=t;let n=e.usageMetadata.candidatesTokenCount??0;a.output_tokens=Math.max(0,n-s),s=n;let r=e.usageMetadata.totalTokenCount??0;a.total_tokens=Math.max(0,r-c),c=r}let r=lJ(e,{usageMetadata:a,index:l});l+=1,r&&(yield r,await n?.handleLLMNewToken(r.text??``))}}async completionWithRetry(e,t){return this.caller.callWithOptions({signal:t?.signal},async()=>{try{return await this.client.generateContent(e,{signal:t?.signal})}catch(e){throw e.message?.includes(`400 Bad Request`)&&(e.status=400),e}})}get profile(){return kY[this.model]??{}}withStructuredOutput(e,t){let n=e,r=t?.name,i=t?.method,a=t?.includeRaw;if(i===`jsonMode`)throw Error(`ChatGoogleGenerativeAI only supports "jsonSchema" or "functionCalling" as a method.`);let o,s;if(i===`functionCalling`){let e=r??`extract`,t;if(o_(n)||Cb(n)){let r=qq(n);t={name:e,description:r.description??`A function available to call.`,parameters:r}}else typeof n.name==`string`&&typeof n.parameters==`object`&&n.parameters!=null?(t=n,t.parameters=Kq(n.parameters),e=n.name):t={name:e,description:n.description??``,parameters:Kq(n)};let i=[{functionDeclarations:[t]}];o=this.bindTools(i).withConfig({allowedFunctionNames:[e]}),s=$T(n,e,mJ)}else{let e=qq(n);o=this.withConfig({responseSchema:e}),s=QT(n)}return eE(o,s,a,a?`StructuredOutputRunnable`:`ChatGoogleGenerativeAIStructuredOutput`)}},jY=class extends xT{static lc_name(){return`AnthropicToolsOutputParser`}lc_namespace=[`langchain`,`anthropic`,`output_parsers`];returnId=!1;keyName;returnSingle=!1;zodSchema;serializableSchema;constructor(e){super(e),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,this.zodSchema=e.zodSchema,this.serializableSchema=e.serializableSchema}async _validateResult(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch(t){throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.message)}`,e)}else t=e;if(this.serializableSchema!==void 0){let e=await this.serializableSchema[`~standard`].validate(t);if(e.issues)throw new CT(`Failed to parse. Text: "${JSON.stringify(t,null,2)}". Error: ${JSON.stringify(e.issues)}`,JSON.stringify(t,null,2));return e.value}if(this.zodSchema===void 0)return t;let n=await u_(this.zodSchema,t);if(n.success)return n.data;throw new CT(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(n.error.issues)}`,JSON.stringify(t,null,2))}async parseResult(e){let t=e.flatMap(e=>{let{message:t}=e;return Array.isArray(t.content)?MY(t.content)[0]:[]});if(t[0]===void 0)throw Error(`No parseable tool calls provided to AnthropicToolsOutputParser.`);let[n]=t;return await this._validateResult(n.args)}};function MY(e){let t=[];for(let n of e)n.type===`tool_use`&&t.push({name:n.name,args:n.input,id:n.id,type:`tool_call`});return t}function NY(e){if(e)return e===`any`||e===`required`?{type:`any`}:e===`auto`?{type:`auto`}:e===`none`?{type:`none`}:typeof e==`string`?{type:`tool`,name:e}:e}var PY=G({cache_control:hj().optional().nullable(),defer_loading:wA().optional(),input_examples:MA(OA()).optional(),allowed_callers:MA(OA()).optional(),strict:wA().optional()}),FY={tool_search_tool_regex_20251119:`advanced-tool-use-2025-11-20`,tool_search_tool_bm25_20251119:`advanced-tool-use-2025-11-20`,memory_20250818:`context-management-2025-06-27`,web_fetch_20250910:`web-fetch-2025-09-10`,code_execution_20250825:`code-execution-2025-08-25`,computer_20251124:`computer-use-2025-11-24`,computer_20250124:`computer-use-2025-01-24`,mcp_toolset:`mcp-client-2025-11-20`};function IY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`thinking`}function LY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`redacted_thinking`}function RY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`compaction`}function zY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`search_result`}function BY(e){return typeof e!=`object`||!e||!(`type`in e)||e.type!==`image`||!(`source`in e)||typeof e.source!=`object`||e.source==null||!(`type`in e.source)?!1:e.source.type===`base64`?!(!(`media_type`in e.source)||typeof e.source.media_type!=`string`||!(`data`in e.source)||typeof e.source.data!=`string`):e.source.type===`url`&&!(!(`url`in e.source)||typeof e.source.url!=`string`)}var VY={providerName:`anthropic`,fromStandardTextBlock(e){return{type:`text`,text:e.text,...`citations`in(e.metadata??{})?{citations:e.metadata.citations}:{},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{}}},fromStandardImageBlock(e){if(e.source_type===`url`){let t=Me({dataUrl:e.url,asTypedArray:!1});return t?{type:`image`,source:{type:`base64`,data:t.data,media_type:t.mime_type},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{}}:{type:`image`,source:{type:`url`,url:e.url},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{}}}else if(e.source_type===`base64`)return{type:`image`,source:{type:`base64`,data:e.data,media_type:e.mime_type??``},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{}};else throw Error(`Unsupported image source type: ${e.source_type}`)},fromStandardFileBlock(e){let t=(e.mime_type??``).split(`;`)[0];if(e.source_type===`url`){if(t===`application/pdf`||t===``)return{type:`document`,source:{type:`url`,url:e.url},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{},...`citations`in(e.metadata??{})?{citations:e.metadata.citations}:{},...`context`in(e.metadata??{})?{context:e.metadata.context}:{},...`title`in(e.metadata??{})?{title:e.metadata.title}:{}};throw Error(`Unsupported file mime type for file url source: ${e.mime_type}`)}else if(e.source_type===`text`){if(t===`text/plain`||t===``)return{type:`document`,source:{type:`text`,data:e.text,media_type:e.mime_type??``},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{},...`citations`in(e.metadata??{})?{citations:e.metadata.citations}:{},...`context`in(e.metadata??{})?{context:e.metadata.context}:{},...`title`in(e.metadata??{})?{title:e.metadata.title}:{}};throw Error(`Unsupported file mime type for file text source: ${e.mime_type}`)}else if(e.source_type===`base64`){if(t===`application/pdf`||t===``)return{type:`document`,source:{type:`base64`,data:e.data,media_type:`application/pdf`},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{},...`citations`in(e.metadata??{})?{citations:e.metadata.citations}:{},...`context`in(e.metadata??{})?{context:e.metadata.context}:{},...`title`in(e.metadata??{})?{title:e.metadata.title}:{}};if([`image/jpeg`,`image/png`,`image/gif`,`image/webp`].includes(t))return{type:`document`,source:{type:`content`,content:[{type:`image`,source:{type:`base64`,data:e.data,media_type:t}}]},...`cache_control`in(e.metadata??{})?{cache_control:e.metadata.cache_control}:{},...`citations`in(e.metadata??{})?{citations:e.metadata.citations}:{},...`context`in(e.metadata??{})?{context:e.metadata.context}:{},...`title`in(e.metadata??{})?{title:e.metadata.title}:{}};throw Error(`Unsupported file mime type for file base64 source: ${e.mime_type}`)}else throw Error(`Unsupported file source type: ${e.source_type}`)}},HY=e=>e();function UY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`citation`}function WY(e){function*t(){for(let t of e)UY(t)&&(t.source===`char`?yield{type:`char_location`,file_id:t.url??``,start_char_index:t.startIndex??0,end_char_index:t.endIndex??0,document_title:t.title??null,document_index:0,cited_text:t.citedText??``}:t.source===`page`?yield{type:`page_location`,file_id:t.url??``,start_page_number:t.startIndex??0,end_page_number:t.endIndex??0,document_title:t.title??null,document_index:0,cited_text:t.citedText??``}:t.source===`block`?yield{type:`content_block_location`,file_id:t.url??``,start_block_index:t.startIndex??0,end_block_index:t.endIndex??0,document_title:t.title??null,document_index:0,cited_text:t.citedText??``}:t.source===`url`?yield{type:`web_search_result_location`,url:t.url??``,title:t.title??null,encrypted_index:String(t.startIndex??0),cited_text:t.citedText??``}:t.source===`search`&&(yield{type:`search_result_location`,title:t.title??null,start_block_index:t.startIndex??0,end_block_index:t.endIndex??0,search_result_index:0,source:t.source??``,cited_text:t.citedText??``}))}return Array.from(t())}function GY(e){return typeof e==`string`?e:KY(e)}function KY(e){let t=[];for(let n=0,{length:r}=e;n<r;n++)t.push(String.fromCharCode(e[n]));return btoa(t.join(``))}function qY(e){return(e??``).split(`;`)[0].toLowerCase()}function JY(e,t){if(typeof e==`object`&&e&&t in e)return e[t]}function YY(e,t){let n=JY(t,`cache_control`);n!==void 0&&(e.cache_control=n);let r=JY(t,`citations`);r!==void 0&&(e.citations=r);let i=JY(t,`context`);i!==void 0&&(e.context=i);let a=JY(t,`title`);return a!==void 0&&(e.title=a),e}function XY(e,t){let n=JY(t,`cache_control`);return n!==void 0&&(e.cache_control=n),e}function ZY(e){return new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]).has(e)}function QY(e){let t=[],n=e.response_metadata,r=`model_provider`in n&&n?.model_provider===`anthropic`;for(let n of e.contentBlocks)if(n.type===`text`)n.annotations?t.push({type:`text`,text:n.text,citations:WY(n.annotations)}):t.push({type:`text`,text:n.text});else if(n.type===`tool_call`)t.push({type:`tool_use`,id:n.id??``,name:n.name,input:n.args});else if(n.type===`tool_call_chunk`){let e=HY(()=>{if(typeof n.args!=`string`)return n.args;try{return JSON.parse(n.args)}catch{return{}}});t.push({type:`tool_use`,id:n.id??``,name:n.name??``,input:e})}else if(n.type===`reasoning`&&r)t.push({type:`thinking`,thinking:n.reasoning,signature:String(n.signature)});else if(n.type===`server_tool_call`&&r)(n.name===`web_search`||n.name===`code_execution`)&&t.push({type:`server_tool_use`,name:n.name,id:n.id??``,input:n.args});else if(n.type===`server_tool_call_result`&&r)if(n.name===`web_search`&&Array.isArray(n.output.urls)){let e=n.output.urls.map(e=>({type:`web_search_result`,title:``,encrypted_content:``,url:e}));t.push({type:`web_search_tool_result`,tool_use_id:n.toolCallId??``,content:e})}else n.name===`code_execution`?t.push({type:`code_execution_tool_result`,tool_use_id:n.toolCallId??``,content:n.output}):n.name===`mcp_tool_result`&&t.push({type:`mcp_tool_result`,tool_use_id:n.toolCallId??``,content:n.output});else if(n.type===`audio`)throw Error(`Anthropic does not support audio content blocks.`);else if(n.type===`file`){let e=n.metadata;if(n.fileId){t.push(YY({type:`document`,source:{type:`file`,file_id:n.fileId}},e));continue}if(n.url){let r=qY(n.mimeType);if(r===`application/pdf`||r===``){t.push(YY({type:`document`,source:{type:`url`,url:n.url}},e));continue}}if(n.data){let r=qY(n.mimeType);if(r===``||r===`application/pdf`)t.push(YY({type:`document`,source:{type:`base64`,data:GY(n.data),media_type:`application/pdf`}},e));else if(r===`text/plain`)t.push(YY({type:`document`,source:{type:`text`,data:GY(n.data),media_type:`text/plain`}},e));else if(ZY(r))t.push(YY({type:`document`,source:{type:`content`,content:[{type:`image`,source:{type:`base64`,data:GY(n.data),media_type:r}}]}},e));else throw Error(`Unsupported file mime type for Anthropic base64 source: ${r}`);continue}throw Error(`File content block must include a fileId, url, or data property.`)}else if(n.type===`image`){let e=n.metadata;if(n.fileId){t.push(XY({type:`image`,source:{type:`file`,file_id:n.fileId}},e));continue}if(n.url){t.push(XY({type:`image`,source:{type:`url`,url:n.url}},e));continue}if(n.data){let r=qY(n.mimeType)||`image/png`;ZY(r)&&t.push(XY({type:`image`,source:{type:`base64`,data:GY(n.data),media_type:r}},e));continue}throw Error(`Image content block must include a fileId, url, or data property.`)}else n.type===`video`||(n.type===`text-plain`?n.data&&t.push(YY({type:`document`,source:{type:`text`,data:GY(n.data),media_type:`text/plain`}},n.metadata)):n.type===`non_standard`&&r&&t.push(n.value));return t}function $Y(e){let t=Me({dataUrl:e});if(t)return{type:`base64`,media_type:t.mime_type,data:t.data};let n;try{n=new URL(e)}catch{throw Error([`Malformed image URL: ${JSON.stringify(e)}. Content blocks of type 'image_url' must be a valid http, https, or base64-encoded data URL.`,`Example: data:image/png;base64,/9j/4AAQSk...`,`Example: https://example.com/image.jpg`].join(`
|
|
214
|
+
|
|
215
|
+
`))}if(n.protocol===`http:`||n.protocol===`https:`)return{type:`url`,url:e};throw Error([`Invalid image URL protocol: ${JSON.stringify(n.protocol)}. Anthropic only supports images as http, https, or base64-encoded data URLs on 'image_url' content blocks.`,`Example: data:image/png;base64,/9j/4AAQSk...`,`Example: https://example.com/image.jpg`].join(`
|
|
216
|
+
|
|
217
|
+
`))}function eX(e){let t=[];for(let n of e)if(n._getType()===`tool`)if(typeof n.content==`string`){let e=t[t.length-1];e?._getType()===`human`&&Array.isArray(e.content)&&`type`in e.content[0]&&e.content[0].type===`tool_result`?e.content.push({type:`tool_result`,content:n.content,tool_use_id:n.tool_call_id}):t.push(new yn({content:[{type:`tool_result`,content:n.content,tool_use_id:n.tool_call_id}]}))}else t.push(new yn({content:[{type:`tool_result`,...n.content==null?{}:{content:rX(n)},tool_use_id:n.tool_call_id}]}));else t.push(n);return t}function tX(e){if(e.id===void 0)throw Error(`Anthropic requires all tool calls to have an "id".`);return{type:`tool_use`,id:e.id,name:e.name,input:e.args}}function*nX(e,t){let n=[`bash_code_execution_tool_result`,`input_json_delta`,`server_tool_use`,`text_editor_code_execution_tool_result`,`tool_result`,`tool_use`,`web_search_result`,`web_search_tool_result`],r=[`text`,`text_delta`];for(let i of e){Ee(i)&&(yield Ne(i,VY));let a=`cache_control`in i?i.cache_control:void 0;if(i.type===`image_url`){let e;typeof i.image_url==`string`?e=$Y(i.image_url):typeof i.image_url==`object`&&i.image_url!==null&&`url`in i.image_url&&typeof i.image_url.url==`string`&&(e=$Y(i.image_url.url)),e&&(yield{type:`image`,source:e,...a?{cache_control:a}:{}})}else if(BY(i))yield i;else if(i.type===`image`){let e;`url`in i&&typeof i.url==`string`?e=$Y(i.url):`data`in i&&(typeof i.data==`string`||i.data instanceof Uint8Array)?e={type:`base64`,media_type:`mimeType`in i&&typeof i.mimeType==`string`?i.mimeType:`image/jpeg`,data:typeof i.data==`string`?i.data:Buffer.from(i.data).toString(`base64`)}:`fileId`in i&&typeof i.fileId==`string`&&(e={type:`file`,file_id:i.fileId}),e&&(yield{type:`image`,source:e,...a?{cache_control:a}:{}})}else if(i.type===`file`){let e;`url`in i&&typeof i.url==`string`?e={type:`url`,url:i.url}:`data`in i&&(typeof i.data==`string`||i.data instanceof Uint8Array)?e={type:`base64`,media_type:`mimeType`in i&&typeof i.mimeType==`string`?i.mimeType:`application/pdf`,data:typeof i.data==`string`?i.data:Buffer.from(i.data).toString(`base64`)}:`fileId`in i&&typeof i.fileId==`string`&&(e={type:`file`,file_id:i.fileId}),e&&(yield{type:`document`,source:e,...a?{cache_control:a}:{}})}else if(i.type===`document`)yield{...i,...a?{cache_control:a}:{}};else if(IY(i))yield{type:`thinking`,thinking:i.thinking,signature:i.signature,...a?{cache_control:a}:{}};else if(LY(i))yield{type:`redacted_thinking`,data:i.data,...a?{cache_control:a}:{}};else if(RY(i))yield{type:`compaction`,content:i.content,...a?{cache_control:a}:{}};else if(zY(i))yield{type:`search_result`,title:i.title,source:i.source,...`cache_control`in i&&i.cache_control?{cache_control:i.cache_control}:{},...`citations`in i&&i.citations?{citations:i.citations}:{},content:i.content};else if(r.find(e=>e===i.type)&&`text`in i)yield{type:`text`,text:i.text,...a?{cache_control:a}:{},...`citations`in i&&i.citations?{citations:i.citations}:{}};else if(n.find(e=>e===i.type)){let n={...i};if(n.type===`input_json_delta`)continue;if(n.type===`tool_use`&&typeof n.input==`string`){let r=t?.find(e=>e.id===n.id);r?n.input=r.args:n.input=e.filter(e=>e.index===n.index&&e.type===`input_json_delta`&&typeof e.input==`string`).reduce((e,t)=>e+t.input,n.input)}if(`index`in n&&delete n.index,`input`in n&&typeof n.input==`string`)try{n.input=JSON.parse(n.input)}catch{n.input={}}yield{...n,...a?{cache_control:a}:{}}}else i.type===`container_upload`&&(yield{...i,...a?{cache_control:a}:{}})}}function rX(e,t){let{content:n}=e;return typeof n==`string`?n:Array.from(nX(n,t))}function iX(e){let t=eX(e),n;return t.length>0&&t[0]._getType()===`system`&&(n=e[0].content),{messages:aX((n===void 0?t:t.slice(1)).map(e=>{let t;if(e._getType()===`human`)t=`user`;else if(e._getType()===`ai`)t=`assistant`;else if(e._getType()===`tool`)t=`user`;else if(e._getType()===`system`)throw Error(`System messages are only permitted as the first passed message.`);else throw Error(`Message type "${e.type}" is not supported.`);if(k.isInstance(e)&&e.response_metadata?.output_version===`v1`)return{role:t,content:QY(e)};if(k.isInstance(e)&&e.tool_calls?.length){if(typeof e.content==`string`)return e.content===``?{role:t,content:e.tool_calls.map(tX)}:{role:t,content:[{type:`text`,text:e.content},...e.tool_calls.map(tX)]};{let{content:n}=e,r=rX(e,e.tool_calls),i=Array.isArray(r)?r:[{type:`text`,text:r}],a=e.tool_calls.filter(e=>!n.find(t=>(t.type===`tool_use`||t.type===`input_json_delta`||t.type===`server_tool_use`)&&t.id===e.id));return{role:t,content:[...i,...a.map(tX)]}}}else return{role:t,content:rX(e,k.isInstance(e)?e.tool_calls:void 0)}})),system:n}}function aX(e){if(!e||e.length<=1)return e;let t=[],n=e[0],r=e=>typeof e==`string`?[{type:`text`,text:e}]:e,i=e=>e.role!==`user`||typeof e.content==`string`?!1:Array.isArray(e.content)&&e.content.every(e=>e.type===`tool_result`);for(let a=1;a<e.length;a+=1){let o=e[a];i(n)&&i(o)?n={...n,content:[...r(n.content),...r(o.content)]}:(t.push(n),n=o)}return t.push(n),t}var oX=[`claude-opus-4-7`,`claude-opus-4-8`,`claude-fable-5`,`claude-mythos-5`,`claude-mythos-preview`];function sX(e,t){return e?t.some(t=>e.startsWith(t)):!1}function cX(e){return e.type===`enabled`||e.type===`adaptive`}function lX(e){return sX(e,[`claude-opus-4-7`])}function uX(e){return sX(e,oX)}function dX(e,t){let n=t&&typeof t==`object`&&`task_budget`in t&&t.task_budget!=null;return lX(e)&&n?[`task-budgets-2026-03-13`]:[]}function fX(e){let{model:t,thinking:n,topK:r,topP:i,temperature:a}=e,o=uX(t),s=t??`this model`;if(o&&n.type===`enabled`)throw Error(`thinking.type="enabled" is not supported for ${s}; use thinking.type="adaptive" instead`);if(o&&typeof n==`object`&&n&&`budget_tokens`in n)throw Error(`thinking.budget_tokens is not supported for ${s}; use outputConfig.effort instead`);if(o){if(r!==void 0)throw Error(`topK is not supported for ${s}; omit topK/topP/temperature or use model prompting instead`);if(i!==void 0&&i!==1)throw Error(`topP is not supported for ${s} when set to non-default values`);if(a!==void 0&&a!==1)throw Error(`temperature is not supported for ${s} when set to non-default values`)}if(cX(n)){if(r!==void 0)throw Error(`topK is not supported when thinking is enabled`);if(i!==void 0)throw Error(`topP is not supported when thinking is enabled`);if(a!==void 0&&a!==1)throw Error(`temperature is not supported when thinking is enabled`)}}function pX(e){let{model:t,thinking:n,topK:r,topP:i,temperature:a}=e,o={};return cX(n)||uX(t)?o:(a!==void 0&&(o.temperature=a),r!==void 0&&(o.top_k=r),i!==void 0&&(o.top_p=i),o)}function mX(e,t){let n={model_provider:`anthropic`};if(e.type===`message_start`){let{content:r,usage:i,...a}=e.message,o={};for(let[e,t]of Object.entries(a))t!=null&&(o[e]=t);let{input_tokens:s,output_tokens:c,...l}=i??{},u=gX(i);return{chunk:new un({content:t.coerceContentToString?``:[],additional_kwargs:o,usage_metadata:t.streamUsage?u:void 0,response_metadata:{...n,usage:{...l}},id:e.message.id})}}else if(e.type===`message_delta`){let n={input_tokens:0,output_tokens:e.usage.output_tokens,total_tokens:e.usage.output_tokens},r=`context_management`in e.delta?{context_management:e.delta.context_management}:void 0;return{chunk:new un({content:t.coerceContentToString?``:[],response_metadata:r,additional_kwargs:{...e.delta},usage_metadata:t.streamUsage?n:void 0})}}else if(e.type===`content_block_start`&&[`tool_use`,`document`,`server_tool_use`,`web_search_tool_result`].includes(e.content_block.type)){let r=e.content_block,i;return i=r.type===`tool_use`?[{id:r.id,index:e.index,name:r.name,args:``}]:[],{chunk:new un({content:t.coerceContentToString?``:[{index:e.index,...e.content_block,input:r.type===`server_tool_use`||r.type===`tool_use`?``:void 0}],response_metadata:n,additional_kwargs:{},tool_call_chunks:i})}}else if(e.type===`content_block_delta`&&[`text_delta`,`citations_delta`,`thinking_delta`,`signature_delta`].includes(e.delta.type)){if(t.coerceContentToString&&`text`in e.delta)return{chunk:new un({content:e.delta.text})};{let t=e.delta;return`citation`in t&&(t.citations=[t.citation],delete t.citation),t.type===`thinking_delta`||t.type===`signature_delta`?{chunk:new un({content:[{index:e.index,...t,type:`thinking`}],response_metadata:n})}:{chunk:new un({content:[{index:e.index,...t,type:`text`}],response_metadata:n})}}}else if(e.type===`content_block_delta`&&e.delta.type===`input_json_delta`)return{chunk:new un({content:t.coerceContentToString?``:[{index:e.index,input:e.delta.partial_json,type:e.delta.type}],response_metadata:n,additional_kwargs:{},tool_call_chunks:[{index:e.index,args:e.delta.partial_json}]})};else if(e.type===`content_block_start`&&e.content_block.type===`text`){let r=e.content_block?.text;if(r!==void 0)return{chunk:new un({content:t.coerceContentToString?r:[{index:e.index,...e.content_block}],response_metadata:n,additional_kwargs:{}})}}else if(e.type===`content_block_start`&&e.content_block.type===`redacted_thinking`)return{chunk:new un({content:t.coerceContentToString?``:[{index:e.index,...e.content_block}],response_metadata:n})};else if(e.type===`content_block_start`&&e.content_block.type===`thinking`){let r=e.content_block.thinking;return{chunk:new un({content:t.coerceContentToString?r:[{index:e.index,...e.content_block}],response_metadata:n})}}else if(e.type===`content_block_start`&&RY(e.content_block))return{chunk:new un({content:t.coerceContentToString?``:[{index:e.index,...e.content_block}],response_metadata:n})};else if(e.type===`content_block_delta`&&e.delta.type===`compaction_delta`)return{chunk:new un({content:t.coerceContentToString?``:[{index:e.index,...e.delta,type:`compaction`}],response_metadata:n})};return null}function hX(e,t){let n={...t,model_provider:`anthropic`},r=t.usage,i=r==null?void 0:gX(r);return e.length===1&&e[0].type===`text`?[{text:e[0].text,message:new k({content:e[0].text,additional_kwargs:t,usage_metadata:i,response_metadata:n,id:t.id})}]:[{text:``,message:new k({content:e,additional_kwargs:t,tool_calls:MY(e),usage_metadata:i,response_metadata:n,id:t.id})}]}function gX(e){let t=e.cache_creation_input_tokens??0,n=e.cache_read_input_tokens??0,r=e.input_tokens+t+n;return{input_tokens:r,output_tokens:e.output_tokens,total_tokens:r+e.output_tokens,input_token_details:{cache_creation:t,cache_read:n}}}function _X(e,t){return e.lc_error_code=t,e.message=`${e.message}\n\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${t}/\n`,e}function vX(e){let t;return t=e.status===400&&typeof e.message==`string`&&e.message.includes(`prompt is too long`)?_X(ee.fromError(e),`CONTEXT_OVERFLOW`):e.status===400&&e.message.includes(`tool`)?_X(e,`INVALID_TOOL_RESULTS`):e.status===401?_X(e,`MODEL_AUTHENTICATION`):e.status===404?_X(e,`MODEL_NOT_FOUND`):e.status===429?_X(e,`MODEL_RATE_LIMIT`):e,t}var yX={"claude-3-sonnet-20240229":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-haiku-4-5":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-5-20251101":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-opus-20240229":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-5-haiku-20241022":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-5-sonnet-20241022":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-sonnet-4-6":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-0":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-7":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-haiku-20240307":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-sonnet-4-5-20250929":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-5-haiku-latest":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-1":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-sonnet-4-0":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-5-sonnet-20240620":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-5":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-1-20250805":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-haiku-4-5-20251001":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-sonnet-4-20250514":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-6":{maxInputTokens:1e6,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-3-7-sonnet-20250219":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-sonnet-4-5":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:64e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0},"claude-opus-4-20250514":{maxInputTokens:2e5,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32e3,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!1,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0}};async function*bX(e,t={}){let n=t.streamUsage??!0,r=new Map,i,a=null;for await(let t of e)switch(t.type){case`message_start`:{let{usage:e,id:r,model:a}=t.message;e&&n&&(i=SX(e)),yield{event:`message-start`,id:r,...i?{usage:i}:{}},yield{event:`provider`,provider:`anthropic`,name:`message_start`,payload:{model:a,id:r}};break}case`message_delta`:a=t.delta.stop_reason,n&&t.usage&&(i=i?{...i,output_tokens:i.output_tokens+t.usage.output_tokens,total_tokens:i.input_tokens+i.output_tokens+t.usage.output_tokens}:{input_tokens:0,output_tokens:t.usage.output_tokens,total_tokens:t.usage.output_tokens},yield{event:`usage`,usage:i}),`context_management`in t.delta&&t.delta.context_management&&(yield{event:`provider`,provider:`anthropic`,name:`context_management`,payload:t.delta.context_management});break;case`message_stop`:yield{event:`message-finish`,reason:xX(a),...i?{usage:i}:{},metadata:{model_provider:`anthropic`}};break;case`content_block_start`:{let{index:e,content_block:n}=t,i=CX(n,e);r.set(e,{...i}),yield{event:`content-block-start`,index:e,content:i};break}case`content_block_delta`:{let{index:e,delta:n}=t,i=r.get(e);if(!i)break;let{contentDelta:a,accumulated:o}=wX(i,n);r.set(e,o),yield{event:`content-block-delta`,index:e,delta:a};break}case`content_block_stop`:{let{index:e}=t,n=r.get(e);if(!n)break;yield{event:`content-block-finish`,index:e,content:TX(n)},r.delete(e);break}default:yield{event:`provider`,provider:`anthropic`,name:t.type,payload:t};break}}function xX(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`tool_use`:return`tool_use`;case`max_tokens`:return`length`;default:return`stop`}}function SX(e){let t=e.cache_creation_input_tokens??0,n=e.cache_read_input_tokens??0,r=e.input_tokens+t+n;return{input_tokens:r,output_tokens:e.output_tokens,total_tokens:r+e.output_tokens,input_token_details:{cache_creation:t,cache_read:n}}}function CX(e,t){switch(e.type){case`text`:return{type:`text`,text:e.text??``,index:t};case`thinking`:return{type:`reasoning`,reasoning:e.thinking??``,index:t};case`redacted_thinking`:return{type:`non_standard`,value:{...e},index:t};case`tool_use`:return{type:`tool_call_chunk`,id:e.id,name:e.name,args:``,index:t};case`server_tool_use`:return{type:`server_tool_call_chunk`,id:e.id,name:e.name,args:``,index:t};default:return{type:`non_standard`,value:{...e},index:t}}}function wX(e,t){switch(t.type){case`text_delta`:return{contentDelta:{type:`text-delta`,text:t.text},accumulated:{...e,text:(e.text??``)+t.text}};case`thinking_delta`:return{contentDelta:{type:`reasoning-delta`,reasoning:t.thinking},accumulated:{...e,reasoning:(e.reasoning??``)+t.thinking}};case`input_json_delta`:{let n=(e.args??``)+t.partial_json;return{contentDelta:{type:`block-delta`,fields:{type:e.type,args:n}},accumulated:{...e,args:n}}}case`citations_delta`:{let n=[...e.annotations??[],t.citation];return{contentDelta:{type:`block-delta`,fields:{type:e.type,annotations:n}},accumulated:{...e,annotations:n}}}case`signature_delta`:return{contentDelta:{type:`block-delta`,fields:{type:e.type,signature:t.signature}},accumulated:{...e,signature:t.signature}};case`compaction_delta`:return{contentDelta:{type:`block-delta`,fields:{type:`non_standard`,value:{...e.value??{},compaction:t}}},accumulated:{...e,value:{...e.value??{},compaction:t}}};default:return{contentDelta:{type:`block-delta`,fields:{type:e.type,...t}},accumulated:e}}}function TX(e){if(e.type===`tool_call_chunk`||e.type===`server_tool_call_chunk`){let t=e.type===`tool_call_chunk`?`tool_call`:`server_tool_call`,n;try{n=JSON.parse(e.args||`{}`)}catch{return{type:`invalid_tool_call`,id:e.id,name:e.name,args:e.args,error:`Failed to parse tool call arguments as JSON`}}return{type:t,id:e.id,name:e.name,args:n}}let{index:t,...n}=e;return n}var EX={"claude-fable-5":16384,"claude-mythos-5":16384,"claude-mythos-preview":16384,"claude-opus-4-7":16384,"claude-opus-4-6":16384,"claude-sonnet-4-6":16384,"claude-opus-4-5":16384,"claude-sonnet-4-5":16384,"claude-haiku-4-5":16384,"claude-opus-4-1":16384,"claude-sonnet-4":16384,"claude-opus-4":16384,"claude-3-7-sonnet":8192,"claude-3-5-sonnet":8192,"claude-3-5-haiku":8192,"claude-3-opus":4096,"claude-3-sonnet":4096,"claude-3-haiku":4096},DX=4096;function OX(e){return e?Object.entries(EX).find(([t])=>e.startsWith(t))?.[1]??DX:DX}function kX(e){return!!(e.tools&&e.tools.length>0)}function AX(e){for(let t of e.messages??[])if(typeof t.content!=`string`){for(let e of t.content??[])if(typeof e==`object`&&e&&e.type===`document`&&typeof e.citations==`object`&&e.citations?.enabled)return!0}return!1}function jX(e){return!!(e.thinking&&(e.thinking.type===`enabled`||e.thinking.type===`adaptive`))}function MX(e){return!!e.context_management?.edits?.some(e=>e.type===`compact_20260112`)}function NX(e){return`input_schema`in e}function PX(e){return typeof e==`object`&&!!e&&`type`in e&&(`name`in e||`mcp_server_name`in e)&&typeof e.type==`string`&&[`text_editor_`,`computer_`,`bash_`,`web_search_`,`web_fetch_`,`str_replace_editor_`,`str_replace_based_edit_tool_`,`code_execution_`,`memory_`,`tool_search_`,`mcp_toolset`].some(t=>typeof e.type==`string`&&e.type.startsWith(t))}function FX(e,t,...n){return Array.from(new Set([...e??[],...t??[],...n.flatMap(e=>Array.from(e))]))}function IX(e){if(typeof e.content==`string`)return e.content;if(Array.isArray(e.content)&&e.content.length>=1&&`input`in e.content[0])return typeof e.content[0].input==`string`?e.content[0].input:JSON.stringify(e.content[0].input);if(Array.isArray(e.content)&&e.content.length>=1&&`text`in e.content[0]&&typeof e.content[0].text==`string`)return e.content[0].text}var LX=class extends AE{static lc_name(){return`ChatAnthropic`}get lc_secrets(){return{anthropicApiKey:`ANTHROPIC_API_KEY`,apiKey:`ANTHROPIC_API_KEY`}}get lc_aliases(){return{modelName:`model`}}lc_serializable=!0;anthropicApiKey;apiKey;apiUrl;temperature;topK;topP;maxTokens;modelName=`claude-sonnet-4-5-20250929`;model=`claude-sonnet-4-5-20250929`;invocationKwargs;stopSequences;streaming=!1;clientOptions;thinking={type:`disabled`};thinkingExplicitlySet=!1;contextManagement;outputConfig;inferenceGeo;batchClient;streamingClient;streamUsage=!0;betas;createClient;constructor(e,t){let n=typeof e==`string`?{...t??{},model:e}:e??{};if(super(n??{}),this._addVersion(`@langchain/anthropic`,`1.5.1`),this.anthropicApiKey=n?.apiKey??n?.anthropicApiKey??Vr(`ANTHROPIC_API_KEY`),!this.anthropicApiKey&&!n?.createClient)throw Error(`Anthropic API key not found`);this.clientOptions=n?.clientOptions??{},this.apiKey=this.anthropicApiKey,this.apiUrl=n?.anthropicApiUrl,this.modelName=n?.model??n?.modelName??this.model,this.model=this.modelName,this.invocationKwargs=n?.invocationKwargs??{},this.topP=n?.topP??this.topP,this.temperature=n?.temperature??this.temperature,this.topK=n?.topK??this.topK,this.maxTokens=n?.maxTokens??OX(this.model),this.stopSequences=n?.stopSequences??this.stopSequences,this.streaming=n?.streaming??!1,this.streamUsage=n?.streamUsage??this.streamUsage,n?.thinking!==void 0&&(this.thinking=n.thinking,this.thinkingExplicitlySet=!0),this.contextManagement=n?.contextManagement??this.contextManagement,this.outputConfig=n?.outputConfig??this.outputConfig,this.inferenceGeo=n?.inferenceGeo??this.inferenceGeo,this.betas=n?.betas??this.betas,this.createClient=n?.createClient??(e=>new a(e))}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:`anthropic`,ls_model_name:this.model,ls_model_type:`chat`,ls_temperature:t.temperature??void 0,ls_max_tokens:t.max_tokens??void 0,ls_stop:e.stop}}formatStructuredToolToAnthropic(e,t){if(e)return e.map(e=>{if(Ek(e)&&e.extras?.providerToolDefinition)return e.extras.providerToolDefinition;if(PX(e))return e;if(NX(e))return t?.strict===void 0?e:{...e,strict:t.strict};if(hT(e)){let n=`strict`in e.function&&typeof e.function.strict==`boolean`?e.function.strict:void 0,r=t?.strict??n;return{name:e.function.name,description:e.function.description,input_schema:e.function.parameters,...r===void 0?{}:{strict:r}}}if(Ek(e)){let{strict:n,...r}=e.extras?PY.parse(e.extras):{},i=t?.strict??n;return{name:e.name,description:e.description,input_schema:o_(e.schema)?ux(e.schema):e.schema,...r,...i===void 0?{}:{strict:i}}}throw Error(`Unknown tool type passed to ChatAnthropic: ${JSON.stringify(e,null,2)}`)})}bindTools(e,t){return this.withConfig({tools:this.formatStructuredToolToAnthropic(e,{strict:t?.strict}),...t})}invocationParams(e){let t=NY(e?.tool_choice),n=e?.tools?.reduce((e,t)=>{if(typeof t==`object`&&`type`in t&&t.type in FY){let n=FY[t.type];if(!e.includes(n))return[...e,n]}return e},[]),r=(()=>{let t={...this.outputConfig,...e?.outputConfig};return e?.outputFormat&&!t.format&&(t.format=e.outputFormat),Object.keys(t).length>0?t:void 0})(),i=this.contextManagement?.edits?.some(e=>e.type===`compact_20260112`)?[`compact-2026-01-12`]:[],a=dX(this.model,r),o={model:this.model,stop_sequences:e?.stop??this.stopSequences,stream:this.streaming,max_tokens:this.maxTokens,tools:this.formatStructuredToolToAnthropic(e?.tools,{strict:e?.strict}),tool_choice:t,thinking:this.thinkingExplicitlySet?this.thinking:void 0,context_management:this.contextManagement,...this.invocationKwargs,container:e?.container,betas:FX(this.betas,e?.betas,n??[],i,a),output_config:r,inference_geo:e?.inferenceGeo??this.inferenceGeo,mcp_servers:e?.mcp_servers,cache_control:e?.cache_control};return fX({model:this.model,thinking:this.thinking,topK:this.topK,topP:this.topP,temperature:this.temperature}),Object.assign(o,pX({model:this.model,thinking:this.thinking,topK:this.topK,topP:this.topP,temperature:this.temperature})),o}_identifyingParams(){return{model_name:this.model,...this.invocationParams()}}identifyingParams(){return{model_name:this.model,...this.invocationParams()}}async*_streamResponseChunks(e,t,n){let r=this.invocationParams(t),i=iX(e),a={...r,...i,stream:!0},o=!kX(a)&&!AX(a)&&!jX(a)&&!MX(a),s=await this.createStreamWithRetry(a,{headers:t.headers,signal:t.signal});for await(let e of s){if(t.signal?.aborted){s.controller.abort();return}let r=this.streamUsage??t.streamUsage,i=mX(e,{streamUsage:r,coerceContentToString:o});if(!i)continue;let{chunk:a}=i,c=IX(a),l=new Ju({message:new un({content:a.content,additional_kwargs:a.additional_kwargs,tool_call_chunks:a.tool_call_chunks,usage_metadata:r?a.usage_metadata:void 0,response_metadata:a.response_metadata,id:a.id}),text:c??``});yield l,await n?.handleLLMNewToken(c??``,void 0,void 0,void 0,void 0,{chunk:l})}}async*_streamChatModelEvents(e,t,n){let r=this.invocationParams(t),i=iX(e),a={...r,...i,stream:!0},o=await this.createStreamWithRetry(a,{headers:t.headers,signal:t.signal}),s=this.streamUsage??t.streamUsage;yield*bX(async function*(e,t){for await(let n of e){if(t?.aborted){e.controller?.abort();return}yield n}}(o,t.signal),{streamUsage:s??!0})}async _generateNonStreaming(e,t,n){let r=iX(e),{content:i,...a}=await this.completionWithRetry({...t,stream:!1,...r},n),o=hX(i,a),{role:s,type:c,...l}=a;return{generations:o,llmOutput:l}}async _generate(e,t,n){if(t.signal?.throwIfAborted(),this.stopSequences&&t.stop)throw Error(`"stopSequence" parameter found in input and default params`);let r=this.invocationParams(t);if(r.stream){let r,i=this._streamResponseChunks(e,t,n);for await(let e of i)r=r===void 0?e:r.concat(e);if(r===void 0)throw Error(`No chunks returned from Anthropic API.`);return{generations:[{text:r.text,message:r.message}]}}else return this._generateNonStreaming(e,r,{signal:t.signal,headers:t.headers})}async createStreamWithRetry(e,t){if(!this.streamingClient){let e=this.apiUrl?{baseURL:this.apiUrl}:void 0;this.streamingClient=this.createClient({dangerouslyAllowBrowser:!0,...this.clientOptions,...e,apiKey:this.apiKey,maxRetries:0})}let{betas:n,...r}=e;return this.caller.call(async()=>{try{return e?.betas?.length?await this.streamingClient.beta.messages.create({...r,betas:n,...this.invocationKwargs,stream:!0},t):await this.streamingClient.messages.create({...r,...this.invocationKwargs,stream:!0},t)}catch(e){throw vX(e)}})}async completionWithRetry(e,t){if(!this.batchClient){let e=this.apiUrl?{baseURL:this.apiUrl}:void 0;this.batchClient=this.createClient({dangerouslyAllowBrowser:!0,...this.clientOptions,...e,apiKey:this.apiKey,maxRetries:0})}let{betas:n,...r}=e;return this.caller.callWithOptions({signal:t.signal??void 0},async()=>{try{return e?.betas?.length?await this.batchClient.beta.messages.create({...r,...this.invocationKwargs,betas:n},t):await this.batchClient.messages.create({...r,...this.invocationKwargs},t)}catch(e){throw vX(e)}})}_llmType(){return`anthropic`}get profile(){return yX[this.model]??{}}withStructuredOutput(e,t){let n,r,{schema:i,name:a,includeRaw:o}={...t,schema:e},s=t?.method??`functionCalling`;if(t?.strict!==void 0&&s!==`functionCalling`)throw Error(`Argument \`strict\` is only supported for \`method\` = "functionCalling" on Anthropic models. Got method = "${s}".`);if(s===`jsonMode`&&(console.warn(`"jsonMode" is not supported for Anthropic models. Falling back to "jsonSchema".`),s=`jsonSchema`),s===`jsonSchema`){r=QT(i);let e=f(ux(i));n=this.withConfig({outputVersion:`v0`,outputConfig:{format:{type:`json_schema`,schema:e}},ls_structured_output_format:{kwargs:{method:`json_schema`},schema:e}})}else if(s===`functionCalling`){let e=a??`extract`,o;if(o_(i)||Cb(i)){let t=ux(i);o=[{name:e,description:t.description??`A function available to call.`,input_schema:t}]}else typeof i.name==`string`&&typeof i.description==`string`&&typeof i.input_schema==`object`&&i.input_schema!=null?(o=[i],e=i.name):o=[{name:e,description:i.description??``,input_schema:i}];if(r=$T(i,e,jY),this.thinking?.type===`enabled`||this.thinking?.type===`adaptive`){let e="Anthropic structured output relies on forced tool calling, which is not supported when `thinking` is enabled. This method will raise OutputParserException if tool calls are not generated. Consider disabling `thinking` or adjust your prompt to ensure the tool is called.";console.warn(e),n=this.withConfig({outputVersion:`v0`,tools:o,ls_structured_output_format:{kwargs:{method:`functionCalling`},schema:ux(i)},...t?.strict===void 0?{}:{strict:t.strict}}),n=n.pipe(t=>{if(!t.tool_calls||t.tool_calls.length===0)throw Error(e);return t})}else n=this.withConfig({outputVersion:`v0`,tools:o,tool_choice:{type:`tool`,name:e},ls_structured_output_format:{kwargs:{method:`functionCalling`},schema:ux(i)},...t?.strict===void 0?{}:{strict:t.strict}})}else throw TypeError(`Unrecognized structured output method '${s}'. Expected 'functionCalling' or 'jsonSchema'`);return eE(n,r,o,o?`StructuredOutputRunnable`:`ChatAnthropicStructuredOutput`)}},RX=class extends LX{};LA(`command`,[G({command:qA(`view`),path:W()}),G({command:qA(`create`),path:W(),file_text:W()}),G({command:qA(`str_replace`),path:W(),old_str:W(),new_str:W()}),G({command:qA(`insert`),path:W(),insert_line:bA(),insert_text:W()}),G({command:qA(`delete`),path:W()}),G({command:qA(`rename`),old_path:W(),new_path:W()})]),LA(`command`,[G({command:qA(`view`),path:W(),view_range:VA([bA(),bA()]).optional()}),G({command:qA(`str_replace`),path:W(),old_str:W(),new_str:W()}),G({command:qA(`create`),path:W(),file_text:W()}),G({command:qA(`insert`),path:W(),insert_line:bA(),new_str:W()})]);var zX=VA([bA(),bA()]),BX=G({action:qA(`screenshot`)}),VX=G({action:qA(`left_click`),coordinate:zX}),HX=G({action:qA(`right_click`),coordinate:zX}),UX=G({action:qA(`middle_click`),coordinate:zX}),WX=G({action:qA(`double_click`),coordinate:zX}),GX=G({action:qA(`triple_click`),coordinate:zX}),KX=G({action:qA(`left_click_drag`),start_coordinate:zX,end_coordinate:zX}),qX=G({action:qA(`left_mouse_down`),coordinate:zX}),JX=G({action:qA(`left_mouse_up`),coordinate:zX}),YX=G({action:qA(`scroll`),coordinate:zX,scroll_direction:GA([`up`,`down`,`left`,`right`]),scroll_amount:bA()}),XX=G({action:qA(`type`),text:W()}),ZX=G({action:qA(`key`),key:W()}),QX=G({action:qA(`mouse_move`),coordinate:zX}),$X=G({action:qA(`hold_key`),key:W()}),eZ=G({action:qA(`wait`),duration:bA().optional()}),tZ=G({action:qA(`zoom`),region:VA([bA(),bA(),bA(),bA()])});LA(`action`,[BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX,$X,eZ]),LA(`action`,[BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX,$X,eZ,tZ]),FA([G({command:W().describe(`The bash command to run`)}),G({restart:qA(!0).describe(`Set to true to restart the bash session`)})]);async function*nZ(e,t={}){let n=t.streamUsage??!0,r=t.think??!1,i=new Map,a=new Map,o=0,s=!1,c,l,u=(e,t)=>{let n=a.get(e);if(n!==void 0)return{index:n,isNew:!1};let r=o++;return a.set(e,r),i.set(r,{...t}),{index:r,isNew:!0}};for await(let t of e){if(s||(s=!0,yield{event:`message-start`}),n){let e=t.prompt_eval_count??0,n=t.eval_count??0;(e>0||n>0)&&(c={input_tokens:e,output_tokens:n,total_tokens:e+n},yield{event:`usage`,usage:c})}t.done_reason&&(l=rZ(t.done_reason));let{message:e}=t;if(r&&e.thinking){let{index:t,isNew:n}=u(`reasoning`,{type:`reasoning`,reasoning:``});n&&(yield{event:`content-block-start`,index:t,content:{type:`reasoning`,reasoning:``}});let r=i.get(t);r.reasoning=(r.reasoning??``)+e.thinking,yield{event:`content-block-delta`,index:t,delta:{type:`reasoning-delta`,reasoning:e.thinking}}}if(e.content){let{index:t,isNew:n}=u(`text`,{type:`text`,text:``});n&&(yield{event:`content-block-start`,index:t,content:{type:`text`,text:``}});let r=i.get(t);r.text=(r.text??``)+e.content,yield{event:`content-block-delta`,index:t,delta:{type:`text-delta`,text:e.content}}}if(e.tool_calls?.length)for(let t=0;t<e.tool_calls.length;t++){let n=e.tool_calls[t],r=`tool:${t}`,a=typeof n.function.arguments==`string`?n.function.arguments:JSON.stringify(n.function.arguments),{index:o,isNew:s}=u(r,{type:`tool_call_chunk`,name:n.function.name,args:``,index:t});s&&(yield{event:`content-block-start`,index:o,content:{type:`tool_call_chunk`,name:n.function.name,args:``,index:t}});let c=i.get(o);c.name=n.function.name,c.args=a,yield{event:`content-block-delta`,index:o,delta:{type:`block-delta`,fields:{type:`tool_call_chunk`,name:c.name,args:c.args}}}}}for(let[e,t]of i)yield{event:`content-block-finish`,index:e,content:TE(t)};yield{event:`message-finish`,reason:l,...c?{usage:c}:{},responseMetadata:{model_provider:`ollama`}}}function rZ(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;default:return`stop`}}function iZ(e,t){return new un({content:e.content??``,additional_kwargs:e.thinking&&e.thinking!==``?{reasoning_content:e.thinking}:{},tool_call_chunks:e.tool_calls?.map(e=>({name:e.function.name,args:JSON.stringify(e.function.arguments),type:`tool_call_chunk`,index:0,id:Er()})),response_metadata:{...t?.responseMetadata,model_provider:`ollama`},usage_metadata:t?.usageMetadata})}function aZ(e){let t=e.match(/^data:.*?;base64,(.*)$/);return t?t[1]:``}function oZ(e){if(typeof e.content==`string`){if(e.tool_calls?.length){let t=e.tool_calls.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:e.args}}));return[{role:`assistant`,content:e.content,tool_calls:t}]}return[{role:`assistant`,content:e.content}]}let t=e.content.filter(e=>e.type===`text`&&typeof e.text==`string`).map(e=>({role:`assistant`,content:e.text})),n;if(e.content.find(e=>e.type===`tool_use`)&&e.tool_calls?.length){let t=e.tool_calls?.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:e.args}}));t&&(n={role:`assistant`,tool_calls:t,content:``})}else if(e.content.find(e=>e.type===`tool_use`)&&!e.tool_calls?.length)throw Error(`'tool_use' content type is not supported without tool calls.`);return[...t,...n?[n]:[]]}function sZ(e){return typeof e.content==`string`?[{role:`user`,content:e.content}]:e.content.map(e=>{if(e.type===`text`)return{role:`user`,content:e.text};if(e.type===`image_url`){if(typeof e.image_url==`string`)return{role:`user`,content:``,images:[aZ(e.image_url)]};if(e.image_url.url&&typeof e.image_url.url==`string`)return{role:`user`,content:``,images:[aZ(e.image_url.url)]}}throw Error(`Unsupported content type: ${e.type}`)})}function cZ(e){if(typeof e.content==`string`)return[{role:`system`,content:e.content}];if(e.content.every(e=>e.type===`text`&&typeof e.text==`string`))return e.content.map(e=>({role:`system`,content:e.text}));throw Error(`Unsupported content type(s): ${e.content.map(e=>e.type).join(`, `)}`)}function lZ(e){if(typeof e.content!=`string`)throw Error(`Non string tool message content is not supported`);return[{role:`tool`,content:e.content}]}function uZ(e){return e.flatMap(e=>{if([`human`,`generic`].includes(e._getType()))return sZ(e);if(e._getType()===`ai`)return oZ(e);if(e._getType()===`system`)return cZ(e);if(e._getType()===`tool`)return lZ(e);throw Error(`Unsupported message type: ${e._getType()}`)})}var dZ=typeof globalThis<`u`&&globalThis||typeof self<`u`&&self||typeof global<`u`&&global||{},fZ={searchParams:`URLSearchParams`in dZ,iterable:`Symbol`in dZ&&`iterator`in Symbol,blob:`FileReader`in dZ&&`Blob`in dZ&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:`FormData`in dZ,arrayBuffer:`ArrayBuffer`in dZ};function pZ(e){return e&&DataView.prototype.isPrototypeOf(e)}if(fZ.arrayBuffer)var mZ=[`[object Int8Array]`,`[object Uint8Array]`,`[object Uint8ClampedArray]`,`[object Int16Array]`,`[object Uint16Array]`,`[object Int32Array]`,`[object Uint32Array]`,`[object Float32Array]`,`[object Float64Array]`],hZ=ArrayBuffer.isView||function(e){return e&&mZ.indexOf(Object.prototype.toString.call(e))>-1};function gZ(e){if(typeof e!=`string`&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||e===``)throw TypeError(`Invalid character in header field name: "`+e+`"`);return e.toLowerCase()}function _Z(e){return typeof e!=`string`&&(e=String(e)),e}function vZ(e){var t={next:function(){var t=e.shift();return{done:t===void 0,value:t}}};return fZ.iterable&&(t[Symbol.iterator]=function(){return t}),t}function yZ(e){this.map={},e instanceof yZ?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){if(e.length!=2)throw TypeError(`Headers constructor: expected name/value pair to be length 2, found`+e.length);this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}yZ.prototype.append=function(e,t){e=gZ(e),t=_Z(t);var n=this.map[e];this.map[e]=n?n+`, `+t:t},yZ.prototype.delete=function(e){delete this.map[gZ(e)]},yZ.prototype.get=function(e){return e=gZ(e),this.has(e)?this.map[e]:null},yZ.prototype.has=function(e){return this.map.hasOwnProperty(gZ(e))},yZ.prototype.set=function(e,t){this.map[gZ(e)]=_Z(t)},yZ.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},yZ.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),vZ(e)},yZ.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),vZ(e)},yZ.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),vZ(e)},fZ.iterable&&(yZ.prototype[Symbol.iterator]=yZ.prototype.entries);function bZ(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(TypeError(`Already read`));e.bodyUsed=!0}}function xZ(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function SZ(e){var t=new FileReader,n=xZ(t);return t.readAsArrayBuffer(e),n}function CZ(e){var t=new FileReader,n=xZ(t),r=/charset=([A-Za-z0-9_-]+)/.exec(e.type),i=r?r[1]:`utf-8`;return t.readAsText(e,i),n}function wZ(e){for(var t=new Uint8Array(e),n=Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join(``)}function TZ(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function EZ(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?typeof e==`string`?this._bodyText=e:fZ.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:fZ.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:fZ.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():fZ.arrayBuffer&&fZ.blob&&pZ(e)?(this._bodyArrayBuffer=TZ(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):fZ.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||hZ(e))?this._bodyArrayBuffer=TZ(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=``),this.headers.get(`content-type`)||(typeof e==`string`?this.headers.set(`content-type`,`text/plain;charset=UTF-8`):this._bodyBlob&&this._bodyBlob.type?this.headers.set(`content-type`,this._bodyBlob.type):fZ.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set(`content-type`,`application/x-www-form-urlencoded;charset=UTF-8`))},fZ.blob&&(this.blob=function(){var e=bZ(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw Error(`could not read FormData body as blob`);return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer)return bZ(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer));if(fZ.blob)return this.blob().then(SZ);throw Error(`could not read as ArrayBuffer`)},this.text=function(){var e=bZ(this);if(e)return e;if(this._bodyBlob)return CZ(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(wZ(this._bodyArrayBuffer));if(this._bodyFormData)throw Error(`could not read FormData body as text`);return Promise.resolve(this._bodyText)},fZ.formData&&(this.formData=function(){return this.text().then(AZ)}),this.json=function(){return this.text().then(JSON.parse)},this}var DZ=[`CONNECT`,`DELETE`,`GET`,`HEAD`,`OPTIONS`,`PATCH`,`POST`,`PUT`,`TRACE`];function OZ(e){var t=e.toUpperCase();return DZ.indexOf(t)>-1?t:e}function kZ(e,t){if(!(this instanceof kZ))throw TypeError(`Please use the "new" operator, this DOM object constructor cannot be called as a function.`);t||={};var n=t.body;if(e instanceof kZ){if(e.bodyUsed)throw TypeError(`Already read`);this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new yZ(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!n&&e._bodyInit!=null&&(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||`same-origin`,(t.headers||!this.headers)&&(this.headers=new yZ(t.headers)),this.method=OZ(t.method||this.method||`GET`),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if(`AbortController`in dZ)return new AbortController().signal}(),this.referrer=null,(this.method===`GET`||this.method===`HEAD`)&&n)throw TypeError(`Body not allowed for GET or HEAD requests`);if(this._initBody(n),(this.method===`GET`||this.method===`HEAD`)&&(t.cache===`no-store`||t.cache===`no-cache`)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,`$1_=`+new Date().getTime());else{var i=/\?/;this.url+=(i.test(this.url)?`&`:`?`)+`_=`+new Date().getTime()}}}kZ.prototype.clone=function(){return new kZ(this,{body:this._bodyInit})};function AZ(e){var t=new FormData;return e.trim().split(`&`).forEach(function(e){if(e){var n=e.split(`=`),r=n.shift().replace(/\+/g,` `),i=n.join(`=`).replace(/\+/g,` `);t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function jZ(e){var t=new yZ;return e.replace(/\r?\n[\t ]+/g,` `).split(`\r`).map(function(e){return e.indexOf(`
|
|
218
|
+
`)===0?e.substr(1,e.length):e}).forEach(function(e){var n=e.split(`:`),r=n.shift().trim();if(r){var i=n.join(`:`).trim();try{t.append(r,i)}catch(e){console.warn(`Response `+e.message)}}}),t}EZ.call(kZ.prototype);function MZ(e,t){if(!(this instanceof MZ))throw TypeError(`Please use the "new" operator, this DOM object constructor cannot be called as a function.`);if(t||={},this.type=`default`,this.status=t.status===void 0?200:t.status,this.status<200||this.status>599)throw RangeError(`Failed to construct 'Response': The status provided (0) is outside the range [200, 599].`);this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText===void 0?``:``+t.statusText,this.headers=new yZ(t.headers),this.url=t.url||``,this._initBody(e)}EZ.call(MZ.prototype),MZ.prototype.clone=function(){return new MZ(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new yZ(this.headers),url:this.url})},MZ.error=function(){var e=new MZ(null,{status:200,statusText:``});return e.ok=!1,e.status=0,e.type=`error`,e};var NZ=[301,302,303,307,308];MZ.redirect=function(e,t){if(NZ.indexOf(t)===-1)throw RangeError(`Invalid status code`);return new MZ(null,{status:t,headers:{location:e}})};var PZ=dZ.DOMException;try{new PZ}catch{PZ=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},PZ.prototype=Object.create(Error.prototype),PZ.prototype.constructor=PZ}function FZ(e,t){return new Promise(function(n,r){var i=new kZ(e,t);if(i.signal&&i.signal.aborted)return r(new PZ(`Aborted`,`AbortError`));var a=new XMLHttpRequest;function o(){a.abort()}a.onload=function(){var e={statusText:a.statusText,headers:jZ(a.getAllResponseHeaders()||``)};i.url.indexOf(`file://`)===0&&(a.status<200||a.status>599)?e.status=200:e.status=a.status,e.url=`responseURL`in a?a.responseURL:e.headers.get(`X-Request-URL`);var t=`response`in a?a.response:a.responseText;setTimeout(function(){n(new MZ(t,e))},0)},a.onerror=function(){setTimeout(function(){r(TypeError(`Network request failed`))},0)},a.ontimeout=function(){setTimeout(function(){r(TypeError(`Network request timed out`))},0)},a.onabort=function(){setTimeout(function(){r(new PZ(`Aborted`,`AbortError`))},0)};function s(e){try{return e===``&&dZ.location.href?dZ.location.href:e}catch{return e}}if(a.open(i.method,s(i.url),!0),i.credentials===`include`?a.withCredentials=!0:i.credentials===`omit`&&(a.withCredentials=!1),`responseType`in a&&(fZ.blob?a.responseType=`blob`:fZ.arrayBuffer&&(a.responseType=`arraybuffer`)),t&&typeof t.headers==`object`&&!(t.headers instanceof yZ||dZ.Headers&&t.headers instanceof dZ.Headers)){var c=[];Object.getOwnPropertyNames(t.headers).forEach(function(e){c.push(gZ(e)),a.setRequestHeader(e,_Z(t.headers[e]))}),i.headers.forEach(function(e,t){c.indexOf(t)===-1&&a.setRequestHeader(t,e)})}else i.headers.forEach(function(e,t){a.setRequestHeader(t,e)});i.signal&&(i.signal.addEventListener(`abort`,o),a.onreadystatechange=function(){a.readyState===4&&i.signal.removeEventListener(`abort`,o)}),a.send(i._bodyInit===void 0?null:i._bodyInit)})}FZ.polyfill=!0,dZ.fetch||(dZ.fetch=FZ,dZ.Headers=yZ,dZ.Request=kZ,dZ.Response=MZ);var IZ=`11434`,LZ=`http://127.0.0.1:${IZ}`,RZ=`0.6.3`,zZ=Object.defineProperty,BZ=(e,t,n)=>t in e?zZ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VZ=(e,t,n)=>(BZ(e,typeof t==`symbol`?t:t+``,n),n),HZ=class e extends Error{constructor(t,n){super(t),this.error=t,this.status_code=n,this.name=`ResponseError`,Error.captureStackTrace&&Error.captureStackTrace(this,e)}},UZ=class{constructor(e,t,n){VZ(this,`abortController`),VZ(this,`itr`),VZ(this,`doneCallback`),this.abortController=e,this.itr=t,this.doneCallback=n}abort(){this.abortController.abort()}async*[Symbol.asyncIterator](){for await(let e of this.itr){if(`error`in e)throw Error(e.error);if(yield e,e.done||e.status===`success`){this.doneCallback();return}}throw Error(`Did not receive done or success response in stream.`)}},WZ=async e=>{if(e.ok)return;let t=`Error ${e.status}: ${e.statusText}`,n=null;if(e.headers.get(`content-type`)?.includes(`application/json`))try{n=await e.json(),t=n.error||t}catch{console.log(`Failed to parse error response as JSON`)}else try{console.log(`Getting text from response`),t=await e.text()||t}catch{console.log(`Failed to get text from error response`)}throw new HZ(t,e.status)};function GZ(){if(typeof window<`u`&&window.navigator){let e=navigator;return`userAgentData`in e&&e.userAgentData?.platform?`${e.userAgentData.platform.toLowerCase()} Browser/${navigator.userAgent};`:navigator.platform?`${navigator.platform.toLowerCase()} Browser/${navigator.userAgent};`:`unknown Browser/${navigator.userAgent};`}else if(typeof process<`u`)return`${process.arch} ${process.platform} Node.js/${process.version}`;return``}function KZ(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}else if(Array.isArray(e))return Object.fromEntries(e);else return e||{}}var qZ=(e,t)=>e[t],JZ=async(e,t,n={})=>{let r={"Content-Type":`application/json`,Accept:`application/json`,"User-Agent":`ollama-js/${RZ} (${GZ()})`};n.headers=KZ(n.headers);try{let e=new URL(t);if(e.protocol===`https:`&&e.hostname===`ollama.com`){let e=typeof process==`object`&&process!==null?qZ({},`OLLAMA_API_KEY`):void 0;!(n.headers.authorization||n.headers.Authorization)&&e&&(n.headers.Authorization=`Bearer ${e}`)}}catch(e){console.error(`error parsing url`,e)}let i=Object.fromEntries(Object.entries(n.headers).filter(([e])=>!Object.keys(r).some(t=>t.toLowerCase()===e.toLowerCase())));return n.headers={...r,...i},e(t,n)},YZ=async(e,t,n)=>{let r=await JZ(e,t,{headers:n?.headers});return await WZ(r),r},XZ=async(e,t,n,r)=>{let i=await JZ(e,t,{method:`POST`,body:(e=>typeof e==`object`&&!!e&&!Array.isArray(e))(n)?JSON.stringify(n):n,signal:r?.signal,headers:r?.headers});return await WZ(i),i},ZZ=async(e,t,n,r)=>{let i=await JZ(e,t,{method:`DELETE`,body:JSON.stringify(n),headers:r?.headers});return await WZ(i),i},QZ=async function*(e){let t=new TextDecoder(`utf-8`),n=``,r=e.getReader();for(;;){let{done:e,value:i}=await r.read();if(e)break;n+=t.decode(i,{stream:!0});let a=n.split(`
|
|
219
|
+
`);n=a.pop()??``;for(let e of a)try{yield JSON.parse(e)}catch{console.warn(`invalid json: `,e)}}n+=t.decode();for(let e of n.split(`
|
|
220
|
+
`).filter(e=>e!==``))try{yield JSON.parse(e)}catch{console.warn(`invalid json: `,e)}},$Z=e=>{if(!e)return LZ;let t=e.includes(`://`);e.startsWith(`:`)&&(e=`http://127.0.0.1${e}`,t=!0),t||(e=`http://${e}`);let n=new URL(e),r=n.port;r||=t?n.protocol===`https:`?`443`:`80`:IZ;let i=``;n.username&&(i=n.username,n.password&&(i+=`:${n.password}`),i+=`@`);let a=`${n.protocol}//${i}${n.hostname}:${r}${n.pathname}`;return a.endsWith(`/`)&&(a=a.slice(0,-1)),a},eQ=Object.defineProperty,tQ=(e,t,n)=>t in e?eQ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nQ=(e,t,n)=>(tQ(e,typeof t==`symbol`?t:t+``,n),n),rQ=class{constructor(e){nQ(this,`config`),nQ(this,`fetch`),nQ(this,`ongoingStreamedRequests`,[]),this.config={host:``,headers:e?.headers},e?.proxy||(this.config.host=$Z(e?.host??LZ)),this.fetch=e?.fetch??fetch}abort(){for(let e of this.ongoingStreamedRequests)e.abort();this.ongoingStreamedRequests.length=0}async processStreamableRequest(e,t){t.stream=t.stream??!1;let n=`${this.config.host}/api/${e}`;if(t.stream){let e=new AbortController,r=await XZ(this.fetch,n,t,{signal:e.signal,headers:this.config.headers});if(!r.body)throw Error(`Missing body`);let i=new UZ(e,QZ(r.body),()=>{let e=this.ongoingStreamedRequests.indexOf(i);e>-1&&this.ongoingStreamedRequests.splice(e,1)});return this.ongoingStreamedRequests.push(i),i}return await(await XZ(this.fetch,n,t,{headers:this.config.headers})).json()}async encodeImage(e){if(typeof e!=`string`){let t=new Uint8Array(e),n=``,r=t.byteLength;for(let e=0;e<r;e++)n+=String.fromCharCode(t[e]);return btoa(n)}return e}async generate(e){return e.images&&=await Promise.all(e.images.map(this.encodeImage.bind(this))),this.processStreamableRequest(`generate`,e)}async chat(e){if(e.messages)for(let t of e.messages)t.images&&=await Promise.all(t.images.map(this.encodeImage.bind(this)));return this.processStreamableRequest(`chat`,e)}async create(e){return this.processStreamableRequest(`create`,{...e})}async pull(e){return this.processStreamableRequest(`pull`,{name:e.model,stream:e.stream,insecure:e.insecure})}async push(e){return this.processStreamableRequest(`push`,{name:e.model,stream:e.stream,insecure:e.insecure})}async delete(e){return await ZZ(this.fetch,`${this.config.host}/api/delete`,{name:e.model},{headers:this.config.headers}),{status:`success`}}async copy(e){return await XZ(this.fetch,`${this.config.host}/api/copy`,{...e},{headers:this.config.headers}),{status:`success`}}async list(){return await(await YZ(this.fetch,`${this.config.host}/api/tags`,{headers:this.config.headers})).json()}async show(e){return await(await XZ(this.fetch,`${this.config.host}/api/show`,{...e},{headers:this.config.headers})).json()}async embed(e){return await(await XZ(this.fetch,`${this.config.host}/api/embed`,{...e},{headers:this.config.headers})).json()}async embeddings(e){return await(await XZ(this.fetch,`${this.config.host}/api/embeddings`,{...e},{headers:this.config.headers})).json()}async ps(){return await(await YZ(this.fetch,`${this.config.host}/api/ps`,{headers:this.config.headers})).json()}async version(){return await(await YZ(this.fetch,`${this.config.host}/api/version`,{headers:this.config.headers})).json()}async webSearch(e){if(!e.query||e.query.length===0)throw Error(`Query is required`);return await(await XZ(this.fetch,`https://ollama.com/api/web_search`,{...e},{headers:this.config.headers})).json()}async webFetch(e){if(!e.url||e.url.length===0)throw Error(`URL is required`);return await(await XZ(this.fetch,`https://ollama.com/api/web_fetch`,{...e},{headers:this.config.headers})).json()}};new rQ;var iQ=class extends AE{static lc_name(){return`ChatOllama`}model=`llama3`;numa;numCtx;numBatch;numGpu;mainGpu;lowVram;f16Kv;logitsAll;vocabOnly;useMmap;useMlock;embeddingOnly;numThread;numKeep;seed;numPredict;topK;topP;tfsZ;typicalP;repeatLastN;temperature;repeatPenalty;presencePenalty;frequencyPenalty;mirostat;mirostatTau;mirostatEta;penalizeNewline;streaming;format;keepAlive;client;checkOrPullModel=!1;baseUrl=`http://127.0.0.1:11434`;think;constructor(e,t){let n=typeof e==`string`?{...t??{},model:e}:e??{};super(n),this._addVersion(`@langchain/ollama`,`1.3.0`),this.baseUrl=n.baseUrl??Vr(`OLLAMA_BASE_URL`)??this.baseUrl,this.client=new rQ({fetch:n.fetch,host:this.baseUrl,headers:n.headers}),this.model=n.model??this.model,this.numa=n.numa,this.numCtx=n.numCtx,this.numBatch=n.numBatch,this.numGpu=n.numGpu,this.mainGpu=n.mainGpu,this.lowVram=n.lowVram,this.f16Kv=n.f16Kv,this.logitsAll=n.logitsAll,this.vocabOnly=n.vocabOnly,this.useMmap=n.useMmap,this.useMlock=n.useMlock,this.embeddingOnly=n.embeddingOnly,this.numThread=n.numThread,this.numKeep=n.numKeep,this.seed=n.seed,this.numPredict=n.numPredict,this.topK=n.topK,this.topP=n.topP,this.tfsZ=n.tfsZ,this.typicalP=n.typicalP,this.repeatLastN=n.repeatLastN,this.temperature=n.temperature,this.repeatPenalty=n.repeatPenalty,this.presencePenalty=n.presencePenalty,this.frequencyPenalty=n.frequencyPenalty,this.mirostat=n.mirostat,this.mirostatTau=n.mirostatTau,this.mirostatEta=n.mirostatEta,this.penalizeNewline=n.penalizeNewline,this.streaming=n.streaming,this.format=n.format,this.keepAlive=n.keepAlive,this.think=n.think,this.checkOrPullModel=n.checkOrPullModel??this.checkOrPullModel}_llmType(){return`ollama`}async pull(e,t){let{stream:n,insecure:r,logProgress:i}={stream:!0,...t};if(n)for await(let t of await this.client.pull({model:e,insecure:r,stream:n}))i&&console.log(t);else{let t=await this.client.pull({model:e,insecure:r});i&&console.log(t)}}bindTools(e,t){return this.withConfig({tools:e.map(e=>Yj(e)),...t})}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:`ollama`,ls_model_name:this.model,ls_model_type:`chat`,ls_temperature:t.options?.temperature??void 0,ls_max_tokens:t.options?.num_predict??void 0,ls_stop:e.stop}}invocationParams(e){return{model:this.model,format:e?.format??this.format,keep_alive:this.keepAlive,think:this.think,options:{numa:this.numa,num_ctx:this.numCtx,num_batch:this.numBatch,num_gpu:this.numGpu,main_gpu:this.mainGpu,low_vram:this.lowVram,f16_kv:this.f16Kv,logits_all:this.logitsAll,vocab_only:this.vocabOnly,use_mmap:this.useMmap,use_mlock:this.useMlock,embedding_only:this.embeddingOnly,num_thread:this.numThread,num_keep:this.numKeep,seed:this.seed,num_predict:this.numPredict,top_k:this.topK,top_p:this.topP,tfs_z:this.tfsZ,typical_p:this.typicalP,repeat_last_n:this.repeatLastN,temperature:this.temperature,repeat_penalty:this.repeatPenalty,presence_penalty:this.presencePenalty,frequency_penalty:this.frequencyPenalty,mirostat:this.mirostat,mirostat_tau:this.mirostatTau,mirostat_eta:this.mirostatEta,penalize_newline:this.penalizeNewline,stop:e?.stop},tools:e?.tools?.length?e.tools.map(e=>Yj(e)):void 0}}async checkModelExistsOnMachine(e){let{models:t}=await this.client.list();return!!t.find(t=>t.name===e||t.name===`${e}:latest`)}async ensureModelAvailable(){this.checkOrPullModel&&(await this.checkModelExistsOnMachine(this.model)||await this.pull(this.model,{logProgress:!0}))}async _generate(e,t,n){t.signal?.throwIfAborted(),await this.ensureModelAvailable();let r;for await(let i of this._streamResponseChunks(e,t,n))r=r?uu(r,i.message):i.message;let i=new k({id:r?.id,content:r?.content??``,additional_kwargs:r?.additional_kwargs,tool_calls:r?.tool_calls,response_metadata:r?.response_metadata,usage_metadata:r?.usage_metadata});return{generations:[{text:typeof i.content==`string`?i.content:``,message:i}]}}async*_streamChatModelEvents(e,t,n){await this.ensureModelAvailable();let r=this.invocationParams(t),i=uZ(e),a=await this.client.chat({...r,messages:i,stream:!0}),o=t.streamUsage??!0;yield*nZ(async function*(e,t){for await(let n of e){if(t?.aborted)return;yield n}}(a,t.signal),{streamUsage:o,think:this.think})}async*_streamResponseChunks(e,t,n){await this.ensureModelAvailable();let r=this.invocationParams(t),i=uZ(e),a={input_tokens:0,output_tokens:0,total_tokens:0},o=await this.client.chat({...r,messages:i,stream:!0}),s;for await(let e of o){if(t.signal?.aborted){this.client.abort();return}let{message:r,...i}=e;a.input_tokens+=i.prompt_eval_count??0,a.output_tokens+=i.eval_count??0,a.total_tokens=a.input_tokens+a.output_tokens,s=i;let o=this.think?r.thinking??r.content??``:r.content??``,c=new Ju({text:o,message:iZ(r)});yield c,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:c})}yield new Ju({text:``,message:new un({content:``,response_metadata:{...s,model_provider:`ollama`},usage_metadata:a})})}withStructuredOutput(e,t){let n,r,{schema:i,name:a,includeRaw:o}={...t,schema:e},s=t?.method??`jsonSchema`;if(s===`functionCalling`){let e=a??`extract`,t,o=ux(i);o_(i)||Cb(i)?t={name:e,description:o.description,parameters:o}:typeof i.name==`string`&&typeof i.parameters==`object`&&i.parameters!=null?(t=i,e=i.name):t={name:e,description:i.description??``,parameters:i},n=this.bindTools([{type:`function`,function:t}]).withConfig({ls_structured_output_format:{kwargs:{method:s},schema:o_(i)||Cb(i)?o:i}}),r=$T(i,e)}else if(s===`jsonMode`||s===`jsonSchema`){r=QT(i);let e=ux(i);n=this.withConfig({format:s===`jsonMode`?`json`:e,ls_structured_output_format:{kwargs:{method:s},schema:e}})}else throw TypeError(`Unrecognized structured output method '${s}'. Expected one of 'functionCalling', 'jsonMode', or 'jsonSchema'`);return eE(n,r,o,o?`StructuredOutputRunnable`:`ChatOllamaStructuredOutput`)}},aQ=e=>c.includes(e),oQ=e=>l.includes(e),sQ=e=>{let{executeQuery:t,search:n,grep:r,readFile:i}=e;return[wj(async({query:e,limit:t,groupByProcess:r})=>{let i=t??10,a=r??!0,o;try{o=await n(e,{limit:i,enrich:!0})}catch{return`Search is not available. Please load a repository first.`}if(o.length===0)return`No code found matching "${e}". Try different terms or use grep for exact patterns.`;let s=o.slice(0,i).map((e,t)=>{let n=e.nodeId||``,r=e.name||e.filePath?.split(`/`).pop()||`Unknown`,i=e.label||`File`,a=e.filePath||``,o=e.startLine?` (lines ${e.startLine}-${e.endLine})`:``,s=e.sources?.join(`+`)||`hybrid`,c=e.score?` [score: ${e.score.toFixed(2)}]`:``,l=``;if(e.connections){let t=(e.connections.outgoing||[]).filter(e=>e?.name).slice(0,3),n=(e.connections.incoming||[]).filter(e=>e?.name).slice(0,3),r=(e,t)=>{let n=e.confidence?Math.round(e.confidence*100):100;return t===`out`?`-[${e.type} ${n}%]-> ${e.name}`:`<-[${e.type} ${n}%]- ${e.name}`},i=t.map(e=>r(e,`out`)),a=n.map(e=>r(e,`in`));(i.length||a.length)&&(l=`\n Connections: ${[...i,...a].join(`, `)}`)}let u=e.cluster||`Unclustered`,d=(e.processes||[]).filter(e=>e.id&&e.label);return{idx:t+1,nodeId:n,name:r,label:i,filePath:a,location:o,sources:s,score:c,connections:l,clusterLabel:u,processes:d}}),c=(e,t)=>{let n=t?.step?` (step ${t.step}/${t.stepCount??`?`})`:``;return`[${e.idx}] ${e.label}: ${e.name}${e.score}${n}\n ID: ${e.nodeId}\n File: ${e.filePath}${e.location}\n Cluster: ${e.clusterLabel}\n Found by: ${e.sources}${e.connections}`};if(!a)return`Found ${o.length} matches:\n\n${s.map(e=>c(e)).join(`
|
|
221
|
+
|
|
222
|
+
`)}`;let l=new Map,u=`__no_process__`;for(let e of s){if(e.processes.length===0){l.has(u)||l.set(u,{label:`No process`,entries:[]}),l.get(u).entries.push({result:e});continue}for(let t of e.processes)l.has(t.id)||l.set(t.id,{label:t.label,stepCount:t.stepCount,entries:[]}),l.get(t.id).entries.push({result:e,step:t.step,stepCount:t.stepCount})}let d=Array.from(l.entries()).sort((e,t)=>{let n=e[1].entries.length;return t[1].entries.length-n}),f=[];f.push(`Found ${o.length} matches grouped by process:`),f.push(``);for(let[e,t]of d){let n=t.stepCount?`, ${t.stepCount} steps`:``,r=e===u?`NO PROCESS (${t.entries.length} matches)`:`PROCESS: ${t.label} (${t.entries.length} matches${n})`;f.push(r),t.entries.forEach(n=>{let r=n.step?{id:e,label:t.label,step:n.step,stepCount:n.stepCount}:void 0;f.push(c(n.result,r))}),f.push(``)}return f.join(`
|
|
223
|
+
`).trim()},{name:`search`,description:`Search for code by keywords or concepts. Combines keyword matching and semantic understanding. Groups results by process with cluster context.`,schema:G({query:W().describe(`What you are looking for (e.g., "authentication middleware", "database connection")`),groupByProcess:wA().optional().nullable().describe(`Group results by process (default: true)`),limit:bA().optional().nullable().describe(`Max results to return (default: 10)`)})}),wj(async({query:e,cypher:r})=>{try{if(r.includes(`{{QUERY_VECTOR}}`)){if(!e)return`Error: Your Cypher contains {{QUERY_VECTOR}} but you didn't provide a 'query' to embed. Add a natural language query.`;try{let t=await n(e,{limit:10,mode:`semantic`});if(t.length===0)return`Semantic search returned no results. Embeddings may not be generated yet.`;let r=t.map((e,t)=>`[${t+1}] ${e.label||`File`}: ${e.name||e.filePath?.split(`/`).pop()||`?`} (score: ${(e.score??0).toFixed(3)})\n File: ${e.filePath||`n/a`}`).join(`
|
|
224
|
+
`);return`Semantic search for "${e}" (${t.length} results):\n\n${r}`}catch{return`Semantic search not available. Embeddings may not be generated. Use a non-vector Cypher query instead.`}}let i=await t(r);if(i.length===0)return`Query returned no results.`;let a=i[0],o=typeof a==`object`&&!Array.isArray(a)?Object.keys(a):[];if(o.length>0){let e=`| ${o.join(` | `)} |`,t=`|${o.map(()=>`---`).join(`|`)}|`,n=i.slice(0,50).map(e=>`| ${o.map(t=>{let n=e[t];if(n==null)return``;if(typeof n==`object`)return JSON.stringify(n);let r=String(n).replace(/\\/g,`\\\\`).replace(/\|/g,`\\|`);return r.length>60?r.slice(0,57)+`...`:r}).join(` | `)} |`).join(`
|
|
225
|
+
`),r=i.length>50?`\n\n_(${i.length-50} more rows)_`:``;return`**${i.length} results:**\n\n${e}\n${t}\n${n}${r}`}let s=i.slice(0,50).map((e,t)=>`[${t+1}] ${JSON.stringify(e)}`),c=i.length>50?`\n... (${i.length-50} more)`:``;return`${i.length} results:\n${s.join(`
|
|
226
|
+
`)}${c}`}catch(e){return`Cypher error: ${e instanceof Error?e.message:String(e)}\n\nCheck your query syntax. Node tables: File, Folder, Function, Class, Interface, Method, CodeElement. Relation: CodeRelation with type property (CONTAINS, DEFINES, IMPORTS, CALLS). Example: MATCH (f:File)-[:CodeRelation {type: 'IMPORTS'}]->(g:File) RETURN f, g`}},{name:`cypher`,description:`Execute a Cypher query against the code graph. Use for structural queries like finding callers, tracing imports, class inheritance, or custom traversals.
|
|
227
|
+
|
|
228
|
+
Node tables: File, Folder, Function, Class, Interface, Method, CodeElement
|
|
229
|
+
Relation: CodeRelation (single table with 'type' property: CONTAINS, DEFINES, IMPORTS, CALLS, EXTENDS, IMPLEMENTS)
|
|
230
|
+
|
|
231
|
+
Example queries:
|
|
232
|
+
- Functions calling a function: MATCH (caller:Function)-[:CodeRelation {type: 'CALLS'}]->(fn:Function {name: 'validate'}) RETURN caller.name, caller.filePath
|
|
233
|
+
- Class inheritance: MATCH (child:Class)-[:CodeRelation {type: 'EXTENDS'}]->(parent:Class) RETURN child.name, parent.name
|
|
234
|
+
- Classes implementing interface: MATCH (c:Class)-[:CodeRelation {type: 'IMPLEMENTS'}]->(i:Interface) RETURN c.name, i.name
|
|
235
|
+
- Files importing a file: MATCH (f:File)-[:CodeRelation {type: 'IMPORTS'}]->(target:File) WHERE target.name = 'utils.ts' RETURN f.name
|
|
236
|
+
- All connections (with confidence): MATCH (n)-[r:CodeRelation]-(m) WHERE n.name = 'MyClass' AND r.confidence > 0.8 RETURN m.name, r.type, r.confidence
|
|
237
|
+
- Find fuzzy matches: MATCH (n)-[r:CodeRelation]-(m) WHERE r.confidence < 0.8 RETURN n.name, r.reason
|
|
238
|
+
|
|
239
|
+
For semantic+graph queries, include {{QUERY_VECTOR}} placeholder and provide a 'query' parameter:
|
|
240
|
+
CALL QUERY_VECTOR_INDEX('CodeEmbedding', 'code_embedding_idx', {{QUERY_VECTOR}}, 10) YIELD node AS emb, distance
|
|
241
|
+
WITH emb, distance WHERE distance < 0.5
|
|
242
|
+
MATCH (n:Function {id: emb.nodeId}) RETURN n`,schema:G({cypher:W().describe(`The Cypher query to execute`),query:W().optional().nullable().describe(`Natural language query to embed (required if cypher contains {{QUERY_VECTOR}})`)})}),wj(async({pattern:e,fileFilter:t,caseSensitive:n,maxResults:i})=>{try{try{new RegExp(e,n?`g`:`gi`)}catch(t){return`Invalid regex: ${e}. Error: ${t instanceof Error?t.message:String(t)}`}let a=i??100,o=t?`(?=.*${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}).*${e}`:e,s=await r(o,a);if(s.length===0)return`No matches for "${e}"${t?` in files matching "${t}"`:``}`;let c=s.map(e=>`${e.filePath}:${e.line}: ${e.text}`).join(`
|
|
243
|
+
`),l=s.length>=a?`\n\n(Showing first ${a} results)`:``;return`Found ${s.length} matches:\n\n${c}${l}`}catch(e){return`Grep error: ${e instanceof Error?e.message:String(e)}`}},{name:`grep`,description:`Search for exact text patterns across all files using regex. Use for finding specific strings, error messages, TODOs, variable names, etc.`,schema:G({pattern:W().describe(`Regex pattern to search for (e.g., "TODO", "console\\.log", "API_KEY")`),fileFilter:W().optional().nullable().describe(`Only search files containing this string (e.g., ".ts", "src/api")`),caseSensitive:wA().optional().nullable().describe(`Case-sensitive search (default: false)`),maxResults:bA().optional().nullable().describe(`Max results (default: 100)`)})}),wj(async({filePath:e})=>{try{let t=await i(e),n=5e4;return t.length>n?`File: ${e} (${t.split(`
|
|
244
|
+
`).length} lines, truncated)\n\n${t.slice(0,n)}\n\n... [truncated]`:`File: ${e} (${t.split(`
|
|
245
|
+
`).length} lines)\n\n${t}`}catch(t){let n=t instanceof Error?t.message:String(t);return n.includes(`not found`)||n.includes(`404`)?`File not found: "${e}". Use grep to search for the correct path.`:`Error reading file: ${n}`}},{name:`read`,description:`Read the full content of a file. Use to see source code after finding files via search or grep.`,schema:G({filePath:W().describe(`File path to read (can be partial like "src/utils.ts")`)})}),wj(async()=>{try{let[e,n,r,i]=await Promise.all([t(`
|
|
246
|
+
MATCH (c:Community)
|
|
247
|
+
RETURN c.id AS id, c.label AS label, c.cohesion AS cohesion, c.symbolCount AS symbolCount, c.description AS description
|
|
248
|
+
ORDER BY c.symbolCount DESC
|
|
249
|
+
LIMIT 200
|
|
250
|
+
`),t(`
|
|
251
|
+
MATCH (p:Process)
|
|
252
|
+
RETURN p.id AS id, p.label AS label, p.processType AS type, p.stepCount AS stepCount, p.communities AS communities
|
|
253
|
+
ORDER BY p.stepCount DESC
|
|
254
|
+
LIMIT 200
|
|
255
|
+
`),t(`
|
|
256
|
+
MATCH (a)-[:CodeRelation {type: 'CALLS'}]->(b)
|
|
257
|
+
MATCH (a)-[:CodeRelation {type: 'MEMBER_OF'}]->(c1:Community)
|
|
258
|
+
MATCH (b)-[:CodeRelation {type: 'MEMBER_OF'}]->(c2:Community)
|
|
259
|
+
WHERE c1.id <> c2.id
|
|
260
|
+
RETURN c1.label AS \`from\`, c2.label AS \`to\`, COUNT(*) AS calls
|
|
261
|
+
ORDER BY calls DESC
|
|
262
|
+
LIMIT 15
|
|
263
|
+
`),t(`
|
|
264
|
+
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
265
|
+
RETURN p.label AS label, COUNT(r) AS steps
|
|
266
|
+
ORDER BY steps DESC
|
|
267
|
+
LIMIT 10
|
|
268
|
+
`)]),a=e.map(e=>{let t=Array.isArray(e)?e[1]:e.label,n=Array.isArray(e)?e[3]:e.symbolCount,r=Array.isArray(e)?e[2]:e.cohesion,i=Array.isArray(e)?e[4]:e.description,a=r==null?``:Number(r).toFixed(2);return`| ${t||``} | ${n??``} | ${a} | ${i??``} |`}),o=n.map(e=>{let t=Array.isArray(e)?e[1]:e.label,n=Array.isArray(e)?e[3]:e.stepCount,r=Array.isArray(e)?e[2]:e.type,i=Array.isArray(e)?e[4]:e.communities,a=Array.isArray(i)?i.length:+!!i;return`| ${t||``} | ${n??``} | ${r??``} | ${a} |`}),s=r.map(e=>`- ${Array.isArray(e)?e[0]:e.from} -> ${Array.isArray(e)?e[1]:e.to} (${Array.isArray(e)?e[2]:e.calls} calls)`),c=i.map(e=>`- ${Array.isArray(e)?e[0]:e.label} (${Array.isArray(e)?e[1]:e.steps} steps)`);return[`CLUSTERS (${e.length} total):`,`| Cluster | Symbols | Cohesion | Description |`,`| --- | --- | --- | --- |`,...a,``,`PROCESSES (${n.length} total):`,`| Process | Steps | Type | Clusters |`,`| --- | --- | --- | --- |`,...o,``,`CLUSTER DEPENDENCIES:`,...s.length>0?s:[`- None found`],``,`CRITICAL PATHS:`,...c.length>0?c:[`- None found`]].join(`
|
|
269
|
+
`)}catch(e){return`Overview error: ${e instanceof Error?e.message:String(e)}`}},{name:`overview`,description:`Codebase map showing all clusters and processes, plus cross-cluster dependencies.`,schema:G({})}),wj(async({target:e,type:n})=>{let r=e.replace(/'/g,`''`),i=n??null,a=null,o=null,s=null,c=(e,t,n)=>Array.isArray(e)?e[t]:e[n];if(!i||i===`process`){let e=`
|
|
270
|
+
MATCH (p:Process)
|
|
271
|
+
WHERE p.id = '${r}' OR p.label = '${r}'
|
|
272
|
+
RETURN p.id AS id, p.label AS label, p.processType AS type, p.stepCount AS stepCount
|
|
273
|
+
LIMIT 1
|
|
274
|
+
`,n=await t(e);n.length>0&&(a=n[0],i=`process`)}if(!i||i===`cluster`){let e=`
|
|
275
|
+
MATCH (c:Community)
|
|
276
|
+
WHERE c.id = '${r}' OR c.label = '${r}' OR c.heuristicLabel = '${r}'
|
|
277
|
+
RETURN c.id AS id, c.label AS label, c.cohesion AS cohesion, c.symbolCount AS symbolCount, c.description AS description
|
|
278
|
+
LIMIT 1
|
|
279
|
+
`,n=await t(e);n.length>0&&(o=n[0],i=`cluster`)}if(!i||i===`symbol`){let e=`
|
|
280
|
+
MATCH (n)
|
|
281
|
+
WHERE n.name = '${r}' OR n.id = '${r}' OR n.filePath = '${r}'
|
|
282
|
+
RETURN n.id AS id, n.name AS name, n.filePath AS filePath, label(n) AS nodeType
|
|
283
|
+
LIMIT 5
|
|
284
|
+
`,n=await t(e);n.length>0&&(s=n[0],i=`symbol`)}if(!i)return`Could not find "${e}" as a symbol, cluster, or process. Try search first.`;if(i===`process`){let e=c(a,0,`id`),n=c(a,1,`label`),r=c(a,2,`type`),i=c(a,3,`stepCount`),o=`
|
|
285
|
+
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process {id: '${e.replace(/'/g,`''`)}'})
|
|
286
|
+
RETURN s.name AS name, s.filePath AS filePath, r.step AS step
|
|
287
|
+
ORDER BY r.step
|
|
288
|
+
`,s=`
|
|
289
|
+
MATCH (c:Community)<-[:CodeRelation {type: 'MEMBER_OF'}]-(s)
|
|
290
|
+
MATCH (s)-[:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process {id: '${e.replace(/'/g,`''`)}'})
|
|
291
|
+
RETURN DISTINCT c.id AS id, c.label AS label, c.description AS description
|
|
292
|
+
ORDER BY c.label
|
|
293
|
+
LIMIT 20
|
|
294
|
+
`,[l,u]=await Promise.all([t(o),t(s)]),d=l.map(e=>{let t=c(e,0,`name`),n=c(e,1,`filePath`);return`- ${c(e,2,`step`)}. ${t} (${n||`n/a`})`}),f=u.map(e=>{let t=c(e,1,`label`),n=c(e,2,`description`);return`- ${t}${n?` — ${n}`:``}`});return[`PROCESS: ${n}`,`Type: ${r||`n/a`}`,`Steps: ${i??l.length}`,``,`STEPS:`,...d.length>0?d:[`- None found`],``,`CLUSTERS TOUCHED:`,...f.length>0?f:[`- None found`]].join(`
|
|
295
|
+
`)}if(i===`cluster`){let e=c(o,0,`id`),n=c(o,1,`label`),r=c(o,2,`cohesion`),i=c(o,3,`symbolCount`),a=c(o,4,`description`),s=`
|
|
296
|
+
MATCH (c:Community {id: '${e.replace(/'/g,`''`)}'})<-[:CodeRelation {type: 'MEMBER_OF'}]-(m)
|
|
297
|
+
RETURN m.name AS name, m.filePath AS filePath, label(m) AS nodeType
|
|
298
|
+
LIMIT 50
|
|
299
|
+
`,l=`
|
|
300
|
+
MATCH (c:Community {id: '${e.replace(/'/g,`''`)}'})<-[:CodeRelation {type: 'MEMBER_OF'}]-(s)
|
|
301
|
+
MATCH (s)-[:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
302
|
+
RETURN DISTINCT p.id AS id, p.label AS label, p.stepCount AS stepCount
|
|
303
|
+
ORDER BY p.stepCount DESC
|
|
304
|
+
LIMIT 20
|
|
305
|
+
`,[u,d]=await Promise.all([t(s),t(l)]),f=u.map(e=>{let t=c(e,0,`name`),n=c(e,1,`filePath`);return`- ${c(e,2,`nodeType`)}: ${t} (${n||`n/a`})`}),p=d.map(e=>`- ${c(e,1,`label`)} (${c(e,2,`stepCount`)} steps)`);return[`CLUSTER: ${n}`,`Symbols: ${i??u.length}`,`Cohesion: ${r==null?`n/a`:Number(r).toFixed(2)}`,`Description: ${a||`n/a`}`,``,`TOP MEMBERS:`,...f.length>0?f:[`- None found`],``,`PROCESSES TOUCHING THIS CLUSTER:`,...p.length>0?p:[`- None found`]].join(`
|
|
306
|
+
`)}if(i===`symbol`){let n=c(s,0,`id`),r=c(s,1,`name`),i=c(s,2,`filePath`),a=c(s,3,`nodeType`);if(!aQ(a))return`Unknown node type "${a}" for symbol "${e}".`;let o=`
|
|
307
|
+
MATCH (n:${a} {id: '${String(n).replace(/'/g,`''`)}'})
|
|
308
|
+
MATCH (n)-[:CodeRelation {type: 'MEMBER_OF'}]->(c:Community)
|
|
309
|
+
RETURN c.label AS label, c.description AS description
|
|
310
|
+
LIMIT 1
|
|
311
|
+
`,l=`
|
|
312
|
+
MATCH (n:${a} {id: '${String(n).replace(/'/g,`''`)}'})
|
|
313
|
+
MATCH (n)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
314
|
+
RETURN p.label AS label, r.step AS step, p.stepCount AS stepCount
|
|
315
|
+
ORDER BY r.step
|
|
316
|
+
`,u=`
|
|
317
|
+
MATCH (n:${a} {id: '${String(n).replace(/'/g,`''`)}'})
|
|
318
|
+
OPTIONAL MATCH (n)-[r1:CodeRelation]->(dst)
|
|
319
|
+
OPTIONAL MATCH (src)-[r2:CodeRelation]->(n)
|
|
320
|
+
RETURN
|
|
321
|
+
collect(DISTINCT {name: dst.name, type: r1.type, confidence: r1.confidence}) AS outgoing,
|
|
322
|
+
collect(DISTINCT {name: src.name, type: r2.type, confidence: r2.confidence}) AS incoming
|
|
323
|
+
LIMIT 1
|
|
324
|
+
`,[d,f,p]=await Promise.all([t(o),t(l),t(u)]),m=d.length>0?c(d[0],0,`label`):`Unclustered`,h=d.length>0?c(d[0],1,`description`):``,g=f.map(e=>`- ${c(e,0,`label`)} (step ${c(e,1,`step`)}/${c(e,2,`stepCount`)??`?`})`),_=`None`;if(p.length>0){let e=p[0],t=Array.isArray(e)?e[0]:e.outgoing||[],n=Array.isArray(e)?e[1]:e.incoming||[],r=(t||[]).filter(e=>e&&e.name).slice(0,5),i=(n||[]).filter(e=>e&&e.name).slice(0,5),a=(e,t)=>{let n=e.confidence?Math.round(e.confidence*100):100;return t===`out`?`-[${e.type} ${n}%]-> ${e.name}`:`<-[${e.type} ${n}%]- ${e.name}`},o=r.map(e=>a(e,`out`)),s=i.map(e=>a(e,`in`));(o.length||s.length)&&(_=[...o,...s].join(`, `))}return[`SYMBOL: ${a} ${r}`,`ID: ${n}`,`File: ${i||`n/a`}`,`Cluster: ${m}${h?` — ${h}`:``}`,``,`PROCESSES:`,...g.length>0?g:[`- None found`],``,`CONNECTIONS:`,_].join(`
|
|
325
|
+
`)}return`Unable to explore "${e}".`},{name:`explore`,description:`Deep dive on a symbol, cluster, or process. Shows membership, participation, and connections.`,schema:G({target:W().describe(`Name or ID of a symbol, cluster, or process`),type:GA([`symbol`,`cluster`,`process`]).optional().nullable().describe(`Optional target type (auto-detected if omitted)`)})}),wj(async({target:e,direction:n,maxDepth:a,relationTypes:o,includeTests:s,minConfidence:c})=>{let u=Math.min(a??3,10),d=s??!1,f=c??.7,p=e=>{if(!e)return!1;let t=e.toLowerCase();return t.includes(`.test.`)||t.includes(`.spec.`)||t.includes(`__tests__`)||t.includes(`__mocks__`)||t.endsWith(`.test.ts`)||t.endsWith(`.test.tsx`)||t.endsWith(`.spec.ts`)||t.endsWith(`.spec.tsx`)},m=o&&o.length>0?o.filter(e=>oQ(e)):[`CALLS`,`IMPORTS`,`EXTENDS`,`IMPLEMENTS`];if(m.length===0)return`No valid relation types provided. Valid types: ${l.join(`, `)}`;let h=m.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`, `),g=e.includes(`/`),_=e.replace(/'/g,`''`),v=g?`
|
|
326
|
+
MATCH (n)
|
|
327
|
+
WHERE n.filePath IS NOT NULL AND n.filePath CONTAINS '${_}'
|
|
328
|
+
RETURN n.id AS id, label(n) AS nodeType, n.filePath AS filePath
|
|
329
|
+
LIMIT 10
|
|
330
|
+
`:`
|
|
331
|
+
MATCH (n)
|
|
332
|
+
WHERE n.name = '${_}'
|
|
333
|
+
RETURN n.id AS id, label(n) AS nodeType, n.filePath AS filePath
|
|
334
|
+
LIMIT 10
|
|
335
|
+
`,y;try{y=await t(v)}catch(t){return`Error finding target "${e}": ${t}`}if(!y||y.length===0)return`Could not find "${e}" in the codebase. Try using the search tool first to find the exact name.`;let b=y.map(e=>Array.isArray(e)?e[2]:e.filePath).filter(Boolean);if(y.length>1&&!e.includes(`/`))return`⚠️ AMBIGUOUS TARGET: Multiple files named "${e}" found:\n\n${b.map((e,t)=>`${t+1}. ${e}`).join(`
|
|
336
|
+
`)}\n\nPlease specify which file you mean by using a more specific path, e.g.:\n- impact("${b[0].split(`/`).slice(-3).join(`/`)}")\n- impact("${b[1]?.split(`/`).slice(-3).join(`/`)||b[0]}")`;let x=y[0];if(e.includes(`/`)&&y.length>1){let t=y.find(t=>{let n=Array.isArray(t)?t[2]:t.filePath;return n&&n.toLowerCase().includes(e.toLowerCase())});if(t)x=t;else return`⚠️ AMBIGUOUS TARGET: Could not uniquely match "${e}". Found:\n\n${b.map((e,t)=>`${t+1}. ${e}`).join(`
|
|
337
|
+
`)}\n\nPlease use a more specific path.`}let S=Array.isArray(x)?x[0]:x.id,ee=Array.isArray(x)?x[1]:x.nodeType,C=Array.isArray(x)?x[2]:x.filePath,te=ee===`File`,ne=[],re=n===`upstream`?te?`
|
|
338
|
+
MATCH (affected)-[r:CodeRelation]->(callee)
|
|
339
|
+
WHERE callee.filePath = '${(C||e).replace(/'/g,`''`)}'
|
|
340
|
+
AND r.type IN [${h}]
|
|
341
|
+
AND affected.filePath <> callee.filePath
|
|
342
|
+
AND (r.confidence IS NULL OR r.confidence >= ${f})
|
|
343
|
+
RETURN DISTINCT
|
|
344
|
+
affected.id AS id,
|
|
345
|
+
affected.name AS name,
|
|
346
|
+
label(affected) AS nodeType,
|
|
347
|
+
affected.filePath AS filePath,
|
|
348
|
+
affected.startLine AS startLine,
|
|
349
|
+
1 AS depth,
|
|
350
|
+
r.type AS edgeType,
|
|
351
|
+
r.confidence AS confidence,
|
|
352
|
+
r.reason AS reason
|
|
353
|
+
LIMIT 300
|
|
354
|
+
`:`
|
|
355
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
356
|
+
MATCH (affected)-[r:CodeRelation]->(target)
|
|
357
|
+
WHERE r.type IN [${h}]
|
|
358
|
+
AND (r.confidence IS NULL OR r.confidence >= ${f})
|
|
359
|
+
RETURN DISTINCT
|
|
360
|
+
affected.id AS id,
|
|
361
|
+
affected.name AS name,
|
|
362
|
+
label(affected) AS nodeType,
|
|
363
|
+
affected.filePath AS filePath,
|
|
364
|
+
affected.startLine AS startLine,
|
|
365
|
+
1 AS depth,
|
|
366
|
+
r.type AS edgeType,
|
|
367
|
+
r.confidence AS confidence,
|
|
368
|
+
r.reason AS reason
|
|
369
|
+
LIMIT 300
|
|
370
|
+
`:te?`
|
|
371
|
+
MATCH (caller)-[r:CodeRelation]->(affected)
|
|
372
|
+
WHERE caller.filePath = '${(C||e).replace(/'/g,`''`)}'
|
|
373
|
+
AND r.type IN [${h}]
|
|
374
|
+
AND caller.filePath <> affected.filePath
|
|
375
|
+
AND (r.confidence IS NULL OR r.confidence >= ${f})
|
|
376
|
+
RETURN DISTINCT
|
|
377
|
+
affected.id AS id,
|
|
378
|
+
affected.name AS name,
|
|
379
|
+
label(affected) AS nodeType,
|
|
380
|
+
affected.filePath AS filePath,
|
|
381
|
+
affected.startLine AS startLine,
|
|
382
|
+
1 AS depth,
|
|
383
|
+
r.type AS edgeType,
|
|
384
|
+
r.confidence AS confidence,
|
|
385
|
+
r.reason AS reason
|
|
386
|
+
LIMIT 300
|
|
387
|
+
`:`
|
|
388
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
389
|
+
MATCH (target)-[r:CodeRelation]->(affected)
|
|
390
|
+
WHERE r.type IN [${h}]
|
|
391
|
+
AND (r.confidence IS NULL OR r.confidence >= ${f})
|
|
392
|
+
RETURN DISTINCT
|
|
393
|
+
affected.id AS id,
|
|
394
|
+
affected.name AS name,
|
|
395
|
+
label(affected) AS nodeType,
|
|
396
|
+
affected.filePath AS filePath,
|
|
397
|
+
affected.startLine AS startLine,
|
|
398
|
+
1 AS depth,
|
|
399
|
+
r.type AS edgeType,
|
|
400
|
+
r.confidence AS confidence,
|
|
401
|
+
r.reason AS reason
|
|
402
|
+
LIMIT 300
|
|
403
|
+
`;if(ne.push(t(re).then(e=>e).catch(e=>[])),u>=2){let e=n===`upstream`?`
|
|
404
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
405
|
+
MATCH (a)-[r1:CodeRelation]->(target)
|
|
406
|
+
MATCH (affected)-[r2:CodeRelation]->(a)
|
|
407
|
+
WHERE r1.type IN [${h}] AND r2.type IN [${h}]
|
|
408
|
+
AND affected.id <> target.id
|
|
409
|
+
AND (r1.confidence IS NULL OR r1.confidence >= ${f})
|
|
410
|
+
AND (r2.confidence IS NULL OR r2.confidence >= ${f})
|
|
411
|
+
RETURN DISTINCT
|
|
412
|
+
affected.id AS id,
|
|
413
|
+
affected.name AS name,
|
|
414
|
+
label(affected) AS nodeType,
|
|
415
|
+
affected.filePath AS filePath,
|
|
416
|
+
affected.startLine AS startLine,
|
|
417
|
+
2 AS depth,
|
|
418
|
+
r2.type AS edgeType,
|
|
419
|
+
r2.confidence AS confidence,
|
|
420
|
+
r2.reason AS reason
|
|
421
|
+
LIMIT 200
|
|
422
|
+
`:`
|
|
423
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
424
|
+
MATCH (target)-[r1:CodeRelation]->(a)
|
|
425
|
+
MATCH (a)-[r2:CodeRelation]->(affected)
|
|
426
|
+
WHERE r1.type IN [${h}] AND r2.type IN [${h}]
|
|
427
|
+
AND affected.id <> target.id
|
|
428
|
+
AND (r1.confidence IS NULL OR r1.confidence >= ${f})
|
|
429
|
+
AND (r2.confidence IS NULL OR r2.confidence >= ${f})
|
|
430
|
+
RETURN DISTINCT
|
|
431
|
+
affected.id AS id,
|
|
432
|
+
affected.name AS name,
|
|
433
|
+
label(affected) AS nodeType,
|
|
434
|
+
affected.filePath AS filePath,
|
|
435
|
+
affected.startLine AS startLine,
|
|
436
|
+
2 AS depth,
|
|
437
|
+
r2.type AS edgeType,
|
|
438
|
+
r2.confidence AS confidence,
|
|
439
|
+
r2.reason AS reason
|
|
440
|
+
LIMIT 200
|
|
441
|
+
`;ne.push(t(e).catch(e=>[]))}if(u>=3){let e=n===`upstream`?`
|
|
442
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
443
|
+
MATCH (a)-[r1:CodeRelation]->(target)
|
|
444
|
+
MATCH (b)-[r2:CodeRelation]->(a)
|
|
445
|
+
MATCH (affected)-[r3:CodeRelation]->(b)
|
|
446
|
+
WHERE r1.type IN [${h}] AND r2.type IN [${h}] AND r3.type IN [${h}]
|
|
447
|
+
AND affected.id <> target.id AND affected.id <> a.id
|
|
448
|
+
AND (r1.confidence IS NULL OR r1.confidence >= ${f})
|
|
449
|
+
AND (r2.confidence IS NULL OR r2.confidence >= ${f})
|
|
450
|
+
AND (r3.confidence IS NULL OR r3.confidence >= ${f})
|
|
451
|
+
RETURN DISTINCT
|
|
452
|
+
affected.id AS id,
|
|
453
|
+
affected.name AS name,
|
|
454
|
+
label(affected) AS nodeType,
|
|
455
|
+
affected.filePath AS filePath,
|
|
456
|
+
affected.startLine AS startLine,
|
|
457
|
+
3 AS depth,
|
|
458
|
+
r3.type AS edgeType,
|
|
459
|
+
r3.confidence AS confidence,
|
|
460
|
+
r3.reason AS reason
|
|
461
|
+
LIMIT 100
|
|
462
|
+
`:`
|
|
463
|
+
MATCH (target {id: '${S.replace(/'/g,`''`)}'})
|
|
464
|
+
MATCH (target)-[r1:CodeRelation]->(a)
|
|
465
|
+
MATCH (a)-[r2:CodeRelation]->(b)
|
|
466
|
+
MATCH (b)-[r3:CodeRelation]->(affected)
|
|
467
|
+
WHERE r1.type IN [${h}] AND r2.type IN [${h}] AND r3.type IN [${h}]
|
|
468
|
+
AND affected.id <> target.id AND affected.id <> a.id
|
|
469
|
+
AND (r1.confidence IS NULL OR r1.confidence >= ${f})
|
|
470
|
+
AND (r2.confidence IS NULL OR r2.confidence >= ${f})
|
|
471
|
+
AND (r3.confidence IS NULL OR r3.confidence >= ${f})
|
|
472
|
+
RETURN DISTINCT
|
|
473
|
+
affected.id AS id,
|
|
474
|
+
affected.name AS name,
|
|
475
|
+
label(affected) AS nodeType,
|
|
476
|
+
affected.filePath AS filePath,
|
|
477
|
+
affected.startLine AS startLine,
|
|
478
|
+
3 AS depth,
|
|
479
|
+
r3.type AS edgeType,
|
|
480
|
+
r3.confidence AS confidence,
|
|
481
|
+
r3.reason AS reason
|
|
482
|
+
LIMIT 100
|
|
483
|
+
`;ne.push(t(e).catch(e=>[]))}let ie=await Promise.all(ne),ae=new Map,oe=[],se=new Set;ie.forEach((e,t)=>{let n=t+1;e.forEach(e=>{let t=Array.isArray(e)?e[0]:e.id,r=Array.isArray(e)?e[3]:e.filePath;if(!(!d&&p(r))&&t&&!se.has(t)){se.add(t),ae.has(n)||ae.set(n,[]);let i={id:t,name:Array.isArray(e)?e[1]:e.name,nodeType:Array.isArray(e)?e[2]:e.nodeType,filePath:r,startLine:Array.isArray(e)?e[4]:e.startLine,edgeType:Array.isArray(e)?e[5]:e.edgeType||`CALLS`,confidence:Array.isArray(e)?e[6]:e.confidence??1,reason:Array.isArray(e)?e[7]:e.reason||``};ae.get(n).push(i),oe.push(t)}})});let w=oe.length;if(w===0){if(te){let t=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=((C||e).split(`/`).pop()||e).replace(/\.[^/.]+$/,``);try{let a=(await r(`\\b${t(i)}\\b`,15)).filter(e=>e.filePath!==C);if(a.length>0){let t=a.map(e=>`${e.filePath}:${e.line}: ${e.text}`).join(`
|
|
484
|
+
`);return`No ${n} dependencies found for "${e}" (types: ${m.join(`, `)}), but textual references were detected (graph may be incomplete):\n\n${t}`}}catch{}}return n===`upstream`?`No ${n} dependencies found for "${e}" (types: ${m.join(`, `)}). This does NOT establish the symbol is unused — an empty caller set can also mean the callers are not resolvable by the index (plain-object property access, dynamic dispatch, cross-language calls). Confirm with a text search before treating it as dead code.`:`No ${n} dependencies found for "${e}" (types: ${m.join(`, `)}). This code appears to be self-contained (no outgoing dependencies).`}let ce=ae.get(1)||[],le=ae.get(2)||[],ue=ae.get(3)||[],de={high:0,medium:0,low:0};for(let e of ae.values())for(let t of e){let e=t.confidence??1;e>=.9?de.high+=1:e>=.8?de.medium+=1:de.low+=1}let fe=oe.slice(0,500),pe=fe.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`, `),me=[],he=[];if(fe.length>0){let e=`
|
|
485
|
+
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
486
|
+
WHERE s.id IN [${pe}]
|
|
487
|
+
RETURN p.label AS label, COUNT(DISTINCT s.id) AS hits, MIN(r.step) AS minStep, p.stepCount AS stepCount
|
|
488
|
+
ORDER BY hits DESC
|
|
489
|
+
LIMIT 20
|
|
490
|
+
`,n=`
|
|
491
|
+
MATCH (s)-[:CodeRelation {type: 'MEMBER_OF'}]->(c:Community)
|
|
492
|
+
WHERE s.id IN [${pe}]
|
|
493
|
+
RETURN c.label AS label, COUNT(DISTINCT s.id) AS hits
|
|
494
|
+
ORDER BY hits DESC
|
|
495
|
+
LIMIT 20
|
|
496
|
+
`,r=ce.map(e=>`'${e.id.replace(/'/g,`''`)}'`).join(`, `),i=ce.length>0?`
|
|
497
|
+
MATCH (s)-[:CodeRelation {type: 'MEMBER_OF'}]->(c:Community)
|
|
498
|
+
WHERE s.id IN [${r}]
|
|
499
|
+
RETURN DISTINCT c.label AS label
|
|
500
|
+
`:``,[a,o,s]=await Promise.all([t(e),t(n),i?t(i):Promise.resolve([])]),c=new Set;s.forEach(e=>{let t=Array.isArray(e)?e[0]:e.label;t&&c.add(t)}),me=a.map(e=>({label:Array.isArray(e)?e[0]:e.label,hits:Array.isArray(e)?e[1]:e.hits,minStep:Array.isArray(e)?e[2]:e.minStep,stepCount:Array.isArray(e)?e[3]:e.stepCount})),he=o.map(e=>{let t=Array.isArray(e)?e[0]:e.label;return{label:t,hits:Array.isArray(e)?e[1]:e.hits,impact:c.has(t)?`direct`:`indirect`}})}let ge=ce.length,_e=me.length,ve=he.length,ye=`LOW`;ge>=30||_e>=5||ve>=5||w>=200?ye=`CRITICAL`:ge>=15||_e>=3||ve>=3||w>=100?ye=`HIGH`:(ge>=5||w>=30)&&(ye=`MEDIUM`);let be=[`🔴 IMPACT: ${e} | ${n} | ${w} affected`,`Confidence: High ${de.high} | Medium ${de.medium} | Low ${de.low}`,``,`AFFECTED PROCESSES:`,...me.length>0?me.map(e=>`- ${e.label} - BROKEN at step ${e.minStep??`?`} (${e.hits} symbols, ${e.stepCount??`?`} steps)`):[`- None found`],``,`AFFECTED CLUSTERS:`,...he.length>0?he.map(e=>`- ${e.label} (${e.impact}, ${e.hits} symbols)`):[`- None found`],``,`RISK: ${ye}`,`- Direct callers: ${ge}`,`- Processes affected: ${_e}`,`- Clusters affected: ${ve}`,``],xe=e=>{let t=e.filePath?.split(`/`).pop()||``,n=e.startLine?`${t}:${e.startLine}`:t,r=Math.round((e.confidence??1)*100),i=r<80?`[fuzzy]`:``;return` ${e.nodeType}|${e.name}|${n}|${e.edgeType}|${r}%${i}`},Se=async e=>{if(!e.filePath||!e.startLine)return null;try{let t=(await i(e.filePath)).split(`
|
|
501
|
+
`),n=e.startLine-1;if(n<0||n>=t.length)return null;let r=t[n].trim();return r.length>80&&(r=r.slice(0,77)+`...`),r}catch{return null}};if(ce.length>0){let t=n===`upstream`?`d=1 (Directly DEPEND ON ${e}):`:`d=1 (${e} USES these):`;be.push(t);for(let e of ce.slice(0,15)){be.push(xe(e));let t=await Se(e);t&&be.push(` ↳ "${t}"`)}ce.length>15&&be.push(` ... +${ce.length-15} more`),be.push(``)}if(le.length>0){let t=n===`upstream`?`d=2 (Indirectly DEPEND ON ${e}):`:`d=2 (${e} USES these indirectly):`;be.push(t),le.slice(0,15).forEach(e=>be.push(xe(e))),le.length>15&&be.push(` ... +${le.length-15} more`),be.push(``)}return ue.length>0&&(be.push(`d=3 (Deep impact/dependency):`),ue.slice(0,5).forEach(e=>be.push(xe(e))),ue.length>5&&be.push(` ... +${ue.length-5} more`),be.push(``)),be.push(`✅ GRAPH ANALYSIS COMPLETE (trusted)`),be.push(`⚠️ Optional: grep("${e}") for dynamic patterns`),be.push(``),be.join(`
|
|
502
|
+
`)},{name:`impact`,description:`Analyze the impact of changing a function, class, or file.
|
|
503
|
+
|
|
504
|
+
Use when users ask:
|
|
505
|
+
- "What would break if I changed X?"
|
|
506
|
+
- "What depends on X?"
|
|
507
|
+
- "Impact analysis for X"
|
|
508
|
+
|
|
509
|
+
Direction:
|
|
510
|
+
- upstream: Find what CALLS/IMPORTS/EXTENDS this target (what would break)
|
|
511
|
+
- downstream: Find what this target CALLS/IMPORTS/EXTENDS (dependencies)
|
|
512
|
+
|
|
513
|
+
Output format (compact tabular):
|
|
514
|
+
Type|Name|File:Line|EdgeType|Confidence%
|
|
515
|
+
|
|
516
|
+
EdgeType: CALLS, IMPORTS, EXTENDS, IMPLEMENTS
|
|
517
|
+
Confidence: 100% = certain, <80% = fuzzy match (may be false positive)
|
|
518
|
+
|
|
519
|
+
relationTypes filter (optional):
|
|
520
|
+
- Default: CALLS, IMPORTS, EXTENDS, IMPLEMENTS (usage-based)
|
|
521
|
+
- Can add CONTAINS, DEFINES for structural analysis
|
|
522
|
+
|
|
523
|
+
Additional output sections:
|
|
524
|
+
- Affected processes (with step impact)
|
|
525
|
+
- Affected clusters (direct/indirect)
|
|
526
|
+
- Risk summary (based on direct callers, processes, clusters)`,schema:G({target:W().describe(`Name of the function, class, or file to analyze`),direction:GA([`upstream`,`downstream`]).describe(`upstream = what depends on this; downstream = what this depends on`),maxDepth:bA().optional().nullable().describe(`Max traversal depth (default: 3, max: 10)`),relationTypes:MA(W()).optional().nullable().describe(`Filter by relation types: CALLS, IMPORTS, EXTENDS, IMPLEMENTS, CONTAINS, DEFINES (default: usage-based)`),includeTests:wA().optional().nullable().describe(`Include test files in results (default: false, excludes .test.ts, .spec.ts, __tests__)`),minConfidence:bA().optional().nullable().describe(`Minimum edge confidence 0-1 (default: 0.7, excludes fuzzy/inferred matches)`)})})]},cQ=class extends xq{activeMessages=null;setActiveMessages(e){if(this.activeMessages!==null)throw Error(`DeepSeekChatOpenAICompletions does not support overlapping requests`);this.activeMessages=e}async _generate(e,t,n){this.setActiveMessages(e);try{return await super._generate(e,t,n)}finally{this.activeMessages=null}}async*_streamResponseChunks(e,t,n){this.setActiveMessages(e);try{yield*super._streamResponseChunks(e,t,n)}finally{this.activeMessages=null}}async completionWithRetry(e,t){let n=this.activeMessages?gQ(this.activeMessages):e.messages;return super.completionWithRetry({...e,messages:n},t)}},lQ=class e extends Wq{deepSeekFields;constructor(e){let t={...e,completions:new cQ(e)};super(t),this.deepSeekFields=t}withConfig(t){let n=new e(this.deepSeekFields);return n.defaultOptions={...this.defaultOptions,...t},n}},uQ=e=>typeof e==`string`?e:Array.isArray(e)?e.filter(e=>e?.type===`text`||typeof e==`string`).map(e=>typeof e==`string`?e:e.text||``).join(``):e==null?``:String(e),dQ=e=>{if(e?.args&&typeof e.args==`object`)return e.args;try{return e?.function?.arguments?JSON.parse(e.function.arguments):{}}catch{return{}}},fQ=e=>{if(!(!Array.isArray(e)||e.length===0))return e.map(e=>({id:typeof e?.id==`string`?e.id:void 0,name:e?.name||e?.function?.name||`unknown`,args:dQ(e),type:typeof e?.type==`string`?e.type:`tool_call`}))},pQ=e=>{if(typeof e==`string`)return e;try{return JSON.stringify(e??{})}catch{return`{}`}},mQ=e=>{if(typeof e==`string`)return e;if(!Array.isArray(e))return uQ(e);let t=e.flatMap(e=>typeof e==`string`?[{type:`text`,text:e}]:e?.type===`text`&&typeof e.text==`string`?[{type:`text`,text:e.text}]:[]);return t.length===0?``:t.length===1?t[0].text:t},hQ=e=>{let t=e?._getType?.()||e?.type||e?.constructor?.name||`unknown`;if((e.additional_kwargs||{}).__openai_role__===`developer`)return`developer`;switch(t){case`human`:case`HumanMessage`:return`user`;case`ai`:case`AIMessage`:return`assistant`;case`system`:case`SystemMessage`:return`system`;case`tool`:case`ToolMessage`:return`tool`;case`function`:case`FunctionMessage`:return`function`;default:return typeof e.role==`string`?e.role:`user`}},gQ=e=>e.map(e=>{let t=hQ(e),n=e.additional_kwargs&&typeof e.additional_kwargs==`object`?e.additional_kwargs:{},r={role:t,content:mQ(e.content)};if(typeof e.name==`string`&&e.name.length>0&&(r.name=e.name),t===`assistant`){let t=Array.isArray(e.tool_calls)?e.tool_calls:Array.isArray(n.tool_calls)?n.tool_calls:void 0;return t?.length&&(r.tool_calls=t.map(e=>e?.function?{id:e.id,type:e.type??`function`,function:{name:e.function.name,arguments:pQ(e.function.arguments)}}:{id:e?.id,type:`function`,function:{name:e?.name??`unknown`,arguments:pQ(e?.args)}})),n.function_call!=null&&(r.function_call=n.function_call),t?.length&&typeof n.reasoning_content==`string`&&(r.reasoning_content=n.reasoning_content),r}return t===`tool`&&typeof e.tool_call_id==`string`&&(r.tool_call_id=e.tool_call_id),t===`function`&&typeof e.name==`string`&&(r.name=e.name),r}),_Q=`You are Nexus, a Code Analysis Agent with access to a Knowledge Graph. Your responses MUST be grounded.
|
|
527
|
+
|
|
528
|
+
## ⚠️ MANDATORY: GROUNDING
|
|
529
|
+
Every factual claim MUST include a citation.
|
|
530
|
+
- File refs: [[src/auth.ts:45-60]] (repo-relative path, line range with hyphen)
|
|
531
|
+
- Symbol refs: [[Function:validateUser]] or [[Class:AuthService]]
|
|
532
|
+
- Do NOT wrap citations in backticks or code blocks — keep them as plain text
|
|
533
|
+
- NO citation = NO claim. Say "I didn't find evidence" instead of guessing.
|
|
534
|
+
|
|
535
|
+
## 🧠 CORE PROTOCOL (Iterative Loop)
|
|
536
|
+
You are an investigator, not a one-shot query engine. For each question:
|
|
537
|
+
1. **Plan** — Briefly state what you are looking for and why.
|
|
538
|
+
2. **Execute** — Run tools to gather evidence.
|
|
539
|
+
3. **Analyze & pivot** — Did the output fully answer the question?
|
|
540
|
+
- Yes → proceed to grounding.
|
|
541
|
+
- Revealed new files/functions → loop back and investigate them immediately.
|
|
542
|
+
- Tool failed → fix the input and retry. Never stop after one error.
|
|
543
|
+
4. **Trace** — Use cypher, explore, or impact to follow graph connections.
|
|
544
|
+
5. **Read** — Use read to verify logic. Do not guess behavior from names alone.
|
|
545
|
+
6. **Validate** — Cross-check findings with cypher before final output. README/docs are summaries, not proof.
|
|
546
|
+
7. **Ground** — Cite every finding with [[path:START-END]] or [[Type:Name]].
|
|
547
|
+
|
|
548
|
+
Before EVERY tool call, briefly state what you are doing and why. Keep narration to one line per step.
|
|
549
|
+
|
|
550
|
+
## BE DIRECT
|
|
551
|
+
- No pleasantries. No "Great question!" or "I'd be happy to help."
|
|
552
|
+
- Don't repeat advice already given in this conversation.
|
|
553
|
+
- Match response length to query complexity.
|
|
554
|
+
- Don't pad with generic "let me know if you need more" — users will ask.
|
|
555
|
+
|
|
556
|
+
## 🛠️ TOOLS (exact names — use these only)
|
|
557
|
+
- **\`search\`** — Hybrid keyword + semantic search. Results grouped by process with cluster context. Start here for discovery.
|
|
558
|
+
- **\`cypher\`** — Cypher queries against the graph. Use \`{{QUERY_VECTOR}}\` placeholder for vector search.
|
|
559
|
+
- **\`grep\`** — Regex search across files. Best for exact strings, TODOs, error codes.
|
|
560
|
+
- **\`read\`** — Read file content. Always use after search/grep to see full source.
|
|
561
|
+
- **\`explore\`** — Deep dive on a symbol, cluster, or process.
|
|
562
|
+
- **\`overview\`** — Codebase map showing all clusters and processes.
|
|
563
|
+
- **\`impact\`** — Impact analysis. Shows affected processes, clusters, and risk level.
|
|
564
|
+
|
|
565
|
+
**Tool strategy:**
|
|
566
|
+
- Discovery → \`search\` or \`overview\`
|
|
567
|
+
- Structure → \`cypher\`, \`explore\`, or \`impact\`
|
|
568
|
+
- Verification → \`read\` (required before concluding)
|
|
569
|
+
- Exact patterns → \`grep\`
|
|
570
|
+
|
|
571
|
+
## 📊 GRAPH SCHEMA
|
|
572
|
+
Typed node labels: File, Folder, Function, Class, Interface, Method, CodeElement, Community, Process
|
|
573
|
+
Single relation table: \`CodeRelation\` with \`type\` property: CONTAINS, DEFINES, IMPORTS, CALLS, EXTENDS, IMPLEMENTS, MEMBER_OF, STEP_IN_PROCESS
|
|
574
|
+
|
|
575
|
+
✅ \`MATCH (f:Function) RETURN f.name LIMIT 10\`
|
|
576
|
+
✅ \`MATCH (a)-[r:CodeRelation {type: 'CALLS'}]->(b:Function) RETURN a.name, b.name\`
|
|
577
|
+
❌ \`MATCH ()-[:CALLS]->()\` — WRONG, no such relationship label
|
|
578
|
+
|
|
579
|
+
Cypher examples:
|
|
580
|
+
- Find callers: \`MATCH (caller:Function)-[:CodeRelation {type: 'CALLS'}]->(fn:Function {name: 'validate'}) RETURN caller.name, caller.filePath\`
|
|
581
|
+
- File imports: \`MATCH (f:File)-[:CodeRelation {type: 'IMPORTS'}]->(g:File) RETURN f.name, g.name\`
|
|
582
|
+
- Semantic search: include \`{{QUERY_VECTOR}}\` in cypher and provide a \`query\` parameter
|
|
583
|
+
|
|
584
|
+
## 📐 GRAPH SEMANTICS
|
|
585
|
+
- \`CALLS\`: Method invocation or constructor injection (intentional simplification).
|
|
586
|
+
- \`IMPORTS\`: File-level import/include.
|
|
587
|
+
- \`EXTENDS/IMPLEMENTS\`: Class inheritance.
|
|
588
|
+
- Process labels use format "EntryPoint → Terminal" (heuristic, not app-defined names).
|
|
589
|
+
|
|
590
|
+
## 🎯 VISUAL GROUNDING (not a tool)
|
|
591
|
+
The user sees a knowledge graph alongside this chat. Citations automatically highlight nodes in the graph UI.
|
|
592
|
+
- Include [[path:START-END]] and [[Type:Name]] refs as you discover relevant code — the UI highlights them for the user.
|
|
593
|
+
- Prefer 2-6 high-signal references over large dumps.
|
|
594
|
+
- There is NO \`highlight_in_graph\` tool. Ground with citations; the UI handles visualization.
|
|
595
|
+
|
|
596
|
+
## 📝 CRITICAL RULES
|
|
597
|
+
- **impact output is trusted.** Do NOT re-validate with cypher. Optionally run suggested grep for dynamic patterns.
|
|
598
|
+
- **Cite or retract.** Never state something you can't ground.
|
|
599
|
+
- **Iterative depth.** If Function A calls Function B, read Function B. Trace logic to the source.
|
|
600
|
+
- **Prefer cypher** for anything requiring graph connections.
|
|
601
|
+
|
|
602
|
+
## ERROR RECOVERY
|
|
603
|
+
If a tool call fails (Cypher syntax, file not found, invalid regex), do NOT stop.
|
|
604
|
+
- Read the error, fix the input, and retry at least once.
|
|
605
|
+
- For Cypher errors, verify typed node labels and \`CodeRelation {type: '...'}\` filters match the GRAPH SCHEMA section above.
|
|
606
|
+
- If search returns nothing, try grep or a different query before concluding.
|
|
607
|
+
|
|
608
|
+
## 🎯 OUTPUT STYLE
|
|
609
|
+
Think like a senior architect. Be concise — no fluff.
|
|
610
|
+
- Use tables for comparisons/rankings
|
|
611
|
+
- Use mermaid diagrams for flows, architecture, and dependencies
|
|
612
|
+
- Surface deep insights: patterns, coupling, design decisions
|
|
613
|
+
- End with **TL;DR**
|
|
614
|
+
|
|
615
|
+
## MERMAID RULES
|
|
616
|
+
When generating diagrams:
|
|
617
|
+
- NO special characters in node labels: quotes, (), /, &, <, >
|
|
618
|
+
- Wrap labels with spaces in quotes: A["My Label"]
|
|
619
|
+
- Use simple IDs: A, B, C or auth, db, api
|
|
620
|
+
- Flowchart: graph TD or graph LR (not flowchart)
|
|
621
|
+
- Keep diagrams focused — 5-10 nodes max
|
|
622
|
+
- Always test mentally: would this parse?
|
|
623
|
+
|
|
624
|
+
BAD: A[User's Data] --> B(Process & Save)
|
|
625
|
+
GOOD: A["User Data"] --> B["Process and Save"]
|
|
626
|
+
`,vQ=e=>{switch(e.provider){case`openai`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`OpenAI API key is required but was not provided`);return new Wq({apiKey:t.apiKey,modelName:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens,configuration:{apiKey:t.apiKey,...t.baseUrl?{baseURL:t.baseUrl}:{}},streaming:!0})}case`azure-openai`:{let t=e;return new Gq({azureOpenAIApiKey:t.apiKey,azureOpenAIApiInstanceName:yQ(t.endpoint),azureOpenAIApiDeploymentName:t.deploymentName,azureOpenAIApiVersion:t.apiVersion??`2024-12-01-preview`,streaming:!0})}case`gemini`:{let t=e;return new AY({apiKey:t.apiKey,model:t.model,temperature:t.temperature??.1,maxOutputTokens:t.maxTokens,streaming:!0})}case`anthropic`:{let t=e;return new RX({anthropicApiKey:t.apiKey,model:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens??8192,streaming:!0})}case`ollama`:{let t=e;return new iQ({baseUrl:t.baseUrl??`http://localhost:11434`,model:t.model,temperature:t.temperature??.1,streaming:!0,numPredict:3e4,numCtx:32768})}case`openrouter`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`OpenRouter API key is required but was not provided`);return new Wq({openAIApiKey:t.apiKey,apiKey:t.apiKey,modelName:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens,configuration:{apiKey:t.apiKey,baseURL:t.baseUrl??`https://openrouter.ai/api/v1`},streaming:!0})}case`minimax`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`MiniMax API key is required but was not provided`);let i=n(t.model),a=t.thinkingMode,o=a&&i?.thinkingModes.includes(a)?a:i?.thinkingModes[0]??a,s=o&&o!==`always_on`?{type:o}:void 0,c=o===`adaptive`||o===`always_on`?void 0:t.temperature??.1;return new RX({anthropicApiKey:t.apiKey,model:t.model,...c===void 0?{}:{temperature:c},maxTokens:t.maxTokens??8192,streaming:!0,...s?{thinking:s}:{},clientOptions:{baseURL:t.baseUrl??r.global_en}})}case`glm`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`GLM API key is required but was not provided`);return new Wq({apiKey:t.apiKey,modelName:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens,configuration:{apiKey:t.apiKey,baseURL:t.baseUrl??`https://api.z.ai/api/coding/paas/v4`},streaming:!0})}case`deepseek`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`DeepSeek API key is required but was not provided`);return new lQ({apiKey:t.apiKey,modelName:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens,configuration:{apiKey:t.apiKey,baseURL:`https://api.deepseek.com`},streaming:!0})}default:throw Error(`Unsupported provider: ${e.provider}`)}},yQ=e=>{try{let t=new URL(e).hostname,n=t.match(/^([^.]+)\.openai\.azure\.com$/);return n?n[1]:t.split(`.`)[0]}catch{return e}},bQ=(e,t,n,r=!1)=>GR({llm:vQ(e),tools:sQ(t),messageModifier:new wn(n?s(_Q,n,r):r?`${_Q}${o}`:_Q)}),xQ=(e,t)=>!!(e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`||t?.aborted),SQ=e=>e.map(e=>e.role===`user`?typeof e.content==`string`?new yn(e.content):new yn({content:e.content}):e.role===`tool`?new Ot({content:e.content,tool_call_id:e.toolCallId,...e.name?{name:e.name}:{}}):new k({content:e.content,...typeof e.reasoningContent==`string`?{additional_kwargs:{reasoning_content:e.reasoningContent}}:{},...e.toolCalls?.length?{tool_calls:e.toolCalls}:{}})),CQ=(e,t=0)=>{let n=[];for(let r of e.slice(t)){let e=r,t=e?._getType?.()||e?.type||e?.constructor?.name||`unknown`;if(t===`ai`||t===`AIMessage`){let t=(e.additional_kwargs||e.kwargs)?.reasoning_content,r=fQ(e.tool_calls);n.push({role:`assistant`,content:uQ(e.content),...r?.length&&typeof t==`string`?{reasoningContent:t}:{},...r?.length?{toolCalls:r}:{}});continue}(t===`tool`||t===`ToolMessage`)&&n.push({role:`tool`,content:uQ(e.content),toolCallId:String(e.tool_call_id??``),...typeof e.name==`string`?{name:e.name}:{}})}return n};async function*wQ(e,t,n={}){try{let r=SQ(t),i=await e.stream({messages:r},{streamMode:[`values`,`messages`],recursionLimit:50,signal:n.signal}),a=new Set,o=new Set,s=r.length,c=0,l=!1,u=null;for await(let e of i){if(n.signal?.aborted)break;let t,r;if(Array.isArray(e)&&e.length===2&&typeof e[0]==`string`?[t,r]=e:Array.isArray(e)&&e[0]?._getType?(t=`messages`,r=e):(t=`values`,r=e),t===`messages`){let[e]=Array.isArray(r)?r:[r];if(!e)continue;let t=e._getType?.()||e.type||e.constructor?.name||`unknown`;if(t===`ai`||t===`AIMessage`||t===`AIMessageChunk`){let t=e.content,n=e.tool_calls||[],r=``,i=``;if(typeof t==`string`?r=t:Array.isArray(t)&&(r=t.filter(e=>e.type===`text`||typeof e==`string`).map(e=>typeof e==`string`?e:e.text||``).join(``),i=t.filter(e=>e?.type===`thinking`).map(e=>e.thinking||``).join(``)),i&&(yield{type:`reasoning`,reasoning:i}),r&&r.length>0&&(!l||n.length>0||c>0?yield{type:`reasoning`,reasoning:r}:yield{type:`content`,content:r}),n.length>0){l=!0,c+=n.length;for(let e of n){let t=e.id||`tool-${Date.now()}-${Math.random().toString(36).slice(2)}`;if(!a.has(t)){a.add(t);let n;try{n=e.function?.arguments?JSON.parse(e.function.arguments):{}}catch{n={}}yield{type:`tool_call`,toolCall:{id:t,name:e.name||e.function?.name||`unknown`,args:e.args||n,status:`running`}}}}}}if(t===`tool`||t===`ToolMessage`){let t=e.tool_call_id||``;if(t&&!o.has(t)){o.add(t);let n=typeof e.content==`string`?e.content:JSON.stringify(e.content);yield{type:`tool_result`,toolCall:{id:t,name:e.name||`tool`,args:{},result:n,status:`completed`}},c=Math.max(0,c-1)}}}if(t===`values`&&r?.messages){let e=r.messages||[];n.captureHistory&&(u=e);for(let t=s;t<e.length;t++){let n=e[t],r=n._getType?.()||n.type||`unknown`;if((r===`ai`||r===`AIMessage`)&&!a.size){let e=n.tool_calls||[];for(let t of e){let e=t.id||`tool-${Date.now()}`;a.has(e)||(c++,a.add(e),yield{type:`tool_call`,toolCall:{id:e,name:t.name||`unknown`,args:t.args||{},status:`running`}})}}if(r===`tool`||r===`ToolMessage`){let e=n.tool_call_id||``;if(e&&!o.has(e)){o.add(e);let t=typeof n.content==`string`?n.content:JSON.stringify(n.content);yield{type:`tool_result`,toolCall:{id:e,name:n.name||`tool`,args:{},result:t,status:`completed`}},c=Math.max(0,c-1)}}}s=e.length}}if(n.signal?.aborted){yield{type:`cancelled`};return}yield{type:`done`,historyMessages:n.captureHistory&&u?CQ(u,r.length):void 0}}catch(e){if(xQ(e,n.signal)){yield{type:`cancelled`};return}yield{type:`error`,error:e instanceof Error?e.message:String(e)}}}export{bQ as createGraphRAGAgent,wQ as streamAgentResponse};
|