gitnexus 1.6.9 → 1.6.10-aptos.0
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 +211 -53
- package/dist/_shared/graph/types.d.ts +67 -3
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +1 -0
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +3 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +4 -3
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/language-detection.js +2 -0
- package/dist/_shared/language-detection.js.map +1 -1
- package/dist/_shared/languages.d.ts +2 -0
- package/dist/_shared/languages.d.ts.map +1 -1
- package/dist/_shared/languages.js +2 -0
- package/dist/_shared/languages.js.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 +8 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/pipeline.d.ts +1 -1
- package/dist/_shared/pipeline.d.ts.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/finalize-algorithm.d.ts +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/language-classification.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/language-classification.js +1 -0
- package/dist/_shared/scope-resolution/language-classification.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 +9 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +20 -3
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +1 -1
- package/dist/cli/ai-context.js +25 -44
- package/dist/cli/analyze.d.ts +5 -2
- package/dist/cli/analyze.js +197 -11
- package/dist/cli/clean.js +17 -3
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/doctor.d.ts +18 -0
- package/dist/cli/doctor.js +96 -5
- package/dist/cli/editor-targets.d.ts +17 -2
- package/dist/cli/editor-targets.js +44 -0
- package/dist/cli/embeddings.d.ts +12 -0
- package/dist/cli/embeddings.js +49 -0
- package/dist/cli/eval-server.d.ts +23 -1
- package/dist/cli/eval-server.js +126 -8
- package/dist/cli/help-i18n.js +6 -0
- package/dist/cli/i18n/en.d.ts +18 -8
- package/dist/cli/i18n/en.js +18 -8
- package/dist/cli/i18n/resources.d.ts +28 -8
- package/dist/cli/i18n/zh-CN.d.ts +10 -0
- package/dist/cli/i18n/zh-CN.js +18 -8
- package/dist/cli/index.js +21 -7
- 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/move-availability.d.ts +5 -0
- package/dist/cli/move-availability.js +11 -0
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +230 -32
- package/dist/cli/skill-gen.js +38 -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.js +11 -0
- package/dist/cli/uninstall.js +77 -18
- package/dist/cli/wiki.d.ts +1 -0
- package/dist/cli/wiki.js +7 -1
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +27 -0
- package/dist/core/analysis-features.d.ts +21 -0
- package/dist/core/analysis-features.js +59 -0
- package/dist/core/analyzer-identity.d.ts +74 -0
- package/dist/core/analyzer-identity.js +1820 -0
- package/dist/core/augmentation/engine.js +13 -8
- package/dist/core/embeddings/embedder.d.ts +3 -2
- package/dist/core/embeddings/embedder.js +24 -7
- 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 +36 -1
- package/dist/core/embeddings/embedding-pipeline.js +100 -9
- package/dist/core/embeddings/http-client.d.ts +33 -3
- package/dist/core/embeddings/http-client.js +237 -25
- package/dist/core/embeddings/node-module-compat.d.ts +25 -0
- package/dist/core/embeddings/node-module-compat.js +25 -0
- package/dist/core/embeddings/onnxruntime-common-resolver.js +8 -5
- package/dist/core/embeddings/onnxruntime-node-resolver.js +33 -7
- package/dist/core/embeddings/runtime-install.d.ts +119 -0
- package/dist/core/embeddings/runtime-install.js +372 -0
- package/dist/core/embeddings/runtime-support.d.ts +48 -17
- package/dist/core/embeddings/runtime-support.js +96 -0
- package/dist/core/git-staleness.js +1 -1
- package/dist/core/group/bridge-db.js +2 -0
- package/dist/core/group/extractors/http-patterns/python.js +246 -108
- package/dist/core/group/extractors/manifest-extractor.js +4 -0
- package/dist/core/incremental/escalation-gate.d.ts +38 -0
- package/dist/core/incremental/escalation-gate.js +48 -0
- package/dist/core/incremental/shadow-candidates.d.ts +3 -3
- package/dist/core/incremental/shadow-candidates.js +3 -3
- package/dist/core/incremental/subgraph-extract.d.ts +2 -2
- package/dist/core/incremental/subgraph-extract.js +2 -2
- package/dist/core/index-freshness.d.ts +5 -0
- package/dist/core/index-freshness.js +13 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.js +29 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/cobol/jcl-processor.js +9 -8
- package/dist/core/ingestion/cobol-processor.js +27 -26
- package/dist/core/ingestion/community-processor.d.ts +51 -1
- package/dist/core/ingestion/community-processor.js +323 -64
- package/dist/core/ingestion/emit-references.js +7 -2
- package/dist/core/ingestion/filesystem-walker.js +4 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +3 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +7 -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 +26 -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/languages/c/captures.js +56 -0
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +6 -0
- package/dist/core/ingestion/languages/cobol/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +7 -0
- package/dist/core/ingestion/languages/cpp/captures.js +365 -75
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +14 -0
- package/dist/core/ingestion/languages/csharp/captures.js +25 -0
- package/dist/core/ingestion/languages/dart/captures.js +90 -2
- 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.js +2 -0
- package/dist/core/ingestion/languages/go/captures.js +34 -0
- package/dist/core/ingestion/languages/index.d.ts +1 -0
- package/dist/core/ingestion/languages/index.js +2 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +3 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +13 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +22 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +58 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
- package/dist/core/ingestion/languages/java/captures.js +193 -17
- 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 +23 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +23 -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-config-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
- package/dist/core/ingestion/languages/java.js +3 -0
- package/dist/core/ingestion/languages/javascript/captures.js +16 -0
- package/dist/core/ingestion/languages/javascript/query.js +21 -0
- 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 +129 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +17 -3
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +42 -8
- package/dist/core/ingestion/languages/kotlin/captures.js +59 -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 +19 -0
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +9 -1
- 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.js +5 -6
- package/dist/core/ingestion/languages/move.d.ts +1 -0
- package/dist/core/ingestion/languages/move.js +27 -0
- package/dist/core/ingestion/languages/php/captures.js +40 -0
- 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 +110 -2
- package/dist/core/ingestion/languages/php/interpret.js +10 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
- package/dist/core/ingestion/languages/python/captures.d.ts +3 -4
- package/dist/core/ingestion/languages/python/captures.js +24 -5
- package/dist/core/ingestion/languages/python/interpret.js +4 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +15 -2
- package/dist/core/ingestion/languages/python/receiver-binding.js +96 -2
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
- package/dist/core/ingestion/languages/python/simple-hooks.js +15 -5
- package/dist/core/ingestion/languages/ruby/captures.js +42 -0
- package/dist/core/ingestion/languages/rust/captures.js +13 -0
- package/dist/core/ingestion/languages/rust/interpret.js +18 -0
- package/dist/core/ingestion/languages/rust/query.js +9 -0
- package/dist/core/ingestion/languages/rust/range-binding.js +6 -2
- package/dist/core/ingestion/languages/swift/captures.js +12 -0
- package/dist/core/ingestion/languages/typescript/captures.js +21 -0
- package/dist/core/ingestion/languages/typescript/nuxt-auto-imports.js +2 -1
- package/dist/core/ingestion/languages/typescript/query.js +37 -0
- package/dist/core/ingestion/markdown-processor.js +3 -2
- package/dist/core/ingestion/model/registration-table.js +1 -0
- package/dist/core/ingestion/parsing-processor.d.ts +3 -1
- package/dist/core/ingestion/parsing-processor.js +36 -1
- package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/index.js +2 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +56 -2
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +0 -2
- package/dist/core/ingestion/pipeline-phases/parse.js +12 -3
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +8 -0
- package/dist/core/ingestion/pipeline-phases/processes.js +11 -1
- 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/standalone-ingest.d.ts +10 -0
- package/dist/core/ingestion/pipeline-phases/standalone-ingest.js +6 -0
- package/dist/core/ingestion/pipeline.d.ts +4 -2
- package/dist/core/ingestion/pipeline.js +5 -2
- package/dist/core/ingestion/resolve-references.js +12 -0
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +83 -0
- package/dist/core/ingestion/route-extractors/constant-resolver.js +131 -0
- package/dist/core/ingestion/route-extractors/python-const-resolver.d.ts +75 -0
- package/dist/core/ingestion/route-extractors/python-const-resolver.js +299 -0
- package/dist/core/ingestion/scope-extractor.js +306 -43
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +71 -2
- 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 +3 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +6 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +1 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +4 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +7 -2
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1138 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +16 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +97 -1
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +60 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +111 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +4 -3
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +5 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +25 -38
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +6 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +147 -35
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +1 -1
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +73 -44
- package/dist/core/ingestion/taint/typescript-model.js +34 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +2 -2
- package/dist/core/ingestion/tree-sitter-queries.js +23 -2
- package/dist/core/ingestion/type-extractors/jvm.js +17 -2
- package/dist/core/ingestion/utils/ast-helpers.d.ts +1 -0
- package/dist/core/ingestion/utils/ast-helpers.js +153 -2
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +94 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +878 -0
- package/dist/core/ingestion/utils/line-base.d.ts +20 -0
- package/dist/core/ingestion/utils/line-base.js +20 -0
- package/dist/core/ingestion/utils/symbol-labels.d.ts +21 -0
- package/dist/core/ingestion/utils/symbol-labels.js +45 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +34 -0
- package/dist/core/ingestion/workers/parse-worker.js +40 -5
- package/dist/core/ingestion/workers/result-merge.js +4 -0
- package/dist/core/ingestion/workers/worker-pool.d.ts +28 -0
- package/dist/core/ingestion/workers/worker-pool.js +128 -28
- package/dist/core/lbug/csv-generator.d.ts +15 -0
- package/dist/core/lbug/csv-generator.js +124 -27
- package/dist/core/lbug/cypher-escape.d.ts +20 -0
- package/dist/core/lbug/cypher-escape.js +20 -0
- package/dist/core/lbug/extension-load-error.d.ts +67 -0
- package/dist/core/lbug/extension-load-error.js +326 -0
- package/dist/core/lbug/extension-loader.d.ts +17 -2
- package/dist/core/lbug/extension-loader.js +38 -13
- package/dist/core/lbug/lbug-adapter.d.ts +203 -2
- package/dist/core/lbug/lbug-adapter.js +527 -86
- package/dist/core/lbug/lbug-config.d.ts +56 -2
- package/dist/core/lbug/lbug-config.js +267 -7
- package/dist/core/lbug/move-columns.d.ts +7 -0
- package/dist/core/lbug/move-columns.js +86 -0
- package/dist/core/lbug/native-check.d.ts +40 -0
- package/dist/core/lbug/native-check.js +90 -0
- package/dist/core/lbug/node-table-layout.d.ts +29 -0
- package/dist/core/lbug/node-table-layout.js +119 -0
- package/dist/core/lbug/pool-adapter.d.ts +23 -1
- package/dist/core/lbug/pool-adapter.js +115 -8
- package/dist/core/lbug/schema.d.ts +4 -3
- package/dist/core/lbug/schema.js +16 -16
- package/dist/core/lbug/sidecar-recovery.d.ts +172 -0
- package/dist/core/lbug/sidecar-recovery.js +418 -16
- package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
- package/dist/core/move/artifact-download.d.ts +19 -0
- package/dist/core/move/artifact-download.js +179 -0
- package/dist/core/move/compiler-facts.d.ts +120 -0
- package/dist/core/move/compiler-facts.js +9 -0
- package/dist/core/move/consistency.d.ts +28 -0
- package/dist/core/move/consistency.js +98 -0
- package/dist/core/move/constants.d.ts +98 -0
- package/dist/core/move/constants.js +136 -0
- package/dist/core/move/discovery.d.ts +10 -0
- package/dist/core/move/discovery.js +22 -0
- package/dist/core/move/entry-points.d.ts +14 -0
- package/dist/core/move/entry-points.js +40 -0
- package/dist/core/move/facts-mapper.d.ts +75 -0
- package/dist/core/move/facts-mapper.js +534 -0
- package/dist/core/move/install-lock.d.ts +14 -0
- package/dist/core/move/install-lock.js +102 -0
- package/dist/core/move/install.d.ts +39 -0
- package/dist/core/move/install.js +391 -0
- package/dist/core/move/mcp-client.d.ts +115 -0
- package/dist/core/move/mcp-client.js +436 -0
- package/dist/core/move/move-ingest.d.ts +49 -0
- package/dist/core/move/move-ingest.js +320 -0
- package/dist/core/move/provision.d.ts +19 -0
- package/dist/core/move/provision.js +91 -0
- package/dist/core/move/release.d.ts +6 -0
- package/dist/core/move/release.js +10 -0
- package/dist/core/move/symbol-id.d.ts +35 -0
- package/dist/core/move/symbol-id.js +65 -0
- package/dist/core/move/type-parser.d.ts +11 -0
- package/dist/core/move/type-parser.js +38 -0
- package/dist/core/platform/capabilities.d.ts +0 -1
- package/dist/core/platform/capabilities.js +39 -8
- package/dist/core/run-analyze.d.ts +3 -3
- package/dist/core/run-analyze.js +1001 -184
- package/dist/core/search/fts-indexes.d.ts +31 -0
- package/dist/core/search/fts-indexes.js +73 -0
- package/dist/core/search/fts-schema.js +2 -0
- package/dist/core/tree-sitter/safe-parse.d.ts +8 -3
- package/dist/core/tree-sitter/safe-parse.js +21 -7
- package/dist/core/wiki/graph-queries.js +6 -5
- package/dist/core/wiki/llm-client.d.ts +8 -2
- package/dist/core/wiki/llm-client.js +41 -5
- package/dist/mcp/core/embedder.js +16 -2
- package/dist/mcp/http-transport.d.ts +5 -0
- package/dist/mcp/http-transport.js +19 -5
- package/dist/mcp/local/bean-metadata.d.ts +2 -0
- package/dist/mcp/local/bean-metadata.js +25 -0
- package/dist/mcp/local/line-display.d.ts +22 -0
- package/dist/mcp/local/line-display.js +3 -0
- package/dist/mcp/local/local-backend.d.ts +19 -1
- package/dist/mcp/local/local-backend.js +402 -155
- package/dist/mcp/local/pdg-impact.d.ts +5 -3
- package/dist/mcp/local/pdg-impact.js +5 -2
- 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 +34 -0
- package/dist/mcp/repository-policy.js +328 -0
- package/dist/mcp/resources.js +32 -5
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.js +29 -9
- package/dist/mcp/tools.d.ts +0 -8
- package/dist/mcp/tools.js +102 -5
- package/dist/server/analyze-job.d.ts +3 -0
- package/dist/server/analyze-job.js +17 -0
- package/dist/server/analyze-launch.d.ts +6 -0
- package/dist/server/analyze-launch.js +82 -6
- package/dist/server/analyze-worker-core.d.ts +2 -1
- package/dist/server/analyze-worker-core.js +5 -2
- package/dist/server/analyze-worker.js +29 -6
- package/dist/server/api.d.ts +30 -0
- package/dist/server/api.js +120 -34
- package/dist/server/mcp-http.d.ts +1 -1
- package/dist/server/mcp-http.js +4 -2
- package/dist/server/upload-ingest.js +2 -1
- package/dist/server/validation.js +2 -1
- package/dist/storage/git.d.ts +31 -0
- package/dist/storage/git.js +111 -1
- package/dist/storage/parse-cache.js +7 -1
- package/dist/storage/parsedfile-store.d.ts +8 -0
- package/dist/storage/parsedfile-store.js +165 -1
- package/dist/storage/repo-manager.d.ts +194 -2
- package/dist/storage/repo-manager.js +56 -1
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +50 -3
- package/hooks/claude/gitnexus-hook.cjs +59 -9
- package/hooks/claude/pre-tool-use.sh +0 -0
- package/hooks/claude/session-start.sh +0 -0
- package/package.json +21 -15
- package/scripts/cross-platform-tests.ts +56 -0
- package/scripts/ensure-fts.ts +43 -0
- package/scripts/install-duckdb-extension.mjs +85 -24
- package/scripts/run-cross-platform.ts +61 -6
- package/scripts/shard-arg.ts +30 -0
- package/scripts/sync-plugin-manifests.mjs +192 -0
- package/skills/gitnexus-lfg/README.md +55 -0
- package/skills/gitnexus-lfg/SKILL.md +86 -0
- package/skills/gitnexus-plan/README.md +142 -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 +272 -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 +2084 -0
- package/skills/gitnexus-review/SKILL.md +273 -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-work/README.md +71 -0
- package/skills/gitnexus-work/SKILL.md +269 -0
- package/skills/gitnexus-work/references/evidence-provenance.md +272 -0
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2084 -0
- package/web/assets/ProcessFlowModal-B_bfBySy.js +22 -0
- package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
- package/web/assets/agent-Bqxn-abU.js +626 -0
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +1 -0
- package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +36 -0
- package/web/assets/{blockDiagram-7IZFK4PR-BkWhpzWB.js → blockDiagram-7IZFK4PR-DBefcjof.js} +7 -7
- package/web/assets/{c4Diagram-Y2BXMSZH-DtBvpzWD.js → c4Diagram-Y2BXMSZH-EjWnjEJl.js} +6 -6
- package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +4 -0
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +1 -0
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +321 -0
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +159 -0
- package/web/assets/{chunk-6764PJDD-DpIS7hxD.js → chunk-6764PJDD-C7xxk063.js} +1 -1
- package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +124 -0
- package/web/assets/chunk-7FYTHRHK-CsmYIswB.js +32 -0
- package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +10 -0
- package/web/assets/chunk-7W6UQGC5-pyKGssV3.js +1 -0
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +1 -0
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +1 -0
- package/web/assets/{chunk-INKRHTLW-Nu4ri9P-.js → chunk-INKRHTLW-Ckl3_KkO.js} +13 -13
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +1 -0
- package/web/assets/{chunk-KGFNY3KK-JGMJvKCK.js → chunk-KGFNY3KK-BZeP-55u.js} +17 -17
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +1 -0
- package/web/assets/{chunk-KRXBNO2N-BW5o0KUN.js → chunk-KRXBNO2N-C-UNuKKf.js} +1 -1
- package/web/assets/{chunk-LCXTWHL2-CfLLCywY.js → chunk-LCXTWHL2-C162wE5z.js} +5 -5
- package/web/assets/chunk-LII3EMHJ-BL6lKJ_P.js +1 -0
- package/web/assets/chunk-LRIF4GLE-n59lhprL.js +1 -0
- package/web/assets/chunk-QA3QBVWF-DVXPOIxe.js +2 -0
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +1 -0
- package/web/assets/chunk-RG4AUYOV-ZNgyLFq6.js +206 -0
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +1 -0
- package/web/assets/chunk-RLI5ZMPA-CkXZ0y0U.js +1 -0
- package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +1 -0
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +1 -0
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +1 -0
- package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +1 -0
- package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +2 -0
- package/web/assets/{chunk-W44A43WB-JqMLIpR0.js → chunk-W44A43WB-BN8EQc_u.js} +1 -1
- package/web/assets/chunk-ZXARS5L4-C3v-4Fsw.js +1 -0
- package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +1 -0
- package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +1 -0
- package/web/assets/cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js +1 -0
- package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +4 -0
- package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +43 -0
- package/web/assets/diagram-GF46GFSD-B2atbzmU.js +24 -0
- package/web/assets/diagram-HNR7UZ2L-DVRltWbL.js +3 -0
- package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +24 -0
- package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +10 -0
- package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +85 -0
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +1 -0
- package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +162 -0
- package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +292 -0
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +1 -0
- package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +106 -0
- package/web/assets/index-CX_fADmQ.css +2 -0
- package/web/assets/index-D1Z3dGGz.js +575 -0
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +1 -0
- package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-DfYpxnE5.js → ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js} +6 -6
- package/web/assets/journeyDiagram-M6C3CM3L-C6wjooas.js +139 -0
- package/web/assets/kanban-definition-75IXJCU3-5_UVY79g.js +89 -0
- package/web/assets/{katex-K3KEBU37-CTc5BslQ.js → katex-K3KEBU37-qRQBy-EZ.js} +2 -2
- package/web/assets/{mindmap-definition-2TDM6QVE-DypvbOMQ.js → mindmap-definition-2TDM6QVE-8xDLzk2e.js} +29 -29
- package/web/assets/node-Ct_zna8U.js +8 -0
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +1 -0
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +1 -0
- package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +30 -0
- package/web/assets/preload-helper-Czpn1I53.js +1 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-yXSZ2lLz.js → quadrantDiagram-VICAPDV7-DR54jOeR.js} +6 -6
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +1 -0
- package/web/assets/requirementDiagram-JXO7QTGE-PEkg7sKC.js +84 -0
- package/web/assets/rolldown-runtime-QTnfLwEv.js +1 -0
- package/web/assets/sankeyDiagram-URQDO5SZ-DDWEtjcs.js +40 -0
- package/web/assets/sdk-CzHHH8tD.js +37 -0
- package/web/assets/sequenceDiagram-VS2MUI6T-Bv-uwANx.js +162 -0
- package/web/assets/src-JV30wyV8.js +1 -0
- package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +1 -0
- package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +1 -0
- package/web/assets/timeline-definition-O6YCAMPW-Qmsuo7qS.js +120 -0
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +1 -0
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +1 -0
- package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +34 -0
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +1 -0
- package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +78 -0
- package/web/assets/{xychartDiagram-N2JHSOCM-BOLm0eNm.js → xychartDiagram-N2JHSOCM-CoZ_Tits.js} +6 -6
- package/web/index.html +18 -10
- package/skills/gitnexus-pr-review.md +0 -163
- package/web/assets/agent-Dli_x7bU.js +0 -660
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-DxJw65fT.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-dEkqUZN9.js +0 -36
- package/web/assets/chunk-3SSMPTDK-B4_etUhr.js +0 -321
- package/web/assets/chunk-67TQ5CYL-4sNPJU1q.js +0 -124
- package/web/assets/chunk-7W6UQGC5-KyEG0HQg.js +0 -1
- package/web/assets/chunk-KGYTTC2M-CWC_c3H9.js +0 -161
- package/web/assets/chunk-LII3EMHJ-D-jm-dLa.js +0 -1
- package/web/assets/chunk-QA3QBVWF-BgRW3SXd.js +0 -2
- package/web/assets/chunk-RG4AUYOV-CqWzWsV3.js +0 -206
- package/web/assets/chunk-T2UQINTJ-DSBqkzH7.js +0 -1
- package/web/assets/chunk-UY5QBCOK-DyF0vyGd.js +0 -1
- package/web/assets/chunk-ZXARS5L4-CxN8oiwI.js +0 -1
- package/web/assets/classDiagram-KGZ6W3CR-CMne4tG9.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-CMne4tG9.js +0 -1
- package/web/assets/cose-bilkent-UX7MHV2Q-D71wNYRJ.js +0 -1
- package/web/assets/dagre-ND4H6XIP-Co5rRx9X.js +0 -4
- package/web/assets/diagram-3NCE3AQN-DBp4O00j.js +0 -43
- package/web/assets/diagram-GF46GFSD-6N_8yS0i.js +0 -24
- package/web/assets/diagram-HNR7UZ2L-DFCfd5LI.js +0 -3
- package/web/assets/diagram-QXG6HAR7-Di093rFg.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-DZWi4SUN.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-8X1y6R4Y.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-BQm9QzEa.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-CMpY8Ufn.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-D3iL2Aet.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-Cr_Bm2Nb.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-CPIDgxGm.js +0 -106
- package/web/assets/index-KctnI3Vq.js +0 -635
- package/web/assets/index-_lgn7hs5.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-Cs4p2oyk.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-BaLMZkUg.js +0 -2
- package/web/assets/journeyDiagram-M6C3CM3L-CvArszLo.js +0 -139
- package/web/assets/kanban-definition-75IXJCU3-CpfVLLf9.js +0 -89
- package/web/assets/packet-YPE3B663-LP52Z2RK-CKCrztD2.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-BB7pHqoD.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-s27EFWgP.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DhoTOcuK.js +0 -1
- package/web/assets/requirementDiagram-JXO7QTGE-CWhqInuf.js +0 -84
- package/web/assets/sankeyDiagram-URQDO5SZ-1qEjlFIB.js +0 -40
- package/web/assets/sequenceDiagram-VS2MUI6T-RyTlZ5cR.js +0 -162
- package/web/assets/stateDiagram-7D4R322I-DTjVfX4A.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-xY9_k9_Q.js +0 -1
- package/web/assets/timeline-definition-O6YCAMPW-DrrqLYAf.js +0 -120
- package/web/assets/treeView-BLDUP644-QA4HXRO3-ODehyGKL.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-BfpgC-7o.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-B0RkWAim.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-CNeL6VHE.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-boUxiQ5F.js +0 -78
|
@@ -0,0 +1,626 @@
|
|
|
1
|
+
import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import"./src-JV30wyV8.js";import{i as n,t as r}from"./sdk-CzHHH8tD.js";import{CHAT_ONLY_PROMPT_NOTE as i,buildDynamicSystemPrompt as a}from"./context-builder-BHiFUA8O.js";var o=`File.Folder.Function.Class.Interface.Method.CodeElement.Community.Process.Section.Struct.Enum.EnumVariant.Macro.Typedef.Union.Namespace.Trait.Impl.TypeAlias.Const.Static.Variable.Property.Record.Delegate.Annotation.Constructor.Template.Module.Route.Tool.BasicBlock`.split(`.`),s=`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.FRIEND_OF.READS_RESOURCE.WRITES_RESOURCE.ACQUIRES.USES_TYPE.EMITS.CFG.REACHING_DEF.TAINTED.SANITIZES.TAINT_PATH.CDG.POST_DOMINATE`.split(`.`),c=new Set([`date-time`,`time`,`date`,`duration`,`email`,`hostname`,`uri`,`ipv4`,`ipv6`,`uuid`]);function l(e){return JSON.parse(JSON.stringify(e))}function u(e){return d(l(e))}function d(e){let t={},r=n(e,`$ref`);if(r!==void 0)return t.$ref=r,t;let i=n(e,`$defs`);if(i!==void 0){let e={};t.$defs=e;for(let[t,n]of Object.entries(i))e[t]=d(n)}let a=n(e,`type`),o=n(e,`anyOf`),s=n(e,`oneOf`),l=n(e,`allOf`);if(Array.isArray(o))t.anyOf=o.map(e=>d(e));else if(Array.isArray(s))t.anyOf=s.map(e=>d(e));else if(Array.isArray(l))t.allOf=l.map(e=>d(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 u=n(e,`description`);u!==void 0&&(t.description=u);let f=n(e,`title`);if(f!==void 0&&(t.title=f),a===`object`){let r=n(e,`properties`)||{};t.properties=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,d(t)])),n(e,`additionalProperties`),t.additionalProperties=!1;let i=n(e,`required`);i!==void 0&&(t.required=i)}else if(a===`string`){let r=n(e,`format`);r!==void 0&&c.has(r)?t.format=r:r!==void 0&&(e.format=r)}else if(a===`array`){let r=n(e,`items`);r!==void 0&&(t.items=d(r));let i=n(e,`minItems`);i!==void 0&&(i===0||i===1)?t.minItems=i:i!==void 0&&(e.minItems=i)}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 f=Object.defineProperty,p=(e,t)=>{let n={};for(var r in e)f(n,r,{get:e[r],enumerable:!0});return t||f(n,Symbol.toStringTag,{value:`Module`}),n};function m(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 m(`${e}.${t}`)},isInstance(e){return typeof e==`object`&&!!e&&t in e&&e[t]===!0}}}var h=m(`langchain`),g=p({ContextOverflowError:()=>x,LangChainError:()=>y,ModelAbortError:()=>b,addLangChainErrorFields:()=>_,ns:()=>v});function _(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 v=h.sub(`error`),y=class extends v.brand(Error){name=`LangChainError`;constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},b=class extends v.brand(y,`model-abort`){name=`ModelAbortError`;partialOutput;constructor(e,t){super(e),this.partialOutput=t}},x=class e extends v.brand(y,`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 S(e){return!!(e&&typeof e==`object`&&`type`in e&&e.type===`tool_call`)}function ee(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 C=class extends Error{output;constructor(e,t){super(e),this.output=t}};function te(e,t=re){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 ne(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 re(e){try{return e===void 0?null:ne(e)}catch{return null}}var ie=/([A-Z]+)([A-Z][a-z0-9]+)/g,ae=/([a-z0-9])([A-Z])/g,oe=/[-_\s]+/g;function se(e){return e.replace(ie,`$1_$2`).replace(ae,`$1_$2`).replace(oe,`_`).toLowerCase()}function w(e){let t=e.trim();return/[-_\s]/.test(t)?t.replace(oe,`_`).toLowerCase().replace(/_+([a-z0-9])/g,(e,t)=>t.toUpperCase()):t}function ce(e,t){return t?.[e]||se(e)}function le(e,t){return t?.[e]||w(e)}function ue(e,t,n){let r={};for(let i in e)Object.hasOwn(e,i)&&(r[t(i,n)]=e[i]);return r}var de=`__lc_escaped__`;function fe(e){return`lc`in e||Object.keys(e).length===1&&`__lc_escaped__`in e}function pe(e){return{[de]:e}}function me(e){return Object.keys(e).length===1&&`__lc_escaped__`in e}function he(e){return typeof e==`object`&&!!e&&`lc_serializable`in e&&typeof e.toJSON==`function`}function ge(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 _e(e,t=new WeakSet){if(typeof e==`object`&&e&&!Array.isArray(e)){if(t.has(e))return ge(e);if(he(e))return e;t.add(e);let n=e;if(fe(n))return t.delete(e),pe(n);let r={};for(let[e,i]of Object.entries(n))r[e]=_e(i,t);return t.delete(e),r}return Array.isArray(e)?e.map(e=>_e(e,t)):e}function ve(e){if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e;if(me(t))return t[de];let n={};for(let[e,r]of Object.entries(t))n[e]=ve(r);return n}return Array.isArray(e)?e.map(e=>ve(e)):e}var ye=p({Serializable:()=>Ce,get_lc_unique_name:()=>Se});function be(e){return Array.isArray(e)?[...e]:{...e}}function xe(e,t){let n=be(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]=be(a[e]),a=a[e]}a[t]!==void 0&&(a[t]={lc:1,type:`secret`,id:[r]})}return n}function Se(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 Ce=class e{lc_serializable=!1;lc_kwargs;static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,Se(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]=_e(t,a);let o=ue(Object.keys(n).length?xe(i,n):i,ce,t);return{lc:1,type:`constructor`,id:this.lc_id,kwargs:o}}toJSONNotImplemented(){return{lc:1,type:`not_implemented`,id:this.lc_id}}};function we(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 Te(e){return we(e)&&e.source_type===`url`&&`url`in e&&typeof e.url==`string`}function Ee(e){return we(e)&&e.source_type===`base64`&&`data`in e&&typeof e.data==`string`}function De(e){return we(e)&&e.source_type===`text`&&`text`in e&&typeof e.text==`string`}function Oe(e){return we(e)&&e.source_type===`id`&&`id`in e&&typeof e.id==`string`}function ke(e){if(we(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 Ae(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 T({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 je(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 Me(e){return Array.isArray(e)}function O(e){return typeof e==`string`}function Ne(e){return typeof e==`number`}function Pe(e){return e instanceof Uint8Array}function Fe(e){try{return JSON.parse(e)}catch{return}}var Ie=e=>e();function Le(e){if(e.type===`char_location`&&O(e.document_title)&&Ne(e.start_char_index)&&Ne(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)&&Ne(e.start_page_number)&&Ne(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)&&Ne(e.start_block_index)&&Ne(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)&&Ne(e.start_block_index)&&Ne(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 Re(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 ze(e){function*t(){for(let t of e){let e=Re(t);e?yield e:yield t}}return Array.from(t())}function Be(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(Me(t)&&t.length){let n=t.reduce((e,t)=>{let n=Le(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(He(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:Ie(()=>{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=Fe(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:Ie(()=>{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=Fe(n.partial_json);if(e?.code)return e.code}return``})}};continue}}else if(E(n,`web_search_tool_result`)&&O(n.tool_use_id)&&Me(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=Re(n);if(e){yield e;continue}}yield{type:`non_standard`,value:n}}}return Array.from(t())}var Ve={translateContent:Be,translateContentChunk:Be};function He(e){return typeof e?._getType==`function`&&typeof e.concat==`function`&&e._getType()===`ai`}function Ue(e){return Te(e)?{type:e.type,mimeType:e.mime_type,url:e.url,metadata:e.metadata}:Ee(e)?{type:e.type,mimeType:e.mime_type??`application/octet-stream`,data:e.data,metadata:e.metadata}:Oe(e)?{type:e.type,mimeType:e.mime_type,fileId:e.id,metadata:e.metadata}:e}function We(e){return e.map(Ue)}function Ge(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 Ke(e){if(E(e,`image_url`)&&D(e.image_url)&&O(e.image_url.url)){let t=T({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=T({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 qe(e){let t=[];typeof e.content==`string`?e.content.length>0&&t.push({type:`text`,text:e.content}):t.push(...Ye(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 Je(e){let t=[];typeof e.content==`string`?e.content.length>0&&t.push({type:`text`,text:e.content}):t.push(...Ye(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 Ye(e){let t=[];for(let n of e)Ge(n)?t.push(Ke(n)):t.push(n);return t}function Xe(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 Ze(e){function*t(){D(e.additional_kwargs?.reasoning)&&Me(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(Xe)}: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)&&Me(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:Me(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:Me(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}}),Me(t.outputs)){let e=Ie(()=>{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:Me(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 Qe(e){function*t(){yield*Ze(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 $e={translateContent:e=>typeof e.content==`string`?qe(e):Ze(e),translateContentChunk:e=>typeof e.content==`string`?Je(e):Qe(e)};function et(e){return typeof e==`object`&&!!e&&`type`in e&&`content`in e&&(typeof e.content==`string`||Array.isArray(e.content))}function tt(e,t=`pretty`){return t===`pretty`?nt(e):JSON.stringify(e)}function nt(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 rt=Symbol.for(`langchain.message`);function it(e){return Array.isArray(e)?e:typeof e==`string`?e===``?[]:[{type:`text`,text:e}]:e==null?[]:[e]}function at(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=>we(e))?[{type:`text`,source_type:`text`,text:e},...t]:[{type:`text`,text:e},...t];if(Array.isArray(t)){let n=it(e);return vt(n,t)??[...n,...t]}else if(t===``)return e;else if(Array.isArray(e)&&e.some(e=>we(e)))return[...e,{type:`file`,source_type:`text`,text:t}];else return[...it(e),{type:`text`,text:t}]}function ot(e,t){return e===`error`||t===`error`?`error`:`success`}function st(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 ct=class extends Ce{lc_namespace=[`langchain_core`,`messages`];lc_serializable=!0;get lc_aliases(){return{additional_kwargs:`additional_kwargs`,response_metadata:`response_metadata`}}[rt]=!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[We,Ye,ze].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&&rt in e&&e[rt]===!0&&et(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=st(this._printableFields,Math.max(4,e));return`${this.constructor.lc_name()} ${t}`}toFormattedString(e=`pretty`){return tt(this,e)}};function lt(e){return Array.isArray(e)&&e.every(e=>typeof e.index==`number`)}var ut=[`index`,`created`,`timestamp`];function dt(e,t,n){let r=n?.ignoreKeys??ut;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]=dt(i[e],a,n);else if(Array.isArray(i[e]))i[e]=vt(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 ft(e){return typeof e==`number`||typeof e==`string`}function pt(e){return typeof e!=`object`||!e||!(`index`in e)?!1:ft(e.index)}function mt(e){if(typeof e!=`object`||!e||!(`id`in e))return!1;let t=e.id;return t!=null&&t!==``}function ht(e){return e.endsWith(`_delta`)?e.slice(0,-6):e}function gt(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`&&ht(e.type)!==ht(t.type)}function _t(e,t){let n=pt(t),r=mt(t);return!n&&!r?-1:e.findIndex(e=>{let i=pt(e),a=mt(e);return n&&i?e.index!==t.index||gt(e,t)?!1:a&&r?e.id===t.id:!0:!n&&!i&&r&&a?e.id===t.id:!1})}function vt(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=_t(r,e);if(t!==-1)r[t]=dt(r[t],e,n);else if(typeof e==`object`&&e&&`text`in e&&e.text===``)continue;else r.push(e)}return r}}}function yt(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 vt(e,t,n);if(typeof e==`object`&&typeof t==`object`)return dt(e,t,n);if(e===t)return e;throw Error(`Can not merge objects of different types.\nLeft ${e}\nRight ${t}`)}}var bt=class e extends ct{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 xt(e){return typeof e.role==`string`}function St(e){return typeof e?._getType==`function`}function Ct(e){return bt.isInstance(e)}var wt=p({ToolMessage:()=>Et,ToolMessageChunk:()=>Dt,defaultToolCallParser:()=>Ot,isDirectToolOutput:()=>Tt,isToolMessage:()=>kt,isToolMessageChunk:()=>At});function Tt(e){return typeof e==`object`&&!!e&&`lc_direct_tool_output`in e&&e.lc_direct_tool_output===!0}var Et=class extends ct{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}}},Dt=class extends bt{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:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:dt(this.response_metadata,e.response_metadata),artifact:yt(this.artifact,e.artifact),tool_call_id:this.tool_call_id,id:this.id??e.id,status:ot(this.status,e.status)})}get _printableFields(){return{...super._printableFields,tool_call_id:this.tool_call_id,artifact:this.artifact}}};function Ot(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 kt(e){return typeof e==`object`&&!!e&&`getType`in e&&typeof e.getType==`function`&&e.getType()===`tool`}function At(e){return e._getType()===`tool`}function jt(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 Mt(e){if(D(e.document)&&D(e.document.source)){let t=jt(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(Pe(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(Me(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 Nt(e){if(E(e,`image`)&&D(e.image)){let t=jt(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(Pe(e.image.source.bytes))return{type:`image`,mimeType:t,data:e.image.source.bytes}}}return{type:`non_standard`,value:e}}function Pt(e){if(E(e,`video`)&&D(e.video)){let t=jt(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(Pe(e.video.source.bytes))return{type:`video`,mimeType:t,data:e.video.source.bytes}}}return{type:`non_standard`,value:e}}function Ft(e){function*t(){let t=typeof e.content==`string`?[{type:`text`,text:e.content}]:e.content;for(let e of t){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:Me(e.citationsContent.content)?e.citationsContent.content.reduce((e,t)=>D(t)&&O(t.text)?e+t.text:e,``):``,annotations:Me(e.citationsContent.citations)?e.citationsContent.citations.reduce((e,t)=>{if(D(t)){let n=Me(t.sourceContent)?t.sourceContent.reduce((e,t)=>D(t)&&O(t.text)?e+t.text:e,``):``,r=Ie(()=>{if(D(t.location)){let e=t.location.documentChar||t.location.documentPage||t.location.documentChunk;if(D(e))return{source:Ne(e.documentIndex)?e.documentIndex.toString():void 0,startIndex:Ne(e.start)?e.start:void 0,endIndex:Ne(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 Mt(e);continue}else if(E(e,`guard_content`)){yield{type:`non_standard`,value:e};continue}else if(E(e,`image`)&&D(e.image)){yield Nt(e);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 Pt(e);continue}yield{type:`non_standard`,value:e}}}return Array.from(t())}var It={translateContent:Ft,translateContentChunk:Ft};function Lt(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 Rt={translateContent:Lt,translateContentChunk:Lt};function zt(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 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,`reasoning`)&&O(n.reasoning)){let r=Ie(()=>{let r=t.indexOf(n);if(Me(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 Ht={translateContent:Vt,translateContentChunk:Vt};function Ut(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 Wt={translateContent:Ut,translateContentChunk:Ut};function Gt(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 Kt={translateContent:Gt,translateContentChunk:Gt};function qt(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 Jt={translateContent:qt,translateContentChunk:qt};function Yt(e){let t=[];if(D(e.additional_kwargs?.reasoning)){let n=e.additional_kwargs.reasoning;if(Me(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 Xt={translateContent:Yt,translateContentChunk:Yt};function Zt(e){function*t(){let t=Ie(()=>{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=Ie(()=>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=Ie(()=>`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`,Ve],[`bedrock-converse`,It],[`deepseek`,Rt],[`google`,{translateContent:Zt,translateContentChunk:Zt}],[`google-genai`,Bt],[`google-vertexai`,Ht],[`groq`,Wt],[`ollama`,Kt],[`openai`,$e],[`openrouter`,Jt],[`xai`,Xt]]);function Qt(e){return globalThis.lc_block_translators_registry.get(e)}function $t(e,t){return dt(e,t)??{}}function en(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 tn(e,t){let n={...en(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 nn(e,t){let n={...en(e,t)};return(e?.reasoning!==void 0||t?.reasoning!==void 0)&&(n.reasoning=(e?.reasoning??0)+(t?.reasoning??0)),n}function rn(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:tn(e?.input_token_details,t?.input_token_details),output_token_details:nn(e?.output_token_details,t?.output_token_details)}}function an(e){return typeof e==`string`?e.length>0?[{type:`text`,text:e}]:[]:Array.isArray(e)?e:e==null?[]:[e]}var k=class extends ct{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]=Ot(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=an(t.content),t.content=void 0),t.contentBlocks!==void 0){if(Array.isArray(t.contentBlocks)||(t.contentBlocks=an(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=Qt(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 on(e){return e._getType()===`ai`}function sn(e){return e._getType()===`ai`}var cn=class extends bt{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=zn(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=Qt(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:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:$t(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=vt(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=vt(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=rn(this.usage_metadata,e.usage_metadata));let n=this.constructor;return new n(t)}static isInstance(e){return super.isInstance(e)&&e.type===`ai`}},ln=class e extends ct{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}}},un=class extends bt{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:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:dt(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 dn(e){return e._getType()===`generic`}function fn(e){return e._getType()===`generic`}var pn=class extends ct{static lc_name(){return`FunctionMessage`}type=`function`;name;constructor(e){super(e),this.name=e.name}},mn=class extends bt{static lc_name(){return`FunctionMessageChunk`}type=`function`;concat(e){let t=this.constructor;return new t({content:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:dt(this.response_metadata,e.response_metadata),name:this.name??``,id:this.id??e.id})}};function hn(e){return e._getType()===`function`}function gn(e){return e._getType()===`function`}var _n=class extends ct{static lc_name(){return`HumanMessage`}type=`human`;constructor(e){super(e)}static isInstance(e){return super.isInstance(e)&&e.type===`human`}},vn=class extends bt{static lc_name(){return`HumanMessageChunk`}type=`human`;constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:dt(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type===`human`}};function yn(e){return e.getType()===`human`}function bn(e){return e.getType()===`human`}var xn=class extends ct{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`}},Sn=class e extends ct{static lc_name(){return`SystemMessage`}type=`system`;constructor(e){super(e)}concat(t){if(typeof t==`string`)return new e({content:at(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:at(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`}},Cn=class extends bt{static lc_name(){return`SystemMessageChunk`}type=`system`;constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:at(this.content,e.content),additional_kwargs:dt(this.additional_kwargs,e.additional_kwargs),response_metadata:dt(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type===`system`}};function wn(e){return e._getType()===`system`}function Tn(e){return e._getType()===`system`}function En(e){return e.isCustomTool===!0}var Dn=e=>e();function On(e){return S(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 kn(e){return typeof e==`object`&&!!e&&e.lc===1&&Array.isArray(e.id)&&e.kwargs!=null&&typeof e.kwargs==`object`}function An(e){let t,n;if(kn(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 _n(n);if(t===`ai`||t===`assistant`){let{tool_calls:e,...t}=n;if(!Array.isArray(e))return new k(n);let r=e.map(On);return new k({...t,tool_calls:r})}else if(t===`system`)return new Sn(n);else if(t===`developer`)return new Sn({...n,additional_kwargs:{...n.additional_kwargs,__openai_role__:`developer`}});else if(t===`tool`&&`tool_call_id`in n)return new Et({...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 xn({...n,id:n.id});else throw _(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 jn(e){if(typeof e==`string`)return new _n(e);if(St(e))return e;if(Array.isArray(e)){let[t,n]=e;return An({type:t,content:n})}else if(xt(e)){let{role:t,...n}=e;return An({...n,type:t})}else return An(e)}function Mn(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 Nn(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(Mn).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 Pn(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 Fn(e){let t=Pn(e);switch(t.type){case`human`:return new _n(t.data);case`ai`:return new k(t.data);case`system`:return new Sn(t.data);case`function`:if(t.data.name===void 0)throw Error(`Name must be defined for function messages`);return new pn(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 Et(t.data);case`generic`:if(t.data.role===void 0)throw Error(`Role must be defined for chat messages`);return new ln(t.data);default:throw Error(`Got unexpected type: ${t.type}`)}}function In(e){return e.map(Fn)}function Ln(e){return e.map(e=>e.toDict())}function Rn(e){let t=e._getType();if(t===`human`)return new vn({...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 cn({...t})}else if(t===`system`)return new Cn({...e});else if(t===`function`)return new mn({...e});else if(ln.isInstance(e))return new un({...e});else throw Error(`Unknown message type.`)}function zn(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(En),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=re(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 Bn=`ffffffff-ffff-ffff-ffff-ffffffffffff`,Vn=`00000000-0000-0000-0000-000000000000`,Hn=/^(?:[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 Un(e){return typeof e==`string`&&Hn.test(e)}function Wn(e){if(!Un(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 Gn=[];for(let e=0;e<256;++e)Gn.push((e+256).toString(16).slice(1));function Kn(e,t=0){return(Gn[e[t+0]]+Gn[e[t+1]]+Gn[e[t+2]]+Gn[e[t+3]]+`-`+Gn[e[t+4]]+Gn[e[t+5]]+`-`+Gn[e[t+6]]+Gn[e[t+7]]+`-`+Gn[e[t+8]]+Gn[e[t+9]]+`-`+Gn[e[t+10]]+Gn[e[t+11]]+Gn[e[t+12]]+Gn[e[t+13]]+Gn[e[t+14]]+Gn[e[t+15]]).toLowerCase()}function qn(e,t=0){let n=Kn(e,t);if(!Un(n))throw TypeError(`Stringified UUID is invalid`);return n}var Jn=new Uint8Array(16);function Yn(){return crypto.getRandomValues(Jn)}var Xn={};function Zn(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=$n(e.random??e.rng?.()??Yn(),e.msecs,e.nsecs,e.clockseq,e.node,t,n);else{let e=Date.now(),a=Yn();Qn(Xn,e,a),r=$n(a,Xn.msecs,Xn.nsecs,i?void 0:Xn.clockseq,i?void 0:Xn.node,t,n)}return t??Kn(r)}function Qn(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 $n(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 er(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():tr(e,t,n)}function tr(e,t,n){e||={};let r=e.random??e.rng?.()??Yn();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 Kn(r)}function nr(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 rr(e,t){return e<<t|e>>>32-t}function ir(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]=rr(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=rr(i,5)+nr(n,a,s,c)+l+t[n]+r[e]>>>0;l=c,c=s,s=rr(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 ar(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 or=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,sr=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function cr(e,t,n,r,i,a){let o=typeof n==`string`?ar(n):n,s=typeof r==`string`?Wn(r):r;if(typeof r==`string`&&(r=Wn(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 Kn(c)}function lr(e,t,n,r){return cr(80,ir,e,t,n,r)}lr.DNS=or,lr.URL=sr;function ur(e){let t=dr(typeof e==`string`?Wn(e):e);return typeof e==`string`?Kn(t):t}function dr(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 fr(e,t,n){e??={},n??=0;let r=Zn({...e,_v6:!0},new Uint8Array(16));if(r=ur(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 Kn(r)}var pr={};function mr(e,t,n){let r;if(e)r=gr(e.random??e.rng?.()??Yn(),e.msecs,e.seq,t,n);else{let e=Date.now(),i=Yn();hr(pr,e,i),r=gr(i,pr.msecs,pr.seq,t,n)}return t??Kn(r)}function hr(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 gr(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 _r(e){if(!Un(e))throw TypeError(`Invalid UUID`);return parseInt(e.slice(14,15),16)}var vr=p({MAX:()=>yr,NIL:()=>br,parse:()=>xr,stringify:()=>Sr,v1:()=>Cr,v4:()=>wr,v5:()=>Tr,v6:()=>Er,v7:()=>Dr,validate:()=>Or,version:()=>kr}),yr=Bn,br=Vn,xr=Wn,Sr=qn,Cr=Zn,wr=er,Tr=lr,Er=fr,Dr=mr,Or=Un,kr=_r,Ar=p({getEnv:()=>Ir,getEnvironmentVariable:()=>zr,getRuntimeEnvironment:()=>Rr,isBrowser:()=>jr,isDeno:()=>Pr,isJsDom:()=>Nr,isNode:()=>Fr,isWebWorker:()=>Mr}),jr=()=>typeof window<`u`&&window.document!==void 0,Mr=()=>typeof globalThis==`object`&&globalThis.constructor&&globalThis.constructor.name===`DedicatedWorkerGlobalScope`,Nr=()=>typeof window<`u`&&window.name===`nodejs`||typeof navigator<`u`&&navigator.userAgent.includes(`jsdom`),Pr=()=>typeof Deno<`u`,Fr=()=>typeof process<`u`&&process.versions!==void 0&&process.versions.node!==void 0&&!Pr(),Ir=()=>{let e;return e=jr()?`browser`:Fr()?`node`:Mr()?`webworker`:Nr()?`jsdom`:Pr()?`deno`:`other`,e},Lr;function Rr(){return Lr===void 0&&(Lr={library:`langchain-js`,runtime:Ir()}),Lr}function zr(e){try{return typeof process<`u`?{}[e]:Pr()?Deno?.env.get(e):void 0}catch{return}}var Br=p({BaseCallbackHandler:()=>Wr,callbackHandlerPrefersChatModelStreamEvents:()=>Ur,callbackHandlerPrefersStreaming:()=>Hr,isBaseCallbackHandler:()=>Gr}),Vr=class{};function Hr(e){return`lc_prefer_streaming`in e&&e.lc_prefer_streaming}function Ur(e){return`lc_prefer_chat_model_stream_events`in e&&e.lc_prefer_chat_model_stream_events}var Wr=class extends Vr{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,Se(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=zr(`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 Ce.prototype.toJSON.call(this)}toJSONNotImplemented(){return Ce.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends Wr{name=Dr();constructor(){super(),Object.assign(this,e)}}return new t}},Gr=e=>{let t=e;return t!==void 0&&typeof t.copy==`function`&&typeof t.name==`string`&&typeof t.awaitHandlers==`boolean`},Kr=/^(?:[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 qr(e){return typeof e==`string`&&Kr.test(e)}function Jr(e){if(!qr(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 Yr=[];for(let e=0;e<256;++e)Yr.push((e+256).toString(16).slice(1));function Xr(e,t=0){return(Yr[e[t+0]]+Yr[e[t+1]]+Yr[e[t+2]]+Yr[e[t+3]]+`-`+Yr[e[t+4]]+Yr[e[t+5]]+`-`+Yr[e[t+6]]+Yr[e[t+7]]+`-`+Yr[e[t+8]]+Yr[e[t+9]]+`-`+Yr[e[t+10]]+Yr[e[t+11]]+Yr[e[t+12]]+Yr[e[t+13]]+Yr[e[t+14]]+Yr[e[t+15]]).toLowerCase()}var Zr=new Uint8Array(16);function Qr(){return crypto.getRandomValues(Zr)}function $r(e,t,n){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():ei(e,t,n)}function ei(e,t,n){e||={};let r=e.random??e.rng?.()??Qr();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 Xr(r)}function ti(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 ni(e,t){return e<<t|e>>>32-t}function ri(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]=ni(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=ni(i,5)+ti(n,a,s,c)+l+t[n]+r[e]>>>0;l=c,c=s,s=ni(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 ii(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 ai=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,oi=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function si(e,t,n,r,i,a){let o=typeof n==`string`?ii(n):n,s=typeof r==`string`?Jr(r):r;if(typeof r==`string`&&(r=Jr(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 Xr(c)}function ci(e,t,n,r){return si(80,ri,e,t,n,r)}ci.DNS=ai,ci.URL=oi;var li={};function ui(e,t,n){let r;if(e)r=fi(e.random??e.rng?.()??Qr(),e.msecs,e.seq,t,n);else{let e=Date.now(),i=Qr();di(li,e,i),r=fi(i,li.msecs,li.seq,t,n)}return t??Xr(r)}function di(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 fi(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 pi=`gen_ai.operation.name`,mi=`gen_ai.system`,hi=`gen_ai.request.model`,gi=`gen_ai.response.model`,_i=`gen_ai.usage.input_tokens`,vi=`gen_ai.usage.output_tokens`,yi=`gen_ai.usage.total_tokens`,bi=`gen_ai.request.max_tokens`,xi=`gen_ai.request.temperature`,Si=`gen_ai.request.top_p`,Ci=`gen_ai.request.frequency_penalty`,wi=`gen_ai.request.presence_penalty`,Ti=`gen_ai.response.finish_reasons`,Ei=`gen_ai.prompt`,Di=`gen_ai.completion`,Oi=`gen_ai.request.extra_query`,ki=`gen_ai.request.extra_body`,Ai=`gen_ai.serialized.name`,ji=`gen_ai.serialized.signature`,Mi=`gen_ai.serialized.doc`,Ni=`gen_ai.response.id`,Pi=`gen_ai.response.service_tier`,Fi=`gen_ai.response.system_fingerprint`,Ii=`gen_ai.usage.input_token_details`,Li=`gen_ai.usage.output_token_details`,Ri=`langsmith.trace.session_id`,zi=`langsmith.trace.session_name`,Bi=`langsmith.span.kind`,Vi=`langsmith.trace.name`,Hi=`langsmith.metadata`,Ui=`langsmith.span.tags`,Wi=`langsmith.request.streaming`,Gi=`langsmith.request.headers`,Ki=`langsmith.usage_metadata`,qi=(...e)=>fetch(...e),Ji=void 0,Yi=Symbol.for(`ls:fetch_implementation`),Xi=()=>globalThis[Yi]===void 0?!0:Ji??!1,Zi=e=>async(...t)=>{if(e||Do(`DEBUG`)===`true`){let[e,n]=t;console.log(`→ ${n?.method||`GET`} ${e}`)}let n=await(globalThis[Yi]??qi)(...t);return(e||Do(`DEBUG`)===`true`)&&console.log(`← ${n.status} ${n.statusText} ${n.url}`),n},Qi=()=>Do(`PROJECT`)??Eo(`LANGCHAIN_SESSION`)??`default`,$i={};function ea(e){$i[e]||(console.warn(e),$i[e]=!0)}var A=e=>BigInt(e),ta=A(`0x9E3779B1`),na=A(`0x85EBCA77`),ra=A(`0xC2B2AE3D`),ia=A(`0x9E3779B185EBCA87`),aa=A(`0xC2B2AE3D27D4EB4F`),oa=A(`0x165667B19E3779F9`),sa=A(`0x85EBCA77C2B2AE63`),ca=A(`0x27D4EB2F165667C5`),la=A(`0x165667919E3779F9`),ua=A(`0x9FB21C651E98DF25`);function da(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 fa=da(`b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e`),pa=(A(1)<<A(128))-A(1),j=(A(1)<<A(64))-A(1),ma=(A(1)<<A(32))-A(1),ha=64,ga=ha/8,_a=8,va=4;function ya(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function ba(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function xa(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function Sa(e,t=0){return e[t]}var Ca=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),wa=e=>(e=(e&A(65535))<<A(16)|(e&A(4294901760))>>A(16),e=(e&A(16711935))<<A(8)|(e&A(4278255360))>>A(8),e),Ta=(e,t)=>(e&ma)*(t&ma)&j,Ea=e=>{if(!e)throw Error(`Assert failed`)};function Da(e,t){return(e<<t|e>>A(32)-t)&ma}function Oa(e,t,n){for(let r=0;r<ga;r++){let i=ba(t,r*8),a=i^ba(n,r*8);e[r^1]+=i,e[r]+=Ta(a,a>>A(32))}return e}function ka(e,t,n,r){for(let i=0;i<r;i++)Oa(e,ya(t,i*ha),ya(n,i*8));return e}function Aa(e,t){for(let n=0;n<ga;n++){let r=ba(t,n*8),i=e[n];i=Va(i,A(47)),i^=r,i*=ta,e[n]=i&j}return e}function ja(e,t){return Fa(e[0]^ba(t,0),e[1]^ba(t,_a))}function Ma(e,t,n){let r=n;return r+=ja(e.slice(0),ya(t,0*va)),r+=ja(e.slice(2),ya(t,4*va)),r+=ja(e.slice(4),ya(t,8*va)),r+=ja(e.slice(6),ya(t,12*va)),Ra(r&j)}function Na(e,t,n,r,i){let a=Math.floor((n.byteLength-ha)/8),o=ha*a,s=Math.floor((t.byteLength-1)/o);for(let r=0;r<s;r++)e=ka(e,ya(t,r*o),n,a),e=i(e,ya(n,n.byteLength-ha));{let i=Math.floor((t.byteLength-1-o*s)/ha);e=ka(e,ya(t,s*o),n,i),e=r(e,ya(t,t.byteLength-ha),ya(n,n.byteLength-ha-7))}return e}function Pa(e,t,n){let r=new BigUint64Array([ra,ia,aa,oa,sa,na,ca,ta]);Ea(e.length>128),r=Na(r,e,t,Oa,Aa),Ea(r.length*8==64);{let n=Ma(r,ya(t,11),A(e.byteLength)*ia&j);return Ma(r,ya(t,t.byteLength-ha-11),~(A(e.byteLength)*aa)&j)<<A(64)|n}}function Fa(e,t){let n=e*t&pa;return n&j^n>>A(64)}function Ia(e,t,n){return Fa((ba(e,0)^ba(t,0)+n)&j,(ba(e,8)^ba(t,8)-n)&j)}function La(e,t,n,r,i){let a=e&j,o=e>>A(64)&j;return a+=Ia(t,r,i),a^=ba(n,0)+ba(n,8),a&=j,o+=Ia(n,ya(r,16),i),o^=ba(t,0)+ba(t,8),o&=j,o<<A(64)|a}function Ra(e){return e^=e>>A(37),e*=la,e&=j,e^=e>>A(32),e}function za(e){return e^=e>>A(33),e*=aa,e&=j,e^=e>>A(29),e*=oa,e&=j,e^=e>>A(32),e}function Ba(e,t,n){let r=e.byteLength;Ea(r>0&&r<=3);let i=A(Sa(e,r-1))|A(r<<8)|A(Sa(e,0)<<16)|A(Sa(e,r>>1)<<24),a=(i^(A(xa(t,0))^A(xa(t,4)))+n)&j,o=(A(xa(t,8))^A(xa(t,12)))-n;return(za((Da(wa(i),A(13))^o)&j)&j)<<A(64)|za(a)}function Va(e,t){return e^e>>t}function Ha(e,t,n){let r=e.byteLength;Ea(r>=4&&r<=8);{let i=xa(e,0),a=xa(e,r-4),o=((A(i)|A(a)<<A(32))^(ba(t,16)^ba(t,24))+n&j)*(ia+(A(r)<<A(2)))&pa;return o+=(o&j)<<A(65),o&=pa,o^=o>>A(67),Va(Va(o&j,A(35))*ua&j,A(28))|Ra(o>>A(64))<<A(64)}}function Ua(e,t,n){let r=e.byteLength;Ea(r>=9&&r<=16);{let i=(ba(t,32)^ba(t,40))+n&j,a=(ba(t,48)^ba(t,56))-n&j,o=ba(e),s=ba(e,r-8),c=(o^s^i)*ia,l=(c&j)+(A(r-1)<<A(54));c=c&(pa^j)|l,s^=a,c+=s+(s&ma)*(na-A(1))<<A(64),c&=pa,c^=Ca(c>>A(64));let u=(c&j)*aa;return u+=(c>>A(64))*aa<<A(64),u&=pa,Ra(u&j)|Ra(u>>A(64))<<A(64)}}function Wa(e,t){let n=e.byteLength;return Ea(n<=16),n>8?Ua(e,fa,t):n>=4?Ha(e,fa,t):n>0?Ba(e,fa,t):za(t^ba(fa,64)^ba(fa,72))|za(t^ba(fa,80)^ba(fa,88))<<A(64)}function Ga(e){return~e+A(1)&j}function Ka(e,t,n){let r=A(e.byteLength)*ia&j,i=A(e.byteLength-1)/A(32);for(;i>=0;){let a=Number(i);r=La(r,ya(e,16*a),ya(e,e.byteLength-16*(a+1)),ya(t,32*a),n),i--}let a=r+(r>>A(64))&j;a=Ra(a);let o=(r&j)*ia+(r>>A(64))*sa+(A(e.byteLength)-n&j)*aa;return o&=j,o=Ga(Ra(o)),a|o<<A(64)}function qa(e,t,n){let r=A(e.byteLength)*ia&j;for(let i=32;i<160;i+=32)r=La(r,ya(e,i-32),ya(e,i-16),ya(t,i-32),n);r=Ra(r&j)|Ra(r>>A(64))<<A(64);for(let i=160;i<=e.byteLength;i+=32)r=La(r,ya(e,i-32),ya(e,i-16),ya(t,3+i-160),n);r=La(r,ya(e,e.byteLength-16),ya(e,e.byteLength-32),ya(t,103),Ga(n));let i=r+(r>>A(64))&j;i=Ra(i);let a=(r&j)*ia+(r>>A(64))*sa+(A(e.byteLength)-n&j)*aa;return a&=j,a=Ga(Ra(a)),i|a<<A(64)}function Ja(e,t=A(0)){let n=e.byteLength;return n<=16?Wa(e,t):n<=128?Ka(e,fa,t):n<=240?qa(e,fa,t):Pa(e,fa,t)}function Ya(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 Xa=/^[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(!Xa.test(e)){let n=t===void 0?`Invalid UUID: ${e}`:`Invalid UUID for ${t}: ${e}`;throw Error(n)}return e}function Za(e){return ui({msecs:typeof e==`string`?Date.parse(e):e,seq:0})}function Qa(e){if(!Xa.test(e))return null;let t=e[14];return parseInt(t,16)}function $a(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 eo(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 to=new TextEncoder;function no(e){return Ya(Ja(to.encode(e)))}function ro(e,t){let n=no(`${e}:${t}`),r=new Uint8Array(16);if(Qa(e)===7){let t=$a(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),eo(r)}var io={join:(...e)=>e.join(`/`),dirname:e=>e.split(`/`).slice(0,-1).join(`/`)};async function ao(e){}async function oo(e,t){}async function so(e){return[]}async function co(e){return{size:0}}function lo(e){return!1}function uo(e){return``}function fo(e,t){return t!==null&&Date.now()-e.createdAt>t*1e3}var po=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;io.dirname(e),`${e}`;try{JSON.stringify({entries:t},null,2)}catch(e){throw e}}load(e){if(!lo(e))return 0;let t;try{let n=uo(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())fo(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}},mo=`0.6.3`,ho,go=()=>typeof window<`u`&&window.document!==void 0,_o=()=>typeof globalThis==`object`&&globalThis.constructor&&globalThis.constructor.name===`DedicatedWorkerGlobalScope`,vo=()=>typeof window<`u`&&window.name===`nodejs`||typeof navigator<`u`&&navigator.userAgent.includes(`jsdom`),yo=()=>typeof Deno<`u`,bo=()=>typeof process<`u`&&process.versions!==void 0&&process.versions.node!==void 0&&!yo(),xo=()=>ho||(ho=typeof Bun<`u`?`bun`:go()?`browser`:bo()?`node`:_o()?`webworker`:vo()?`jsdom`:yo()?`deno`:`other`,ho),So;function Co(){return So===void 0&&(So={library:`langsmith`,runtime:xo(),sdk:`langsmith-js`,sdk_version:mo,...ko()}),So}function wo(){let e=To(),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 To(){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 Eo(e){try{return typeof process<`u`?{}[e]:void 0}catch{return}}function Do(e){return Eo(`LANGSMITH_${e}`)||Eo(`LANGCHAIN_${e}`)}var Oo;function ko(){if(Oo!==void 0)return Oo;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=Eo(n);e!==void 0&&(t[n]=e)}return Oo=t,t}function Ao(){return Eo(`OTEL_ENABLED`)===`true`||Do(`OTEL_ENABLED`)===`true`}var jo=new Set([`langsmith`,`otel`]);function Mo(e){if(e!==void 0)return e;let t=Do(`TRACING_MODE`);if(t!==void 0&&t!==``){let e=t.toLowerCase();if(!jo.has(e))throw Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...jo].sort().join(`, `)}`);return Ao()&&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 Ao()?`otel`:`langsmith`}var No=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(e,...t){!this.hasWarned&&Mo()===`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()}},Po=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new No})}getTracer(e,t){return this.mockTracer}getActiveSpan(){}setSpan(e,t){return e}getSpan(e){}setSpanContext(e,t){return e}getTracerProvider(){}setGlobalTracerProvider(e){return!1}},Fo=class{active(){return{}}with(e,t){return t()}},Io=Symbol.for(`ls:otel_trace`),Lo=Symbol.for(`ls:otel_context`),Ro=Symbol.for(`ls:otel_get_default_otlp_tracer_provider`),zo=new Po,Bo=new Fo,Vo=new class{getTraceInstance(){return globalThis[Io]??zo}getContextInstance(){return globalThis[Lo]??Bo}initializeGlobalInstances(e){globalThis[Io]===void 0&&(globalThis[Io]=e.trace),globalThis[Lo]===void 0&&(globalThis[Lo]=e.context)}setDefaultOTLPTracerComponents(e){globalThis[Ro]=e}getDefaultOTLPTracerComponents(){return globalThis[Ro]??void 0}};function Ho(){return Vo.getTraceInstance()}function Uo(){return Vo.getContextInstance()}function Wo(){return Vo.getDefaultOTLPTracerComponents()}var Go={llm:`chat`,tool:`execute_tool`,retriever:`embeddings`,embedding:`embeddings`,prompt:`chat`};function Ko(e){return Go[e]||e}function qo(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var Jo=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&&Ho().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(Bi,t.run_type);let n=Ko(t.run_type||`chain`);e.setAttribute(pi,n)}`name`in t&&t.name&&e.setAttribute(Vi,t.name),`session_id`in t&&t.session_id&&e.setAttribute(Ri,t.session_id),`session_name`in t&&t.session_name&&e.setAttribute(zi,t.session_name),this.setGenAiSystem(e,t);let r=this.extractModelName(t);r&&e.setAttribute(hi,r),t.extra?.metadata?.usage_metadata&&typeof t.extra.metadata.usage_metadata==`object`&&e.setAttribute(Ki,JSON.stringify(t.extra.metadata.usage_metadata)),`prompt_tokens`in t&&typeof t.prompt_tokens==`number`&&e.setAttribute(_i,t.prompt_tokens),`completion_tokens`in t&&typeof t.completion_tokens==`number`&&e.setAttribute(vi,t.completion_tokens),`total_tokens`in t&&typeof t.total_tokens==`number`&&e.setAttribute(yi,t.total_tokens),this.setInvocationParameters(e,t);let i=t.extra?.metadata||{};for(let[t,n]of Object.entries(i))n!=null&&e.setAttribute(`${Hi}.${t}`,qo(n)?String(n):JSON.stringify(n));let a=t.tags;if(a&&Array.isArray(a)?e.setAttribute(Ui,a.join(`, `)):a&&e.setAttribute(Ui,String(a)),`serialized`in t&&typeof t.serialized==`object`){let n=t.serialized;n.name&&e.setAttribute(Ai,String(n.name)),n.signature&&e.setAttribute(ji,String(n.signature)),n.doc&&e.setAttribute(Mi,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(mi,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(bi,n.max_tokens),n.temperature!==void 0&&e.setAttribute(xi,n.temperature),n.top_p!==void 0&&e.setAttribute(Si,n.top_p),n.frequency_penalty!==void 0&&e.setAttribute(Ci,n.frequency_penalty),n.presence_penalty!==void 0&&e.setAttribute(wi,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(hi,n.model),n.stream!==void 0&&e.setAttribute(Wi,n.stream),n.extra_headers&&e.setAttribute(Gi,JSON.stringify(n.extra_headers)),n.extra_query&&e.setAttribute(Oi,JSON.stringify(n.extra_query)),n.extra_body&&e.setAttribute(ki,JSON.stringify(n.extra_body))),e.setAttribute(Ei,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(_i,r[0]),e.setAttribute(vi,r[1]),e.setAttribute(yi,r[0]+r[1])),n&&typeof n==`object`){if(n.model&&e.setAttribute(gi,String(n.model)),n.id&&e.setAttribute(Ni,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(Ti,t.join(`, `))}if(n.service_tier&&e.setAttribute(Pi,n.service_tier),n.system_fingerprint&&e.setAttribute(Fi,n.system_fingerprint),n.usage_metadata&&typeof n.usage_metadata==`object`){let t=n.usage_metadata;e.setAttribute(Ki,JSON.stringify(t)),t.input_token_details&&e.setAttribute(Ii,JSON.stringify(t.input_token_details)),t.output_token_details&&e.setAttribute(Li,JSON.stringify(t.output_token_details))}}e.setAttribute(Di,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]}},Yo=Object.prototype.toString,Xo=e=>Yo.call(e)===`[object Error]`,Zo=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 Qo(e){if(!(e&&Xo(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:Zo.has(t)}function $o(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 es(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 ts=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 ns(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 rs(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function is({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 ts)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),rs(r,s)<=0)throw a;let l=await i.shouldConsumeRetry(c),u=rs(r,s);if(u<=0||o<=0)throw a;if(a instanceof TypeError&&!Qo(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=ns(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 as(e,t={}){if(t={...t},$o(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,es(`factor`,t.factor,{min:0,allowInfinity:!1}),es(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),es(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),es(`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 is({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var os=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)})),ss=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})))})),cs=t(((e,t)=>{var n=ss(),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})),ls=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})),us=t((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ls();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}}})),ds=e(t((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=os(),n=cs(),r=us(),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),fs=`default`in ds.default?ds.default.default:ds.default,ps=[408,425,429,500,502,503,504],ms=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 fs({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(()=>as(()=>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`)&&!ps.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 hs(e){return typeof e?._getType==`function`}function gs(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 _s(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 vs=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}},ys=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 bs(e){return typeof e==`object`&&!!e&&`name`in e&&e?.name===`LangSmithNotFoundError`}function xs(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 ys(i);if(e.status===409)throw new vs(i);let a=Error(i);throw a.status=e.status,a}var Ss=`ERR_CONFLICTING_ENDPOINTS`,Cs=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:Ss}),this.name=`ConflictingEndpointsError`}};function ws(e){return typeof e==`object`&&!!e&&e.code===Ss}function Ts(e){if(!e||e.split(`/`).length>2||e.startsWith(`/`)||e.endsWith(`/`)||e.split(`:`).length>2)throw Error(_s(e));let[t,n]=e.split(`:`),r=n||`latest`;if(t.includes(`/`)){let[n,i]=t.split(`/`,2);if(!n||!i)throw Error(_s(e));return[n,i,r]}else{if(!t)throw Error(_s(e));return[`-`,t,r]}}var Es=`langsmith-cli`,Ds=6e4,Os=1e4;function ks(){let e=xo();return e===`browser`||e===`webworker`}function As(){let e=Eo(`LANGSMITH_CONFIG_FILE`);if(e)return e;let t=Eo(`HOME`)??Eo(`USERPROFILE`);if(t)return io.join(t,`.langsmith`,`config.json`)}function js(e){let t=Eo(`LANGSMITH_PROFILE`);if(t)return t;if(e.current_profile)return e.current_profile;if(e.profiles?.default)return`default`}function Ms(){if(ks())return;let e=As();if(!(!e||!lo(e)))try{let t=JSON.parse(uo(e)),n=js(t),r=n?t.profiles?.[n]:void 0;return!n||!r?void 0:{configPath:e,config:t,profileName:n,profile:r}}catch{return}}function Ns(e){return e!=null&&e.trim()!==``}function Ps(e){return e?.trim().replace(/^["']|["']$/g,``)}function Fs(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()+Ds}function Is(e){let t=e;for(;t.endsWith(`/`);)t=t.slice(0,-1);return t.endsWith(`/api/v1`)?t.slice(0,-7):t}function Ls(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 Rs(e){return e.reason??Error(`The operation was aborted.`)}async function zs(e,t){if(!t)return e;if(t.aborted)throw Rs(t);let n,r=new Promise((e,r)=>{let i=()=>{r(Rs(t))};t.addEventListener(`abort`,i,{once:!0}),n=()=>{t.removeEventListener(`abort`,i)}});try{return await Promise.race([e,r])}finally{n?.()}}function Bs(){let e=Ms(),t=e?.profile;if(!e||!t)return{};let n=Ps(t.api_key),r=Ps(t.oauth?.access_token),i=Ps(t.oauth?.refresh_token);return{apiUrl:t.api_url,apiKey:n,workspaceId:t.workspace_id,oauthAccessToken:r,oauthRefreshToken:i,profileAuth:n||r||i?new Vs(e):void 0}}var Vs=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=Hs(this.state.profile);return this.rememberProfileAuthHeader(e),e}async getAuthHeader(e,t){Fs(this.state.profile)&&(this.refreshPromise||=this.refreshOAuthToken(e).finally(()=>{this.refreshPromise=void 0}),await zs(this.refreshPromise,t));let n=Us(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=Ps(this.state.profile.api_url)??`https://api.smith.langchain.com`;try{let r=new URLSearchParams({grant_type:`refresh_token`,client_id:Es,refresh_token:t}),i=await e(`${Is(n)}/oauth/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:r.toString(),signal:AbortSignal.timeout(Os)});if(!i.ok)return;let a=await i.json();if(!a.access_token)return;Ls(this.state.profile,a),this.state.config.profiles??={},this.state.config.profiles[this.state.profileName]=this.state.profile,await oo(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 Hs(e){let t=Ps(e.oauth?.access_token);if(t)return{name:`Authorization`,value:`Bearer ${t}`};if(!Ps(e.oauth?.refresh_token))return Us(e)}function Us(e){let t=Ps(e.oauth?.access_token);if(t)return{name:`Authorization`,value:`Bearer ${t}`};let n=Ps(e.api_key);if(n)return{name:`x-api-key`,value:n}}var Ws=`[...]`,Gs={result:`[Circular]`},Ks=[],qs=[],Js=new TextEncoder;function Ys(){return{depthLimit:2**53-1,edgesLimit:2**53-1}}function Xs(e){return Js.encode(e)}function Zs(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 Qs(e){return function(t,n){if(e){let r=e.call(this,t,n);if(r!==void 0)return r}return Zs(n)}}function $s(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:ec(e).length,maxStringLen:0}}}function ec(e,t,n,r,i){try{return Xs(JSON.stringify(e,Qs(n),r))}catch(a){if(!a.message?.includes(`Converting circular structure to JSON`))return console.warn(`[WARNING]: LangSmith received unserializable value.${t?`\nContext: ${t}`:``}`),Xs(`[Unserializable]`);Do(`SUPPRESS_CIRCULAR_JSON_WARNINGS`)!==`true`&&console.warn(`[WARNING]: LangSmith received circular JSON. This will decrease tracer performance. ${t?`\nContext: ${t}`:``}`),i===void 0&&(i=Ys()),nc(e,``,0,[],void 0,0,i);let o;try{o=qs.length===0?JSON.stringify(e,n,r):JSON.stringify(e,rc(n),r)}catch{return Xs(`[unable to serialize, circular reference is too complex to analyze]`)}finally{for(;Ks.length!==0;){let e=Ks.pop();e.length===4?Object.defineProperty(e[0],e[1],e[3]):e[0][e[1]]=e[2]}}return Xs(o)}}function tc(e,t,n,r){var i=Object.getOwnPropertyDescriptor(r,n);i.get===void 0?(r[n]=e,Ks.push([r,n,t])):i.configurable?(Object.defineProperty(r,n,{value:e}),Ks.push([r,n,t,i])):qs.push([t,n,e])}function nc(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){tc(Gs,e,t,i);return}if(o.depthLimit!==void 0&&a>o.depthLimit){tc(Ws,e,t,i);return}if(o.edgesLimit!==void 0&&n+1>o.edgesLimit){tc(Ws,e,t,i);return}if(r.push(e),Array.isArray(e))for(s=0;s<e.length;s++)nc(e[s],s,s,r,e,a,o);else{e=Zs(e);var c=Object.keys(e);for(s=0;s<c.length;s++){var l=c[s];nc(e[l],l,s,r,e,a,o)}}r.pop()}}function rc(e){return e=e===void 0?function(e,t){return t}:e,function(t,n){if(qs.length>0)for(var r=0;r<qs.length;r++){var i=qs[r];if(i[1]===t&&i[0]===n){n=i[2],qs.splice(r,1);break}}return e.call(this,t,n)}}var ic=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()}},ac=null;function oc(){return ac===null&&(ac=new ic),ac}var sc=64*1024,cc=2048;function lc(e,t=sc,n=cc){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 uc(e,t){let[n]=Ts(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 dc(e){return typeof e==`string`&&e.length>0&&!e.includes(`Z`)&&!e.includes(`+`)&&!e.includes(`-`,10)?e+`Z`:e}function fc(e){return{...e,start_time:dc(e.start_time),end_time:dc(e.end_time)}}function pc(e,t,n){if(n)return e;let r=Co(),i=t??wo(),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 mc=e=>{let t=e?.toString()??Do(`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},hc=e=>{let t=e.replace(`http://`,``).replace(`https://`,``).split(`/`)[0].split(`:`)[0];return t===`localhost`||t===`127.0.0.1`||t===`::1`};async function gc(e){let t=[];for await(let n of e)t.push(n);return t}function _c(e){if(e!==void 0)return e.trim().replace(/^"(.*)"$/,`$1`).replace(/^'(.*)'$/,`$1`)}var vc=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 yc(e){return typeof e==`number`?Number(e.toFixed(4)):e}var bc=1e4,xc=100,Sc=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=$s(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())]}},Cc=class e{get tracingMode(){return this._tracingMode}get _fetch(){let e=this.fetchImplementation||Zi(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(Ns(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(Ns(n.get(`x-api-key`)))return!0;let r=n.get(`Authorization`);return Ns(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(Ns(e.get(`x-api-key`)))return e;let r=e.get(`Authorization`);return Ns(r)&&!this.isProfileManagedAuthorizationHeader(r??``,n)||e.set(`Authorization`,t.value),e}let r=e.get(`Authorization`);return Ns(r)&&!this.isProfileManagedAuthorizationHeader(r??``,n)?e:(Ns(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=Ns(o(`x-api-key`)),c=o(`authorization`),l=Ns(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||!lc(e)||(this._serializeWorker===void 0&&(this._serializeWorker=oc()),this._serializeWorker===null))return ec(e,t);try{let n=await this._serializeWorker.serialize(e);return n===null?(this._serializeWorker=null,ec(e,t)):n}catch{return ec(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:Eo(`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:Do(`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:Eo(`LANGSMITH_DEBUG`)===`true`});let n=e.getDefaultClientConfig();this.tracingSampleRate=mc(t.tracingSamplingRate),this.apiUrl=_c(t.apiUrl??n.apiUrl)??``,this.apiUrl.endsWith(`/`)&&(this.apiUrl=this.apiUrl.slice(0,-1));let r=_c(t.apiKey??n.apiKey);if(this.apiKey=Ns(r)?r:void 0,this.profileAuth=this.apiKey===void 0?n.profileAuth:void 0,this.webUrl=_c(t.webUrl??n.webUrl),this.webUrl?.endsWith(`/`)&&(this.webUrl=this.webUrl.slice(0,-1)),this.workspaceId=_c(t.workspaceId??n.workspaceId),this.timeout_ms=t.timeout_ms??9e4,this.caller=new ms({...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=Do(`FAILED_TRACES_DIR`)||void 0;let i=Do(`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 ms({maxRetries:4,maxConcurrency:this.traceBatchConcurrency,maxQueueSizeBytes:a,...t.callerOptions??{},onFailedResponseHook:vc,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 Sc(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=Mo(t.tracingMode),this._tracingMode===`otel`&&(this.langSmithToOTELTranslator=new Jo),this.cachedLSEnvVarsForMetadata=wo(),t.cache!==void 0&&t.disablePromptCache&&ea(`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=po):(ea(`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=po:this._promptCache=t.cache),this._customHeaders=t.headers??{}}static getDefaultClientConfig(){let e=Bs(),t=Do(`API_KEY`),n=Do(`ENDPOINT`),r=Do(`WORKSPACE_ID`),i=Ns(t),a=n??e.apiUrl??`https://api.smith.langchain.com`,o=r??e.workspaceId;return{apiUrl:a,apiKey:t,webUrl:void 0,hideInputs:Do(`HIDE_INPUTS`)===`true`,hideOutputs:Do(`HIDE_OUTPUTS`)===`true`,hideMetadata:Do(`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:hc(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/${mo}`,...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??xc}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()}_${$r().slice(0,8)}.json`,l=io.join(t,c);if(e._fallbackDirsCreated.has(t)||(await ao(t),e._fallbackDirsCreated.add(t)),a!==void 0&&a>0)try{let e=(await so(t)).filter(e=>e.startsWith(`trace_`)&&e.endsWith(`.json`)),n=0;for(let r of e){let{size:e}=await co(io.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 oo(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(bs(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=pc(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(bc),...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=Ho(),t=Uo();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=pc(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=ec(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;Xi()&&!this.multipartStreamingDisabled&&xo()!==`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(bs(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=ec(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=fc(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:Do(`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 gc(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`)&&ea(`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(fc);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=fc(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||$r()};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(fc)}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(wc(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=wc(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]??$r())}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=>hs(e)?gs(e):e),i=hs(t)?gs(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??ui(),run_id:e,key:t,score:yc(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=yc(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||$r(),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 fc(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]=Ts(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]=Ts(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]=Ts(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]=Ts(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]=Ts(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]=Ts(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=ec({...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=ec(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=ec(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=ec(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??$r()).toString(),r=ec({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=ec(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=ec(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]=Ts(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]=Ts(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]=Ts(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){uc(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]=Ts(e);return this._repoExists(t,n)}async skillExists(e){let[t,n]=Ts(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]=Ts(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]=Ts(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]=Ts(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(bs(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(xs(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 Wo()?.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(Cc,"_fallbackDirsCreated",{enumerable:!0,configurable:!0,writable:!0,value:new Set});function wc(e){return`dataset_id`in e||`dataset_name`in e}var Tc=e=>e===void 0?!![`TRACING_V2`,`TRACING`].find(e=>Do(e)===`true`):e,Ec=Symbol.for(`lc:context_variables`),Dc=Symbol.for(`langsmith:replica_trace_roots`);function Oc(e,t){if(Ec in e)return e[Ec][t]}function kc(e,t,n){let r=Ec in e?e[Ec]:{};r[t]=n,e[Ec]=r}var Ac=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`;function jc(e){return ci(Object.keys(e).sort().map(t=>`${t}:${e[t]??``}`).join(`|`),Ac)}function Mc(e){return e.replace(/[-:.]/g,``)}function Nc(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 Pc(e,t,n=1){let r=Nc(e,n);return{dottedOrder:Mc(r)+t,microsecondPrecisionDatestring:r}}var Fc=new Set([`projectName`,`updates`,`reroot`]);function Ic(e){let t={};for(let n of Object.keys(e))Fc.has(n)&&(t[n]=e[n]);return t}var Lc=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:Ic(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(`,`)}},Rc=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}),zc(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=Nc(this.start_time,this.execution_order)),this.id||=Za(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=Gc(this.replicas),!this.dotted_order){let{dottedOrder:e}=Pc(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:Qi(),child_runs:[],api_url:Eo(`LANGCHAIN_ENDPOINT`)??`http://localhost:1984`,api_key:Eo(`LANGCHAIN_API_KEY`),caller_options:{},start_time:e,serialized:{},inputs:{},extra:{}}}static getSharedClient(){return e.sharedClient||=new Cc,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}}),Ec in this&&(a[Ec]=this[Ec]);let c=Symbol.for(`lc:child_config`),l=t.extra?.[c]??this.extra[c];if(Uc(l)){let e={...l},t=Hc(e.callbacks)?e.callbacks.copy?.():void 0;t&&(Object.assign(t,{_parentRunId:a.id}),t.handlers?.find(Bc)?.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=Oc(this,Dc)??{};n[e]=t,kc(this,Dc,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=jc({projectName:t,apiUrl:o,apiKey:s,workspaceId:c});this._setReplicaTraceRoot(e,l.id)}let u;if(!i&&(u=(Oc(this,Dc)??{})[jc({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=ro(d,t),p;p=l.trace_id?ro(l.trace_id,t):f;let m;l.parent_run_id&&(m=ro(l.parent_run_id,t));let h;return l.dotted_order&&(h=l.dotted_order.split(`.`).map(e=>{let n=ro(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=Co();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){ea(`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=Tc();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=Lc.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 Lc(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(Rc,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function zc(e){return e!=null&&typeof e.createChild==`function`&&typeof e.postRun==`function`}function Bc(e){return typeof e==`object`&&!!e&&typeof e.name==`string`&&e.name===`langchain_tracer`}function Vc(e){return Array.isArray(e)&&e.some(e=>Bc(e))}function Hc(e){return typeof e==`object`&&!!e&&Array.isArray(e.handlers)}function Uc(e){let t=e?.callbacks;return e!=null&&typeof t==`object`&&(Vc(t?.handlers)||Vc(t))}function Wc(){let e=Eo(`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){Kc(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(ws(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 Gc(e){return e?e.map(e=>Array.isArray(e)?{projectName:e[0],updates:e[1]}:e):Wc()}function Kc(e){if(Object.keys(e).length>0&&Do(`ENDPOINT`))throw new Cs}var qc=p({BaseTracer:()=>Qc,isBaseTracer:()=>Zc}),Jc=e=>{if(e)return e.events=e.events??[],e.child_runs=e.child_runs??[],e};function Yc(e,t){if(e)return new Rc({...e,start_time:e._serialized_start_time??e.start_time,parent_run:Yc(t),child_runs:e.child_runs.map(e=>Yc(e)).filter(e=>e!==void 0),extra:{...e.extra,runtime:Rr()},tracingEnabled:!1})}function Xc(e,t){return e&&!Array.isArray(e)&&typeof e==`object`?e:{[t]:e}}function Zc(e){return typeof e._addRunToRunMap==`function`}var Qc=class extends Wr{runMap=new Map;runTreeMap=new Map;usesRunTreeMap=!1;constructor(e){super(...arguments)}copy(){return this}getRunById(e){if(e!==void 0)return this.usesRunTreeMap?Jc(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}=Pc(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=Yc(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=Xc(e,`output`),a.events.push({name:`end`,time:new Date(a.end_time).toISOString()}),i?.inputs!==void 0&&(a.inputs=Xc(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=Xc(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}},$c=p({ConsoleCallbackHandler:()=>ol}),el={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 tl(e,t){return`${e.open}${t}${e.close}`}function nl(e,t){try{return JSON.stringify(e,null,2)}catch{return t}}function rl(e){return typeof e==`string`?e.trim():e==null?e:nl(e,e.toString())}function il(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:al}=el,ol=class extends Qc{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?tl(el.bold,r):r}).join(` > `);return tl(al.grey,t)}onChainStart(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.green,`[chain/start]`)} [${t}] Entering Chain run with input: ${nl(e.inputs,`[inputs]`)}`)}onChainEnd(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.cyan,`[chain/end]`)} [${t}] [${il(e)}] Exiting Chain run with output: ${nl(e.outputs,`[outputs]`)}`)}onChainError(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.red,`[chain/error]`)} [${t}] [${il(e)}] Chain run errored with error: ${nl(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(`${tl(al.green,`[llm/start]`)} [${t}] Entering LLM run with input: ${nl(n,`[inputs]`)}`)}onLLMEnd(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.cyan,`[llm/end]`)} [${t}] [${il(e)}] Exiting LLM run with output: ${nl(e.outputs,`[response]`)}`)}onLLMError(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.red,`[llm/error]`)} [${t}] [${il(e)}] LLM run errored with error: ${nl(e.error,`[error]`)}`)}onToolStart(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.green,`[tool/start]`)} [${t}] Entering Tool run with input: "${rl(e.inputs.input)}"`)}onToolEnd(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.cyan,`[tool/end]`)} [${t}] [${il(e)}] Exiting Tool run with output: "${rl(e.outputs?.output)}"`)}onToolError(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.red,`[tool/error]`)} [${t}] [${il(e)}] Tool run errored with error: ${nl(e.error,`[error]`)}`)}onRetrieverStart(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.green,`[retriever/start]`)} [${t}] Entering Retriever run with input: ${nl(e.inputs,`[inputs]`)}`)}onRetrieverEnd(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.cyan,`[retriever/end]`)} [${t}] [${il(e)}] Exiting Retriever run with output: ${nl(e.outputs,`[outputs]`)}`)}onRetrieverError(e){let t=this.getBreadcrumbs(e);console.log(`${tl(al.red,`[retriever/error]`)} [${t}] [${il(e)}] Retriever run errored with error: ${nl(e.error,`[error]`)}`)}onAgentAction(e){let t=e,n=this.getBreadcrumbs(e);console.log(`${tl(al.blue,`[agent/action]`)} [${n}] Agent selected action: ${nl(t.actions[t.actions.length-1],`[action]`)}`)}},sl,cl=()=>(sl===void 0&&(sl=new Cc(zr(`LANGCHAIN_CALLBACKS_BACKGROUND`)===`false`?{blockOnRootRunFinalization:!0}:{})),sl),ll=class{getStore(){}run(e,t){return t()}},ul=Symbol.for(`ls:tracing_async_local_storage`),dl=new ll,fl=new class{getInstance(){return globalThis[ul]??dl}initializeGlobalInstance(e){globalThis[ul]===void 0&&(globalThis[ul]=e)}};function pl(e=!1){let t=fl.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 ml(e){return typeof e==`function`&&`langsmith:traceable`in e}var hl=p({LangChainTracer:()=>vl,OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS:()=>gl}),gl=new Set([`ls_agent_type`]);function _l(e){let t;for(let n of e)for(let e of n)k.isInstance(e.message)&&e.message.usage_metadata!==void 0&&(t=rn(t,e.message.usage_metadata));return t}var vl=class e extends Qc{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??Qi(),this.replicas=a,this.exampleId=n,this.client=i??cl(),this.tracingMetadata=o?{...o}:void 0,this.tracingTags=s??[];let c=e.getTraceableRunTree();c&&this.updateFromRunTree(c)}async persistRun(e){}async onRunCreate(e){yl(this,e),e.extra?.lc_defers_inputs||await this.getRunTreeWithTracingConfig(e.id)?.postRun()}async onRunUpdate(e){yl(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=_l(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)||gl.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 Rc({...t,client:this.client,project_name:this.projectName,replicas:this.replicas,reference_example_id:this.exampleId,tracingEnabled:!0})}static getTraceableRunTree(){try{return pl(!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 yl(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)||gl.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 bl=Symbol.for(`ls:tracing_async_local_storage`),xl=Symbol.for(`lc:context_variables`),Sl=e=>{globalThis[bl]=e},Cl=()=>globalThis[bl],wl;function Tl(){return new(`default`in ds.default?ds.default.default:ds.default)({autoStart:!0,concurrency:1})}function El(){return wl===void 0&&(wl=Tl()),wl}async function Dl(e,t){if(t===!0){let t=Cl();t===void 0?await e():await t.run(void 0,async()=>e())}else wl=El(),wl.add(async()=>{let t=Cl();t===void 0?await e():await t.run(void 0,async()=>e())})}async function Ol(){let e=cl();await Promise.allSettled([wl===void 0?Promise.resolve():wl.onIdle(),e.awaitPendingTraceBatches()])}var kl=p({awaitAllCallbacks:()=>Ol,consumeCallback:()=>Dl}),Al=e=>e===void 0?!![`LANGSMITH_TRACING_V2`,`LANGCHAIN_TRACING_V2`,`LANGSMITH_TRACING`,`LANGCHAIN_TRACING`].find(e=>zr(e)===`true`):e;function jl(e){let t=Cl();if(t!==void 0)return t.getStore()?.[xl]?.[e]}var Ml=Symbol(`lc:configure_hooks`),Nl=()=>jl(Ml)||[],Pl=p({BaseCallbackManager:()=>Il,BaseRunManager:()=>Ll,CallbackManager:()=>Hl,CallbackManagerForChainRun:()=>Bl,CallbackManagerForLLMRun:()=>zl,CallbackManagerForRetrieverRun:()=>Rl,CallbackManagerForToolRun:()=>Vl,ensureHandler:()=>Ul,parseCallbackConfigArg:()=>Fl});function Fl(e){return e?Array.isArray(e)||`name`in e?{callbacks:e}:e:{}}var Il=class{setHandler(e){return this.setHandlers([e])}},Ll=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=>Dl(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=>Dl(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)))}},Rl=class extends Ll{getChild(e){let t=new Hl(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=>Dl(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=>Dl(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)))}},zl=class extends Ll{async handleLLMNewToken(e,t,n,r,i,a){await Promise.all(this.handlers.map(n=>Dl(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=>Dl(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=>Dl(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=>Dl(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)))}},Bl=class extends Ll{getChild(e){let t=new Hl(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=>Dl(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=>Dl(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=>Dl(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=>Dl(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)))}},Vl=class extends Ll{getChild(e){let t=new Hl(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=>Dl(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=>Dl(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=>Dl(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)))}},Hl=class e extends Il{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:Dr();return await Promise.all(this.handlers.map(n=>{if(!n.ignoreLLM)return Zc(n)&&n._createRunForLLMStart(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s),Dl(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 zl(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:Dr();return await Promise.all(this.handlers.map(n=>{if(!n.ignoreLLM)return Zc(n)&&n._createRunForChatModelStart(e,[t],a,this._parentRunId,i,this.tags,this.metadata,s),Dl(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=Nn(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 zl(a,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}))}async handleChainStart(e,t,n=Dr(),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 Zc(i)&&i._createRunForChainStart(e,t,n,this._parentRunId,this.tags,this.metadata,r,o,c),Dl(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 Bl(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleToolStart(e,t,n=Dr(),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 Zc(r)&&r._createRunForToolStart(e,t,n,this._parentRunId,this.tags,this.metadata,o),Dl(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 Vl(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleRetrieverStart(e,t,n=Dr(),r=void 0,i=void 0,a=void 0,o=void 0){return await Promise.all(this.handlers.map(r=>{if(!r.ignoreRetriever)return Zc(r)&&r._createRunForRetrieverStart(e,t,n,this._parentRunId,this.tags,this.metadata,o),Dl(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 Rl(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=>Dl(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 Wr{name=Dr();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(Ul)??[],!0)):c=t,c=c.copy(Array.isArray(n)?n.map(Ul):n?.handlers,!1));let l=zr(`LANGCHAIN_VERBOSE`)===`true`||s?.verbose,u=vl.getTraceableRunTree(),d=u?.tracingEnabled??Al();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||(zr(`LANGCHAIN_TRACING`)??!1);if(l||f){if(c||=new e,l&&!c.handlers.some(e=>e.name===ol.prototype.name)){let e=new ol;c.addHandler(e,!0)}if(f&&!c.handlers.some(e=>e.name===`langchain_tracer`)&&d){let e=new vl;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 Nl()){let a=i&&zr(i)===`true`&&r,o,s=t===void 0?void 0:jl(t);s&&Gr(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 vl?e.copyWithTracingConfig({metadata:p,tags:m}):e),c.inheritableHandlers=c.inheritableHandlers.map(e=>e instanceof vl?e.copyWithTracingConfig({metadata:p,tags:m}):e)),c}};function Ul(e){return`name`in e?e:Wr.fromMethods(e)}var Wl=class{getStore(){}run(e,t){return t()}enterWith(e){}},Gl=new Wl,Kl=Symbol.for(`lc:child_config`),ql=new class{getInstance(){return Cl()??Gl}getRunnableConfig(){return this.getInstance().getStore()?.extra?.[Kl]}runWithConfig(e,t,n){let r=Hl._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 Rc({name:`<runnable_lambda>`,tracingEnabled:!1})),c&&(c.extra={...c.extra,[Kl]:e}),a!==void 0&&a[xl]!==void 0&&(c===void 0&&(c={}),c[xl]=a[xl]),i.run(c,t)}initializeGlobalInstance(e){Cl()===void 0&&Sl(e)}},Jl=p({AsyncLocalStorageProviderSingleton:()=>ql,MockAsyncLocalStorage:()=>Wl,_CONTEXT_VARIABLES_KEY:()=>xl}),Yl=new Set([`api_key`]),Xl=new Set([`string`,`number`,`boolean`]);function Zl(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)&&!Yl.has(e)&&Xl.has(typeof i)&&(r[e]=i);return Object.keys(r).length>0?r:void 0}async function Ql(e){return Hl._configureSync(e?.callbacks,void 0,e?.tags,void 0,e?.metadata,void 0,{tracerInheritableMetadata:e?Zl(e):void 0})}function $l(...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(Ul(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(Ul(t),!0);t.callbacks=n}else t.callbacks=new Hl(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 eu(e){let t=ql.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 tu(e={},{callbacks:t,maxConcurrency:n,recursionLimit:r,runName:i,configurable:a,runId:o}={}){let s=eu(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 nu(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 ru(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(iu(t))},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&r(iu(t))})]).finally(()=>t.removeEventListener(`abort`,n))}function iu(e){return e?.reason instanceof Error?e.reason:typeof e?.reason==`string`?Error(e.reason):Error(`Aborted`)}var au=p({AsyncGeneratorWithSetup:()=>lu,IterableReadableStream:()=>ou,atee:()=>su,concat:()=>cu,pipeGeneratorWithSetup:()=>uu}),ou=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 su(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 cu(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]=cu(n[e],r):n[e]=r;return n}else throw Error(`Cannot concat ${typeof e} and ${typeof t}`)}var lu=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)=>{ql.runWithConfig(nu(e.config),async()=>{this.firstResult=this.signal?ru(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?ql.runWithConfig(nu(this.config),this.signal?async()=>ru(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 uu(e,t,n,r,...i){let a=new lu({generator:t,startSetup:n,signal:r}),o=await a.setup;return{output:e(a,o,...i),setup:o}}var du=Object.prototype.hasOwnProperty;function fu(e,t){return du.call(e,t)}function pu(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)fu(e,n)&&t.push(n);return t}function mu(e){switch(typeof e){case`object`:return JSON.parse(JSON.stringify(e));case`undefined`:return null;default:return e}}function hu(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 gu(e){return e.indexOf(`/`)===-1&&e.indexOf(`~`)===-1?e:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function _u(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function vu(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(vu(e[t]))return!0}else if(typeof e==`object`){let n=pu(e),r=n.length;for(var t=0;t<r;t++)if(vu(e[n[t]]))return!0}}return!1}function yu(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 bu=class extends Error{constructor(e,t,n,r,i){super(yu(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=yu(e,{name:t,index:n,operation:r,tree:i})}},xu=p({JsonPatchError:()=>Su,_areEquals:()=>Mu,applyOperation:()=>Du,applyPatch:()=>Ou,applyReducer:()=>ku,deepClone:()=>Cu,getValueByPointer:()=>Eu,validate:()=>ju,validator:()=>Au}),Su=bu,Cu=mu,wu={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=Eu(n,this.path);r&&=mu(r);let i=Du(n,{op:`remove`,path:this.from}).removed;return Du(n,{op:`add`,path:this.path,value:i}),{newDocument:n,removed:r}},copy:function(e,t,n){let r=Eu(n,this.from);return Du(n,{op:`add`,path:this.path,value:mu(r)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:Mu(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},Tu={add:function(e,t,n){return hu(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:wu.move,copy:wu.copy,test:wu.test,_get:wu._get};function Eu(e,t){if(t==``)return e;var n={op:`_get`,path:t};return Du(e,n),n.value}function Du(e,t,n=!1,r=!0,i=!0,a=0){if(n&&(typeof n==`function`?n(t,0,e,t.path):Au(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=Eu(e,t.from),t.op===`move`&&(r.removed=e),r;if(t.op===`test`){if(r.test=Mu(e,t.value),r.test===!1)throw new Su(`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 Su("Operation `op` property is not one of operations defined in RFC-6902",`OPERATION_OP_INVALID`,a,t,e);else return r}else{r||(e=mu(e));let o=(t.path||``).split(`/`),s=e,c=1,l=o.length,u,d,f;for(f=typeof n==`function`?n:Au;;){if(d=o[c],d&&d.indexOf(`~`)!=-1&&(d=_u(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&&!hu(d))throw new Su(`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 hu(d)&&(d=~~d);if(c>=l){if(n&&t.op===`add`&&d>s.length)throw new Su(`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=Tu[t.op].call(t,s,d,e);if(r.test===!1)throw new Su(`Test operation failed`,`TEST_OPERATION_FAILED`,a,t,e);return r}}else if(c>=l){let n=wu[t.op].call(t,s,d,e);if(n.test===!1)throw new Su(`Test operation failed`,`TEST_OPERATION_FAILED`,a,t,e);return n}if(s=s[d],n&&c<l&&(!s||typeof s!=`object`))throw new Su(`Cannot perform operation at the desired path`,`OPERATION_PATH_UNRESOLVABLE`,a,t,e)}}}function Ou(e,t,n,r=!0,i=!0){if(n&&!Array.isArray(t))throw new Su(`Patch sequence must be an array`,`SEQUENCE_NOT_AN_ARRAY`);r||(e=mu(e));let a=Array(t.length);for(let r=0,o=t.length;r<o;r++)a[r]=Du(e,t[r],n,!0,i,r),e=a[r].newDocument;return a.newDocument=e,a}function ku(e,t,n){let r=Du(e,t);if(r.test===!1)throw new Su(`Test operation failed`,`TEST_OPERATION_FAILED`,n,t,e);return r.newDocument}function Au(e,t,n,r){if(typeof e!=`object`||!e||Array.isArray(e))throw new Su(`Operation is not an object`,`OPERATION_NOT_AN_OBJECT`,t,e,n);if(!wu[e.op])throw new Su("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 Su("Operation `path` property is not a string",`OPERATION_PATH_INVALID`,t,e,n);if(e.path.indexOf(`/`)!==0&&e.path.length>0)throw new Su('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 Su("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 Su("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`)&&vu(e.value))throw new Su("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 Su("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 Su(`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=ju([{op:`_get`,path:e.from,value:void 0}],n);if(o&&o.name===`OPERATION_PATH_UNRESOLVABLE`)throw new Su(`Cannot perform the operation from a path that does not exist`,`OPERATION_FROM_UNRESOLVABLE`,t,e,n)}}}function ju(e,t,n){try{if(!Array.isArray(e))throw new Su(`Patch sequence must be an array`,`SEQUENCE_NOT_AN_ARRAY`);if(t)Ou(mu(t),mu(e),n||!0);else{n||=Au;for(var r=0;r<e.length;r++)n(e[r],r,t,void 0)}}catch(e){if(e instanceof Su)return e;throw e}}function Mu(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(!Mu(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],!Mu(e[o],t[o]))return!1;return!0}return e!==e&&t!==t}function Nu(e,t,n,r,i){if(t!==e){typeof t.toJSON==`function`&&(t=t.toJSON());for(var a=pu(t),o=pu(e),s=!1,c=o.length-1;c>=0;c--){var l=o[c],u=e[l];if(fu(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)?Nu(u,d,n,r+`/`+gu(l),i):u!==d&&(i&&n.push({op:`test`,path:r+`/`+gu(l),value:mu(u)}),n.push({op:`replace`,path:r+`/`+gu(l),value:mu(d)}))}else Array.isArray(e)===Array.isArray(t)?(i&&n.push({op:`test`,path:r+`/`+gu(l),value:mu(u)}),n.push({op:`remove`,path:r+`/`+gu(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];!fu(e,l)&&t[l]!==void 0&&n.push({op:`add`,path:r+`/`+gu(l),value:mu(t[l])})}}}function Pu(e,t,n=!1){var r=[];return Nu(e,t,r,``,n),r}({...xu});var Fu=p({LogStreamCallbackHandler:()=>Hu,RunLog:()=>Lu,RunLogPatch:()=>Iu,isLogStreamHandler:()=>Ru}),Iu=class{ops;constructor(e){this.ops=e.ops??[]}concat(e){let t=this.ops.concat(e.ops),n=Ou({},t);return new Lu({ops:t,state:n[n.length-1].newDocument})}},Lu=class e extends Iu{state;constructor(e){super(e),this.state=e.state}concat(t){let n=this.ops.concat(t.ops),r=Ou(this.state,t.ops);return new e({ops:n,state:r[r.length-1].newDocument})}static fromRunLogPatch(t){let n=Ou({},t.ops);return new e({ops:t.ops,state:n[n.length-1].newDocument})}},Ru=e=>e.name===`log_stream_tracer`;async function zu(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 Bu(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 Vu(e){return e!==void 0&&e.message!==void 0}var Hu=class extends Qc{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=ou.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 Iu({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 Iu({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 zu(e,this._schemaFormat)),await this.writer.write(new Iu({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 zu(e,this._schemaFormat)}),n.push({op:`add`,path:`/logs/${t}/final_output`,value:await Bu(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 Iu({ops:n});await this.writer.write(r)}finally{if(e.id===this.rootId){let t=new Iu({ops:[{op:`replace`,path:`/final_output`,value:await Bu(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?Vu(n?.chunk)?n?.chunk:new cn({id:`run-${e.id}`,content:t}):t;let o=new Iu({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)}},Uu=p({ChatGenerationChunk:()=>Ku,GenerationChunk:()=>Gu,RUN_KEY:()=>Wu}),Wu=`__run`,Gu=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}})}},Ku=class e extends Gu{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 qu({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 Ju=e=>e.name===`event_stream_tracer`,Yu=class extends Qc{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=ou.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 Gu({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=qu(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 cn({content:t,id:`run-${e.id}`}):n.chunk.message;else if(r.runType===`llm`)a=`on_llm_stream`,i=n?.chunk===void 0?new Gu({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=qu(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=qu(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=qu(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()})}},Xu=Object.prototype.toString,Zu=e=>Xu.call(e)===`[object Error]`,Qu=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 $u(e){if(!(e&&Zu(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:Qu.has(t)}function ed(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 td(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 nd=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 rd(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 id(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function ad({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 nd)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),id(r,s)<=0)throw a;let l=await i.shouldConsumeRetry(c),u=id(r,s);if(u<=0||o<=0)throw a;if(a instanceof TypeError&&!$u(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=rd(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 od(e,t={}){if(t={...t},ed(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,td(`factor`,t.factor,{min:0,allowInfinity:!1}),td(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),td(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),td(`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 ad({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var sd=p({AsyncCaller:()=>Cd,classifyRateLimitError:()=>xd,parseRetryAfterMs:()=>bd}),cd=[400,401,402,403,404,405,406,407,409],ld=6e4,ud=[/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],dd=/(?:try again in|retry after)\s+(\d+(?:\.\d+)?)\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\b/i;function fd(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 pd(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 md(e){return typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`?e.message:void 0}function hd(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 gd(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 _d(e){if(e==null)return;let t=dd.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 vd(e,t){if(e instanceof Error)return e;let n=Error(t);return typeof e==`object`&&e&&Object.assign(n,e),n}function yd(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 bd(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 xd(e){if((fd(e)??pd(e))!==429)return;if(hd(e)===`insufficient_quota`)return{action:`stop`,reason:`insufficient_quota`};let t=md(e);if(t&&ud.some(e=>e.test(t)))return{action:`stop`,reason:`quota_message`};let n=bd(gd(e))??_d(t);return n===void 0?{action:`capacity`,reason:`headerless_429`}:n<=ld?{action:`wait`,retryAfterMs:n,reason:`retry_after_hint`}:{action:`capacity`,retryAfterMs:n,reason:`retry_after_too_large`}}var Sd=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=fd(e)??pd(e);if(t&&cd.includes(+t))throw e;if(hd(e)===`insufficient_quota`){let t=vd(e,md(e)??`Insufficient quota`);throw t.name=`InsufficientQuotaError`,yd(t,{action:`stop`,reason:`insufficient_quota`}),t}let n=xd(e);if(n){if(n.action===`wait`){yd(e,n);return}let t=vd(e,md(e)??`Rate limit exceeded`);throw t.name===`Error`&&(t.name=n.action===`stop`?`RateLimitQuotaExhaustedError`:`RateLimitCapacityError`),yd(t,n),t}},Cd=class{maxConcurrency;maxRetries;onFailedAttempt;queue;constructor(e){this.maxConcurrency=e.maxConcurrency??1/0,this.maxRetries=e.maxRetries??6,this.onFailedAttempt=e.onFailedAttempt??Sd;let t=`default`in ds.default?ds.default.default:ds.default;this.queue=new t({concurrency:this.maxConcurrency})}async call(e,...t){return this.queue.add(()=>od(()=>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(iu(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)))}},wd=class extends Qc{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 Td(e){return e?e.lc_runnable:!1}var Ed=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}},Dd=e=>btoa(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),Od;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 kd=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ad=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Od=globalThis).__zod_globalConfig??(Od.__zod_globalConfig={});var jd=globalThis.__zod_globalConfig;function Md(e){return e&&Object.assign(jd,e),jd}function Nd(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 Pd(e,t){return typeof t==`bigint`?t.toString():t}function Fd(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw Error(`cached value already set`)}}}function Id(e){return e==null}function Ld(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Rd(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 zd=Symbol(`evaluating`);function Bd(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==zd)return r===void 0&&(r=zd,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Vd(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Hd(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Ud(e){return JSON.stringify(e)}function Wd(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Gd=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Kd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var qd=Fd(()=>{if(jd.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Jd(e){if(Kd(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(Kd(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Yd(e){return Jd(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Xd=new Set([`string`,`number`,`symbol`]);function Zd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Qd(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 $d(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var ef={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function tf(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 Qd(e,Hd(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 Vd(this,`shape`,e),e},checks:[]}))}function nf(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 Qd(e,Hd(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 Vd(this,`shape`,r),r},checks:[]}))}function rf(e,t){if(!Jd(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 Qd(e,Hd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Vd(this,`shape`,n),n}}))}function af(e,t){if(!Jd(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Qd(e,Hd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Vd(this,`shape`,n),n}}))}function of(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return Qd(e,Hd(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Vd(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function sf(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 Qd(t,Hd(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 Vd(this,`shape`,i),i},checks:[]}))}function cf(e,t,n){return Qd(t,Hd(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 Vd(this,`shape`,i),i}}))}function lf(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 uf(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 df(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function ff(e){return typeof e==`string`?e:e?.message}function pf(e,t,n){let r=e.message?e.message:ff(e.inst?._zod.def?.error?.(e))??ff(t?.error?.(e))??ff(n.customError?.(e))??ff(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 mf(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function hf(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var gf=(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,Pd,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},_f=P(`$ZodError`,gf),vf=P(`$ZodError`,gf,{Parent:Error});function yf(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 bf(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 xf(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 Sf(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 ${xf(e.path)}`);return t.join(`
|
|
28
|
+
`)}var Cf=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 kd;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>pf(e,a,Md())));throw Gd(t,i?.callee),t}return o.value},wf=Cf(vf),Tf=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=>pf(e,a,Md())));throw Gd(t,i?.callee),t}return o.value},Ef=Tf(vf),Df=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 kd;return a.issues.length?{success:!1,error:new(e??_f)(a.issues.map(e=>pf(e,i,Md())))}:{success:!0,data:a.value}},Of=Df(vf),kf=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=>pf(e,i,Md())))}:{success:!0,data:a.value}},Af=kf(vf),jf=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Cf(e)(t,n,i)},Mf=e=>(t,n,r)=>Cf(e)(t,n,r),Nf=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Tf(e)(t,n,i)},Pf=e=>async(t,n,r)=>Tf(e)(t,n,r),Ff=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Df(e)(t,n,i)},If=e=>(t,n,r)=>Df(e)(t,n,r),Lf=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return kf(e)(t,n,i)},Rf=e=>async(t,n,r)=>kf(e)(t,n,r),zf=/^[cC][0-9a-z]{6,}$/,Bf=/^[0-9a-z]+$/,Vf=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Hf=/^[0-9a-vA-V]{20}$/,Uf=/^[A-Za-z0-9]{27}$/,Wf=/^[a-zA-Z0-9_-]{21}$/,Gf=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kf=/^([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})$/,qf=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)$/,Jf=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Yf=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Xf(){return new RegExp(Yf,`u`)}var Zf=/^(?:(?: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])$/,Qf=/^(([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}|:))$/,$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])\/([0-9]|[1-2][0-9]|3[0-2])$/,ep=/^(([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])$/,tp=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,np=/^[A-Za-z0-9_-]*$/,rp=/^https?$/,ip=/^\+[1-9]\d{6,14}$/,ap=`(?:(?:\\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])))`,op=RegExp(`^${ap}$`);function sp(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 cp(e){return RegExp(`^${sp(e)}$`)}function lp(e){let t=sp({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(`^${ap}T(?:${r})$`)}var up=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},dp=/^-?\d+$/,fp=/^-?\d+(?:\.\d+)?$/,pp=/^(?:true|false)$/i,mp=/^[^A-Z]*$/,hp=/^[^a-z]*$/,gp=P(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),_p={number:`number`,bigint:`bigint`,object:`date`},vp=P(`$ZodCheckLessThan`,(e,t)=>{gp.init(e,t);let n=_p[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})}}),yp=P(`$ZodCheckGreaterThan`,(e,t)=>{gp.init(e,t);let n=_p[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})}}),bp=P(`$ZodCheckMultipleOf`,(e,t)=>{gp.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):Rd(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})}}),xp=P(`$ZodCheckNumberFormat`,(e,t)=>{gp.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ef[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=dp)}),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})}}),Sp=P(`$ZodCheckMaxLength`,(e,t)=>{var n;gp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Id(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=mf(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Cp=P(`$ZodCheckMinLength`,(e,t)=>{var n;gp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Id(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=mf(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),wp=P(`$ZodCheckLengthEquals`,(e,t)=>{var n;gp.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Id(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=mf(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})}}),Tp=P(`$ZodCheckStringFormat`,(e,t)=>{var n,r;gp.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=()=>{})}),Ep=P(`$ZodCheckRegex`,(e,t)=>{Tp.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})}}),Dp=P(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=mp,Tp.init(e,t)}),Op=P(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=hp,Tp.init(e,t)}),kp=P(`$ZodCheckIncludes`,(e,t)=>{gp.init(e,t);let n=Zd(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})}}),Ap=P(`$ZodCheckStartsWith`,(e,t)=>{gp.init(e,t);let n=RegExp(`^${Zd(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})}}),jp=P(`$ZodCheckEndsWith`,(e,t)=>{gp.init(e,t);let n=RegExp(`.*${Zd(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})}}),Mp=P(`$ZodCheckOverwrite`,(e,t)=>{gp.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Np=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
|
+
`))}},Pp={major:4,minor:4,patch:3},Fp=P(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Pp;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=lf(e),i;for(let a of t){if(a._zod.def.when){if(uf(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 kd;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=lf(e,t))});else{if(e.issues.length===t)continue;r||=lf(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(lf(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new kd;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 kd;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Bd(e,`~standard`,()=>({validate:t=>{try{let n=Of(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Af(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Ip=P(`$ZodString`,(e,t)=>{Fp.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??up(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}}),Lp=P(`$ZodStringFormat`,(e,t)=>{Tp.init(e,t),Ip.init(e,t)}),Rp=P(`$ZodGUID`,(e,t)=>{t.pattern??=Kf,Lp.init(e,t)}),zp=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??=qf(e)}else t.pattern??=qf();Lp.init(e,t)}),Bp=P(`$ZodEmail`,(e,t)=>{t.pattern??=Jf,Lp.init(e,t)}),Vp=P(`$ZodURL`,(e,t)=>{Lp.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===rp.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})}}}),Hp=P(`$ZodEmoji`,(e,t)=>{t.pattern??=Xf(),Lp.init(e,t)}),Up=P(`$ZodNanoID`,(e,t)=>{t.pattern??=Wf,Lp.init(e,t)}),Wp=P(`$ZodCUID`,(e,t)=>{t.pattern??=zf,Lp.init(e,t)}),Gp=P(`$ZodCUID2`,(e,t)=>{t.pattern??=Bf,Lp.init(e,t)}),Kp=P(`$ZodULID`,(e,t)=>{t.pattern??=Vf,Lp.init(e,t)}),qp=P(`$ZodXID`,(e,t)=>{t.pattern??=Hf,Lp.init(e,t)}),Jp=P(`$ZodKSUID`,(e,t)=>{t.pattern??=Uf,Lp.init(e,t)}),Yp=P(`$ZodISODateTime`,(e,t)=>{t.pattern??=lp(t),Lp.init(e,t)}),Xp=P(`$ZodISODate`,(e,t)=>{t.pattern??=op,Lp.init(e,t)}),Zp=P(`$ZodISOTime`,(e,t)=>{t.pattern??=cp(t),Lp.init(e,t)}),Qp=P(`$ZodISODuration`,(e,t)=>{t.pattern??=Gf,Lp.init(e,t)}),$p=P(`$ZodIPv4`,(e,t)=>{t.pattern??=Zf,Lp.init(e,t),e._zod.bag.format=`ipv4`}),em=P(`$ZodIPv6`,(e,t)=>{t.pattern??=Qf,Lp.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})}}}),tm=P(`$ZodCIDRv4`,(e,t)=>{t.pattern??=$f,Lp.init(e,t)}),nm=P(`$ZodCIDRv6`,(e,t)=>{t.pattern??=ep,Lp.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 rm(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var im=P(`$ZodBase64`,(e,t)=>{t.pattern??=tp,Lp.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{rm(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function am(e){if(!np.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return rm(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var om=P(`$ZodBase64URL`,(e,t)=>{t.pattern??=np,Lp.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{am(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),sm=P(`$ZodE164`,(e,t)=>{t.pattern??=ip,Lp.init(e,t)});function cm(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 lm=P(`$ZodJWT`,(e,t)=>{Lp.init(e,t),e._zod.check=n=>{cm(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),um=P(`$ZodNumber`,(e,t)=>{Fp.init(e,t),e._zod.pattern=e._zod.bag.pattern??fp,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}}),dm=P(`$ZodNumberFormat`,(e,t)=>{xp.init(e,t),um.init(e,t)}),fm=P(`$ZodBoolean`,(e,t)=>{Fp.init(e,t),e._zod.pattern=pp,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}}),pm=P(`$ZodAny`,(e,t)=>{Fp.init(e,t),e._zod.parse=e=>e}),mm=P(`$ZodUnknown`,(e,t)=>{Fp.init(e,t),e._zod.parse=e=>e}),hm=P(`$ZodNever`,(e,t)=>{Fp.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function gm(e,t,n){e.issues.length&&t.issues.push(...df(n,e.issues)),t.value[n]=e.value}var _m=P(`$ZodArray`,(e,t)=>{Fp.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=>gm(t,n,e))):gm(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function vm(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...df(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 ym(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=$d(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function bm(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=>vm(e,n,i,t,u,d))):vm(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 xm=P(`$ZodObject`,(e,t)=>{if(Fp.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=Fd(()=>ym(t));Bd(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=Kd,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=>vm(n,t,e,s,r,i))):vm(a,t,e,s,r,i)}return i?bm(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Sm=P(`$ZodObjectJIT`,(e,t)=>{xm.init(e,t);let n=e._zod.parse,r=Fd(()=>ym(t)),i=e=>{let t=new Np([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Ud(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=Ud(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=Kd,s=!jd.jitless,c=s&&qd.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?bm([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Cm(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=>!lf(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=>pf(e,r,Md())))}),t)}var wm=P(`$ZodUnion`,(e,t)=>{Fp.init(e,t),Bd(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Bd(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Bd(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Bd(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=>Ld(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=>Cm(t,r,e,i)):Cm(o,r,e,i)}}),Tm=P(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,wm.init(e,t);let n=e._zod.parse;Bd(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=Fd(()=>{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(!Kd(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)}}),Em=P(`$ZodIntersection`,(e,t)=>{Fp.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])=>Om(e,t,n)):Om(e,i,a)}});function Dm(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Jd(e)&&Jd(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=Dm(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=Dm(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 Om(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}),lf(e))return e;let o=Dm(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var km=P(`$ZodTuple`,(e,t)=>{Fp.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=Am(n,`optin`),c=Am(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=>jm(t,r,e))):jm(a,r,e)}}return o.length?Promise.all(o).then(()=>Mm(l,r,n,a,c)):Mm(l,r,n,a,c)}});function Am(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]._zod[t]!==`optional`)return n+1;return 0}function jm(e,t,n){e.issues.length&&t.issues.push(...df(n,e.issues)),t.value[n]=e.value}function Mm(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(...df(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 Nm=P(`$ZodRecord`,(e,t)=>{Fp.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Jd(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=>pf(e,r,Md())),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(...df(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...df(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`&&fp.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=>pf(e,r,Md())),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(...df(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...df(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),Pm=P(`$ZodEnum`,(e,t)=>{Fp.init(e,t);let n=Nd(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Xd.has(typeof e)).map(e=>typeof e==`string`?Zd(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}}),Fm=P(`$ZodLiteral`,(e,t)=>{if(Fp.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`?Zd(e):e?Zd(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}}),Im=P(`$ZodTransform`,(e,t)=>{Fp.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ad(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 kd;return n.value=i,n.fallback=!0,n}});function Lm(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Rm=P(`$ZodOptional`,(e,t)=>{Fp.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Bd(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Bd(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ld(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=>Lm(e,r)):Lm(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),zm=P(`$ZodExactOptional`,(e,t)=>{Rm.init(e,t),Bd(e._zod,`values`,()=>t.innerType._zod.values),Bd(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Bm=P(`$ZodNullable`,(e,t)=>{Fp.init(e,t),Bd(e._zod,`optin`,()=>t.innerType._zod.optin),Bd(e._zod,`optout`,()=>t.innerType._zod.optout),Bd(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ld(e.source)}|null)$`):void 0}),Bd(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)}),Vm=P(`$ZodDefault`,(e,t)=>{Fp.init(e,t),e._zod.optin=`optional`,Bd(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=>Hm(e,t)):Hm(r,t)}});function Hm(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Um=P(`$ZodPrefault`,(e,t)=>{Fp.init(e,t),e._zod.optin=`optional`,Bd(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))}),Wm=P(`$ZodNonOptional`,(e,t)=>{Fp.init(e,t),Bd(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=>Gm(t,e)):Gm(i,e)}});function Gm(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 Km=P(`$ZodCatch`,(e,t)=>{Fp.init(e,t),e._zod.optin=`optional`,Bd(e._zod,`optout`,()=>t.innerType._zod.optout),Bd(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=>pf(e,n,Md()))},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=>pf(e,n,Md()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),qm=P(`$ZodPipe`,(e,t)=>{Fp.init(e,t),Bd(e._zod,`values`,()=>t.in._zod.values),Bd(e._zod,`optin`,()=>t.in._zod.optin),Bd(e._zod,`optout`,()=>t.out._zod.optout),Bd(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=>Jm(e,t.in,n)):Jm(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Jm(e,t.out,n)):Jm(r,t.out,n)}});function Jm(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 Ym=P(`$ZodReadonly`,(e,t)=>{Fp.init(e,t),Bd(e._zod,`propValues`,()=>t.innerType._zod.propValues),Bd(e._zod,`values`,()=>t.innerType._zod.values),Bd(e._zod,`optin`,()=>t.innerType?._zod?.optin),Bd(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(Xm):Xm(r)}});function Xm(e){return e.value=Object.freeze(e.value),e}var Zm=P(`$ZodCustom`,(e,t)=>{gp.init(e,t),Fp.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=>Qm(t,n,r,e));Qm(i,n,r,e)}});function Qm(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(hf(e))}}var $m,eh=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 th(){return new eh}($m=globalThis).__zod_globalRegistry??($m.__zod_globalRegistry=th());var nh=globalThis.__zod_globalRegistry;function rh(e,t){return new e({type:`string`,...F(t)})}function ih(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...F(t)})}function ah(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...F(t)})}function oh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...F(t)})}function sh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...F(t)})}function ch(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...F(t)})}function lh(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...F(t)})}function uh(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...F(t)})}function dh(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...F(t)})}function fh(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...F(t)})}function ph(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...F(t)})}function mh(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...F(t)})}function hh(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...F(t)})}function gh(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...F(t)})}function _h(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...F(t)})}function vh(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...F(t)})}function yh(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...F(t)})}function bh(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...F(t)})}function xh(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...F(t)})}function Sh(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...F(t)})}function Ch(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...F(t)})}function wh(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...F(t)})}function Th(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...F(t)})}function Eh(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...F(t)})}function Dh(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...F(t)})}function Oh(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...F(t)})}function kh(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...F(t)})}function Ah(e,t){return new e({type:`number`,checks:[],...F(t)})}function jh(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...F(t)})}function Mh(e,t){return new e({type:`boolean`,...F(t)})}function Nh(e){return new e({type:`any`})}function Ph(e){return new e({type:`unknown`})}function Fh(e,t){return new e({type:`never`,...F(t)})}function Ih(e,t){return new vp({check:`less_than`,...F(t),value:e,inclusive:!1})}function Lh(e,t){return new vp({check:`less_than`,...F(t),value:e,inclusive:!0})}function Rh(e,t){return new yp({check:`greater_than`,...F(t),value:e,inclusive:!1})}function zh(e,t){return new yp({check:`greater_than`,...F(t),value:e,inclusive:!0})}function Bh(e,t){return new bp({check:`multiple_of`,...F(t),value:e})}function Vh(e,t){return new Sp({check:`max_length`,...F(t),maximum:e})}function Hh(e,t){return new Cp({check:`min_length`,...F(t),minimum:e})}function Uh(e,t){return new wp({check:`length_equals`,...F(t),length:e})}function Wh(e,t){return new Ep({check:`string_format`,format:`regex`,...F(t),pattern:e})}function Gh(e){return new Dp({check:`string_format`,format:`lowercase`,...F(e)})}function Kh(e){return new Op({check:`string_format`,format:`uppercase`,...F(e)})}function qh(e,t){return new kp({check:`string_format`,format:`includes`,...F(t),includes:e})}function Jh(e,t){return new Ap({check:`string_format`,format:`starts_with`,...F(t),prefix:e})}function Yh(e,t){return new jp({check:`string_format`,format:`ends_with`,...F(t),suffix:e})}function Xh(e){return new Mp({check:`overwrite`,tx:e})}function Zh(e){return Xh(t=>t.normalize(e))}function Qh(){return Xh(e=>e.trim())}function $h(){return Xh(e=>e.toLowerCase())}function eg(){return Xh(e=>e.toUpperCase())}function tg(){return Xh(e=>Wd(e))}function ng(e,t,n){return new e({type:`array`,element:t,...F(n)})}function rg(e,t,n){let r=F(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function ig(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...F(n)})}function ag(e,t){let n=og(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(hf(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(hf(r))}},e(t.value,t)),t);return n}function og(e,t){let n=new gp({check:`custom`,...F(t)});return n._zod.check=e,n}function sg(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??nh,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 cg(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,cg(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`&&dg(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 lg(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 ug(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:pg(t,`input`,e.processors),output:pg(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function dg(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 dg(r.element,n);if(r.type===`set`)return dg(r.valueType,n);if(r.type===`lazy`)return dg(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 dg(r.innerType,n);if(r.type===`intersection`)return dg(r.left,n)||dg(r.right,n);if(r.type===`record`||r.type===`map`)return dg(r.keyType,n)||dg(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:dg(r.in,n)||dg(r.out,n);if(r.type===`object`){for(let e in r.shape)if(dg(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(dg(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(dg(e,n))return!0;return!!(r.rest&&dg(r.rest,n))}return!1}var fg=(e,t={})=>n=>{let r=sg({...n,processors:t});return cg(e,r),lg(r,e),ug(r,e)},pg=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=sg({...i??{},target:a,io:t,processors:n});return cg(e,o),lg(o,e),ug(o,e)},mg={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},hg=(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=mg[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}))])}},gg=(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)},_g=(e,t,n,r)=>{n.type=`boolean`},vg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`)},yg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`)},bg=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},xg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`)},Sg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`)},Cg=(e,t,n,r)=>{n.not={}},wg=(e,t,n,r)=>{},Tg=(e,t,n,r)=>{},Eg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`)},Dg=(e,t,n,r)=>{let i=e._zod.def,a=Nd(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Og=(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},kg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`)},Ag=(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},jg=(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)},Mg=(e,t,n,r)=>{n.type=`boolean`},Ng=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Pg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`)},Fg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Ig=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`)},Lg=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`)},Rg=(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=cg(a.element,t,{...r,path:[...r.path,`items`]})},zg=(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]=cg(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=cg(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Bg=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>cg(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Vg=(e,t,n,r)=>{let i=e._zod.def,a=cg(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=cg(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]]},Hg=(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)=>cg(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?cg(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)},Ug=(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=cg(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=cg(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=cg(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)}},Wg=(e,t,n,r)=>{let i=e._zod.def,a=cg(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`}]},Gg=(e,t,n,r)=>{let i=e._zod.def;cg(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Kg=(e,t,n,r)=>{let i=e._zod.def;cg(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},qg=(e,t,n,r)=>{let i=e._zod.def;cg(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)))},Jg=(e,t,n,r)=>{let i=e._zod.def;cg(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},Yg=(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;cg(o,t,r);let s=t.seen.get(e);s.ref=o},Xg=(e,t,n,r)=>{let i=e._zod.def;cg(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Zg=(e,t,n,r)=>{let i=e._zod.def;cg(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Qg=(e,t,n,r)=>{let i=e._zod.def;cg(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},$g={string:hg,number:gg,boolean:_g,bigint:vg,symbol:yg,null:bg,undefined:xg,void:Sg,never:Cg,any:wg,unknown:Tg,date:Eg,enum:Dg,literal:Og,nan:kg,template_literal:Ag,file:jg,success:Mg,custom:Ng,function:Pg,transform:Fg,map:Ig,set:Lg,array:Rg,object:zg,union:Bg,intersection:Vg,tuple:Hg,record:Ug,nullable:Wg,nonoptional:Gg,default:Kg,prefault:qg,catch:Jg,pipe:Yg,readonly:Xg,promise:Zg,optional:Qg,lazy:(e,t,n,r)=>{let i=e._zod.innerType;cg(i,t,r);let a=t.seen.get(e);a.ref=i}};function e_(e,t){if(`_idmap`in e){let n=e,r=sg({...t,processors:$g}),i={};for(let e of n._idmap.entries()){let[t,n]=e;cg(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;lg(r,n),a[t]=ug(r,n)}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=sg({...t,processors:$g});return cg(e,n),lg(n,e),ug(n,e)}function t_(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 n_(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 r_(e){return t_(e)&&console.warn(`[WARNING] Attempting to use Zod 4 schema in a context where Zod 3 schema is expected. This may cause unexpected behavior.`),n_(e)}function i_(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:!!(t_(e)||n_(e))}function a_(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 o_(e){return t_(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 s_(e){return!!(a_(e)||o_(e))}async function c_(e,t){if(t_(e))try{return{success:!0,data:await Ef(e,t)}}catch(e){return{success:!1,error:e}}if(n_(e))return await e.safeParseAsync(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}async function l_(e,t){if(t_(e))return await Ef(e,t);if(n_(e))return await e.parseAsync(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function u_(e,t){if(t_(e))try{return{success:!0,data:wf(e,t)}}catch(e){return{success:!1,error:e}}if(n_(e))return e.safeParse(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function d_(e,t){if(t_(e))return wf(e,t);if(n_(e))return e.parse(t);throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function f_(e){if(t_(e))return nh.get(e)?.description;if(n_(e)||`description`in e&&typeof e.description==`string`)return e.description}function p_(e){if(!i_(e))return!1;if(n_(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(t_(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 m_(e){return i_(e)?n_(e)?e._def.typeName===`ZodString`:t_(e)?e._zod.def.type===`string`:!1:!1}function h_(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 g_(e){return t_(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 __(e){return t_(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 v_(e){return t_(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 y_(e){return t_(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 b_(e){return!!(h_(e)||g_(e))}function x_(e){if(n_(e))return e.shape;if(t_(e))return e._zod.def.shape;throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function S_(e,t){if(n_(e))return e.extend(t);if(t_(e))return rf(e,t);throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function C_(e){if(n_(e))return e.partial();if(t_(e))return sf(Rm,e,void 0);throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function w_(e,t=!1){if(h_(e))return e.strict();if(g_(e)){let n=e._zod.def.shape;if(t)for(let[r,i]of Object.entries(e._zod.def.shape)){if(g_(i))n[r]=w_(i,t);else if(__(i)){let e=i._zod.def.element;g_(e)&&(e=w_(e,t)),n[r]=Qd(i,{...i._zod.def,element:e})}else n[r]=i;let e=nh.get(i);e&&nh.add(n[r],e)}let r=Qd(e,{...e._zod.def,shape:n,catchall:Fh(hm)}),i=nh.get(e);return i&&nh.add(r,i),r}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function T_(e,t=!1){if(h_(e))return e.passthrough();if(g_(e)){let n=e._zod.def.shape;if(t)for(let[r,i]of Object.entries(e._zod.def.shape)){if(g_(i))n[r]=T_(i,t);else if(__(i)){let e=i._zod.def.element;g_(e)&&(e=T_(e,t)),n[r]=Qd(i,{...i._zod.def,element:e})}else n[r]=i;let e=nh.get(i);e&&nh.add(n[r],e)}let r=Qd(e,{...e._zod.def,shape:n,catchall:Ph(mm)}),i=nh.get(e);return i&&nh.add(r,i),r}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function E_(e){if(n_(e))try{let t=e.parse(void 0);return()=>t}catch{return}if(t_(e))try{let t=wf(e,void 0);return()=>t}catch{return}}function D_(e){return n_(e)&&`typeName`in e._def&&e._def.typeName===`ZodEffects`}function O_(e){return t_(e)&&e._zod.def.type===`pipe`}function k_(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(n_(e))return D_(e)?k_(e._def.schema,t,n):e;if(t_(e)){let r=e;if(O_(e)&&(r=k_(e._zod.def.in,t,n)),t){if(g_(r)){let e={};for(let[i,a]of Object.entries(r._zod.def.shape))e[i]=k_(a,t,n);r=Qd(r,{...r._zod.def,shape:e})}else if(__(r)){let e=k_(r._zod.def.element,t,n);r=Qd(r,{...r._zod.def,element:e})}else if(v_(r)){let e=k_(r._zod.def.innerType,t,n);r=Qd(r,{...r._zod.def,innerType:e})}else if(y_(r)){let e=k_(r._zod.def.innerType,t,n);r=Qd(r,{...r._zod.def,innerType:e})}}let i=nh.get(e);return i&&nh.add(r,i),n.set(e,r),r}throw Error(`Schema must be an instance of z3.ZodType or z4.$ZodType`)}function A_(e,t=!1){return k_(e,t,new WeakMap)}function j_(e,t){if(n_(e)){let n=x_(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(t_(e)){let n=x_(e),r={...e._zod.def.shape};for(let[e,i]of Object.entries(n))t(e,i)&&(r[e]=new Rm({type:`optional`,innerType:i}));let i=Qd(e,{...e._zod.def,shape:r}),a=nh.get(e);return a&&nh.add(i,a),i}throw Error(`Schema must be an instance of z3.ZodObject or z4.$ZodObject`)}function M_(e){return e instanceof Error&&(e.constructor.name===`ZodError`||e.constructor.name===`$ZodError`)}function N_(e){return e.replace(/[^a-zA-Z-_0-9]/g,`_`)}var P_=[`*`,`_`,"`"];function F_(e){let t=``;for(let[n,r]of Object.entries(e))t+=`\tclassDef ${n} ${r};\n`;return t}function I_(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=P_.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}`,N_(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${N_(e)}${a}${N_(n)};\n`}t&&!n&&(l+=` end
|
|
94
|
+
`)}p(u[``]??[],``);for(let e in u)!e.includes(`:`)&&e!==``&&p(u[e],e);return o&&(l+=F_(a??{})),l}async function L_(e,t){let n=t?.backgroundColor??`white`,r=t?.imageType??`png`,i=Dd(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 R_=Symbol(`Let zodToJsonSchema decide on which parser to use`),z_={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`},B_=e=>typeof e==`string`?{...z_,name:e}:{...z_,...e},V_=e=>{let t=B_(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}]))}},H_=(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 U_(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?H_(t,e.currentPath):t.join(`/`)}}function W_(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function G_(e,t,n,r,i){e[t]=n,W_(e,t,r,i)}var K_;(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})(K_||={});var q_;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(q_||={});var I=K_.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),J_=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=K_.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`]),Y_=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,K_.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()}};Y_.create=e=>new Y_(e);var X_=(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,K_.jsonStringifyReplacer)}`;break;case L.unrecognized_keys:n=`Unrecognized key(s) in object: ${K_.joinValues(e.keys,`, `)}`;break;case L.invalid_union:n=`Invalid input`;break;case L.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${K_.joinValues(e.options)}`;break;case L.invalid_enum_value:n=`Invalid enum value. Expected ${K_.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}"`:K_.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,K_.assertNever(e)}return{message:n}},Z_=X_;function Q_(){return Z_}var $_=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=Q_(),r=$_({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===X_?void 0:X_].filter(e=>!!e)});e.common.issues.push(r)}var ev=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`}),tv=e=>({status:`dirty`,value:e}),nv=e=>({status:`valid`,value:e}),rv=e=>e.status===`aborted`,iv=e=>e.status===`dirty`,av=e=>e.status===`valid`,ov=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 sv=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}},cv=(e,t)=>{if(av(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 Y_(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 lv=class{get description(){return this._def.description}_getType(e){return J_(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:J_(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ev,ctx:{common:e.parent.common,data:e.data,parsedType:J_(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(ov(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:J_(e)};return cv(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:J_(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return av(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=>av(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:J_(e)},r=this._parse({data:e,path:n.path,parent:n});return cv(n,await(ov(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 fy({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 py.create(this,this._def)}nullable(){return my.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qv.create(this)}promise(){return dy.create(this,this._def)}or(e){return Xv.create([this,e],this._def)}and(e){return ey.create(this,e,this._def)}transform(e){return new fy({...V(this._def),schema:this,typeName:H.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new hy({...V(this._def),innerType:this,defaultValue:t,typeName:H.ZodDefault})}brand(){return new vy({typeName:H.ZodBranded,type:this,...V(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new gy({...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 yy.create(this,e)}readonly(){return by.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},uv=/^c[^\s-]{8,}$/i,dv=/^[0-9a-z]+$/,fv=/^[0-9A-HJKMNP-TV-Z]{26}$/i,pv=/^[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,mv=/^[a-z0-9_-]{21}$/i,hv=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,gv=/^[-+]?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)?)??$/,_v=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vv=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,yv,bv=/^(?:(?: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])$/,xv=/^(?:(?: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])$/,Sv=/^(([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]))$/,Cv=/^(([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])$/,wv=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Tv=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ev=`((\\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])))`,Dv=RegExp(`^${Ev}$`);function Ov(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 kv(e){return RegExp(`^${Ov(e)}$`)}function Av(e){let t=`${Ev}T${Ov(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function jv(e,t){return!!((t===`v4`||!t)&&bv.test(e)||(t===`v6`||!t)&&Sv.test(e))}function Mv(e,t){if(!hv.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 Nv(e,t){return!!((t===`v4`||!t)&&xv.test(e)||(t===`v6`||!t)&&Cv.test(e))}var Pv=class e extends lv{_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 ev,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`)_v.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`)yv||=new RegExp(vv,`u`),yv.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`)pv.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`)mv.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`)uv.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`)dv.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`)fv.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`?Av(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`?Dv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{code:L.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?kv(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`?gv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`duration`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?jv(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`?Mv(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`?Nv(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`?wv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`base64`,code:L.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Tv.test(e.data)||(n=this._getOrReturnCtx(e,n),R(n,{validation:`base64url`,code:L.invalid_string,message:r.message}),t.dirty()):K_.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}};Pv.create=e=>new Pv({checks:[],typeName:H.ZodString,coerce:e?.coerce??!1,...V(e)});function Fv(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 Iv=class e extends lv{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 ev;for(let r of this._def.checks)r.kind===`int`?K_.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`?Fv(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()):K_.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`&&K_.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)}};Iv.create=e=>new Iv({checks:[],typeName:H.ZodNumber,coerce:e?.coerce||!1,...V(e)});var Lv=class e extends lv{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 ev;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()):K_.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}};Lv.create=e=>new Lv({checks:[],typeName:H.ZodBigInt,coerce:e?.coerce??!1,...V(e)});var Rv=class extends lv{_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 nv(e.data)}};Rv.create=e=>new Rv({typeName:H.ZodBoolean,coerce:e?.coerce||!1,...V(e)});var zv=class e extends lv{_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 ev,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()):K_.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)}};zv.create=e=>new zv({checks:[],coerce:e?.coerce||!1,typeName:H.ZodDate,...V(e)});var Bv=class extends lv{_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 nv(e.data)}};Bv.create=e=>new Bv({typeName:H.ZodSymbol,...V(e)});var Vv=class extends lv{_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 nv(e.data)}};Vv.create=e=>new Vv({typeName:H.ZodUndefined,...V(e)});var Hv=class extends lv{_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 nv(e.data)}};Hv.create=e=>new Hv({typeName:H.ZodNull,...V(e)});var Uv=class extends lv{constructor(){super(...arguments),this._any=!0}_parse(e){return nv(e.data)}};Uv.create=e=>new Uv({typeName:H.ZodAny,...V(e)});var Wv=class extends lv{constructor(){super(...arguments),this._unknown=!0}_parse(e){return nv(e.data)}};Wv.create=e=>new Wv({typeName:H.ZodUnknown,...V(e)});var Gv=class extends lv{_parse(e){let t=this._getOrReturnCtx(e);return R(t,{code:L.invalid_type,expected:I.never,received:t.parsedType}),z}};Gv.create=e=>new Gv({typeName:H.ZodNever,...V(e)});var Kv=class extends lv{_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 nv(e.data)}};Kv.create=e=>new Kv({typeName:H.ZodVoid,...V(e)});var qv=class e extends lv{_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 sv(t,e,t.path,n)))).then(e=>ev.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new sv(t,e,t.path,n)));return ev.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)}};qv.create=(e,t)=>new qv({type:e,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...V(t)});function Jv(e){if(e instanceof Yv){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=py.create(Jv(r))}return new Yv({...e._def,shape:()=>t})}else if(e instanceof qv)return new qv({...e._def,type:Jv(e.element)});else if(e instanceof py)return py.create(Jv(e.unwrap()));else if(e instanceof my)return my.create(Jv(e.unwrap()));else if(e instanceof ty)return ty.create(e.items.map(e=>Jv(e)));else return e}var Yv=class e extends lv{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=K_.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 Gv&&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 sv(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Gv){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 sv(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=>ev.mergeObjectSync(t,e)):ev.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 K_.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 K_.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return Jv(this)}partial(t){let n={};for(let e of K_.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 K_.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof py;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return cy(K_.objectKeys(this.shape))}};Yv.create=(e,t)=>new Yv({shape:()=>e,unknownKeys:`strip`,catchall:Gv.create(),typeName:H.ZodObject,...V(t)}),Yv.strictCreate=(e,t)=>new Yv({shape:()=>e,unknownKeys:`strict`,catchall:Gv.create(),typeName:H.ZodObject,...V(t)}),Yv.lazycreate=(e,t)=>new Yv({shape:e,unknownKeys:`strip`,catchall:Gv.create(),typeName:H.ZodObject,...V(t)});var Xv=class extends lv{_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 Y_(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 Y_(e));return R(t,{code:L.invalid_union,unionErrors:i}),z}}get options(){return this._def.options}};Xv.create=(e,t)=>new Xv({options:e,typeName:H.ZodUnion,...V(t)});var Zv=e=>e instanceof oy?Zv(e.schema):e instanceof fy?Zv(e.innerType()):e instanceof sy?[e.value]:e instanceof ly?e.options:e instanceof uy?K_.objectValues(e.enum):e instanceof hy?Zv(e._def.innerType):e instanceof Vv?[void 0]:e instanceof Hv?[null]:e instanceof py?[void 0,...Zv(e.unwrap())]:e instanceof my?[null,...Zv(e.unwrap())]:e instanceof vy||e instanceof by?Zv(e.unwrap()):e instanceof gy?Zv(e._def.innerType):[],Qv=class e extends lv{_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=Zv(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 $v(e,t){let n=J_(e),r=J_(t);if(e===t)return{valid:!0,data:e};if(n===I.object&&r===I.object){let n=K_.objectKeys(t),r=K_.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=$v(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=$v(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 ey=class extends lv{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(rv(e)||rv(r))return z;let i=$v(e.value,r.value);return i.valid?((iv(e)||iv(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}))}};ey.create=(e,t,n)=>new ey({left:e,right:t,typeName:H.ZodIntersection,...V(n)});var ty=class e extends lv{_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 sv(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>ev.mergeArray(t,e)):ev.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ty.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new ty({items:e,typeName:H.ZodTuple,rest:null,...V(t)})};var ny=class e extends lv{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 sv(n,e,n.path,e)),value:a._parse(new sv(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?ev.mergeObjectAsync(t,r):ev.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof lv?new e({keyType:t,valueType:n,typeName:H.ZodRecord,...V(r)}):new e({keyType:Pv.create(),valueType:t,typeName:H.ZodRecord,...V(n)})}},ry=class extends lv{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 sv(n,e,n.path,[a,`key`])),value:i._parse(new sv(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}}}};ry.create=(e,t,n)=>new ry({valueType:t,keyType:e,typeName:H.ZodMap,...V(n)});var iy=class e extends lv{_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 sv(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)}};iy.create=(e,t)=>new iy({valueType:e,minSize:null,maxSize:null,typeName:H.ZodSet,...V(t)});var ay=class e extends lv{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 $_({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Q_(),X_].filter(e=>!!e),issueData:{code:L.invalid_arguments,argumentsError:n}})}function r(e,n){return $_({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Q_(),X_].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 dy){let e=this;return nv(async function(...t){let o=new Y_([]),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 nv(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new Y_([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new Y_([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:ty.create(t).rest(Wv.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||ty.create([]).rest(Wv.create()),returns:n||Wv.create(),typeName:H.ZodFunction,...V(r)})}},oy=class extends lv{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})}};oy.create=(e,t)=>new oy({getter:e,typeName:H.ZodLazy,...V(t)});var sy=class extends lv{_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}};sy.create=(e,t)=>new sy({value:e,typeName:H.ZodLiteral,...V(t)});function cy(e,t){return new ly({values:e,typeName:H.ZodEnum,...V(t)})}var ly=class e extends lv{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return R(t,{expected:K_.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 nv(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})}};ly.create=cy;var uy=class extends lv{_parse(e){let t=K_.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==I.string&&n.parsedType!==I.number){let e=K_.objectValues(t);return R(n,{expected:K_.joinValues(e),received:n.parsedType,code:L.invalid_type}),z}if(this._cache||=new Set(K_.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=K_.objectValues(t);return R(n,{received:n.data,code:L.invalid_enum_value,options:e}),z}return nv(e.data)}get enum(){return this._def.values}};uy.create=(e,t)=>new uy({values:e,typeName:H.ZodNativeEnum,...V(t)});var dy=class extends lv{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):nv((t.parsedType===I.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};dy.create=(e,t)=>new dy({type:e,typeName:H.ZodPromise,...V(t)});var fy=class extends lv{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`?tv(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`?tv(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(!av(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=>av(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):z);K_.assertNever(r)}};fy.create=(e,t,n)=>new fy({schema:e,typeName:H.ZodEffects,effect:t,...V(n)}),fy.createWithPreprocess=(e,t,n)=>new fy({schema:t,effect:{type:`preprocess`,transform:e},typeName:H.ZodEffects,...V(n)});var py=class extends lv{_parse(e){return this._getType(e)===I.undefined?nv(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};py.create=(e,t)=>new py({innerType:e,typeName:H.ZodOptional,...V(t)});var my=class extends lv{_parse(e){return this._getType(e)===I.null?nv(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};my.create=(e,t)=>new my({innerType:e,typeName:H.ZodNullable,...V(t)});var hy=class extends lv{_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}};hy.create=(e,t)=>new hy({innerType:e,typeName:H.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...V(t)});var gy=class extends lv{_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 ov(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new Y_(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new Y_(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};gy.create=(e,t)=>new gy({innerType:e,typeName:H.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...V(t)});var _y=class extends lv{_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}}};_y.create=e=>new _y({typeName:H.ZodNaN,...V(e)});var vy=class extends lv{_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}},yy=class e extends lv{_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(),tv(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})}},by=class extends lv{_parse(e){let t=this._def.innerType._parse(e),n=e=>(av(e)&&(e.value=Object.freeze(e.value)),e);return ov(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};by.create=(e,t)=>new by({innerType:e,typeName:H.ZodReadonly,...V(t)}),Yv.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 xy=Pv.create;Iv.create,_y.create,Lv.create,Rv.create,zv.create,Bv.create,Vv.create,Hv.create;var Sy=Uv.create;Wv.create,Gv.create,Kv.create,qv.create;var Cy=Yv.create;Yv.strictCreate,Xv.create,Qv.create,ey.create,ty.create,ny.create,ry.create,iy.create,ay.create,oy.create,sy.create,ly.create,uy.create,dy.create,fy.create,py.create,my.create,fy.createWithPreprocess,yy.create;function wy(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==H.ZodAny&&(n.items=mb(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&G_(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&G_(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(G_(n,`minItems`,e.exactLength.value,e.exactLength.message,t),G_(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function Ty(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?G_(n,`minimum`,r.value,r.message,t):G_(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),G_(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?G_(n,`maximum`,r.value,r.message,t):G_(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),G_(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:G_(n,`multipleOf`,r.value,r.message,t);break}return n}function Ey(){return{type:`boolean`}}function Dy(e,t){return mb(e.type._def,t)}var Oy=(e,t)=>mb(e.innerType._def,t);function ky(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map(n=>ky(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 Ay(e,t)}}var Ay=(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`:G_(n,`minimum`,r.value,r.message,t);break;case`max`:G_(n,`maximum`,r.value,r.message,t);break}return n};function jy(e,t){return{...mb(e.innerType._def,t),default:e.defaultValue()}}function My(e,t){return t.effectStrategy===`input`?mb(e.schema._def,t):U_(t)}function Ny(e){return{type:`string`,enum:Array.from(e.values)}}var Py=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function Fy(e,t){let n=[mb(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),mb(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(Py(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 Iy(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 Ly=void 0,Ry={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:()=>(Ly===void 0&&(Ly=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),Ly),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 zy(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:G_(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:G_(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`:Uy(n,`email`,r.message,t);break;case`format:idn-email`:Uy(n,`idn-email`,r.message,t);break;case`pattern:zod`:Wy(n,Ry.email,r.message,t);break}break;case`url`:Uy(n,`uri`,r.message,t);break;case`uuid`:Uy(n,`uuid`,r.message,t);break;case`regex`:Wy(n,r.regex,r.message,t);break;case`cuid`:Wy(n,Ry.cuid,r.message,t);break;case`cuid2`:Wy(n,Ry.cuid2,r.message,t);break;case`startsWith`:Wy(n,RegExp(`^${By(r.value,t)}`),r.message,t);break;case`endsWith`:Wy(n,RegExp(`${By(r.value,t)}$`),r.message,t);break;case`datetime`:Uy(n,`date-time`,r.message,t);break;case`date`:Uy(n,`date`,r.message,t);break;case`time`:Uy(n,`time`,r.message,t);break;case`duration`:Uy(n,`duration`,r.message,t);break;case`length`:G_(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),G_(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:Wy(n,RegExp(By(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&Uy(n,`ipv4`,r.message,t),r.version!==`v4`&&Uy(n,`ipv6`,r.message,t);break;case`base64url`:Wy(n,Ry.base64url,r.message,t);break;case`jwt`:Wy(n,Ry.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&Wy(n,Ry.ipv4Cidr,r.message,t),r.version!==`v4`&&Wy(n,Ry.ipv6Cidr,r.message,t);break;case`emoji`:Wy(n,Ry.emoji(),r.message,t);break;case`ulid`:Wy(n,Ry.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:Uy(n,`binary`,r.message,t);break;case`contentEncoding:base64`:G_(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:Wy(n,Ry.base64,r.message,t);break}break;case`nanoid`:Wy(n,Ry.nanoid,r.message,t);break;case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}function By(e,t){return t.patternStrategy===`escape`?Hy(e):e}var Vy=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function Hy(e){let t=``;for(let n=0;n<e.length;n++)Vy.has(e[n])||(t+=`\\`),t+=e[n];return t}function Uy(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}}})):G_(e,`format`,t,n,r)}function Wy(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:Gy(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):G_(e,`pattern`,Gy(t,r),n,r)}function Gy(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 Ky(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]:mb(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??U_(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:`object`,additionalProperties:mb(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}=zy(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}=Dy(e.keyType._def,t);return{...n,propertyNames:i}}return n}function qy(e,t){return t.mapStrategy===`record`?Ky(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[mb(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||U_(t),mb(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||U_(t)],minItems:2,maxItems:2}}}function Jy(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 Yy(e){return e.target===`openAi`?void 0:{not:U_({...e,currentPath:[...e.currentPath,`not`]})}}function Xy(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}var Zy={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function Qy(e,t){if(t.target===`openApi3`)return $y(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in Zy&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=Zy[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 $y(e,t)}var $y=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>mb(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 eb(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:Zy[e.innerType._def.typeName],nullable:!0}:{type:[Zy[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let n=mb(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&`$ref`in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let n=mb(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function tb(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`,W_(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?G_(n,`minimum`,r.value,r.message,t):G_(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),G_(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?G_(n,`maximum`,r.value,r.message,t):G_(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),G_(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:G_(n,`multipleOf`,r.value,r.message,t);break}return n}function nb(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=ib(o);s&&n&&(o._def.typeName===`ZodOptional`&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),s=!1);let c=mb(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=rb(e,t);return o!==void 0&&(r.additionalProperties=o),r}function rb(e,t){if(e.catchall._def.typeName!==`ZodNever`)return mb(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 ib(e){try{return e.isOptional()}catch{return!0}}var ab=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return mb(e.innerType._def,t);let n=mb(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:U_(t)},n]}:U_(t)},ob=(e,t)=>{if(t.pipeStrategy===`input`)return mb(e.in._def,t);if(t.pipeStrategy===`output`)return mb(e.out._def,t);let n=mb(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,mb(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function sb(e,t){return mb(e.type._def,t)}function cb(e,t){let n={type:`array`,uniqueItems:!0,items:mb(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&G_(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&G_(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function lb(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>mb(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:mb(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>mb(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function ub(e){return{not:U_(e)}}function db(e){return U_(e)}var fb=(e,t)=>mb(e.innerType._def,t),pb=(e,t,n)=>{switch(t){case H.ZodString:return zy(e,n);case H.ZodNumber:return tb(e,n);case H.ZodObject:return nb(e,n);case H.ZodBigInt:return Ty(e,n);case H.ZodBoolean:return Ey();case H.ZodDate:return ky(e,n);case H.ZodUndefined:return ub(n);case H.ZodNull:return Xy(n);case H.ZodArray:return wy(e,n);case H.ZodUnion:case H.ZodDiscriminatedUnion:return Qy(e,n);case H.ZodIntersection:return Fy(e,n);case H.ZodTuple:return lb(e,n);case H.ZodRecord:return Ky(e,n);case H.ZodLiteral:return Iy(e,n);case H.ZodEnum:return Ny(e);case H.ZodNativeEnum:return Jy(e);case H.ZodNullable:return eb(e,n);case H.ZodOptional:return ab(e,n);case H.ZodMap:return qy(e,n);case H.ZodSet:return cb(e,n);case H.ZodLazy:return()=>e.getter()._def;case H.ZodPromise:return sb(e,n);case H.ZodNaN:case H.ZodNever:return Yy(n);case H.ZodEffects:return My(e,n);case H.ZodAny:return U_(n);case H.ZodUnknown:return db(n);case H.ZodDefault:return jy(e,n);case H.ZodBranded:return Dy(e,n);case H.ZodReadonly:return fb(e,n);case H.ZodCatch:return Oy(e,n);case H.ZodPipeline:return ob(e,n);case H.ZodFunction:case H.ZodVoid:case H.ZodSymbol:return;default:return(e=>void 0)(t)}};function mb(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==R_)return i}if(r&&!n){let e=hb(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=pb(e,e.typeName,t),o=typeof a==`function`?mb(a(),t):a;if(o&&gb(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}var hb=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:H_(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`),U_(t)):t.$refStrategy===`seen`?U_(t):void 0}},gb=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),_b=(e,t)=>{let n=V_(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:mb(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??U_(n)}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=mb(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??U_(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},vb=p({isSerializableSchema:()=>xb,isStandardJsonSchema:()=>bb,isStandardSchema:()=>yb});function yb(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 bb(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 xb(e){return yb(e)&&bb(e)}function Sb(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(!Sb(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(!Sb(e[r],t[r]))return!1;return!0}return e===t}function Cb(e){return encodeURI(wb(e))}function wb(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}var Tb={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},Eb={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},Db={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},Ob=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 kb(e,t=Object.create(null),n=Ob,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:kb(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(Db[i])continue;let a=`${r}/${Cb(i)}`,o=e[i];if(Array.isArray(o)){if(Tb[i]){let e=o.length;for(let r=0;r<e;r++)kb(o[r],t,n,`${a}/${r}`)}}else if(Eb[i])for(let e in o)kb(o[e],t,n,`${a}/${Cb(e)}`);else kb(o,t,n,a)}return t}var Ab=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,jb=[0,31,28,31,30,31,30,31,31,30,31,30,31],Mb=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,Nb=/^(?=.{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,Pb=/^(?:[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,Fb=/^(?:(?:[^\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,Ib=/^(?:(?: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,Lb=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Rb=/^(?:\/(?:[^~/]|~0|~1)*)*$/,zb=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Bb=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Vb=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))},Hb=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,Ub=/^((([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,Wb=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 Gb(e){return e.test.bind(e)}var Kb={date:Jb,time:Yb.bind(void 0,!1),"date-time":Zb,duration:Wb,uri:ex,"uri-reference":Gb(Pb),"uri-template":Gb(Fb),url:Gb(Ib),email:Vb,hostname:Gb(Nb),ipv4:Gb(Hb),ipv6:Gb(Ub),regex:nx,uuid:Gb(Lb),"json-pointer":Gb(Rb),"json-pointer-uri-fragment":Gb(zb),"relative-json-pointer":Gb(Bb)};function qb(e){return e%4==0&&(e%100!=0||e%400==0)}function Jb(e){let t=e.match(Ab);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r==2&&qb(n)?29:jb[r])}function Yb(e,t){let n=t.match(Mb);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 Xb=/t|\s/i;function Zb(e){let t=e.split(Xb);return t.length==2&&Jb(t[0])&&Yb(!0,t[1])}var Qb=/\/|:/,$b=/^(?:[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 ex(e){return Qb.test(e)&&$b.test(e)}var tx=/[^\\]\\Z/;function nx(e){if(tx.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}function rx(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 ix(e,t,n=`2019-09`,r=kb(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=ix(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=ix(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`?Sb(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=>Sb(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`;ix(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=ix(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=ix(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=ix(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(ix(e,S,n,r,i,a,o,t,c).valid){if(ee!==void 0){let l=ix(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=ix(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}/${Cb(s)}`,c=ix(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=ix(e,le[t],n,r,i,a,o,`${l}/${Cb(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=ix(e,c,n,r,i,a,o,`${t}/${Cb(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}/${Cb(s)}`,f=ix(e[s],ne[s],n,r,i,a,d,`${t}/${Cb(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}/${Cb(p)}`,h=ix(e[p],f,n,r,i,a,m,`${t}/${Cb(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}/${Cb(s)}`,f=ix(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}/${Cb(s)}`,u=ix(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=ix(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=ix(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=ix(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=ix(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=ix(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=ix(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&&Sb(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:rx(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&&Kb[te]&&!Kb[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 ax=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=kb(e)}validate(e){return ix(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),kb(e,this.lookup)}},ox=p({Validator:()=>ax,deepCompareStrict:()=>Sb,toJsonSchema:()=>cx,validatesOnlyStrings:()=>lx}),sx=new WeakMap;function cx(e,t){let n=!t&&typeof e==`object`&&!!e;if(n){let t=sx.get(e);if(t)return t}let r;if(bb(e)&&!t_(e))r=e[`~standard`].jsonSchema.input({target:`draft-07`});else if(t_(e)){let n=A_(e,!0);r=g_(n)?e_(w_(n,!0),t):e_(e,t)}else r=n_(e)?_b(e):e;return n&&typeof r==`object`&&r&&sx.set(e,r),r}function lx(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=>lx(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=>lx(e))}if(`not`in e)return!1;if(`$ref`in e&&typeof e.$ref==`string`){let t=e.$ref,n=kb(e);return n[t]?lx(n[t]):!1}return!1}var ux=p({Graph:()=>px});function dx(e,t){if(e!==void 0&&!Or(e))return e;if(Td(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 fx(e){return Td(e.data)?{type:`runnable`,data:{id:e.data.lc_id,name:e.data.getName()}}:{type:`schema`,data:{...cx(e.data.schema),title:e.data.name}}}var px=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]=Or(t.id)?n:t.id}),{nodes:Object.values(this.nodes).map(t=>({id:e[t.id],...fx(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??wr(),i={id:r,data:e,name:dx(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 mx(this)}lastNode(){return hx(this)}extend(e,t=``){let n=t;Object.values(e.nodes).map(e=>e.id).every(Or)&&(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&&mx(this,[e.id])&&this.removeNode(e)}trimLastNode(){let e=this.lastNode();e&&hx(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 Or(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 I_(a.nodes,a.edges,{firstNode:o?.id,lastNode:s?.id,withStyles:t,curveStyle:n,nodeColors:r,wrapLabelNWords:i})}async drawMermaidPng(e){return L_(this.drawMermaid(e),{backgroundColor:e?.backgroundColor})}};function mx(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 hx(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 gx(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 ou.fromReadableStream(n)}function _x(e){return typeof e==`object`&&!!e&&typeof e[Symbol.iterator]==`function`&&typeof e.next==`function`}var vx=e=>typeof e==`object`&&!!e&&`next`in e&&typeof e.next==`function`;function yx(e){return typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`}function bx(e){return typeof e==`object`&&!!e&&typeof e.next==`function`}async function xx(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*Sx(e,t){for(;;){let{value:n,done:r}=ql.runWithConfig(nu(e),t.next.bind(t),!0);if(r)break;yield n}}async function*Cx(e,t){let n=t[Symbol.asyncIterator]();for(;;){let{value:r,done:i}=await ql.runWithConfig(nu(e),n.next.bind(t),!0);if(i)break;yield r}}function wx(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e==`object`?e:{[t]:e}}var Tx=class extends Ce{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 Ox({bound:this,kwargs:{},config:{},maxAttemptNumber:e?.stopAfterAttempt,...e})}withConfig(e){return new Ex({bound:this,config:e,kwargs:{}})}withFallbacks(e){let t=Array.isArray(e)?e:e.fallbacks;return new Fx({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(eu);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)=>eu(r===0?e:n))}return Array.from({length:t},()=>eu(e))}async batch(e,t,n){let r=this._getOptionsList(t??{},e.length),i=new Cd({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=eu(t),r=new lu({generator:this._streamIterator(e,n),config:n});return await r.setup,ou.fromAsyncGenerator(r)}_separateRunnableConfigFromCallOptions(e){let t;t=eu(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=eu(n),i=await(await Ql(r))?.handleChainStart(this.toJSON(),wx(t,`input`),r.runId,r?.runType,void 0,void 0,r?.runName??this.getName());delete r.runId;let a;try{a=await ru(e.call(this,t,r,i),r.signal)}catch(e){throw await i?.handleChainError(e),e}return await i?.handleChainEnd(wx(a,`output`)),a}async _batchWithConfig(e,t,n,r){let i=this._getOptionsList(n??{},t.length),a=await Promise.all(i.map(Ql)),o=await Promise.all(a.map(async(e,n)=>{let r=await e?.handleChainStart(this.toJSON(),wx(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 ru(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(wx(s,`output`)))),s}_concatOutputChunks(e,t){return cu(e,t)}async*_transformStreamWithConfig(e,t,n){let r,i=!0,a,o=!0,s=eu(n),c=await Ql(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 uu(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(Ju),r=e.output;n!==void 0&&d!==void 0&&(r=n.tapOutputIterable(d.runId,r));let i=d?.handlers.find(Ru);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:wx(r,`input`)}),e}await d?.handleChainEnd(a??{},void 0,void 0,void 0,{inputs:wx(r,`input`)})}getGraph(e){let t=new px,n=t.addNode({name:`${this.getName()}Input`,schema:Sy()}),r=t.addNode(this),i=t.addNode({name:`${this.getName()}Output`,schema:Sy()});return t.addEdge(n,r),t.addEdge(r,i),t}pipe(e){return new kx({first:this,last:Ix(e)})}pick(e){return this.pipe(new Rx(e))}assign(e){return this.pipe(new Lx(new Ax({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,eu(t))}async*streamLog(e,t,n){let r=new Hu({...n,autoClose:!1,_schemaFormat:`original`}),i=eu(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 Iu({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`?gx(r):ou.fromAsyncGenerator(r)}async*_streamEventsV2(e,t,n){let r=new Yu({...n,autoClose:!1}),i=eu(t),a=i.runId??Dr();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=eu(t),o=a.tags??[],s=a.metadata??{},c=a.runName??this.getName(),l=new Hu({...n,autoClose:!1,_schemaFormat:`streaming_events`}),u=new Ed({...n}),d=this._streamLog(e,l,a);for await(let t of d){if(r=r?r.concat(t):Lu.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 Td(e)}withListeners({onStart:e,onEnd:t,onError:n}){return new Ex({bound:this,config:{},configFactories:[r=>({callbacks:[new wd({config:r,onStart:e,onEnd:t,onError:n})]})]})}asTool(e){return Bx(this,e)}},Ex=class e extends Tx{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=$l(this.config,...e);return $l(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 Ox({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(eu(e),this.kwargs))):await this._mergeConfig(eu(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(eu(t),this.kwargs))}async stream(e,t){return this.bound.stream(e,await this._mergeConfig(eu(t),this.kwargs))}async*transform(e,t){yield*this.bound.transform(e,await this._mergeConfig(eu(t),this.kwargs))}streamEvents(e,t,n){let r=this;return ou.fromAsyncGenerator(async function*(){yield*r.bound.streamEvents(e,{...await r._mergeConfig(eu(t),r.kwargs),version:t.version},n)}())}static isRunnableBinding(e){return e.bound&&Tx.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 wd({config:e,onStart:t,onEnd:n,onError:r})]})]})}},Dx=class e extends Tx{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,tu(t,{callbacks:n?.getChild()}))}withListeners({onStart:t,onEnd:n,onError:r}){return new e({bound:this.bound.withListeners({onStart:t,onEnd:n,onError:r})})}},Ox=class extends Ex{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 tu(t,{callbacks:n?.getChild(r)})}async _invoke(e,t,n){return od(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 od(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)}},kx=class e extends Tx{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=eu(t),r=await(await Ql(n))?.handleChainStart(this.toJSON(),wx(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 ru(e[t].invoke(i,tu(n,{callbacks:r?.getChild(this.omitSequenceTags?void 0:`seq:step:${t+1}`)})),n.signal);if(n.signal?.aborted)throw iu(n.signal);a=await this.last.invoke(i,tu(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(wx(a,`output`)),a}async batch(e,t,n){let r=this._getOptionsList(t??{},e.length),i=await Promise.all(r.map(Ql)),a=await Promise.all(i.map(async(t,n)=>{let i=await t?.handleChainStart(this.toJSON(),wx(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 ru(this.steps[e].batch(o,a.map((t,n)=>{let i=t?.getChild(this.omitSequenceTags?void 0:`seq:step:${e+1}`);return tu(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(wx(o,`output`)))),o}_concatOutputChunks(e,t){return this.last._concatOutputChunks(e,t)}async*_streamIterator(e,t){let n=await Ql(t),{runId:r,...i}=t??{},a=await n?.handleChainStart(this.toJSON(),wx(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(),tu(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,tu(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(wx(c,`output`))}getGraph(e){let t=new px,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:Ix(t),name:this.name})}static isRunnableSequence(e){return Array.isArray(e.middle)&&Tx.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:Ix(t),middle:n.slice(0,-1).map(Ix),last:Ix(n[n.length-1])})}},Ax=class e extends Tx{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]=Ix(n)}static from(t){return new e({steps:t})}async invoke(e,t){let n=eu(t),r=await(await Ql(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,tu(n,{callbacks:r?.getChild(`map:key:${t}`)}))});await ru(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=su(e,Object.keys(r).length),a=new Map(Object.entries(r).map(([e,r],a)=>{let o=r.transform(i[a],tu(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 ru(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=eu(t),i=new lu({generator:this.transform(n(),r),config:r});return await i.setup,ou.fromAsyncGenerator(i)}},jx=class e extends Tx{lc_serializable=!1;lc_namespace=[`langchain_core`,`runnables`];func;constructor(e){if(super(e),!ml(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 Ql(n);return ru(this.func(tu(n,{callbacks:r}),e),n?.signal)}async*_streamIterator(e,t){let[n]=this._getOptionsList(t??{},1),r=await this.invoke(e,t);if(yx(r)){for await(let e of r)n?.signal?.throwIfAborted(),yield e;return}if(vx(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 Mx(e){if(ml(e))throw Error(`RunnableLambda requires a function that is not wrapped in traceable higher-order function. This shouldn't happen.`)}var Nx=class e extends Tx{static lc_name(){return`RunnableLambda`}lc_namespace=[`langchain_core`,`runnables`];func;constructor(e){if(ml(e.func))return jx.from(e.func);super(e),Mx(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=tu(t,{callbacks:n?.getChild(),recursionLimit:(t?.recursionLimit??25)-1});ql.runWithConfig(nu(a),async()=>{try{let n=await this.func(e,{...a});if(n&&Tx.isRunnable(n)){if(t?.recursionLimit===0)throw Error(`Recursion limit reached.`);n=await n.invoke(e,{...a,recursionLimit:(a.recursionLimit??25)-1})}else if(yx(n)){let e;for await(let r of Cx(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(_x(n)){let e;for(let r of Sx(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=tu(n,{callbacks:t?.getChild(),recursionLimit:(n?.recursionLimit??25)-1}),a=await new Promise((e,t)=>{ql.runWithConfig(nu(i),async()=>{try{e(await this.func(r,{...i,config:i}))}catch(e){t(e)}})});if(a&&Tx.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(yx(a))for await(let e of Cx(i,a))n?.signal?.throwIfAborted(),yield e;else if(_x(a))for(let e of Sx(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=eu(t),i=new lu({generator:this.transform(n(),r),config:r});return await i.setup,ou.fromAsyncGenerator(i)}},Px=class extends Ax{},Fx=class extends Tx{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=eu(t),r=await Ql(n),{runId:i,...a}=n,o=await r?.handleChainStart(this.toJSON(),wx(e,`input`),i,void 0,void 0,void 0,a?.runName),s=tu(a,{callbacks:o?.getChild()});return await ql.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(wx(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=eu(t),r=await Ql(n),{runId:i,...a}=n,o=await r?.handleChainStart(this.toJSON(),wx(e,`input`),i,void 0,void 0,void 0,a?.runName),s,c;for(let t of this.runnables()){n?.signal?.throwIfAborted();let r=tu(a,{callbacks:o?.getChild()});try{c=Cx(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(wx(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=>Ql(e))),a=await Promise.all(i.map(async(t,n)=>{let i=await t?.handleChainStart(this.toJSON(),wx(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)=>tu(r[t],{callbacks:e?.getChild()})),n);return await Promise.all(a.map((e,t)=>e?.handleChainEnd(wx(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 Ix(e){if(typeof e==`function`)return new Nx({func:e});if(Tx.isRunnable(e))return e;if(!Array.isArray(e)&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=Ix(r);return new Ax({steps:t})}else throw Error(`Expected a Runnable, function or object.
|
|
101
|
+
Instead got an unsupported type.`)}var Lx=class extends Tx{static lc_name(){return`RunnableAssign`}lc_namespace=[`langchain_core`,`runnables`];lc_serializable=!0;mapper;constructor(e){e instanceof Ax&&(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]=su(e),o=this.mapper.transform(a,tu(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=eu(t),i=new lu({generator:this.transform(n(),r),config:r});return await i.setup,ou.fromAsyncGenerator(i)}},Rx=class extends Tx{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=eu(t),i=new lu({generator:this.transform(n(),r),config:r});return await i.setup,ou.fromAsyncGenerator(i)}},zx=class extends Ex{name;description;schema;constructor(e){let t=kx.from([Nx.from(async e=>{let t;if(S(e))try{t=await l_(this.schema,e.args)}catch{throw new C(`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 Bx(e,t){let n=t.name??e.getName(),r=t.description??f_(t.schema);return m_(t.schema)?new zx({name:n,description:r,schema:Cy({input:xy()}).transform(e=>e.input),bound:e}):new zx({name:n,description:r,schema:t.schema,bound:e})}var Vx=class extends Tx{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=eu(t);return this.func&&await this.func(e,n),this._callWithConfig(e=>Promise.resolve(e),e,n)}async*transform(e,t){let n=eu(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=cu(r,t)}catch{r=void 0,i=!1}this.func&&r!==void 0&&await this.func(r,n)}static assign(e){return new Lx(new Ax({steps:e}))}},Hx=class extends Tx{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,eu(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)}},Ux=class extends Tx{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])=>[Ix(e),Ix(t)]),n=Ix(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,tu(t,{callbacks:n?.getChild(`condition:${i+1}`)}))){r=await o.invoke(e,tu(t,{callbacks:n?.getChild(`branch:${i+1}`)}));break}}return r||=await this.default.invoke(e,tu(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 Ql(t))?.handleChainStart(this.toJSON(),wx(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,tu(t,{callbacks:n?.getChild(`condition:${o+1}`)}))){a=await c.stream(e,tu(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=cu(r,e)}catch{r=void 0,i=!1}break}}if(a===void 0){a=await this.default.stream(e,tu(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=cu(r,e)}catch{r=void 0,i=!1}}}catch(e){throw await n?.handleChainError(e),e}await n?.handleChainEnd(r??{})}},Wx=(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 Gx(e,t){return Array.isArray(e)?Kx(e,t):Nx.from(t=>Kx(t,e))}function Kx(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&&Wx(t,a)||s&&t.id&&s.includes(t.id)||(i||o||n?(n&&t.name&&n.some(e=>e===t.name)||i&&Wx(t,i)||o&&t.id&&o.some(e=>e===t.id))&&c.push(t):c.push(t));return c}function qx(e){return Array.isArray(e)?Jx(e):Nx.from(Jx)}function Jx(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=Rn(r),i=Rn(e),a=n.concat(i);typeof n.content==`string`&&typeof i.content==`string`&&(a.content=`${n.content}\n${i.content}`),t.push(tS(a))}}return t}function Yx(e,t){if(Array.isArray(e)){let n=e;if(!t)throw Error(`Options parameter is required when providing messages.`);return Xx(n,t)}else{let t=e;return Nx.from(e=>Xx(e,t)).withConfig({runName:`trim_messages`})}}async function Xx(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=nS;if(l&&(d=`splitText`in l?l.splitText:async e=>l(e)),i===`first`)return Zx(e,{maxTokens:n,tokenCounter:u,textSplitter:d,partialStrategy:a?`first`:void 0,endOn:o});if(i===`last`)return Qx(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 Zx(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=eS(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&&!Wx(s[c-1],e);)--c}return s.slice(0,c)}async function Qx(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 eS(e.getType(),t,Ct(e))});if(i){let e=Array.isArray(i)?i:[i];for(;s.length>0&&!Wx(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 Zx(l,{...o,partialStrategy:n?`last`:void 0,endOn:a}),c?[l[0],...l.slice(1).reverse()]:l.reverse()}var $x={human:{message:_n,messageChunk:vn},ai:{message:k,messageChunk:cn},system:{message:Sn,messageChunk:Cn},developer:{message:Sn,messageChunk:Cn},tool:{message:Et,messageChunk:Dt},function:{message:pn,messageChunk:mn},generic:{message:ln,messageChunk:un},remove:{message:xn,messageChunk:xn}};function eS(e,t,n){let r,i;switch(e){case`human`:n?r=new vn(t):i=new _n(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 cn(e)}else i=new k(t);break;case`system`:n?r=new Cn(t):i=new Sn(t);break;case`developer`:n?r=new Cn({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:`developer`}}):i=new Sn({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:`developer`}});break;case`tool`:if(`tool_call_id`in t)n?r=new Dt(t):i=new Et(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 mn(t);else{if(!t.name)throw Error(`FunctionMessage must have a 'name' field`);i=new pn(t)}break;case`generic`:if(`role`in t)n?r=new un(t):i=new ln(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 tS(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 $x&&(n=eS(t,r)),!n)throw Error(`Unrecognized message chunk class ${t}. Supported classes are ${Object.keys($x)}`);return n}function nS(e){let t=e.split(`
|
|
102
|
+
`);return Promise.resolve([...t.slice(0,-1).map(e=>`${e}\n`),t[t.length-1]])}var rS=[`tool_call`,`tool_call_chunk`,`invalid_tool_call`,`server_tool_call`,`server_tool_call_chunk`,`server_tool_call_result`],iS=[`image`,`video`,`audio`,`text-plain`,`file`],aS=[`text`,`reasoning`,...rS,...iS],oS=p({AIMessage:()=>k,AIMessageChunk:()=>cn,BaseMessage:()=>ct,BaseMessageChunk:()=>bt,ChatMessage:()=>ln,ChatMessageChunk:()=>un,DEFAULT_MERGE_IGNORE_KEYS:()=>ut,FunctionMessage:()=>pn,FunctionMessageChunk:()=>mn,HumanMessage:()=>_n,HumanMessageChunk:()=>vn,KNOWN_BLOCK_TYPES:()=>aS,RemoveMessage:()=>xn,SystemMessage:()=>Sn,SystemMessageChunk:()=>Cn,ToolMessage:()=>Et,ToolMessageChunk:()=>Dt,_isMessageFieldWithRole:()=>xt,_mergeDicts:()=>dt,_mergeLists:()=>vt,_mergeObj:()=>yt,_mergeStatus:()=>ot,coerceMessageLikeToMessage:()=>jn,collapseToolCallChunks:()=>zn,convertToChunk:()=>Rn,convertToOpenAIImageBlock:()=>ke,convertToProviderContentBlock:()=>je,defaultTextSplitter:()=>nS,defaultToolCallParser:()=>Ot,filterMessages:()=>Gx,getBufferString:()=>Nn,iife:()=>Dn,isAIMessage:()=>on,isAIMessageChunk:()=>sn,isBase64ContentBlock:()=>Ee,isBaseMessage:()=>St,isBaseMessageChunk:()=>Ct,isChatMessage:()=>dn,isChatMessageChunk:()=>fn,isDataContentBlock:()=>we,isDirectToolOutput:()=>Tt,isFunctionMessage:()=>hn,isFunctionMessageChunk:()=>gn,isHumanMessage:()=>yn,isHumanMessageChunk:()=>bn,isIDContentBlock:()=>Oe,isMessage:()=>et,isOpenAIToolCallArray:()=>lt,isPlainTextContentBlock:()=>De,isSystemMessage:()=>wn,isSystemMessageChunk:()=>Tn,isToolMessage:()=>kt,isToolMessageChunk:()=>At,isURLContentBlock:()=>Te,mapChatMessagesToStoredMessages:()=>Ln,mapStoredMessageToChatMessage:()=>Fn,mapStoredMessagesToChatMessages:()=>In,mergeContent:()=>at,mergeMessageRuns:()=>qx,mergeResponseMetadata:()=>$t,mergeUsageMetadata:()=>rn,parseBase64DataUrl:()=>T,parseMimeType:()=>Ae,trimMessages:()=>Yx}),sS=class extends Ex{runnable;inputMessagesKey;outputMessagesKey;historyMessagesKey;getMessageHistory;constructor(e){let t=Nx.from((e,t)=>this._enterHistory(e,t??{})).withConfig({runName:`loadHistory`}),n=e.historyMessagesKey??e.inputMessagesKey;n&&(t=Vx.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)&&!St(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 _n(t)];if(Array.isArray(t))return t;if(St(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)&&!St(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(St(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}},cS=p({RouterRunnable:()=>Hx,Runnable:()=>Tx,RunnableAssign:()=>Lx,RunnableBinding:()=>Ex,RunnableBranch:()=>Ux,RunnableEach:()=>Dx,RunnableLambda:()=>Nx,RunnableMap:()=>Ax,RunnableParallel:()=>Px,RunnablePassthrough:()=>Vx,RunnablePick:()=>Rx,RunnableRetry:()=>Ox,RunnableSequence:()=>kx,RunnableToolLike:()=>zx,RunnableWithFallbacks:()=>Fx,RunnableWithMessageHistory:()=>sS,_coerceToRunnable:()=>Ix,ensureConfig:()=>eu,getCallbackManagerForConfig:()=>Ql,mergeConfigs:()=>$l,patchConfig:()=>tu,pickRunnableConfigKeys:()=>nu,raceWithSignal:()=>ru});function lS(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 uS(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=lS(t.runTimeout,`runTimeout`),i=lS(t.idleTimeout,`idleTimeout`);if(!(r===void 0&&i===void 0))return{runTimeout:r,idleTimeout:i,refreshOn:n}}var dS=`__start__`,fS=`__end__`,pS=`__input__`,mS=`__error__`,hS=`__error_source_node__`,gS=`__pregel_ns_writes`;function _S(){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 vS=`__pregel_send`,yS=`__pregel_call`,bS=`__pregel_read`,xS=`__pregel_checkpointer`,SS=`__pregel_resuming`,CS=`__pregel_task_id`,wS=`__pregel_stream`,TS=`__pregel_resume_value`,ES=`__pregel_resume_map`,DS=`__pregel_scratchpad`,OS=`__pregel_previous`,kS=`__pregel_durability`,AS=`checkpoint_id`,jS=`checkpoint_ns`,MS=`__pregel_node_finished`,NS=`__pregel_node_error`,PS=`checkpoint_map`,FS=`__pregel_replay_state`,IS=`__pregel_abort_signals`,LS=`__interrupt__`,RS=`__resume__`,zS=`__no_writes__`,BS=`__return__`,VS=`__previous__`,HS=`langsmith:hidden`,US=`__self__`,WS=`__pregel_tasks`,GS=`__pregel_push`,KS=`__pregel_pull`,qS=`00000000-0000-0000-0000-000000000000`,JS=[HS,pS,LS,RS,mS,hS,zS,vS,bS,xS,kS,wS,SS,CS,yS,TS,DS,OS,PS,jS,AS,FS],YS=Symbol.for(`langgraph.command`),XS=class{[YS];constructor(e){this[YS]=e}};function ZS(e){let t=e;return t!=null&&typeof t.node==`string`&&t.args!==void 0}var QS=class{lg_name=`Send`;node;args;timeout;constructor(e,t,n){this.node=e,this.args=sC(t),this.timeout=uS(n?.timeout)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args,timeout:this.timeout}}};function $S(e){return e instanceof QS}var eC=`__overwrite__`;function tC(e){if(typeof e==`object`&&e){if(`__overwrite__`in e)return[!0,e[eC]];let t=e;if(t.type===`__overwrite__`&&`value`in t)return[!0,t.value]}return[!1,void 0]}function nC(e){return tC(e)[0]}function rC(e){return!e||typeof e!=`object`||!(`__interrupt__`in e)?!1:Array.isArray(e[LS])}var iC=class extends XS{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)?sC(e.goto):[sC(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:$S(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 aC(e){return typeof e!=`object`||!e?!1:`lg_name`in e&&e.lg_name===`Command`}function oC(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function sC(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]=sC(e,t)});else if(e instanceof iC||e instanceof QS||!oC(e))n=e,t.set(e,n);else if(aC(e))n=new iC(e),t.set(e,n);else if(ZS(e))n=new QS(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]=sC(i,t)}return n}return e}var cC=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}},lC=class extends cC{get is_bubble_up(){return!0}},uC=class extends cC{constructor(e,t){super(e,t),this.name=`GraphRecursionError`}static get unminifiable_name(){return`GraphRecursionError`}},dC=class extends cC{constructor(e,t){super(e,t),this.name=`GraphValueError`}static get unminifiable_name(){return`GraphValueError`}},fC=class extends lC{reason;constructor(e=`shutdown`,t){super(`Graph drained: ${e}`,t),this.name=`GraphDrained`,this.reason=e}static get unminifiable_name(){return`GraphDrained`}};function pC(e){return e!==void 0&&e.name===fC.unminifiable_name}var mC=class extends lC{interrupts;constructor(e,t){super(JSON.stringify(e,null,2),t),this.name=`GraphInterrupt`,this.interrupts=e??[]}static get unminifiable_name(){return`GraphInterrupt`}},hC=class extends mC{constructor(e,t){super([{value:e}],t),this.name=`NodeInterrupt`}static get unminifiable_name(){return`NodeInterrupt`}},gC=class{node;error;constructor(e,t){this.node=e,this.error=t}static get unminifiable_name(){return`NodeError`}},_C=class extends lC{command;constructor(e){super(),this.name=`ParentCommand`,this.command=e}static get unminifiable_name(){return`ParentCommand`}};function vC(e){return e!==void 0&&e.name===_C.unminifiable_name}function yC(e){return e!==void 0&&e.is_bubble_up===!0}function bC(e){return e!==void 0&&[mC.unminifiable_name,hC.unminifiable_name].includes(e.name)}var xC=class extends cC{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`}},SC=class extends cC{constructor(e,t){super(e,t),this.name=`EmptyInputError`}static get unminifiable_name(){return`EmptyInputError`}},CC=class extends cC{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`}},wC=class extends cC{constructor(e,t){super(e,t),this.name=`InvalidUpdateError`}static get unminifiable_name(){return`InvalidUpdateError`}},TC=class extends cC{constructor(e,t){super(e,t),this.name=`UnreachableNodeError`}static get unminifiable_name(){return`UnreachableNodeError`}},EC=class extends cC{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`}},DC=0,OC=0;function kC(e){let t=Date.now();return t<=DC?(OC+=1,OC>=1e4&&(OC=0,t=DC+1)):OC=0,DC=t,Er({clockseq:e,msecs:t,nsecs:OC})}function AC(e,t){let n=t.replace(/-/g,``).match(/.{2}/g).map(e=>parseInt(e,16));return Tr(e,new Uint8Array(n))}var jC=`__error__`,MC=`__scheduled__`,NC=`__interrupt__`,PC=`__resume__`,FC=class{lg_name=`DeltaSnapshot`;value;constructor(e){this.value=e}};function IC(e){return typeof e==`object`&&!!e&&e.lg_name===`DeltaSnapshot`}var LC=`[...]`,RC=`[Circular]`,zC=[],BC=[];function VC(){return{depthLimit:2**53-1,edgesLimit:2**53-1}}function HC(e,t,n,r){r===void 0&&(r=VC()),WC(e,``,0,[],void 0,0,r);var i;try{i=BC.length===0?JSON.stringify(e,t,n):JSON.stringify(e,GC(t),n)}catch{return JSON.stringify(`[unable to serialize, circular reference is too complex to analyze]`)}finally{for(;zC.length!==0;){var a=zC.pop();a.length===4?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}}return i}function UC(e,t,n,r){var i=Object.getOwnPropertyDescriptor(r,n);i.get===void 0?(r[n]=e,zC.push([r,n,t])):i.configurable?(Object.defineProperty(r,n,{value:e}),zC.push([r,n,t,i])):BC.push([t,n,e])}function WC(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){UC(RC,e,t,i);return}if(o.depthLimit!==void 0&&a>o.depthLimit){UC(LC,e,t,i);return}if(o.edgesLimit!==void 0&&n+1>o.edgesLimit){UC(LC,e,t,i);return}if(r.push(e),Array.isArray(e))for(s=0;s<e.length;s++)WC(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];WC(e[l],l,s,r,e,a,o)}}r.pop()}}function GC(e){return e=e===void 0?function(e,t){return t}:e,function(t,n){if(BC.length>0)for(var r=0;r<BC.length;r++){var i=BC[r];if(i[1]===t&&i[0]===n){n=i[2],BC.splice(r,1);break}}return e.call(this,t,n)}}var KC=[],qC=p({}),JC=p({}),U=`0123456789abcdef`.split(``),YC=[-2147483648,8388608,32768,128],XC=[24,16,8,0],ZC=[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],QC=[];function $C(e,t){t?(QC[0]=QC[16]=QC[1]=QC[2]=QC[3]=QC[4]=QC[5]=QC[6]=QC[7]=QC[8]=QC[9]=QC[10]=QC[11]=QC[12]=QC[13]=QC[14]=QC[15]=0,this.blocks=QC):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}$C.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]<<XC[a++&3];else for(a=this.start;i<o&&a<64;++i)r=e.charCodeAt(i),r<128?s[a>>>2]|=r<<XC[a++&3]:r<2048?(s[a>>>2]|=(192|r>>>6)<<XC[a++&3],s[a>>>2]|=(128|r&63)<<XC[a++&3]):r<55296||r>=57344?(s[a>>>2]|=(224|r>>>12)<<XC[a++&3],s[a>>>2]|=(128|r>>>6&63)<<XC[a++&3],s[a>>>2]|=(128|r&63)<<XC[a++&3]):(r=65536+((r&1023)<<10|e.charCodeAt(++i)&1023),s[a>>>2]|=(240|r>>>18)<<XC[a++&3],s[a>>>2]|=(128|r>>>12&63)<<XC[a++&3],s[a>>>2]|=(128|r>>>6&63)<<XC[a++&3],s[a>>>2]|=(128|r&63)<<XC[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}},$C.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=YC[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()}},$C.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+ZC[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+ZC[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+ZC[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+ZC[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},$C.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},$C.prototype.toString=$C.prototype.hex,$C.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},$C.prototype.array=$C.prototype.digest,$C.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 ew=(...e)=>new $C(!1,!0).update(e.join(``)).hex(),tw=p({sha256:()=>ew}),nw=p({BaseCache:()=>ow,InMemoryCache:()=>cw,defaultHashKeyEncoder:()=>rw,deserializeStoredGeneration:()=>iw,serializeGeneration:()=>aw}),rw=(...e)=>ew(e.join(`_`));function iw(e){return e.message===void 0?{text:e.text}:{text:e.text,message:Fn(e.message)}}function aw(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var ow=class{keyEncoder=rw;makeDefaultKeyEncoder(e){this.keyEncoder=e}},sw=new Map,cw=class e extends ow{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(sw)}},lw=p({BaseChatMessageHistory:()=>uw,BaseListChatMessageHistory:()=>dw,InMemoryChatMessageHistory:()=>fw}),uw=class extends Ce{async addMessages(e){for(let t of e)await this.addMessage(t)}},dw=class extends Ce{addUserMessage(e){return this.addMessage(new _n(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.`)}},fw=class extends dw{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=[]}},pw=class{pageContent;metadata;id;constructor(e){this.pageContent=e.pageContent===void 0?``:e.pageContent.toString(),this.metadata=e.metadata??{},this.id=e.id}},mw=class extends Tx{lc_namespace=[`langchain_core`,`documents`,`transformers`];invoke(e,t){return this.transformDocuments(e)}},hw=class extends mw{async transformDocuments(e){let t=[];for(let n of e){let e=await this._transformDocument(n);t.push(e)}return t}},gw=p({BaseDocumentTransformer:()=>mw,Document:()=>pw,MappingDocumentTransformer:()=>hw}),_w=p({BaseDocumentLoader:()=>vw}),vw=class{},yw=p({LangSmithLoader:()=>bw}),bw=class extends vw{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 Cc(e?.clientConfig),this.contentKey=e.contentKey?e.contentKey.split(`.`):[],this.formatContent=e.formatContent??xw,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 xw(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Sw=p({Embeddings:()=>Cw}),Cw=class{caller;constructor(e){this.caller=new Cd(e??{})}},ww=class extends Ce{lc_namespace=[`langchain_core`,`example_selectors`,`base`]},Tw=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Ew=class extends Tw{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 Dw(e){return e._modelType()===`base_llm`}function Ow(e){return e._modelType()===`base_chat_model`}function kw(e){return e.split(/\n| /).length}var Aw=class e extends ww{examples=[];examplePrompt;getTextLength=kw;maxLength=2048;exampleTextLengths=[];constructor(e){super(e),this.examplePrompt=e.examplePrompt,this.maxLength=e.maxLength??2048,this.getTextLength=e.getTextLength??kw}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 jw(e){return Object.keys(e).sort().map(t=>e[t])}var Mw=class e extends ww{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=jw((this.inputKeys??Object.keys(e)).reduce((t,n)=>({...t,[n]:e[n]}),{})).join(` `);await this.vectorStoreRetriever.addDocuments([new pw({pageContent:t,metadata:e})])}async selectExamples(e){let t=jw((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=>jw(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})}},Nw=p({BaseExampleSelector:()=>ww,BasePromptSelector:()=>Tw,ConditionalPromptSelector:()=>Ew,LengthBasedExampleSelector:()=>Aw,SemanticSimilarityExampleSelector:()=>Mw,isChatModel:()=>Ow,isLLM:()=>Dw}),Pw=`10f90ea3-90a4-4962-bf75-83a0f3c1c62a`,Fw=class extends Ce{lc_namespace=[`langchain`,`recordmanagers`]},Iw=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=ew;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 pw({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 Tr(this.keyEncoder(e),Pw)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Tr(this.keyEncoder(t),Pw)}};function Lw(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 Rw(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 zw(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 Bw=e=>`load`in e&&typeof e.load==`function`&&`loadAndSplit`in e&&typeof e.loadAndSplit==`function`;async function Vw(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=Bw(t)?await t.load():t,d=zw(s??null),f=await n.getTime(),p=0,m=0,h=0,g=0,_=Lw(a??100,u);for(let e of _){let t=Rw(e.map(e=>Iw.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 Hw=p({RecordManager:()=>Fw,UUIDV5_NAMESPACE:()=>Pw,_HashedDocument:()=>Iw,_batch:()=>Lw,_deduplicateInOrder:()=>Rw,_getSourceIdAssigner:()=>zw,_isBaseDocumentLoader:()=>Bw,index:()=>Vw}),Uw=p({BasePromptValue:()=>Ww,ChatPromptValue:()=>Kw,ImagePromptValue:()=>qw,StringPromptValue:()=>Gw}),Ww=class extends Ce{},Gw=class extends Ww{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 _n(this.value)]}},Kw=class extends Ww{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 Nn(this.messages)}toChatMessages(){return this.messages}},qw=class extends Ww{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 _n({content:[{type:`image_url`,image_url:{detail:this.imageUrl.detail,url:this.imageUrl.url}}]})]}},Jw=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),Yw=Object.defineProperty,Xw=(e,t,n)=>t in e?Yw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Zw=(e,t,n)=>(Xw(e,typeof t==`symbol`?t:t+``,n),n);function Qw(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 $w(e,t){return e.length===1?[t.get(e.join(`,`))]:Qw(e,t).map(n=>t.get(e.slice(n.start,n.end).join(`,`))).filter(e=>e!=null)}function eT(e){return e.replace(/[\\^$*+?.()|[\]{}]/g,`\\$&`)}var tT=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=Jw.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=tT.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=tT.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(...$w(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)}},nT=tT;Zw(nT,`specialTokenRegex`,e=>new RegExp(e.map(e=>eT(e)).join(`|`),`g`));function rT(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 iT=p({encodingForModel:()=>cT,getEncoding:()=>sT}),aT={},oT=new Cd({});async function sT(e){return e in aT||(aT[e]=oT.fetch(`https://tiktoken.pages.dev/js/${e}.json`).then(e=>e.json()).then(e=>new nT(e)).catch(t=>{throw delete aT[e],t})),await aT[e]}async function cT(e){return sT(rT(e))}var lT=p({BaseLangChain:()=>gT,BaseLanguageModel:()=>_T,calculateMaxTokens:()=>mT,getEmbeddingContextSize:()=>dT,getModelContextSize:()=>fT,getModelNameForTiktoken:()=>uT,isOpenAITool:()=>pT}),uT=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,dT=e=>{switch(e){case`text-embedding-ada-002`:return 8191;default:return 2046}},fT=e=>{switch(uT(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 pT(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 mT=async({prompt:e,modelName:t})=>{let n;try{n=(await cT(uT(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 fT(t)-n},hT=()=>!1,gT=class extends Tx{verbose;callbacks;tags;metadata;get lc_attributes(){return{callbacks:void 0,verbose:void 0}}constructor(e){super(e),this.verbose=e.verbose??hT(),this.callbacks=e.callbacks,this.tags=e.tags??[],this.metadata=e.metadata??{},this._addVersion(`@langchain/core`,`1.2.2`)}_addVersion(e,t){let n=this.metadata?.versions;this.metadata={...this.metadata,versions:{...typeof n==`object`&&n?n:{},[e]:t}}}},_T=class extends gT{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=cw.global():this.cache=void 0,this.caller=new Cd(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 cT(`modelName`in this?uT(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 Gw(e):Array.isArray(e)?new Kw(e.map(jn)):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}},vT=p({applyPatch:()=>Ou,compare:()=>Pu}),yT=class extends Tx{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`})}},bT=class extends yT{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`)}},xT=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`);_(this,`OUTPUT_PARSING_FAILURE`)}},ST=class extends bT{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`})}},CT=class extends ST{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(Ct(r)){if(typeof r.content!=`string`)throw Error(`Cannot handle non-string message output.`);e=new Ku({message:r,text:r.content})}else if(St(r)){if(typeof r.content!=`string`)throw Error(`Cannot handle non-string message output.`);e=new Ku({message:Rn(r),text:r.content})}else e=new Gu({text:r});n=n===void 0?e:n.concat(e);let i=await this.parsePartialResult([n]);i!=null&&!Sb(i,t)&&(this.diff?yield this._diff(t,i):yield i,t=i)}}getFormatInstructions(){return``}},wT=class extends ST{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``}},TT=class extends ST{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]}},ET=class extends TT{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 xT(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},DT=class extends TT{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 xT(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===xT.prototype?t:new xT(`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\`)`}},OT=class extends TT{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])}},kT=class extends TT{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])}},AT=class extends ST{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),``)}},jT=class extends CT{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?Pu(e,t):[{op:`replace`,path:``,value:t}]}async parsePartialResult(e){return te(e[0].text)}async parse(e){return te(e,JSON.parse)}getFormatInstructions(){return``}_baseMessageToString(e){return e.text}},MT=class extends bT{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=te(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 xT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}getFormatInstructions(){return``}},NT=class extends bT{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=Cy(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,xy().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(cx(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 l_(this.schema,JSON.parse(n))}catch(t){throw new xT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}},PT=class extends NT{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(cx(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=Cy(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,xy().describe(t)])));return new this(t)}},FT=class extends bT{structuredInputParser;constructor({inputSchema:e}){super(...arguments),this.structuredInputParser=new PT(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(t){throw new xT(`Failed to parse. Text: "${e}". Error: ${t}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}},IT=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}(),LT=`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
|
+
\`\`\``,RT=class extends CT{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?Pu(e,t):[{op:`replace`,path:``,value:t}]}async parsePartialResult(e){return VT(e[0].text)}async parse(e){return VT(e)}getFormatInstructions(){return this.tags&&this.tags.length>0?LT.replace(`{tags}`,this.tags?.join(`, `)??``):LT}},zT=e=>e.split(`
|
|
161
|
+
`).map(e=>e.replace(/^\s+/,``)).join(`
|
|
162
|
+
`).trim(),BT=e=>{if(Object.keys(e).length===0)return{};let t={};return e.children.length>0?(t[e.name]=e.children.map(BT),t):(t[e.name]=e.text??void 0,t)};function VT(e){let t=zT(e),n=IT.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]),BT(r)}var HT=p({AsymmetricStructuredOutputParser:()=>FT,BaseCumulativeTransformOutputParser:()=>CT,BaseLLMOutputParser:()=>yT,BaseOutputParser:()=>bT,BaseTransformOutputParser:()=>ST,BytesOutputParser:()=>wT,CommaSeparatedListOutputParser:()=>ET,CustomListOutputParser:()=>DT,JsonMarkdownStructuredOutputParser:()=>PT,JsonOutputParser:()=>jT,ListOutputParser:()=>TT,MarkdownListOutputParser:()=>kT,NumberedListOutputParser:()=>OT,OutputParserException:()=>xT,StandardSchemaOutputParser:()=>MT,StringOutputParser:()=>AT,StructuredOutputParser:()=>NT,XMLOutputParser:()=>RT,XML_FORMAT_INSTRUCTIONS:()=>LT,parseJsonMarkdown:()=>te,parsePartialJson:()=>re,parseXMLMarkdown:()=>VT}),UT=p({extendInteropZodObject:()=>S_,getInteropZodDefaultGetter:()=>E_,getInteropZodObjectShape:()=>x_,getSchemaDescription:()=>f_,interopParse:()=>d_,interopParseAsync:()=>l_,interopSafeParse:()=>u_,interopSafeParseAsync:()=>c_,interopZodObjectMakeFieldsOptional:()=>j_,interopZodObjectPartial:()=>C_,interopZodObjectPassthrough:()=>T_,interopZodObjectStrict:()=>w_,interopZodTransformInputSchema:()=>A_,isInteropZodError:()=>M_,isInteropZodLiteral:()=>s_,isInteropZodObject:()=>b_,isInteropZodSchema:()=>i_,isShapelessZodSchema:()=>p_,isSimpleStringZodSchema:()=>m_,isZodArrayV4:()=>__,isZodLiteralV3:()=>a_,isZodLiteralV4:()=>o_,isZodNullableV4:()=>y_,isZodObjectV3:()=>h_,isZodObjectV4:()=>g_,isZodOptionalV4:()=>v_,isZodSchema:()=>r_,isZodSchemaV3:()=>n_,isZodSchemaV4:()=>t_});function WT(e,t){if(e.function===void 0)return;let n;if(t?.partial)try{n=re(e.function.arguments??`{}`)}catch{return}else try{n=JSON.parse(e.function.arguments)}catch(t){throw new xT([`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 GT(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 KT(e,t){return{name:e.function?.name,args:e.function?.arguments,id:e.id,error:t,type:`invalid_tool_call`}}var qT=class extends CT{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(on(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=>WT(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}},JT=class extends qT{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 xT(`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 c_(this.zodSchema,e);if(t.success)return t.data;throw new xT(`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)))}},YT=p({assembleStructuredOutputPipeline:()=>QT,createContentParser:()=>XT,createFunctionCallingParser:()=>ZT});function XT(e){return i_(e)?NT.fromZodSchema(e):xb(e)?MT.fromSerializableSchema(e):new jT}function ZT(e,t,n){let r=n??JT;return i_(e)?new r({returnSingle:!0,keyName:t,zodSchema:e}):xb(e)?new r({returnSingle:!0,keyName:t,serializableSchema:e}):new r({returnSingle:!0,keyName:t})}function QT(e,t,n,r){if(!n){let n=e.pipe(t);return r?n.withConfig({runName:r}):n}let i=Vx.assign({parsed:(e,n)=>t.invoke(e.raw,n)}),a=Vx.assign({parsed:()=>null}),o=i.withFallbacks({fallbacks:[a]}),s=kx.from([{raw:e},o]);return r?s.withConfig({runName:r}):s}var $T=p({ChatModelStream:()=>fE,ReasoningContentStream:()=>uE,TextContentStream:()=>cE,ToolCallsStream:()=>lE,UsageMetadataStream:()=>dE}),eE=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 tE(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 nE(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 rE(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 iE(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`reasoning`||t===`thinking`}function aE(e){if(e)return{...e,input_tokens:e.input_tokens??0,output_tokens:e.output_tokens??0,total_tokens:e.total_tokens??0}}function oE(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 sE(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:oE(r)}}var cE=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=nE(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=nE(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)}},lE=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)}},uE=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(!iE(r.content)){if(n)return;continue}n=!0;let e=rE(r.content);if(e==null||e.length===0)continue;t+=e,yield t}else if(r.event===`content-block-delta`){let e=nE(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`&&iE(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(!iE(n.content)){if(t)return;continue}t=!0;let e=rE(n.content);e!=null&&e.length>0&&(yield e)}else if(n.event===`content-block-delta`){let e=nE(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`&&iE(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)}},dE=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=aE(t.usage);e&&(yield e)}else if(t.event===`message-start`&&t.usage){let e=aE(t.usage);e&&(yield e)}else if(t.event===`message-finish`&&t.usage){let e=aE(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)}},fE=class{_buffer;constructor(e){this._buffer=new eE,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 cE(this._buffer)}get toolCalls(){return new lE(this._buffer)}get reasoning(){return new uE(this._buffer)}get usage(){return new dE(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=aE(a.usage));break;case`content-block-start`:e[a.index]=a.content;break;case`content-block-delta`:{let t=e[a.index],n=nE(a);t&&n&&(e[a.index]=tE(t,n));break}case`content-block-finish`:e[a.index]=a.content;break;case`usage`:n=aE(a.usage);break;case`message-finish`:i=a.reason,a.usage&&(n=aE(a.usage)),a.responseMetadata&&(r={...r,...a.responseMetadata});break;default:break}let a=e.filter(e=>e!=null).map(sE);return new k({id:t,content:a,usage_metadata:n,response_metadata:{...r,...i?{finish_reason:i}:{},output_version:`v1`}})}},pE=p({convertChunksToEvents:()=>bE,finalizeContentBlock:()=>CE}),mE={wav:`audio/wav`,mp3:`audio/mpeg`,flac:`audio/flac`,opus:`audio/opus`,aac:`audio/aac`,pcm16:`audio/pcm`},hE={png:`image/png`,jpeg:`image/jpeg`,jpg:`image/jpeg`,webp:`image/webp`,gif:`image/gif`};function gE(e){let t=0;for(let n of e.keys())n>=t&&(t=n+1);return t}function _E(e){let t=e.additional_kwargs;return typeof t==`object`&&t?t:{}}function vE(e){let t=_E(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:hE[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 yE(e){let t=_E(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:mE[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*bE(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};cn.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=SE(e);r.accumulated=xE(r.accumulated,i),yield{event:`content-block-delta`,index:t,delta:i}}}if(cn.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=yE(e);if(u!=null){if(a==null){let e=gE(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 vE(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=gE(n);n.set(i,{type:`image`,accumulated:t}),yield{event:`content-block-start`,index:i,content:t}}if(!c&&cn.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:CE(t.accumulated)};yield{event:`message-finish`,reason:`stop`,...i?{usage:i}:{}}}function xE(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 SE(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 CE(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 wE=e=>e();function TE(e){let t=e.constructor;return new t({...e,content:e.contentBlocks,response_metadata:{...e.response_metadata,output_version:`v1`}})}var EE=p({BaseChatModel:()=>OE,SimpleChatModel:()=>kE});function DE(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];(Te(r)||Ee(r))&&e===n&&(e=new n.constructor({...e,content:[...n.content.slice(0,t),ke(r),...n.content.slice(t+1)]}))}t.push(e)}return t}var OE=class e extends _T{lc_namespace=[`langchain`,`chat_models`,this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,`outputVersion`]}constructor(e){super(e),this.outputVersion=wE(()=>{let t=e.outputVersion??zr(`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*bE(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 fE(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 Hl.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(),[DE(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 TE(e.message):yield e.message,f=f?f.concat(e):e,sn(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(jn)),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 Hl.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(DE),r.runId,void 0,s,void 0,void 0,r.runName)}let s=n.outputVersion??this.outputVersion,c=[],l=[],u=!!o?.[0].handlers.find(Ur),d=!!o?.[0].handlers.find(Hr);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 fE({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 b(`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:cu(t,i),sn(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 b(`Model invocation was aborted.`,e)}if(t===void 0)throw Error(`Received empty response from chat model call.`);s===`v1`&&(t.message=TE(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=TE(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,Wu,{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(jn)),s={...a.metadata,...this.getLsParamsWithDefaults(i)},c=this.invocationParams(i),l=await Hl.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(DE),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&&St(e.message)&&on(e.message)&&(e.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},m===`v1`&&(e.message=TE(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,Wu,{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(jn)),[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=f_(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`;!i_(n)&&!xb(n)&&`name`in n&&(s=n.name);let c=i_(n)||xb(n)?cx(n):n,l=[{type:`function`,function:{name:s,description:i,parameters:c}}];return QT(this.bindTools(l),Nx.from(e=>{if(!cn.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`)}},kE=class extends OE{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}]}}},AE=p({convertOpenAICompletionsStream:()=>jE});async function*jE(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=FE(t.usage),yield{event:`usage`,usage:l});let e=t.x_groq?.usage;e&&n&&(l=NE(e),yield{event:`usage`,usage:l});let o=t.choices?.[0];if(!o)continue;o.finish_reason!=null&&(u=PE(o.finish_reason),d=IE(t,o));let{delta:s}=o;if(!s)continue;let m=ME(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:CE(t)};yield{event:`message-finish`,reason:u,...l?{usage:l}:{},...d?{responseMetadata:d}:{}}}function ME(e){let t=e.reasoning_content??e.reasoning;return typeof t==`string`&&t.length>0?t:void 0}function NE(e){return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0}}function PE(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 FE(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 IE(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 LE=p({}),RE=p({BaseLLM:()=>zE,LLM:()=>BE}),zE=class e extends _T{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 Hl.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 Gu({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 Hl.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(Hr),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:cu(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,Wu,{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 Hl.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,Wu,{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`}},BE=class extends zE{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}])))}}},VE=p({}),HE=p({BaseMemory:()=>UE,getInputValue:()=>GE,getOutputValue:()=>KE,getPromptInputKey:()=>qE}),UE=class{},WE=(e,t)=>{if(t!==void 0)return e[t];let n=Object.keys(e);if(n.length===1)return e[n[0]]},GE=(e,t)=>{let n=WE(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},KE=(e,t)=>{let n=WE(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 qE(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 JE=class extends yT{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)}`)}},YE=class extends CT{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 JE(e)}_diff(e,t){if(t)return Pu(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?re(r.arguments):{...r,arguments:re(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``}},XE=class extends yT{static lc_name(){return`JsonKeyOutputFunctionsParser`}lc_namespace=[`langchain`,`output_parsers`,`openai_functions`];lc_serializable=!0;outputParser=new YE;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]}},ZE=p({JsonKeyOutputFunctionsParser:()=>XE,JsonOutputFunctionsParser:()=>YE,OutputFunctionsParser:()=>JE}),QE=p({JsonOutputKeyToolsParser:()=>JT,JsonOutputToolsParser:()=>qT,convertLangChainToolCallToOpenAI:()=>GT,makeInvalidToolCall:()=>KT,parseToolCall:()=>WT}),$E=class extends Tx{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`})}},eD=class extends $E{async formatPromptValue(e){return new Gw(await this.format(e))}},tD=Object.prototype.toString,nD=Array.isArray||function(e){return tD.call(e)===`[object Array]`};function rD(e){return typeof e==`function`}function iD(e){return nD(e)?`array`:typeof e}function aD(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function oD(e,t){return typeof e==`object`&&!!e&&t in e}function sD(e,t){return e!=null&&typeof e!=`object`&&e.hasOwnProperty&&e.hasOwnProperty(t)}var cD=RegExp.prototype.test;function lD(e,t){return cD.call(e,t)}var uD=/\S/;function dD(e){return!lD(uD,e)}var fD={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`,"`":```,"=":`=`};function pD(e){return String(e).replace(/[&<>"'`=\/]/g,function(e){return fD[e]})}var mD=/\s*/,hD=/\s+/,gD=/\s*=/,_D=/\s*\}/,vD=/#|\^|\/|>|\{|&|=|!/;function yD(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(hD,2)),!nD(e)||e.length!==2)throw Error(`Invalid tags: `+e);d=RegExp(aD(e[0])+`\\s*`),f=RegExp(`\\s*`+aD(e[1])),p=RegExp(`\\s*`+aD(`}`+e[1]))}m(t||TD.tags);for(var h=new SD(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),dD(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(vD)||`name`,h.scan(mD),_===`=`?(v=h.scanUntil(gD),h.scan(gD),h.scanUntil(f)):_===`{`?(v=h.scanUntil(p),h.scan(_D),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 xD(bD(i))}function bD(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 xD(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 SD(e){this.string=e,this.tail=e,this.pos=0}SD.prototype.eos=function(){return this.tail===``},SD.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},SD.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 CD(e,t){this.view=e,this.cache={".":this.view},this.parent=t}CD.prototype.push=function(e){return new CD(e,this)},CD.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=oD(i,a[o])||sD(i,a[o])),i=i[a[o++]];else i=r.view[e],s=oD(r.view,e);if(s){n=i;break}r=r.parent}t[e]=n}return rD(n)&&(n=n.call(this.view)),n};function wD(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}wD.prototype.clearCache=function(){this.templateCache!==void 0&&this.templateCache.clear()},wD.prototype.parse=function(e,t){var n=this.templateCache,r=e+`:`+(t||TD.tags).join(`:`),i=n!==void 0,a=i?n.get(r):void 0;return a??(a=yD(e,t),i&&n.set(r,a)),a},wD.prototype.render=function(e,t,n,r){var i=this.getConfigTags(r),a=this.parse(e,i),o=t instanceof CD?t:new CD(t,void 0);return this.renderTokens(a,o,n,e,r)},wD.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},wD.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(nD(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(rD(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}},wD.prototype.renderInverted=function(e,t,n,r,i){var a=t.lookup(e[1]);if(!a||nD(a)&&a.length===0)return this.renderTokens(e[4],t,n,r,i)},wD.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
|
+
`)},wD.prototype.renderPartial=function(e,t,n,r){if(n){var i=this.getConfigTags(r),a=rD(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)}}},wD.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n},wD.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||TD.escape,i=t.lookup(e[1]);if(i!=null)return typeof i==`number`&&r===TD.escape?String(i):r(i)},wD.prototype.rawValue=function(e){return e[1]},wD.prototype.getConfigTags=function(e){if(nD(e))return e;if(e&&typeof e==`object`)return e.tags},wD.prototype.getConfigEscape=function(e){if(e&&typeof e==`object`&&!nD(e))return e.escape};var TD={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){ED.templateCache=e},get templateCache(){return ED.templateCache}},ED=new wD;TD.clearCache=function(){return ED.clearCache()},TD.parse=function(e,t){return ED.parse(e,t)},TD.render=function(e,t,n,r){if(typeof e!=`string`)throw TypeError(`Invalid template! Template should be a "string" but "`+iD(e)+`" was given as the first argument for mustache#render(template, view, partials)`);return ED.render(e,t,n,r)},TD.escape=pD,TD.Scanner=SD,TD.Context=CD,TD.Writer=wD;function DD(){TD.escape=e=>e}var OD=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},kD=(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=kD(r[4],e);n.push(...i)}}else n.push({type:`literal`,text:r[1]});return n},AD=e=>(DD(),kD(TD.parse(e))),jD=(e,t)=>OD(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},``),MD=(e,t)=>(DD(),TD.render(e,t)),ND={"f-string":jD,mustache:MD},PD={"f-string":OD,mustache:AD},FD=(e,t,n)=>{try{return ND[t](e,n)}catch(e){throw _(e,`INVALID_PROMPT_INPUT`)}},ID=(e,t)=>PD[t](e),LD=(e,t,n)=>{if(!(t in ND))throw Error(`Invalid template format. Got \`${t}\`;
|
|
167
|
+
should be one of ${Object.keys(ND)}`);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`)FD(e.text,t,r);else if(e.type===`image_url`){if(typeof e.image_url==`string`)FD(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;FD(n,t,r)}}else throw Error(`Invalid message template received. ${JSON.stringify(e,null,2)}`)}):FD(e,t,r)}catch(e){throw Error(`Invalid prompt schema: ${e.message}`)}},RD=class e extends eD{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))),LD(this.template,this.templateFormat,e)}}_getPromptType(){return`prompt`}async format(e){let t=await this.mergePartialAndUserVariables(e);return FD(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 ID(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})}},zD=class e extends $E{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))),LD([{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]=FD(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 qw(await this.format(e))}},BD=class extends Tx{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=VD(e.template,t);super({inputVariables:n,...e}),this.template=e.template,this.templateFormat=t,this.inputVariables=n}async format(e){return HD(this.template,e,this.templateFormat)}async invoke(e){return await this._callWithConfig(this.format.bind(this),e,{runType:`prompt`})}};function VD(e,t){let n=[];for(let r of Object.values(e))if(typeof r==`string`)ID(r,t).forEach(e=>{e.type===`variable`&&n.push(e.name)});else if(Array.isArray(r))for(let e of r)typeof e==`string`?ID(e,t).forEach(e=>{e.type===`variable`&&n.push(e.name)}):typeof e==`object`&&n.push(...VD(e,t));else typeof r==`object`&&r&&n.push(...VD(r,t));return Array.from(new Set(n))}function HD(e,t,n){let r={};for(let[i,a]of Object.entries(e))if(typeof a==`string`)r[i]=FD(a,n,t);else if(Array.isArray(a)){let e=[];for(let r of a)typeof r==`string`?e.push(FD(r,n,t)):typeof r==`object`&&e.push(HD(r,t,n));r[i]=e}else typeof a==`object`&&a?r[i]=HD(a,t,n):r[i]=a;return r}var UD=class extends Tx{lc_namespace=[`langchain_core`,`prompts`,`chat`];lc_serializable=!0;async invoke(e,t){return this._callWithConfig(e=>this.formatMessages(e),e,{...t,runType:`prompt`})}},WD=class extends UD{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(jn):[jn(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}},GD=class extends UD{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)]}},KD=class extends $E{constructor(e){super(e)}async format(e){return(await this.formatPromptValue(e)).toString()}async formatPromptValue(e){return new Kw(await this.formatMessages(e))}},qD=class extends GD{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 ln(await this.prompt.format(e),this.role)}static fromTemplate(e,t,n){return new this(RD.fromTemplate(e,{templateFormat:n?.templateFormat}),t)}};function JD(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.keys(e).length===1&&`text`in e&&typeof e.text==`string`}function YD(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 XD=class extends UD{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(RD.fromTemplate(e,t));let n=[];for(let r of e)if(typeof r==`string`)n.push(RD.fromTemplate(r,t));else if(r!==null)if(JD(r)){let e=``;typeof r.text==`string`&&(e=r.text??``);let i={...t,additionalContentFields:r};n.push(RD.fromTemplate(e,i))}else if(YD(r)){let e=r.image_url??``,i,a=[];if(typeof e==`string`){let n;n=t?.templateFormat===`mustache`?AD(e):OD(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 zD({template:e,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:r})}else if(typeof e==`object`){if(`url`in e){let n;n=t?.templateFormat===`mustache`?AD(e.url):OD(e.url),a=n.flatMap(e=>e.type===`variable`?[e.name]:[])}else a=[];i=new zD({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 BD({template:r,templateFormat:t?.templateFormat}));return new this({prompt:n,additionalOptions:t})}async format(e){if(this.prompt instanceof eD){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 eD){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 zD){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 BD){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)]}},ZD=class extends XD{static _messageClass(){return _n}static lc_name(){return`HumanMessagePromptTemplate`}},QD=class extends XD{static _messageClass(){return k}static lc_name(){return`AIMessagePromptTemplate`}},$D=class extends XD{static _messageClass(){return Sn}static lc_name(){return`SystemMessagePromptTemplate`}};function eO(e){return typeof e.formatMessages==`function`}function tO(e,t){if(eO(e)||St(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 WD({variableName:n.slice(2,-2),optional:!0});if(typeof n==`string`&&n[0]===`{`&&n[n.length-1]===`}`)return new WD({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=jn(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 ZD.fromTemplate(r,t);if(n._getType()===`ai`)return QD.fromTemplate(r,t);if(n._getType()===`system`)return $D.fromTemplate(r,t);if(ln.isInstance(n))return qD.fromTemplate(n.content,n.role,t);throw Error(`Could not coerce message prompt template from input. Received message type: "${n._getType()}".`)}function nO(e){return e.constructor.lc_name()===`MessagesPlaceholder`}var rO=class e extends KD{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 ct))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 RD.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 ct)n.push(await this._parseImagePrompts(e,t));else{let r;r=this.templateFormat===`mustache`?{...t}:e.inputVariables.reduce((n,r)=>{if(!(r in t)&&!(nO(e)&&e.optional))throw _(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 ZD({prompt:RD.fromTemplate(e,t)});return this.fromMessages([n])}static fromMessages(t,n){let r=t.reduce((t,r)=>t.concat(r instanceof e?r.promptMessages:[tO(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 ct))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})}},iO=class e extends eD{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))),LD(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 FD([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 RD.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})}},aO=class e extends KD{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))),LD(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 FD([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})}},oO=class e extends $E{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 rO?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 sO(e){return typeof e==`object`&&!!e&&`withStructuredOutput`in e&&typeof e.withStructuredOutput==`function`}function cO(e){return typeof e==`object`&&!!e&&`lc_id`in e&&Array.isArray(e.lc_id)&&e.lc_id.join(`/`)===`langchain_core/runnables/RunnableBinding`}var lO=class e extends rO{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(sO(e))return super.pipe(e.withStructuredOutput(this.schema));if(cO(e)&&sO(e.bound))return super.pipe(new Ex({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})}},uO=p({AIMessagePromptTemplate:()=>QD,BaseChatPromptTemplate:()=>KD,BaseMessagePromptTemplate:()=>UD,BaseMessageStringPromptTemplate:()=>GD,BasePromptTemplate:()=>$E,BaseStringPromptTemplate:()=>eD,ChatMessagePromptTemplate:()=>qD,ChatPromptTemplate:()=>rO,DEFAULT_FORMATTER_MAPPING:()=>ND,DEFAULT_PARSER_MAPPING:()=>PD,DictPromptTemplate:()=>BD,FewShotChatMessagePromptTemplate:()=>aO,FewShotPromptTemplate:()=>iO,HumanMessagePromptTemplate:()=>ZD,ImagePromptTemplate:()=>zD,MessagesPlaceholder:()=>WD,PipelinePromptTemplate:()=>oO,PromptTemplate:()=>RD,StructuredPrompt:()=>lO,SystemMessagePromptTemplate:()=>$D,checkValidTemplate:()=>LD,interpolateFString:()=>jD,interpolateMustache:()=>MD,parseFString:()=>OD,parseMustache:()=>AD,parseTemplate:()=>ID,renderTemplate:()=>FD}),dO=p({BaseDocumentCompressor:()=>fO}),fO=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}},pO=p({BaseRetriever:()=>mO}),mO=class extends Tx{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=eu(Fl(t)),r=await(await Hl.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}}},hO=p({BaseStore:()=>gO,InMemoryStore:()=>_O}),gO=class extends Ce{},_O=class extends gO{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)}},vO={and:`and`,or:`or`,not:`not`},yO={eq:`eq`,ne:`ne`,lt:`lt`,gt:`gt`,lte:`lte`,gte:`gte`},bO=class{},xO=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`)}},SO=class extends xO{},CO=class extends SO{exprName=`Comparison`;constructor(e,t,n){super(),this.comparator=e,this.attribute=t,this.value=n}},wO=class extends SO{exprName=`Operation`;constructor(e,t){super(),this.operator=e,this.args=t}},TO=class extends xO{exprName=`StructuredQuery`;constructor(e,t){super(),this.query=e,this.filter=t}};function EO(e){return e&&typeof e==`object`&&!Array.isArray(e)}function DO(e){return e?typeof e==`string`&&e.length>0||typeof e==`function`?!1:EO(e)&&Object.keys(e).length===0:!0}function OO(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 kO(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 AO(e){return typeof e==`string`&&(Number.isNaN(parseFloat(e))||parseFloat(e).toString()!==e)}function jO(e){return typeof e==`boolean`}function MO(e){let t;if(AO(e))t=e;else if(OO(e))t=parseInt(e,10);else if(kO(e))t=parseFloat(e);else if(jO(e))t=!!e;else throw Error(`Unsupported value type`);return t}var NO=class extends bO{},PO=class extends NO{allowedOperators;allowedComparators;constructor(e){super(),this.allowedOperators=e?.allowedOperators??[vO.and,vO.or],this.allowedComparators=e?.allowedComparators??[yO.eq,yO.ne,yO.gt,yO.gte,yO.lt,yO.lte]}formatFunction(e){if(e in yO){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 vO){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)]:MO(e.value)}}}visitStructuredQuery(e){let t={};return e.filter&&(t={filter:e.filter.accept(this)}),t}mergeFilters(e,t,n=`and`,r=!1){if(!(DO(e)&&DO(t))){if(DO(e)||n===`replace`)return DO(t)?void 0:t;if(DO(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`)}}},FO=class extends NO{allowedOperators=[vO.and,vO.or];allowedComparators=[yO.eq,yO.ne,yO.gt,yO.gte,yO.lt,yO.lte];formatFunction(){throw Error(`Not implemented`)}getAllowedComparatorsForType(e){switch(e){case`string`:return[yO.eq,yO.ne,yO.gt,yO.gte,yO.lt,yO.lte];case`number`:return[yO.eq,yO.ne,yO.gt,yO.gte,yO.lt,yO.lte];case`boolean`:return[yO.eq,yO.ne];default:throw Error(`Unsupported data type: ${e}`)}}getComparatorFunction(e){switch(e){case yO.eq:return(e,t)=>e===t;case yO.ne:return(e,t)=>e!==t;case yO.gt:return(e,t)=>e>t;case yO.gte:return(e,t)=>e>=t;case yO.lt:return(e,t)=>e<t;case yO.lte:return(e,t)=>e<=t;default:throw Error(`Unknown comparator`)}}getOperatorFunction(e){switch(e){case vO.and:return(e,t)=>e&&t;case vO.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=[yO.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,MO(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(!(DO(e)&&DO(t))){if(DO(e)||n===`replace`)return DO(t)?void 0:t;if(DO(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`)}}},IO=p({BaseTranslator:()=>NO,BasicTranslator:()=>PO,Comparators:()=>yO,Comparison:()=>CO,Expression:()=>xO,FilterDirective:()=>SO,FunctionalTranslator:()=>FO,Operation:()=>wO,Operators:()=>vO,StructuredQuery:()=>TO,Visitor:()=>bO,castValue:()=>MO,isBoolean:()=>jO,isFilterEmpty:()=>DO,isFloat:()=>kO,isInt:()=>OO,isObject:()=>EO,isString:()=>AO});function LO(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 RO(e,t,n){return e!=null&&Object.entries(t).every(([t,r])=>n(e[t],r))}function zO(e,t,n){return e!=null&&RO(e,t,n)}function BO(e){return e.content.find(e=>e.type===`text`)?.text}function VO(e,t,n){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&BO(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&&!zO(e.usage_metadata,t.usage,n)||t.responseMetadata!==void 0&&!RO(e.response_metadata,t.responseMetadata,n))}function HO(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 UO(e,t){return t?!e:e}async function WO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamText`;if(!LO(e))return HO(e,i,r);let a=await e.text;return{pass:UO(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 GO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamReasoning`;if(!LO(e))return HO(e,i,r);let a=await e.reasoning;return{pass:UO(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 KO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamToolCalls`;if(!LO(e))return HO(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=UO(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 qO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamUsage`;if(!LO(e))return HO(e,i,r);let a=await e.usage;return{pass:UO(zO(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 JO(e,t){let{isNot:n,utils:r}=this,i=`toHaveStreamOutput`;if(!LO(e))return HO(e,i,r);let a=await e.output;return{pass:UO(VO(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:BO(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 YO={toHaveStreamText:WO,toHaveStreamReasoning:GO,toHaveStreamToolCalls:KO,toHaveStreamUsage:qO,toHaveStreamOutput:JO};function XO(e){return ct.isInstance(e)?e.constructor.name||e.type:typeof e}function ZO(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: ${XO(n)}`,actual:XO(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 QO=ZO(`HumanMessage`,_n.isInstance),$O=ZO(`AIMessage`,k.isInstance),ek=ZO(`SystemMessage`,Sn.isInstance),tk=ZO(`ToolMessage`,Et.isInstance);function nk(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCalls`)}\n\nExpected: AIMessage\nReceived: ${XO(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 rk(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toHaveToolCallCount`)}\n\nExpected: AIMessage\nReceived: ${XO(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 ik(e,t){let{isNot:n,utils:r}=this;if(!k.isInstance(e))return{pass:!1,message:()=>`${r.matcherHint(`toContainToolCall`)}\n\nExpected: AIMessage\nReceived: ${XO(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 ak(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(Et.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 ok(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 sk(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 ck={toBeHumanMessage:QO,toBeAIMessage:$O,toBeSystemMessage:ek,toBeToolMessage:tk,toHaveToolCalls:nk,toHaveToolCallCount:rk,toContainToolCall:ik,toHaveToolMessages:ak,toHaveBeenInterrupted:ok,toHaveStructuredResponse:sk,...YO};function lk(e){return e.map(e=>e.text).filter(Boolean).join(`-`)}var uk=0;function dk(){return uk+=1,`fake_tc_${uk}`}var fk=class e extends OE{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}):ct.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??dk(),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 Nx.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(!ct.isInstance(t))throw t;return{generations:[{text:``,message:t}]}}if(i.kind===`message`)return{generations:[{text:``,message:i.message}]};let a=lk(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 pk(){return new fk}function mk(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function hk(e=`test-model`){let t=gk(e),n=t[t.length-1];return t[t.length-1]={...n,usage:{prompt_tokens:10,completion_tokens:2,total_tokens:12}},t}function gk(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 _k(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 vk(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 yk(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 bk=p({FakeBuiltModel:()=>fk,asAsyncIterable:()=>mk,fakeModel:()=>pk,langchainMatchers:()=>ck,openAIReasoningTextChunks:()=>_k,openAITextOnlyChunks:()=>gk,openAITextOnlyChunksWithUsage:()=>hk,openAIToolCallChunks:()=>vk,sseResponseFromOpenAIChunks:()=>yk,streamMatchers:()=>YO,toBeAIMessage:()=>$O,toBeHumanMessage:()=>QO,toBeSystemMessage:()=>ek,toBeToolMessage:()=>tk,toContainToolCall:()=>ik,toHaveBeenInterrupted:()=>ok,toHaveStructuredResponse:()=>sk,toHaveToolCallCount:()=>rk,toHaveToolCalls:()=>nk,toHaveToolMessages:()=>ak});function xk(e){return e!==void 0&&Array.isArray(e.lc_namespace)}function Sk(e){return e!==void 0&&Tx.isRunnable(e)&&`lc_name`in e.constructor&&typeof e.constructor.lc_name==`function`&&e.constructor.lc_name()===`RunnableToolLike`}function Ck(e){return!!e&&typeof e==`object`&&`name`in e&&`schema`in e&&(i_(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 wk(e){return Ck(e)||Sk(e)||xk(e)}var Tk=P(`ZodISODateTime`,(e,t)=>{Yp.init(e,t),Zk.init(e,t)});function Ek(e){return Eh(Tk,e)}var Dk=P(`ZodISODate`,(e,t)=>{Xp.init(e,t),Zk.init(e,t)});function Ok(e){return Dh(Dk,e)}var kk=P(`ZodISOTime`,(e,t)=>{Zp.init(e,t),Zk.init(e,t)});function Ak(e){return Oh(kk,e)}var jk=P(`ZodISODuration`,(e,t)=>{Qp.init(e,t),Zk.init(e,t)});function Mk(e){return kh(jk,e)}var Nk=P(`ZodError`,(e,t)=>{_f.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>bf(e,t)},flatten:{value:t=>yf(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Pd,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Pd,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Pk=Cf(Nk),Fk=Tf(Nk),Ik=Df(Nk),Lk=kf(Nk),Rk=jf(Nk),zk=Mf(Nk),Bk=Nf(Nk),Vk=Pf(Nk),Hk=Ff(Nk),Uk=If(Nk),Wk=Lf(Nk),Gk=Rf(Nk),Kk=new WeakMap;function qk(e,t,n){let r=Object.getPrototypeOf(e),i=Kk.get(r);if(i||(i=new Set,Kk.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 Jk=P(`ZodType`,(e,t)=>(Fp.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:pg(e,`input`),output:pg(e,`output`)}}),e.toJSONSchema=fg(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Pk(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Ik(e,t,n),e.parseAsync=async(t,n)=>Fk(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Lk(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Rk(e,t,n),e.decode=(t,n)=>zk(e,t,n),e.encodeAsync=async(t,n)=>Bk(e,t,n),e.decodeAsync=async(t,n)=>Vk(e,t,n),e.safeEncode=(t,n)=>Hk(e,t,n),e.safeDecode=(t,n)=>Uk(e,t,n),e.safeEncodeAsync=async(t,n)=>Wk(e,t,n),e.safeDecodeAsync=async(t,n)=>Gk(e,t,n),qk(e,`ZodType`,{check(...e){let t=this.def;return this.clone(Hd(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 Qd(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(mj(e,t))},superRefine(e,t){return this.check(hj(e,t))},overwrite(e){return this.check(Xh(e))},optional(){return YA(this)},exactOptional(){return ZA(this)},nullable(){return $A(this)},nullish(){return YA($A(this))},nonoptional(e){return aj(this,e)},array(){return AA(this)},or(e){return NA([this,e])},and(e){return LA(this,e)},transform(e){return lj(this,qA(e))},default(e){return tj(this,e)},prefault(e){return rj(this,e)},catch(e){return sj(this,e)},pipe(e){return lj(this,e)},readonly(){return dj(this)},describe(e){let t=this.clone();return nh.add(t,{description:e}),t},meta(...e){if(e.length===0)return nh.get(this);let t=this.clone();return nh.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 nh.get(e)?.description},configurable:!0}),e)),Yk=P(`_ZodString`,(e,t)=>{Ip.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hg(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,qk(e,`_ZodString`,{regex(...e){return this.check(Wh(...e))},includes(...e){return this.check(qh(...e))},startsWith(...e){return this.check(Jh(...e))},endsWith(...e){return this.check(Yh(...e))},min(...e){return this.check(Hh(...e))},max(...e){return this.check(Vh(...e))},length(...e){return this.check(Uh(...e))},nonempty(...e){return this.check(Hh(1,...e))},lowercase(e){return this.check(Gh(e))},uppercase(e){return this.check(Kh(e))},trim(){return this.check(Qh())},normalize(...e){return this.check(Zh(...e))},toLowerCase(){return this.check($h())},toUpperCase(){return this.check(eg())},slugify(){return this.check(tg())}})}),Xk=P(`ZodString`,(e,t)=>{Ip.init(e,t),Yk.init(e,t),e.email=t=>e.check(ih(Qk,t)),e.url=t=>e.check(uh(tA,t)),e.jwt=t=>e.check(Th(gA,t)),e.emoji=t=>e.check(dh(nA,t)),e.guid=t=>e.check(ah($k,t)),e.uuid=t=>e.check(oh(eA,t)),e.uuidv4=t=>e.check(sh(eA,t)),e.uuidv6=t=>e.check(ch(eA,t)),e.uuidv7=t=>e.check(lh(eA,t)),e.nanoid=t=>e.check(fh(rA,t)),e.guid=t=>e.check(ah($k,t)),e.cuid=t=>e.check(ph(iA,t)),e.cuid2=t=>e.check(mh(aA,t)),e.ulid=t=>e.check(hh(oA,t)),e.base64=t=>e.check(Sh(pA,t)),e.base64url=t=>e.check(Ch(mA,t)),e.xid=t=>e.check(gh(sA,t)),e.ksuid=t=>e.check(_h(cA,t)),e.ipv4=t=>e.check(vh(lA,t)),e.ipv6=t=>e.check(yh(uA,t)),e.cidrv4=t=>e.check(bh(dA,t)),e.cidrv6=t=>e.check(xh(fA,t)),e.e164=t=>e.check(wh(hA,t)),e.datetime=t=>e.check(Ek(t)),e.date=t=>e.check(Ok(t)),e.time=t=>e.check(Ak(t)),e.duration=t=>e.check(Mk(t))});function W(e){return rh(Xk,e)}var Zk=P(`ZodStringFormat`,(e,t)=>{Lp.init(e,t),Yk.init(e,t)}),Qk=P(`ZodEmail`,(e,t)=>{Bp.init(e,t),Zk.init(e,t)}),$k=P(`ZodGUID`,(e,t)=>{Rp.init(e,t),Zk.init(e,t)}),eA=P(`ZodUUID`,(e,t)=>{zp.init(e,t),Zk.init(e,t)}),tA=P(`ZodURL`,(e,t)=>{Vp.init(e,t),Zk.init(e,t)}),nA=P(`ZodEmoji`,(e,t)=>{Hp.init(e,t),Zk.init(e,t)}),rA=P(`ZodNanoID`,(e,t)=>{Up.init(e,t),Zk.init(e,t)}),iA=P(`ZodCUID`,(e,t)=>{Wp.init(e,t),Zk.init(e,t)}),aA=P(`ZodCUID2`,(e,t)=>{Gp.init(e,t),Zk.init(e,t)}),oA=P(`ZodULID`,(e,t)=>{Kp.init(e,t),Zk.init(e,t)}),sA=P(`ZodXID`,(e,t)=>{qp.init(e,t),Zk.init(e,t)}),cA=P(`ZodKSUID`,(e,t)=>{Jp.init(e,t),Zk.init(e,t)}),lA=P(`ZodIPv4`,(e,t)=>{$p.init(e,t),Zk.init(e,t)}),uA=P(`ZodIPv6`,(e,t)=>{em.init(e,t),Zk.init(e,t)}),dA=P(`ZodCIDRv4`,(e,t)=>{tm.init(e,t),Zk.init(e,t)}),fA=P(`ZodCIDRv6`,(e,t)=>{nm.init(e,t),Zk.init(e,t)}),pA=P(`ZodBase64`,(e,t)=>{im.init(e,t),Zk.init(e,t)}),mA=P(`ZodBase64URL`,(e,t)=>{om.init(e,t),Zk.init(e,t)}),hA=P(`ZodE164`,(e,t)=>{sm.init(e,t),Zk.init(e,t)}),gA=P(`ZodJWT`,(e,t)=>{lm.init(e,t),Zk.init(e,t)}),_A=P(`ZodNumber`,(e,t)=>{um.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gg(e,t,n,r),qk(e,`ZodNumber`,{gt(e,t){return this.check(Rh(e,t))},gte(e,t){return this.check(zh(e,t))},min(e,t){return this.check(zh(e,t))},lt(e,t){return this.check(Ih(e,t))},lte(e,t){return this.check(Lh(e,t))},max(e,t){return this.check(Lh(e,t))},int(e){return this.check(bA(e))},safe(e){return this.check(bA(e))},positive(e){return this.check(Rh(0,e))},nonnegative(e){return this.check(zh(0,e))},negative(e){return this.check(Ih(0,e))},nonpositive(e){return this.check(Lh(0,e))},multipleOf(e,t){return this.check(Bh(e,t))},step(e,t){return this.check(Bh(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 vA(e){return Ah(_A,e)}var yA=P(`ZodNumberFormat`,(e,t)=>{dm.init(e,t),_A.init(e,t)});function bA(e){return jh(yA,e)}var xA=P(`ZodBoolean`,(e,t)=>{fm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_g(e,t,n,r)});function SA(e){return Mh(xA,e)}var CA=P(`ZodAny`,(e,t)=>{pm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function wA(){return Nh(CA)}var TA=P(`ZodUnknown`,(e,t)=>{mm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function EA(){return Ph(TA)}var DA=P(`ZodNever`,(e,t)=>{hm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cg(e,t,n,r)});function OA(e){return Fh(DA,e)}var kA=P(`ZodArray`,(e,t)=>{_m.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Rg(e,t,n,r),e.element=t.element,qk(e,`ZodArray`,{min(e,t){return this.check(Hh(e,t))},nonempty(e){return this.check(Hh(1,e))},max(e,t){return this.check(Vh(e,t))},length(e,t){return this.check(Uh(e,t))},unwrap(){return this.element}})});function AA(e,t){return ng(kA,e,t)}var jA=P(`ZodObject`,(e,t)=>{Sm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zg(e,t,n,r),Bd(e,`shape`,()=>t.shape),qk(e,`ZodObject`,{keyof(){return UA(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:EA()})},loose(){return this.clone({...this._zod.def,catchall:EA()})},strict(){return this.clone({...this._zod.def,catchall:OA()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return rf(this,e)},safeExtend(e){return af(this,e)},merge(e){return of(this,e)},pick(e){return tf(this,e)},omit(e){return nf(this,e)},partial(...e){return sf(JA,this,e[0])},required(...e){return cf(ij,this,e[0])}})});function G(e,t){return new jA({type:`object`,shape:e??{},...F(t)})}var MA=P(`ZodUnion`,(e,t)=>{wm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bg(e,t,n,r),e.options=t.options});function NA(e,t){return new MA({type:`union`,options:e,...F(t)})}var PA=P(`ZodDiscriminatedUnion`,(e,t)=>{MA.init(e,t),Tm.init(e,t)});function FA(e,t,n){return new PA({type:`union`,options:t,discriminator:e,...F(n)})}var IA=P(`ZodIntersection`,(e,t)=>{Em.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vg(e,t,n,r)});function LA(e,t){return new IA({type:`intersection`,left:e,right:t})}var RA=P(`ZodTuple`,(e,t)=>{km.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hg(e,t,n,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function zA(e,t,n){let r=t instanceof Fp;return new RA({type:`tuple`,items:e,rest:r?t:null,...F(r?n:t)})}var BA=P(`ZodRecord`,(e,t)=>{Nm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ug(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function VA(e,t,n){return!t||!t._zod?new BA({type:`record`,keyType:W(),valueType:e,...F(t)}):new BA({type:`record`,keyType:e,valueType:t,...F(n)})}var HA=P(`ZodEnum`,(e,t)=>{Pm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Dg(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 HA({...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 HA({...t,checks:[],...F(r),entries:i})}});function UA(e,t){return new HA({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...F(t)})}var WA=P(`ZodLiteral`,(e,t)=>{Fm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Og(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 GA(e,t){return new WA({type:`literal`,values:Array.isArray(e)?e:[e],...F(t)})}var KA=P(`ZodTransform`,(e,t)=>{Im.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fg(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ad(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(hf(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(hf(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 qA(e){return new KA({type:`transform`,transform:e})}var JA=P(`ZodOptional`,(e,t)=>{Rm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function YA(e){return new JA({type:`optional`,innerType:e})}var XA=P(`ZodExactOptional`,(e,t)=>{zm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ZA(e){return new XA({type:`optional`,innerType:e})}var QA=P(`ZodNullable`,(e,t)=>{Bm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function $A(e){return new QA({type:`nullable`,innerType:e})}var ej=P(`ZodDefault`,(e,t)=>{Vm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function tj(e,t){return new ej({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Yd(t)}})}var nj=P(`ZodPrefault`,(e,t)=>{Um.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function rj(e,t){return new nj({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Yd(t)}})}var ij=P(`ZodNonOptional`,(e,t)=>{Wm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function aj(e,t){return new ij({type:`nonoptional`,innerType:e,...F(t)})}var oj=P(`ZodCatch`,(e,t)=>{Km.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function sj(e,t){return new oj({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var cj=P(`ZodPipe`,(e,t)=>{qm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yg(e,t,n,r),e.in=t.in,e.out=t.out});function lj(e,t){return new cj({type:`pipe`,in:e,out:t})}var uj=P(`ZodReadonly`,(e,t)=>{Ym.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xg(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function dj(e){return new uj({type:`readonly`,innerType:e})}var fj=P(`ZodCustom`,(e,t)=>{Zm.init(e,t),Jk.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ng(e,t,n,r)});function pj(e,t){return rg(fj,e??(()=>!0),t)}function mj(e,t={}){return ig(fj,e,t)}function hj(e,t){return ag(e,t)}var gj=p({BaseToolkit:()=>xj,DynamicStructuredTool:()=>bj,DynamicTool:()=>yj,StructuredTool:()=>_j,Tool:()=>vj,ToolInputParsingException:()=>C,isLangChainTool:()=>wk,isRunnableToolLike:()=>Sk,isStructuredTool:()=>xk,isStructuredToolParams:()=>Ck,tool:()=>Sj}),_j=class extends gT{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=eu($l(this.defaultConfig,t));return S(e)?(n=e.args,r={...r,toolCall:e}):n=e,this.call(n,r)}async call(e,t,n){let r=S(e)?e.args:e,i;if(i_(this.schema))try{i=await l_(this.schema,r)}catch(t){let n=`Received tool input did not match expected schema`;throw this.verboseParsingErrors&&(n=`${n}\nDetails: ${t.message}`),M_(t)&&(n=`${n}\n\n${Sf(t)}`),new C(n,JSON.stringify(e))}else{let t=ix(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 C(n,JSON.stringify(e))}i=r}let a=Fl(t),o=Hl.configure(a.callbacks,this.callbacks,a.tags||n,this.tags,a.metadata,this.metadata,{verbose:this.verbose}),s;S(e)&&(s=e.id),!s&&ee(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=bx(e)?await xx(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=wj({content:u,artifact:d,toolCallId:s,name:this.name,metadata:this.metadata});return await c?.handleToolEnd(f),f}},vj=class extends _j{schema=Cy({input:xy().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)}},yj=class extends vj{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=Fl(t);return n.runName===void 0&&(n.runName=this.name),super.call(e,n)}_call(e,t,n){return this.func(e,t,n)}},bj=class extends _j{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=Fl(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)}},xj=class{getTools(){return this.tools}};function Sj(e,t){let n=m_(t.schema),r=lx(t.schema);if(!t.schema||n||r)return new yj({...t,description:t.description??t.schema?.description??`${t.name} tool`,func:async(t,n,r)=>new Promise((i,a)=>{let o=tu(r,{callbacks:n?.getChild()});ql.runWithConfig(nu(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 bj({...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(iu(r.signal))},r.signal.addEventListener(`abort`,o,{once:!0}));let c=tu(r,{callbacks:n?.getChild()});ql.runWithConfig(nu(c),async()=>{try{let n=await e(t,c);if(bx(n)){i(n);return}if(r?.signal?.aborted){s();return}s(),i(n)}catch(e){s(),a(e)}})})})}function Cj(e){return typeof e==`object`&&!!e&&`type`in e}function wj(e){let{content:t,artifact:n,toolCallId:r,metadata:i}=e;return r&&!Tt(t)?typeof t==`string`||Array.isArray(t)&&t.every(Cj)?new Et({status:`success`,content:t,artifact:n,tool_call_id:r,name:e.name,metadata:i}):new Et({status:`success`,content:Tj(t),artifact:n,tool_call_id:r,name:e.name,metadata:i}):t}function Tj(e){try{return JSON.stringify(e)??``}catch{return`${e}`}}var Ej=p({RunCollectorCallbackHandler:()=>Dj}),Dj=class extends Qc{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)}},Oj=p({}),kj=p({chunkArray:()=>Aj}),Aj=(e,t)=>e.reduce((e,n,r)=>{let i=Math.floor(r/t);return e[i]=(e[i]||[]).concat([n]),e},[]),jj=p({context:()=>Mj});function Mj(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=Nj(t[e],r);r+=typeof n==`string`?n:JSON.stringify(n)}}return r=Pj(r),r=r.trim(),r=r.replace(/\\n/g,`
|
|
179
|
+
`),r}function Nj(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 Pj(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 Fj=p({EventStreamContentType:()=>Ij,convertEventStreamToIterableReadableDataStream:()=>Hj,getBytes:()=>Lj,getLines:()=>Rj,getMessages:()=>zj}),Ij=`text/event-stream`;async function Lj(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 Rj(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=Bj(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 zj(e,t,n){let r=Vj(),i=new TextDecoder;return function(a,o,s){if(s){Uj(r)||(e?.(r),r=Vj());return}if(a.length===0)e?.(r),r=Vj();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 Bj(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Vj(){return{data:``,event:``,id:``,retry:void 0}}function Hj(e,t){let n=new ReadableStream({async start(n){let r=zj(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 Lj(e,Rj((e,t,i)=>{r(e,t,i),i&&n.close()}))}});return ou.fromReadableStream(n)}function Uj(e){return e.data===``&&e.event===``&&e.id===``&&e.retry===void 0}var Wj=p({}),Gj=p({convertToOpenAIFunction:()=>Kj,convertToOpenAITool:()=>qj,isLangChainTool:()=>wk,isRunnableToolLike:()=>Sk,isStructuredTool:()=>xk,isStructuredToolParams:()=>Ck});function Kj(e,t){let n=typeof t==`number`?void 0:t;return{name:e.name,description:e.description,parameters:cx(e.schema),...n?.strict===void 0?{}:{strict:n.strict}}}function qj(e,t){let n=typeof t==`number`?void 0:t,r;return r=wk(e)?{type:`function`,function:Kj(e)}:e,n?.strict!==void 0&&(r.function.strict=n.strict),r}function Jj(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 Yj(e,t){let n=0;for(let r=0;r<e.length;r++)n+=e[r]*t[r];return n}function Xj(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 Zj(e,t){return Math.sqrt(Xj(e,t))}var Qj=p({cosineSimilarity:()=>tM,euclideanDistance:()=>rM,innerProduct:()=>nM,matrixFunc:()=>$j,maximalMarginalRelevance:()=>iM,normalize:()=>eM});function $j(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 eM(e,t=!1){let n=oM(e);return e.map(e=>e.map(e=>t?1-e/n:e/n))}function tM(e,t){return $j(e,t,Jj)}function nM(e,t){return $j(e,t,Yj)}function rM(e,t){return $j(e,t,Zj)}function iM(e,t,n=.5,r=4){if(Math.min(r,t.length)<=0)return[];let i=tM(Array.isArray(e[0])?e:[e],t)[0],a=aM(i).maxIndex,o=[t[a]],s=[a];for(;s.length<Math.min(r,t.length);){let e=-1/0,r=-1,a=tM(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 aM(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 oM(e){return e.reduce((e,t)=>Math.max(e,aM(t).maxValue),0)}var sM=p({isCloudMetadata:()=>xM,isLocalhost:()=>SM,isPrivateIp:()=>bM,isSafeUrl:()=>wM,isSameOrigin:()=>TM,validateSafeUrl:()=>CM}),cM=[`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`],lM=[`169.254.169.254`,`169.254.170.2`,`100.100.100.200`],uM=[`metadata.google.internal`,`metadata`,`instance-data`],dM=[`localhost`,`localhost.localdomain`],fM=/^(?:(?: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 pM(e){return fM.test(e)}function mM(e){return _M(e)!==null}function hM(e){return pM(e)||mM(e)}function gM(e){if(pM(e))return e.split(`.`).map(e=>parseInt(e,10));if(mM(e)){let t=_M(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 _M(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 vM(e){let[t,n]=e.split(`/`);if(!t||!n)return null;let r=gM(t);if(!r)return null;let i=parseInt(n,10);if(isNaN(i))return null;let a=mM(t);return a&&i>128||!a&&i>32?null:{addr:r,prefixLen:i,isIpv6:a}}function yM(e,t){let n=gM(e);if(!n)return!1;let r=vM(t);if(!r)return!1;let i=mM(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 bM(e){if(!hM(e))return!1;for(let t of cM)if(yM(e,t))return!0;return!1}function xM(e,t){if(lM.includes(t||``))return!0;let n=e.toLowerCase();return!!uM.includes(n)}function SM(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!!dM.includes(n)}function CM(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(xM(i))throw Error(`URL points to cloud metadata endpoint: ${i}`);if(SM(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(hM(i)){let t=i;if(SM(i,t)){if(!n)throw Error(`URL points to localhost: ${i}`);return e}if(xM(i,t))throw Error(`URL resolves to cloud metadata IP: ${t} (${i})`);if(bM(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 wM(e,t){try{return CM(e,t),!0}catch{return!1}}function TM(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var EM=p({SaveableVectorStore:()=>kM,VectorStore:()=>OM,VectorStoreRetriever:()=>DM}),DM=class extends mO{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)}},OM=class extends Ce{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 DM({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 DM({...t,searchKwargs:e.searchKwargs}):new DM({...t})}}},kM=class extends OM{static load(e,t){throw Error(`Not implemented`)}},AM=class extends OE{_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:{}}}},jM=class e extends OE{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:cx(e.schema)}};case`anthropic`:return{name:e.name,description:e.description,input_schema:cx(e.schema)};case`bedrock`:return{toolSpec:{name:e.name,description:e.description,inputSchema:cx(e.schema)}};case`google`:return{name:e.name,description:e.description,parameters:cx(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 Ku({message:new cn({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 Ku({message:new cn({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})}}},MM=class e extends OE{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 Ku({message:new cn({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:cx(e.schema)}};case`anthropic`:return{name:e.name,description:e.description,input_schema:cx(e.schema)};case`bedrock`:return{toolSpec:{name:e.name,description:e.description,inputSchema:cx(e.schema)}};case`google`:return{name:e.name,description:e.description,parameters:cx(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 Nx.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`)})}},NM=class extends Cw{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})}},PM=class extends Cw{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},FM=class extends BE{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}},IM=class extends BE{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)}},LM=class extends uw{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 _n(e))}async addAIMessage(e){this.messages.push(new k(e))}async clear(){this.messages=[]}},RM=class extends dw{lc_namespace=[`langchain_core`,`message`,`fake`];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},zM=class extends Qc{name=`fake_tracer`;runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}},BM=class extends bT{lc_namespace=[`tests`,`fake`];getFormatInstructions(){return``}async parse(e){return e.split(`,`).map(e=>e.trim())}},VM=class extends mO{lc_namespace=[`test`,`fake`];output=[new pw({pageContent:`foo`}),new pw({pageContent:`bar`})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},HM=class extends Tx{lc_namespace=[`tests`,`fake`];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},UM=class extends _j{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)}},WM=class extends Qc{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}},GM=class e extends OM{memoryVectors=[];similarity;_vectorstoreType(){return`memory`}constructor(e,{similarity:t,...n}={}){super(e,n),this.similarity=t??Jj}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 pw({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 pw({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 pw({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)}},KM=p({FakeChatMessageHistory:()=>LM,FakeChatModel:()=>AM,FakeEmbeddings:()=>PM,FakeLLM:()=>FM,FakeListChatMessageHistory:()=>RM,FakeListChatModel:()=>MM,FakeRetriever:()=>VM,FakeRunnable:()=>HM,FakeSplitIntoListParser:()=>BM,FakeStreamingChatModel:()=>jM,FakeStreamingLLM:()=>IM,FakeTool:()=>UM,FakeTracer:()=>zM,FakeVectorStore:()=>GM,SingleRunExtractor:()=>WM,SyntheticEmbeddings:()=>NM,asAsyncIterable:()=>mk,openAIReasoningTextChunks:()=>_k,openAITextOnlyChunks:()=>gk,openAITextOnlyChunksWithUsage:()=>hk,openAIToolCallChunks:()=>vk,sseResponseFromOpenAIChunks:()=>yk,streamMatchers:()=>YO}),qM=p({agents:()=>JC,caches:()=>nw,callbacks__base:()=>Br,callbacks__manager:()=>Pl,callbacks__promises:()=>kl,chat_history:()=>lw,document_loaders__base:()=>_w,document_loaders__langsmith:()=>yw,documents:()=>gw,embeddings:()=>Sw,errors:()=>g,example_selectors:()=>Nw,index:()=>qC,indexing:()=>Hw,language_models__base:()=>lT,language_models__chat_models:()=>EE,language_models__compat:()=>pE,language_models__event:()=>LE,language_models__llms:()=>RE,language_models__openai_completions_stream:()=>AE,language_models__profile:()=>VE,language_models__stream:()=>$T,language_models__structured_output:()=>YT,load__serializable:()=>ye,memory:()=>HE,messages:()=>oS,messages__tool:()=>wt,output_parsers:()=>HT,output_parsers__openai_functions:()=>ZE,output_parsers__openai_tools:()=>QE,outputs:()=>Uu,prompt_values:()=>Uw,prompts:()=>uO,retrievers:()=>pO,retrievers__document_compressors:()=>dO,runnables:()=>cS,runnables__graph:()=>ux,singletons:()=>Jl,stores:()=>hO,structured_query:()=>IO,testing:()=>bk,tools:()=>gj,tracers__base:()=>qc,tracers__console:()=>$c,tracers__log_stream:()=>Fu,tracers__run_collector:()=>Ej,tracers__tracer_langchain:()=>hl,types__stream:()=>Oj,utils__async_caller:()=>sd,utils__chunk_array:()=>kj,utils__context:()=>jj,utils__env:()=>Ar,utils__event_source_parse:()=>Fj,utils__format:()=>Wj,utils__function_calling:()=>Gj,utils__hash:()=>tw,utils__json_patch:()=>vT,utils__json_schema:()=>ox,utils__math:()=>Qj,utils__ssrf:()=>sM,utils__standard_schema:()=>vb,utils__stream:()=>au,utils__testing:()=>KM,utils__tiktoken:()=>iT,utils__types:()=>UT,utils__uuid:()=>vr,vectorstores:()=>EM}),JM=50;function YM(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 XM(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)=>XM.call({...this,path:[...o,`${t}`],depth:s+1},e)));let u=e;if(me(u))return ve(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=zr(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:qM,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(KC.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`&&Se(e)===a);if(typeof g!=`function`)throw Error(`Invalid identifer: ${l} -> ${i}`);let _=new g(ue(await XM.call({...this,path:[...o,`kwargs`],depth:s+1},e.kwargs),le,YM(g)));return Object.defineProperty(_.constructor,"name",{value:a}),_}let d={};for(let[e,t]of Object.entries(u))d[e]=await XM.call({...this,path:[...o,e],depth:s+1},t);return d}async function ZM(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??JM};return XM.call(r,n)}function QM(e){return e!==null&&e.lc===1&&e.type===`constructor`&&Array.isArray(e.id)}async function $M(e){if(e&&typeof e==`object`){if(Array.isArray(e))return await Promise.all(e.map(e=>$M(e)));{let t={};for(let[n,r]of Object.entries(e))t[n]=await $M(r);if(t.lc===2&&t.type===`undefined`)return;if(t.lc===2&&t.type===`delta_snapshot`)return new FC(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(QM(t))return ZM(JSON.stringify(t));return t}}return e}function eN(e,t,n,r){return{lc:2,type:`constructor`,id:[e.name],method:t??null,args:n??[],kwargs:r??{}}}function tN(e){return e===void 0?{lc:2,type:`undefined`}:e instanceof FC?{lc:2,type:`delta_snapshot`,value:e.value}:e instanceof Set||e instanceof Map?eN(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?eN(RegExp,void 0,[e.source,e.flags]):e instanceof Error?eN(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?eN(Uint8Array,`from`,[Array.from(e)]):e}var nN=class{_dumps(e){return new TextEncoder().encode(HC(e,(e,t)=>tN(t)))}async dumpsTyped(e){return e instanceof Uint8Array?[`bytes`,e]:[`json`,this._dumps(e)]}async _loads(e){return $M(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 rN(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]=rN(e[n]));return t}function iN(){return{v:4,id:kC(0),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function aN(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values??{}},channel_versions:{...e.channel_versions??{}},versions_seen:rN(e.versions_seen??{})}}function oN(e,t){return typeof e==`number`&&typeof t==`number`?Math.sign(e-t):String(e).localeCompare(String(t))}function sN(...e){return e.reduce((e,t,n)=>n===0?t:oN(e,t)>=0?e:t)}var cN={[jC]:-1,[MC]:-2,[NC]:-3,[PC]:-4},lN=new Set([`thread_id`,`checkpoint_id`,`checkpoint_ns`,`checkpoint_map`,`langgraph_step`,`langgraph_node`,`langgraph_triggers`,`langgraph_path`,`langgraph_checkpoint_ns`]),uN=class extends Error{constructor(e){super(e),this.name=`InvalidNamespaceError`}};function dN(e){if(e.length===0)throw new uN(`Namespace cannot be empty.`);for(let t of e){if(typeof t!=`string`)throw new uN(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes(`.`))throw new uN(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t===``)throw new uN(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]===`langgraph`)throw new uN(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var fN=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){dN(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(){}},pN=e=>`lg_name`in e&&e.lg_name===`AsyncBatchedStore`?e.store:e,mN=class extends fN{lg_name=`AsyncBatchedStore`;store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=pN(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]`}}},hN=class{serde=new nN;constructor(e){this.serde=e||this.serde}},gN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function _N(e){return e!=null&&e.lc_graph_name===`DeltaChannel`}function vN(e){return e!=null&&e.lg_is_channel===!0}var yN=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===CC.unminifiable_name)return!1;throw e}}equals(e){return this===e}},bN=Symbol.for(`LG_IS_ONLY_BASE_CHANNEL`);function xN(e){if(e[bN]===!0)return e;let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];vN(r)&&(t[n]=r)}return Object.assign(t,{[bN]:!0}),t}function SN(e,t){let n=xN(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,{[bN]:!0}),r}function CN(e,t){if(!gN.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 wN(e,t){let n=new Set,r=_S();for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;let a=e[i];if(!_N(a)||!a.isAvailable())continue;let[o,s]=t[i]??[0,0];(o>=a.snapshotFrequency||s>=r)&&n.add(i)}return n}function TN(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 FC(n.get());continue}if(!_N(n))try{s[e]=n.checkpoint()}catch(e){if(e.name!==CC.unminifiable_name)throw e}}}return{v:4,id:r?.id??kC(n),ts:new Date().toISOString(),channel_values:s,channel_versions:c,versions_seen:e.versions_seen}}async function EN(e,t,n){let r=SN(e,t),{saver:i,config:a}=n??{},o=xN(e),s=[];for(let e in o)Object.prototype.hasOwnProperty.call(o,e)&&_N(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 DN=class e extends yN{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 wC(`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 CC;return this.value[0]}checkpoint(){if(this.value.length===0)throw new CC;return this.value[0]}isAvailable(){return this.value.length!==0}},ON=class e extends yN{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 CC;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}},kN=e=>e!=null&&e.lc_graph_name===`BinaryOperatorAggregate`,AN=class e extends yN{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]=tC(e);n?this.value=r:this.value=e,t=t.slice(1)}let n=!1;for(let e of t)if(nC(e)){if(n)throw new wC(`Can receive only one Overwrite value per step.`);let[,t]=tC(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 CC;return this.value}checkpoint(){if(this.value===void 0)throw new CC;return this.value}isAvailable(){return this.value!==void 0}equals(e){return this===e?!0:kN(e)?this.operator===e.operator:!1}},jN=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`}},MN=function(e){return e?NN(e):new DN};MN.Root=e=>new jN(e);function NN(e){return typeof e==`object`&&e&&`reducer`in e&&e.reducer?new AN(e.reducer,e.default):typeof e==`object`&&e&&`value`in e&&e.value?new AN(e.value,e.default):new DN}var PN=[`tags`,`metadata`,`callbacks`,`configurable`],FN=[`tags`,`metadata`,`callbacks`,`runName`,`maxConcurrency`,`recursionLimit`,`configurable`,`runId`,`outputKeys`,`streamMode`,`store`,`writer`,`interrupt`,`context`,`interruptBefore`,`interruptAfter`,`checkpointDuring`,`durability`,`signal`,`heartbeat`,`executionInfo`,`serverInfo`,`control`],IN=25,LN=new Set([`thread_id`,`checkpoint_id`,`checkpoint_ns`,`task_id`,`run_id`,`assistant_id`,`graph_id`]);function RN(e,t){if(!e)return t;let n=t??{};for(let t of LN){if(t in n)continue;let r=e[t];r!==void 0&&(n[t]=r)}return n}function zN(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 BN(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(Ul(e),!0);return n}if(Array.isArray(e)){let n=t.copy();for(let t of e)n.addHandler(Ul(t),!0);return n}return new Hl(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 VN(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?.[bS]!==void 0),i=ql.getRunnableConfig()?.configurable?.[bS]!==void 0;return n&&!r&&!i}function HN(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:IN,configurable:{}},n=VN(e),r=ql.getRunnableConfig();if(r!==void 0){for(let[e,i]of Object.entries(r))if(i!==void 0){if(e===`configurable`&&n)continue;if(PN.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||!FN.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=BN(t.callbacks,r):t[e]=r);return t.metadata=RN(t.configurable,t.metadata)??{},t}function UN(){return ql.getRunnableConfig()}function WN(e){return e.split(`|`).filter(e=>!e.match(/^\d+$/)).map(e=>e.split(`:`)[0]).join(`|`)}function GN(e){let t=e.split(`|`);for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join(`|`)}var KN=class extends Tx{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=tu(t,{callbacks:n?.getChild()});ql.runWithConfig(a,async()=>{try{r(await this.func(e,a))}catch(e){i(e)}})})}async invoke(e,t){let n,r=HN(t),i=$l(this.config,r);return n=this.trace?await this._callWithConfig(this._tracedInvoke,e,i):await ql.runWithConfig(i,async()=>this.func(e,i)),Tx.isRunnable(n)&&this.recurse?await ql.runWithConfig(i,async()=>n.invoke(e,i)):n}};function*qN(e,t){if(t===void 0)yield*e;else for(let n of e)yield[t,n]}async function JN(e){let t=[];for await(let n of await e)t.push(n);return t}function YN(e){let t=[];for(let n of e)t.push(n);return t}function XN(e,t){return e?`configurable`in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function ZN(e){return typeof e==`object`&&e?.[Symbol.for(`LG_SKIP_WRITE`)]!==void 0}var QN={[Symbol.for(`LG_PASSTHROUGH`)]:!0};function $N(e){return typeof e==`object`&&e?.[Symbol.for(`LG_PASSTHROUGH`)]!==void 0}var eP=Symbol(`IS_WRITER`),tP=class e extends KN{writes;constructor(e,t){let n=`ChannelWrite<${e.map(e=>$S(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=>rP(e)&&$N(e.value)?{mapper:e.mapper,value:t}:nP(e)&&$N(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(nP(e)){if(e.channel===`__pregel_tasks`)throw new wC(`Cannot write to the reserved channel TASKS`);if($N(e.value))throw new wC(`PASSTHROUGH value must be replaced`)}if(rP(e)&&$N(e.value))throw new wC(`PASSTHROUGH value must be replaced`)}let n=[];for(let r of t)if($S(r))n.push([WS,r]);else if(rP(r)){let t=await r.mapper.invoke(r.value,e);t!=null&&t.length>0&&n.push(...t)}else if(nP(r)){let t=r.mapper===void 0?r.value:await r.mapper.invoke(r.value,e);if(ZN(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?.[vS];r(n)}static isWriter(t){return t instanceof e||eP in t&&!!t[eP]}static registerWriter(e){return Object.defineProperty(e,eP,{value:!0})}};function nP(e){return e!==void 0&&typeof e.channel==`string`}function rP(e){return e!==void 0&&!nP(e)&&Tx.isRunnable(e.mapper)}var iP=class e extends KN{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?.[bS];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)}},aP=new Vx,oP=class e extends Ex{lc_graph_name=`PregelNode`;channels;triggers=[];mapper;writers=[];bound=aP;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??aP,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 tP&&e[e.length-2]instanceof tP;){let t=e.slice(-2),n=t[0].writes.concat(t[1].writes);e[e.length-2]=new tP(n,t[0].config?.tags),e.pop()}return e}getNode(){let e=this.getWriters();if(!(this.bound===aP&&e.length===0))return this.bound===aP&&e.length===1?e[0]:this.bound===aP?new kx({first:e[0],middle:e.slice(1,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):e.length>0?new kx({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 tP.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===aP?new e({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:Ix(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 sP(e){let t=typeof e[dS];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 cP(e,t){if(Object.keys(e).length>0){let n=sP(t);return Object.fromEntries(Object.entries(t).filter(([t,r])=>r>(e[t]??n)))}else return t}function lP(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e==`object`?e:{[t]:e}}function uP(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function dP(e,t){let n=t?.parents??{};return Object.keys(n).length>0?uP(e,{[PS]:{...n,[e.configurable?.checkpoint_ns??``]:e.configurable?.checkpoint_id}}):e}function fP(...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 pP(e){return`steps`in e&&Array.isArray(e.steps)}function mP(e){return`lg_is_pregel`in e&&e.lg_is_pregel===!0}function hP(e){let t=[e];for(let e of t)if(mP(e))return e;else pP(e)&&t.push(...e.steps)}var gP=class e extends yN{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 wC(`EphemeralValue can only receive one value per step.`);return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new CC;return this.value[0]}checkpoint(){if(this.value.length===0)throw new CC;return this.value[0]}isAvailable(){return this.value.length!==0}},_P=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),vP=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),yP=K(`0x9E3779B1`),bP=K(`0x85EBCA77`),xP=K(`0xC2B2AE3D`),SP=K(`0x9E3779B185EBCA87`),CP=K(`0xC2B2AE3D27D4EB4F`),wP=K(`0x165667B19E3779F9`),TP=K(`0x85EBCA77C2B2AE63`),EP=K(`0x27D4EB2F165667C5`),DP=K(`0x165667919E3779F9`),OP=K(`0x9FB21C651E98DF25`),kP=(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 vP(r)})(`b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e`),AP=(K(1)<<K(128))-K(1),jP=(K(1)<<K(64))-K(1),MP=(K(1)<<K(32))-K(1),NP=64,PP=NP/8,FP=8,IP=4;function LP(e){if(!e)throw Error(`Assert failed`)}function RP(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function zP(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 BP(e,t){return(e&MP)*(t&MP)&jP}function VP(e,t){return(e<<t|e>>K(32)-t)&MP}function HP(e,t,n){for(let r=0;r<PP;r+=1){let i=t.getBigUint64(r*8,!0),a=i^n.getBigUint64(r*8,!0);e[r^1]+=i,e[r]+=BP(a,a>>K(32))}return e}function UP(e,t,n,r){for(let i=0;i<r;i+=1)HP(e,vP(t,i*NP),vP(n,i*8));return e}function WP(e,t){for(let n=0;n<PP;n+=1){let r=t.getBigUint64(n*8,!0),i=e[n];i=tF(i,K(47)),i^=r,i*=yP,e[n]=i&jP}return e}function GP(e,t){return YP(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(FP,!0))}function KP(e,t,n){let r=n;return r+=GP(e.slice(0),vP(t,0*IP)),r+=GP(e.slice(2),vP(t,4*IP)),r+=GP(e.slice(4),vP(t,8*IP)),r+=GP(e.slice(6),vP(t,12*IP)),QP(r&jP)}function qP(e,t,n,r,i){let a=e,o=Math.floor((n.byteLength-NP)/8),s=NP*o,c=Math.floor((t.byteLength-1)/s);for(let e=0;e<c;e+=1)a=UP(a,vP(t,e*s),n,o),a=i(a,vP(n,n.byteLength-NP));{let e=Math.floor((t.byteLength-1-s*c)/NP);a=UP(a,vP(t,c*s),n,e),a=r(a,vP(t,t.byteLength-NP),vP(n,n.byteLength-NP-7))}return a}function JP(e,t){let n=new BigUint64Array([xP,SP,CP,wP,TP,bP,EP,yP]);LP(e.byteLength>128),n=qP(n,e,t,HP,WP),LP(n.length*8==64);{let r=KP(n,vP(t,11),K(e.byteLength)*SP&jP);return KP(n,vP(t,t.byteLength-NP-11),~(K(e.byteLength)*CP)&jP)<<K(64)|r}}function YP(e,t){let n=e*t&AP;return n&jP^n>>K(64)}function XP(e,t,n){return YP((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+n)&jP,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-n)&jP)}function ZP(e,t,n,r,i){let a=e&jP,o=e>>K(64)&jP;return a+=XP(t,r,i),a^=n.getBigUint64(0,!0)+n.getBigUint64(8,!0),a&=jP,o+=XP(n,vP(r,16),i),o^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),o&=jP,o<<K(64)|a}function QP(e){let t=e;return t^=t>>K(37),t*=DP,t&=jP,t^=t>>K(32),t}function $P(e){let t=e;return t^=t>>K(33),t*=CP,t&=jP,t^=t>>K(29),t*=wP,t&=jP,t^=t>>K(32),t}function eF(e,t,n){let r=e.byteLength;LP(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)&jP,o=(K(t.getUint32(8,!0))^K(t.getUint32(12,!0)))-n;return($P((VP(zP(i),K(13))^o)&jP)&jP)<<K(64)|$P(a)}function tF(e,t){return e^e>>t}function nF(e,t,n){let r=e.byteLength;LP(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&jP)*(SP+(K(r)<<K(2)))&AP;return o+=(o&jP)<<K(65),o&=AP,o^=o>>K(67),tF(tF(o&jP,K(35))*OP&jP,K(28))|QP(o>>K(64))<<K(64)}}function rF(e,t,n){let r=e.byteLength;LP(r>=9&&r<=16);{let i=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+n&jP,a=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-n&jP,o=e.getBigUint64(0,!0),s=e.getBigUint64(r-8,!0),c=(o^s^i)*SP,l=(c&jP)+(K(r-1)<<K(54));c=c&(AP^jP)|l,s^=a,c+=s+(s&MP)*(bP-K(1))<<K(64),c&=AP,c^=RP(c>>K(64));let u=(c&jP)*CP;return u+=(c>>K(64))*CP<<K(64),u&=AP,QP(u&jP)|QP(u>>K(64))<<K(64)}}function iF(e,t){let n=e.byteLength;return LP(n<=16),n>8?rF(e,kP,t):n>=4?nF(e,kP,t):n>0?eF(e,kP,t):$P(t^kP.getBigUint64(64,!0)^kP.getBigUint64(72,!0))|$P(t^kP.getBigUint64(80,!0)^kP.getBigUint64(88,!0))<<K(64)}function aF(e){return~e+K(1)&jP}function oF(e,t,n){let r=K(e.byteLength)*SP&jP,i=K(e.byteLength-1)/K(32);for(;i>=0;){let a=Number(i);r=ZP(r,vP(e,16*a),vP(e,e.byteLength-16*(a+1)),vP(t,32*a),n),i-=K(1)}let a=r+(r>>K(64))&jP;a=QP(a);let o=(r&jP)*SP+(r>>K(64))*TP+(K(e.byteLength)-n&jP)*CP;return o&=jP,o=aF(QP(o)),a|o<<K(64)}function sF(e,t,n){let r=K(e.byteLength)*SP&jP;for(let i=32;i<160;i+=32)r=ZP(r,vP(e,i-32),vP(e,i-16),vP(t,i-32),n);r=QP(r&jP)|QP(r>>K(64))<<K(64);for(let i=160;i<=e.byteLength;i+=32)r=ZP(r,vP(e,i-32),vP(e,i-16),vP(t,3+i-160),n);r=ZP(r,vP(e,e.byteLength-16),vP(e,e.byteLength-32),vP(t,103),aF(n));let i=r+(r>>K(64))&jP;i=QP(i);let a=(r&jP)*SP+(r>>K(64))*TP+(K(e.byteLength)-n&jP)*CP;return a&=jP,a=aF(QP(a)),i|a<<K(64)}function cF(e,t=K(0)){let n=new TextEncoder,r=vP(typeof e==`string`?n.encode(e):e),i=r.byteLength;return(e=>e.toString(16).padStart(32,`0`))(i<=16?iF(r,t):i<=128?oF(r,kP,t):i<=240?sF(r,kP,t):JP(r,kP))}function lF(e){return/^[0-9a-f]{32}$/.test(e)}function uF(e,t,n=!0,r=!1){try{return e[t].get()}catch(e){if(e.name===CC.unminifiable_name){if(r)return e;if(n)return null}throw e}}function dF(e,t,n=!0){if(Array.isArray(t)){let r={};for(let i of t)try{r[i]=uF(e,i,!n)}catch(e){if(e.name===CC.unminifiable_name)continue}return r}else return uF(e,t)}function*fF(e,t){if(e.graph===iC.PARENT)throw new wC(`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($S(e))yield[qS,WS,e];else if(typeof e==`string`)yield[qS,`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(lF))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,RS,e]}else yield[qS,RS,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[qS,t,n];else for(let[t,n]of Object.entries(e.update))yield[qS,t,n]}}function*pF(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*mF(e,t,n){Array.isArray(e)?(t===!0||t.find(([t,n])=>e.includes(t)))&&(yield dF(n,e)):(t===!0||t.some(([t,n])=>t===e))&&(yield uF(n,e))}function*hF(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===BS).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 gF=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 _F(e){return typeof e==`object`&&!!e&&`__lg_type`in e&&e.__lg_type===`call`}function vF(e,t){return new kx({name:e,first:new KN({func:e=>t(...e),name:e,trace:!1,recurse:!1}),last:new tP([{channel:BS,value:QN}],[HS])})}var yF=e=>e===void 0?1:e+1;function bF(e,t){if(t==null)return!1;for(let n of e)if(t[n])return!0;return!1}function xF(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t=t==null?e[n]:sN(t,e[n]));return t}function SF(e,t,n){let r=sP(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(HS):t.includes(e.name));return a&&o}function CF(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];_N(t)&&t.isAvailable()&&s.add(e)}let c=TN(e,i,-1,{channelsToSnapshot:s}),l=SN(i,c);DF(aN(c),l,[n],void 0,void 0),o=dF({...t,...l},r)}else o=dF(t,r);return o}function wF(e,t,n){for(let[e,r]of n)if([`__pregel_push`,`__pregel_tasks`].includes(e)&&r!=null){if(!$S(r))throw new wC(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(r)}`);if(!(r.node in t))throw new wC(`Invalid node name "${r.node}" in Send packet`)}e(n)}var TF=new Set([zS,GS,RS,LS,BS,mS,hS]),EF=new Set(JS);function DF(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=xN(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]),EF.has(n)||c.add(n)}let l=xF(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)TF.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===wC.unminifiable_name){let r=new wC(`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&&!bF(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*OF(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 kF(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 AF(e,t,n,r,i,a,o){let s={},c=o.pendingWritesIndex?o:{...o,pendingWritesIndex:kF(t)},l=r[WS];if(l?.isAvailable()){let o=l.get().length;for(let l=0;l<o;l+=1){let o=jF([GS,l],e,t,n,r,i,a,c);o!==void 0&&(s[o.id]=o)}}for(let o of OF(e,n,c)){let l=jF([KS,o],e,t,n,r,i,a,c);l!==void 0&&(s[l.id]=l)}return s}function jF(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`&&_F(e[e.length-1])){let p=e[e.length-1],m=vF(p.name,p.func),h=[GS],g=f===``?p.name:`${f}|${p.name}`,_=AC(JSON.stringify([g,c.toString(),p.name,GS,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:{...tu($l(a,{metadata:b,store:s.store??a.store}),{runName:p.name,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[CS]:_,[vS]:t=>wF(t=>e.push(...t),r,t),[bS]:(n,r=!1)=>CF(t,i,{name:p.name,writes:e,triggers:h,path:y},n,r),[xS]:l??d.__pregel_checkpointer,[PS]:{...d[PS],[f]:t.id},[DS]:FF({pendingWrites:n??[],taskId:_,currentTaskInput:p.input,resumeMap:a.configurable?.[ES],namespaceHash:cF(v),pendingWritesIndex:s.pendingWritesIndex}),[OS]:t.channel_values[VS],checkpoint_id:void 0,checkpoint_ns:v}}),executionInfo:o},triggers:h,retry_policy:p.retry,cache_key:p.cache?{key:cF((p.cache.keyFunc??JSON.stringify)([p.input])),ns:[gS,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[WS].get();if(p<0||p>=m.length)return;let h=ZS(m[p])&&!$S(m[p])?new QS(m[p].node,m[p].args,m[p].timeout===void 0?void 0:{timeout:m[p].timeout}):m[p];if(!ZS(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=[GS],_=f===``?h.node:`${f}|${h.node}`,v=AC(JSON.stringify([_,c.toString(),h.node,GS,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:{...tu($l(a,{metadata:b,tags:o.tags,store:s.store??a.store}),{runName:h.node,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[CS]:v,[vS]:e=>wF(e=>m.push(...e),r,e),[bS]:(n,r=!1)=>CF(t,i,{name:h.node,writes:m,triggers:g,path:e},n,r),[xS]:l??d.__pregel_checkpointer,[PS]:{...d[PS],[f]:t.id},[DS]:FF({pendingWrites:n??[],taskId:v,currentTaskInput:h.args,resumeMap:a.configurable?.[ES],namespaceHash:cF(y),pendingWritesIndex:s.pendingWritesIndex}),[OS]:t.channel_values[VS],checkpoint_id:void 0,checkpoint_ns:y}}),executionInfo:_},triggers:g,retry_policy:o.retryPolicy,cache_key:o.cachePolicy?{key:cF((o.cachePolicy.keyFunc??JSON.stringify)([h.args])),ns:[gS,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=AC(JSON.stringify([e,c.toString(),p,KS,p]),t.id);if(s.pendingWritesIndex?s.pendingWritesIndex.successfulWriteTaskIds.has(r):n.some(e=>e[0]===r&&e[1]!==`__error__`))return}let h=sP(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=NF(m,i,o);if(h===void 0)return;let g=f===``?p:`${f}|${p}`,v=AC(JSON.stringify([g,c.toString(),p,KS,[_]]),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:{...tu($l(a,{metadata:b,tags:m.tags,store:s.store??a.store}),{runName:p,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[CS]:v,[vS]:e=>wF(e=>{g.push(...e)},r,e),[bS]:(n,r=!1)=>CF(t,i,{name:p,writes:g,triggers:[_],path:e},n,r),[xS]:l??d.__pregel_checkpointer,[PS]:{...d[PS],[f]:t.id},[DS]:FF({pendingWrites:n??[],taskId:v,currentTaskInput:h,resumeMap:a.configurable?.[ES],namespaceHash:cF(y),pendingWritesIndex:s.pendingWritesIndex}),[OS]:t.channel_values[VS],checkpoint_id:void 0,checkpoint_ns:y}}),executionInfo:x},triggers:[_],retry_policy:m.retryPolicy,cache_key:m.cachePolicy?{key:cF((m.cachePolicy.keyFunc??JSON.stringify)([h])),ns:[gS,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 MF(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=[GS],_=h===``?t:`${h}|${t}`,v=AC(JSON.stringify([_,l.toString(),t,GS,`node_error_handler`,e.id]),r.id),y=`${_}:${v}`,b=[GS,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:{...tu($l(s,{metadata:x,tags:f.tags,store:c.store??s.store}),{runName:t,callbacks:d?.getChild(`graph:step:${l}`),configurable:{[CS]:v,[vS]:e=>wF(e=>S.push(...e),a,e),[bS]:(e,n=!1)=>CF(r,o,{name:t,writes:S,triggers:g,path:b},e,n),[xS]:u??m.__pregel_checkpointer,[PS]:{...m[PS],[h]:r.id},[DS]:FF({pendingWrites:i??[],taskId:v,currentTaskInput:e.input,resumeMap:s.configurable?.[ES],namespaceHash:cF(y)}),[OS]:r.channel_values[VS],[NS]:new gC(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 NF(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]=uF(t,i,!1)}catch(e){if(e.name===CC.unminifiable_name)return;throw e}else if(i in t)try{r[n]=uF(t,i,!1)}catch(e){if(e.name===CC.unminifiable_name)continue;throw e}}else if(Array.isArray(e.channels)){let n=!1;for(let i of e.channels)try{r=uF(t,i,!1),n=!0;break}catch(e){if(e.name===CC.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 PF(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 QS(e.node,n)}function FF({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 IF={blue:{start:`\x1B[34m`,end:`\x1B[0m`},green:{start:`\x1B[32m`,end:`\x1B[0m`},yellow:{start:`\x1B[33;1m`,end:`\x1B[0m`}},LF=(e,t)=>`${e.start}${t}${e.end}`;function RF(e){if(e==null)return;let t={};if(e.metadata!=null)for(let[n,r]of Object.entries(e.metadata))lN.has(n)||(t[n]=r);let n=zN(e.tags);return n!=null&&(t.tags=n),Object.keys(t).length>0?t:void 0}function*zF(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=RF(i);s!=null&&(e.metadata=s),yield e}}function BF(e){return typeof e!=`object`||!e?!1:`$writes`in e&&Array.isArray(e.$writes)}function VF(e){let t={};for(let[n,r]of e){let e=String(n);if(e in t){let n=BF(t[e])?t[e].$writes:[t[e]];n.push(r),t[e]={$writes:n}}else t[e]=r}return t}function*HF(e,t){for(let[{id:n,name:r,config:i},a]of e)i?.tags?.includes(`langsmith:hidden`)||(yield{id:n,name:r,result:VF(a.filter(([e])=>Array.isArray(t)?t.includes(e):e===t)),interrupts:a.filter(e=>e[0]===LS).map(e=>e[1])})}function*UF(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(hP))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:dF(t,n),metadata:r,next:i.map(e=>e.name),tasks:WF(i,a,u,s),parentConfig:o?c(o):void 0}}function WF(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?VF(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 GF(e,t,n){console.log([`${LF(IF.blue,`[${e}:checkpoint]`)}`,`\x1b[1m State at the end of step ${e}:\x1b[0m\n`,JSON.stringify(dF(t,n),null,2)].join(``))}function KF(e,t){let n=t.length;console.log([`${LF(IF.blue,`[${e}:tasks]`)}`,`\x1b[1m Starting step ${e} with ${n} task${n===1?``:`s`}:\x1b[0m\n`,t.map(e=>`- ${LF(IF.green,String(e.name))} -> ${JSON.stringify(e.input,null,2)}`).join(`
|
|
187
|
+
`)].join(``))}function qF(e,t,n){let r={};for(let[e,i]of t)n.includes(e)&&(r[e]||(r[e]=[]),r[e].push(i));console.log([`${LF(IF.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])=>`- ${LF(IF.yellow,e)} -> ${t.map(e=>JSON.stringify(e)).join(`, `)}`).join(`
|
|
188
|
+
`)].join(``))}var JF=[`values`,`updates`,`messages`,`tools`,`custom`,`tasks`];function YF(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 XF(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 ZF({namespace:e,mode:t,payload:n,seq:r}){let i=Date.now(),a={type:`event`};switch(t){case`messages`:{let{data:t,node:o}=XF(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:QF(n)}}];case`checkpoints`:return YF(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=$F(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 QF(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 $F(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 eI=class extends ou{_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}},tI=class extends ou{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}}},nI=class extends Wr{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 rI(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 iI(e){return e instanceof Error?{error:e.name,message:e.message}:{error:`Error`,message:JSON.stringify(e)}}function aI(e){return typeof e!=`object`||!e?!1:`configurable`in e&&typeof e.configurable==`object`&&e.configurable!=null}function oI(e){return!aI(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 sI(e){if(aI(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 cI(e){let t={...e,checkpoint:oI(e.config),parent_checkpoint:oI(e.parentConfig),config:sI(e.config),parent_config:sI(e.parentConfig),tasks:e.tasks.map(e=>{if(aI(e.state)){let t=oI(e.state);if(t!=null){let n={...e,checkpoint:t};return delete n.state,n}}return e})};return delete t.parentConfig,t}function lI(e){let t=new TextEncoder;return new ReadableStream({async start(n){let r=e=>{n.enqueue(t.encode(`event: ${e.event}\ndata: ${rI(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:cI(e.payload)})}n===`checkpoints`&&(a=cI(i)),r({event:e?.length?`${n}|${e.join(`|`)}`:n,data:a})}}catch(e){r({event:`error`,data:iI(e)})}n.close()}})}function uI(...e){return new tI({passthroughFn:t=>{let n=t[1]===`checkpoints`&&YF(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 dI=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}},fI=Symbol.for(`INPUT_DONE`),pI=Symbol.for(`INPUT_RESUMING`),mI=25;function hI(e){if(!(typeof e!=`object`||!e)){if(ct.isInstance(e)){let t=e;t.id??(t.id=wr(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)hI(t);return}}}function gI(e){return e===void 0||e===``?[]:e.split(`|`)}function _I(e){if(!e)return[];let t=``;for(let n of Object.keys(e))n!==``&&n.length>t.length&&(t=n);return gI(t)}var vI=class extends hN{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}},yI=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)}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=aC(this.input)&&this.input.resume!=null,i=this.input===pI,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=yF: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 vI(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=uI(r,n.configurable[wS]));let i=!n.configurable||!(`checkpoint_id`in n.configurable),a=n.configurable?.[DS];n.configurable&&a&&(a.subgraphCounter>0&&(n=uP(n,{[jS]:[n.configurable[jS],a.subgraphCounter.toString()].join(`|`)})),a.subgraphCounter+=1);let o=n.configurable?.checkpoint_id,s=bS in(n.configurable??{});!s&&n.configurable?.checkpoint_ns!==void 0&&n.configurable?.checkpoint_ns!==``&&(n=uP(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=uP(n,{checkpoint_id:n.configurable[PS][n.configurable?.checkpoint_ns]}));let l=gI(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[FS].getCheckpoint(n.configurable?.checkpoint_ns??``,t.checkpointer,c),n.configurable&&delete n.configurable[SS]):u=await t.checkpointer.getTuple(c):u=void 0;let d=u!==void 0;u||={config:n,checkpoint:iN(),metadata:{source:`input`,step:-2,parents:{}},pendingWrites:[]},c={...n,...u.config,configurable:{checkpoint_ns:``,...n.configurable,...u.config.configurable}};let f=u.parentConfig,p=aN(u.checkpoint),m={...u.metadata},h=u.pendingWrites??[],g=n.configurable?.checkpoint_ns,_=n.configurable?.[PS];typeof g==`string`&&g!==``&&typeof _==`object`&&_&&g in _&&h.length>0&&(h=h.filter(([,e])=>e!==RS));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 EN(t.channelSpecs,p,{saver:t.checkpointer,config:c}),S=(m.step??0)+1,ee=S+(n.recursionLimit??mI)+1,C={...p.channel_versions},te=t.store?new mN(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 cN)&&(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`&&$S(t)?[e,PF(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&&_N(n)&&hI(t)}let a=uP(this.checkpointConfig,{[jS]:this.config.configurable?.checkpoint_ns??``,[AS]: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]===LS).flatMap(e=>e[1]);this._emit([[`updates`,{[LS]:e}],[`values`,{[LS]:e}]])}else t[0][0]!==`__error__`&&this._emit(YN(qN(hF(this.outputKeys,[[r,t]],n),`updates`)));n||this._emit(YN(qN(HF([[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(![fI,pI].includes(this.input))await this._first(t);else if(this.toInterrupt.length>0)throw this.status=`interrupt_before`,new mC;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=DF(this.checkpoint,this.channels,e,this.checkpointerGetNextVersion,this.triggerToNodes);for(let[e,n]of t){let t=this.channels[e];t!=null&&_N(t)&&nC(n)&&this._deltaChannelsWithOverwrite.add(e)}let n=await JN(qN(mF(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&&_N(r)&&this._exitDeltaWrites.push([this.step,e,t,n])}if(this.checkpointPendingWrites=[],await this._putCheckpoint({source:`loop`}),this._emitValuesWithCheckpointMeta(n),SF(this.checkpoint,this.interruptAfter,e))throw this.status=`interrupt_after`,new mC;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[SS]}else return!1;if(this.step>this.stop)return this.status=`out_of_steps`,!1;this.tasks=AF(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 JN(qN(UF(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(SF(this.checkpoint,this.interruptBefore,n))throw this.status=`interrupt_before`,new mC;if(this.stream.modes.has(`tasks`)||this.stream.modes.has(`debug`)){let e=await JN(qN(zF(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=dF(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=DF(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emitValuesWithCheckpointMeta(YN(qN(mF(this.outputKeys,Object.values(this.tasks).flatMap(e=>e.writes),this.channels),`values`)))),bC(e)&&!e.interrupts.length&&this._emit([[`updates`,{[LS]:[]}],[`values`,{[LS]:[]}]],this.#e())),t}async acceptPush(e,t,n){if(this.interruptAfter?.length>0&&SF(this.checkpoint,this.interruptAfter,[e])){this.toInterrupt.push(e);return}let r=jF([GS,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&&SF(this.checkpoint,this.interruptBefore,[r])){this.toInterrupt.push(r);return}(this.stream.modes.has(`tasks`)||this.stream.modes.has(`debug`))&&this._emit(YN(qN(zF([r]),`tasks`))),this.debug&&KF(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=MF(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(YN(qN(zF([r]),`tasks`))),this.debug&&KF(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([mS,{message:n.message,name:n.name}]),this.scheduleErrorHandler(e,n))}}_suppressInterrupt(e){return bC(e)&&!this.isNested}async _first(e){let{configurable:t}=this.config,n=t?.[DS];if(n&&n.nullResume!==void 0&&this.putWrites(qS,[[RS,n.nullResume]]),aC(this.input)){let e=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume==`object`&&Object.keys(this.input.resume).every(lF)&&(this.config.configurable??={},this.config.configurable[ES]=this.input.resume),e&&this.checkpointer==null)throw Error(`Cannot use Command(resume=...) without checkpointer`);let t={};for(let[e,n,r]of fF(this.input,this.checkpointPendingWrites))t[e]??=[],t[e].push([n,r]);if(Object.keys(t).length===0)throw new SC(`Received empty Command input`);for(let[e,n]of Object.entries(t))this.putWrites(e,n)}let r=(this.checkpointPendingWrites??[]).filter(e=>e[0]===qS).map(e=>e.slice(1));r.length>0&&DF(this.checkpoint,this.channels,[{name:pS,writes:r,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=aC(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]!==RS));let s=this.isResuming;if(s||a){let e={...this.checkpoint.versions_seen[LS]};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[LS]=e,o&&this.checkpointMetadata.source!==`update`&&this.checkpointMetadata.source!==`fork`&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(e=>e[1]!==LS),await this._putCheckpoint({source:`fork`}));let t=await JN(qN(mF(this.outputKeys,!0,this.channels),`values`));s?this.input=pI:a&&(await this._putCheckpoint({source:`input`}),this.input=fI),this._emitValuesWithCheckpointMeta(t)}else{let t=await JN(pF(e,this.input));if(t.length>0){let e=AF(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=DF(this.checkpoint,this.channels,Object.values(e).concat([{name:pS,writes:t,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes);let n=t.filter(([e])=>{let t=this.channels[e];return t!=null&&_N(t)});for(let[e,t]of n)nC(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,qS,e,t]);else this.checkpointer!=null&&this.putWrites(qS,n);await this._putCheckpoint({source:`input`}),this.input=fI}else if(`__pregel_resuming`in(this.config.configurable??{}))this.input=fI;else throw new SC(`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 dI(t)}this.config=uP(this.config,{[SS]:this.isResuming,[FS]: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=_I(this.config.configurable?.[PS]);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=uP(this.checkpointConfig,{[jS]:this.config.configurable?.checkpoint_ns??``});let t={...this.checkpoint.channel_versions},n=cP(this.checkpointPreviousVersions,t);this.checkpointPreviousVersions=t,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:aN(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)||!_N(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?wN(this.channels,i):new Set;if(n)for(let e of this._deltaChannelsWithOverwrite)a.add(e);this.checkpoint=TN(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=wN(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=iN();e.id=this.checkpointIdSaved??e.id,e.ts=new Date().toISOString();let t=uP(this._initialCheckpointConfig,{[AS]:void 0});r=uP(this._initialCheckpointConfig,{[AS]:e.id}),this._trackCheckpointerPromise(this.checkpointer.put(t,e,{source:`loop`,step:-2,parents:{}},{})),this.checkpointConfig=r}let i=uP(r,{[jS]:this.config.configurable?.checkpoint_ns??``,[AS]:r.configurable?.[AS]}),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=CN(t,n);this._trackCheckpointerPromise(this.checkpointer.putWrites(i,a.get(e),r))}}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let e=uP(this.checkpointConfig,{[jS]:this.config.configurable?.checkpoint_ns??``,[AS]: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 bI(e){return St(e?.message)}function xI(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 SI=class extends Wr{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&&(kt(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]=xI(o,a,s))}handleLLMNewToken(e,t,n,r,i,a){let o=a?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(bI(o)?this._emit(this.metadatas[n],o.message,n):this._emit(this.metadatas[n],new cn({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];St(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]=xI(a,i,s),typeof t==`object`)){for(let e of Object.values(t))if((St(e)||Ct(e))&&e.id!==void 0)this.seen[e.id]=e;else if(Array.isArray(e))for(let t of e)(St(t)||Ct(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(St(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let r of e)St(r)&&this._emit(n,r,t,!0);else if(typeof e==`object`&&e){for(let r of Object.values(e))if(St(r))this._emit(n,r,t,!0);else if(Array.isArray(r))for(let e of r)St(e)&&this._emit(n,e,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};function CI(e){if(`response_metadata`in e&&typeof e.response_metadata==`object`&&e.response_metadata!=null)return e.response_metadata}function wI(e){if(`usage_metadata`in e&&typeof e.usage_metadata==`object`&&e.usage_metadata!=null)return e.usage_metadata}function TI(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 EI(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 DI=class extends Wr{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&&(Et.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`&&Et.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:TI(t)},n);let a=EI({...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`,...wI(t)==null?{}:{usage:wI(t)},...CI(t)==null?{}:{responseMetadata:CI(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=ct.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((ct.isInstance(e)||bt.isInstance(e))&&e.id!==void 0)this.seen[e.id]=e;else if(Array.isArray(e))for(let t of e)(ct.isInstance(t)||bt.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=>{ct.isInstance(e)&&!Et.isInstance(e)&&this.emitFinalMessage(n,e,t,!0)};if(ct.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]}},OI=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}},kI=class extends Wr{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 AI(e,t,n,r){let i=e.configurable??{},a={},o=i[vS];typeof o==`function`&&(a[vS]=e=>{if(t.active)return e&&e.length&&t.autoTouch(),o(e)});let s=i[yS];typeof s==`function`&&(a[yS]=(...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?uP(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 kI(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 jI(e,t,n,r){let i=new OI(n.refreshOn??`auto`),a=new AbortController,{signal:o,dispose:s}=fP(t.signal,a.signal),c=AI({...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 xC({node:String(e.name),elapsed:g,kind:h.kind,runTimeout:n.runTimeout,idleTimeout:n.idleTimeout})}var MI=[400,401,402,403,404,405,406,407,409],NI=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&&MI.includes(+t)||e?.error?.code===`insufficient_quota`)};async function PI(e,t,n,r){let i=e.retry_policy??t,a=0,o,s,c=e.config??{};n&&(c=uP(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 jI(e,c,e.timeout,t=>e.proc.invoke(e.input,t));break}catch(t){if(o=t,o.pregelTaskId=e.id,vC(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===iC.PARENT){let e=GN(t);o.command=new iC({...o.command,graph:e})}}if(yC(o)||i===void 0||(a+=1,a>=(i.maxAttempts??3))||!(i.retryOn??NI)(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=uP(c,{[SS]:!0}),c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeAttempt:a+1,nodeFirstAttemptTime:l})}}return{task:e,result:s,error:o,signalAborted:r?.aborted}}var FI=Symbol.for(`promiseAdded`);function II(){let e={next:()=>void 0,wait:Promise.resolve(FI)};function t(n){e.next=()=>{e.wait=new Promise(t),n(FI)}}return e.wait=new Promise(t),e}var LI=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))&&(bC(t)||yC(t)&&!bC(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(bC(o)||pC(o)||yC(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}=fP(i,a,e),c={externalAbortSignal:i,timeoutAbortSignal:a,composedAbortSignal:o};return this.loop.config=uP(this.loop.config,{[IS]:c}),{signals:c,disposeCombinedSignal:s}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:r,signals:i}=t??{},a=II(),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=fP(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]=PI(t,n,{[yS]:RI?.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===FI)continue;let f=t,{task:p,error:m}=f;if(m!==void 0&&!yC(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]=PI(e,n,{[yS]:RI?.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(bC(t)){if(t.interrupts.length){let n=t.interrupts.map(e=>[LS,e]),r=e.writes.filter(e=>e[0]===RS);r.length&&n.push(...r),this.loop.putWrites(e.id,n)}}else pC(t)?e.writes.length&&this.loop.putWrites(e.id,e.writes):yC(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):(e.writes.push([mS,{message:t.message,name:t.name}]),this._shouldRouteToErrorHandler(e)&&(e.writes.push([hS,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([zS,null]),this.loop.putWrites(e.id,e.writes)}};async function RI(e,t,n,r,i,a={}){let o=t.config?.configurable?.[DS];if(!o)throw Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let s=o.callCounter;o.callCounter+=1;let c=new gF({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===BS),t=l.writes.filter(([e])=>e===mS);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=PI(l,a.retry,{[yS]:RI.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 zI=Symbol.for(`langgraph.stream_channel`),BI=class e{[zI]=!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&&zI in e&&e[zI]===!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 VI(e){return BI.isInstance(e)}var HI=`custom:`;function UI(e){return`${HI}${e}`}function WI(e){return e!=null&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}var GI=Symbol(`resolveValues`),KI=Symbol(`rejectValues`),qI=class{_events=BI.local();_discoveries=BI.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(YI(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(VI(n)){if(this.#o.push(n),typeof n.channelName!=`string`)continue;let e=UI(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}WI(n)&&this.#u.push({name:t,promise:Promise.resolve(n)})}}push(e,t){t.method===`values`&&this.#c.set(YI(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(YI(n))?.[GI](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[GI](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[KI](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||XI(t.value.params.namespace,e))return t}}}}};async function JI(e,t){let n=0;try{for await(let r of e){let[e,i,a]=r;if(i===`values`&&rC(a)){let e=a[LS];t.markInterrupted(e.map(e=>({interruptId:e.id??``,payload:e.value})))}let o=ZF({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 YI(e){return e.join(`\0`)}function XI(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 ZI(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(XI(e.value.namespace,t))return{value:e.value,done:!1}}}}}}}var QI=`root`;function $I(e){if(e.length===0)return QI;let t=e[e.length-1],n=t.indexOf(`:`);return n===-1?t:t.slice(0,n)}function eL(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function tL(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nL(e){if(!tL(e)||e.event!==`started`)return;let t=e.cause;if(tL(t)&&typeof t.type==`string`)return t}function rL(e){if(tL(e)&&`result`in e&&typeof e.name==`string`&&typeof e.id==`string`&&!e.name.startsWith(`__`))return{name:e.name,id:e.id}}function iL(e={}){let t=e.rootGraphName??QI,n=e.initialStatus??`running`,r=e.emitRootOnRegister??!0,i=e.getGraphName??$I,a=e.serializeError??eL,o=e.getTerminalStatusOverride,s=BI.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(YI(e));return typeof n==`string`&&n.length>0?n:i(e)},v=(e,t)=>{let n=YI(e);if(u.has(n))return;let r=(tL(t)&&tL(t.metadata)?t.metadata:void 0)?.lc_agent_name;u.set(n,typeof r==`string`?r:void 0)},y=e=>{if(!tL(e))return;let t=e.id;if(typeof t!=`string`)return;let n=e.input,r;if(tL(n)&&tL(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(tL(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(YI(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(YI(e))??b(e),S=(e,t,n)=>{let i=YI(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=YI(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=YI(t.namespace),n=c.get(e);n==null||n.status!==`started`||S(t.namespace,`completed`)}},te=e=>{let t=YI(e.namespace),n=c.get(t);n==null||n.status!==`started`||p.some(e=>YI(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&&YI(r.source.parent)===YI(e)&&p.splice(n,1)}},re=e=>{for(let t=1;t<=e.length;t+=1){let n=e.slice(0,t),r=YI(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`||!XI(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(YI(n))?.status===`started`?n:void 0};return{__native:!0,init(){return{_lifecycleLog:s,lifecycle:ZI(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`?rL(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=nL(e.params.data);return n!=null&&l.set(YI(t),n),re(t),!1}if(re(t),e.method===`input`&&tL(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 aL(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 oL(e,t){let n=BI.local(),r=new Map,i=new Set;return{init:()=>({messages:n.toAsyncIterable()}),process(a){if(a.method!==`messages`||!XI(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=aL(o);if(o.role===`tool`){i.add(e);break}let t=BI.local(),s=Object.assign(new fE(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(aL(o)))break;r.get(aL(o))?.source.push(o);break;case`message-finish`:{let e=aL(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(aL(o)))break;r.get(aL(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 sL(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&&XI(n,t))return{value:a,done:!1}}}}}}}function cL(e,t){let{createStream:n}=t,r=new Set;return{__native:!0,init(){return{_discoveries:e._discoveries,subgraphs:sL(e._discoveries,[],0)}},process(t){let i=t.params.namespace;if(i.length===0)return!0;let a=i.slice(0,1),o=YI(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 lL(e){let t=BI.local();return{init:()=>({_valuesLog:t}),process(n){return n.method!==`values`||n.params.namespace.length!==e.length||!XI(n.params.namespace,e)||t.push(n.params.data),!0},finalize(){t.close()},fail(e){t.fail(e)}}}function uL(e){return`__native`in e&&e.__native===!0}var dL=Symbol(`setValuesLog`),fL=Symbol(`setMessagesIterable`),pL=Symbol(`setLifecycleIterable`),mL=Symbol(`setSubgraphsIterable`),hL={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},gL=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:sL(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=oL(this.path),t=e.init();return this._mux.addTransformer(e),this.#s=t.messages,this.#s}get lifecycle(){return this.#c??hL}messagesFrom(e){let t=oL(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}[GI](e){this.#r?.(e),this.#r=void 0}[KI](e){this.#i?.(e),this.#i=void 0}[dL](e){this.#o=e}[fL](e){this.#s=e}[pL](e){this.#c=e}[mL](e){this.#l=e}},_L=class extends gL{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 vL(e,t=[],n){let{abortController:r}=n instanceof AbortController?{abortController:n}:n??{},i=new qI,a=iL(),o=a.init(),s=o._lifecycleLog,c=cL(i,{createStream:(e,t,n)=>{let r=new _L(e,i,t,n);return r[mL](sL(i._discoveries,e,t)),r[pL](ZI(s,e,s.size)),r}}),l=c.init();i.addTransformer(c),i.addTransformer(a);let u=lL([]),d=oL([]);i.addTransformer(u),i.addTransformer(d);let f={},p=[];for(let e of t){let t=e();i.addTransformer(t);let n=t.init();uL(t)?p.push(n):Object.assign(f,n),typeof n==`object`&&n&&!uL(t)&&i.wireChannels(n)}let m=new gL([],i,0,0,f,r);for(let e of p)Object.assign(m,e);let h=u.init();m[dL](h._valuesLog);let g=d.init();return m[fL](g.messages),m[pL](o.lifecycle),m[mL](l.subgraphs),i.register([],m),JI(e,i).catch(e=>{}),m}var yL=class extends Error{constructor(e){super(e),this.name=`GraphValidationError`}};function bL({nodes:e,channels:t,inputChannels:n,outputChannels:r,streamChannels:i,interruptAfterNodes:a,interruptBeforeNodes:o}){if(!t)throw new yL(`Channels not provided`);let s=new Set,c=new Set;for(let[t,n]of Object.entries(e)){if(t===`__interrupt__`)throw new yL(`"Node name ${LS} is reserved"`);if(n.constructor===oP)n.triggers.forEach(e=>s.add(e));else throw new yL(`Invalid node type ${typeof n}, expected PregelNode`)}for(let e of s)if(!(e in t))throw new yL(`Subscribed channel '${String(e)}' not in channels`);if(!Array.isArray(n)){if(!s.has(n))throw new yL(`Input channel ${String(n)} is not subscribed to by any node`)}else if(n.every(e=>!s.has(e)))throw new yL(`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 yL(`Output channel '${String(e)}' not in channels`);if(a&&a!==`*`){for(let t of a)if(!(t in e))throw new yL(`Node ${String(t)} not in nodes`)}if(o&&o!==`*`){for(let t of o)if(!(t in e))throw new yL(`Node ${String(t)} not in nodes`)}}function xL(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`)}var SL=class e extends yN{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.seen=new Set(t[0]),n.values=t[1]),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 CC;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};function CL(e){let t=ql.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 dC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});let r=n[DS];r.interruptCounter+=1;let i=r.interruptCounter;if(r.resume.length>0&&i<r.resume.length)return n[vS]?.([[RS,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[vS]?.([[RS,r.resume]]),e}let a=n[jS]?.split(`|`);throw new mC([{id:a?cF(a.join(`|`)):void 0,value:e}])}function wL(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 TL=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 oP({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:QN,skipNone:!1});for(let[e,r]of Object.entries(t??{}))Tx.isRunnable(r)||typeof r==`function`?n.push({channel:e,value:QN,skipNone:!0,mapper:Ix(r)}):n.push({channel:e,value:r,skipNone:!1});return new tP(n)}},EL=class extends Tx{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)}},DL=class extends EL{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 '${WS}' is reserved and cannot be used in the graph.`);this.channels[WS]=new SL({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=$l(this.config,n),i=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:r,streamTransformers:i})}validate(){bL({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=hP(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 EN(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===qS).map(([e,t,n])=>[String(t),n]);e.length>0&&DF(t.checkpoint,i,[{name:pS,writes:e,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(AF(t.checkpoint,t.pendingWrites,this.nodes,i,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),o=await JN(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:{[xS]: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&&DF(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:dF(i,this.streamChannelsAsIs),next:u,tasks:WF(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:dP(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 dC(`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=WN(r);for await(let[r,a]of this.getSubgraphsAsync(i,!0))if(r===i)return await a.getState(XN(e,{[xS]:n}),{subgraphs:t?.subgraphs})}let i=$l(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 dC(`No checkpointer set`,{lc_error_code:`MISSING_CHECKPOINTER`});let r=e.configurable?.checkpoint_ns??``;if(r!==``&&e.configurable?.__pregel_checkpointer===void 0){let i=WN(r);for await(let[r,a]of this.getSubgraphsAsync(i,!0))if(r===i){yield*a.getStateHistory(XN(e,{[xS]:n}),t);return}}let i=$l(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 dC(`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=WN(r);for await(let[,r]of this.getSubgraphsAsync(i,!0))return await r.bulkUpdateState(XN(e,{[xS]:n}),t);throw Error(`Subgraph "${i}" not found`)}let i=async(e,t)=>{let r=this.config?$l(this.config,e):e,a=await n.getTuple(r),o=a===void 0?iN():aN(a.checkpoint),s={...a?.checkpoint.channel_versions},c=a?.metadata?.step??-1,l=XN(r,{checkpoint_ns:r.configurable?.checkpoint_ns??``}),u=r.metadata??{};a?.config.configurable&&(l=XN(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 wC(`Cannot create empty checkpoint with multiple updates`);return dP(await n.put(l,TN(o,void 0,c),{source:`update`,step:c+1,parents:a?.metadata?.parents??{}},{}),a?a.metadata:void 0)}let p=await EN(this.channels,o,{saver:n,config:a?.config??l});if(d===null&&f===`__end__`){if(t.length>1)throw new wC(`Cannot apply multiple updates when clearing state`);if(a){let e=AF(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]===qS).map(e=>e.slice(1));t.length>0&&DF(o,p,[{name:pS,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]);DF(o,p,Object.values(e),n.getNextVersion.bind(n),this.triggerToNodes)}return dP(await n.put(l,TN(o,p,c),{...u,source:`update`,step:c+1,parents:a?.metadata?.parents??{}},cP(s,o.channel_versions)),a?a.metadata:void 0)}if(f===`__copy__`){if(t.length>1)throw new wC(`Cannot copy checkpoint with multiple updates`);if(a==null)throw new wC(`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=TN(o,void 0,c),s=await n.put(a.parentConfig??XN(a.config,{checkpoint_id:void 0}),r,{source:`fork`,step:c+1,parents:a.metadata?.parents??{}},{});if(e(d)){let e=AF(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(dP(s,a.metadata),Object.values(n).flat())}return dP(s,a.metadata)}if(f===`__input__`){if(t.length>1)throw new wC(`Cannot apply multiple updates when updating as input`);let e=await JN(pF(this.inputChannels,d));if(e.length===0)throw new wC(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);DF(o,p,[{name:pS,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,TN(o,p,r),{source:`input`,step:r,parents:a?.metadata?.parents??{}},cP(s,o.channel_versions));return await n.putWrites(i,e,AC(pS,o.id)),dP(i,a?a.metadata:void 0)}if(r.configurable?.checkpoint_id===void 0&&a?.pendingWrites!==void 0&&a.pendingWrites.length>0){let e=AF(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]===qS).map(e=>e.slice(1));t.length>0&&DF(a.checkpoint,p,[{name:pS,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&&DF(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!==LS).sort(([e],[t])=>oN(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 wC(`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 wC(`"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 wC(`Node "${e.toString()}" does not exist`);let r=this.nodes[e].getWriters();if(!r.length)throw new wC(`No writers found for node "${e.toString()}"`);g.push({name:e,input:t,proc:r.length>1?kx.from(r,{omitSequenceTags:!0}):r[0],writes:[],triggers:[LS],id:n??AC(`__interrupt__`,o.id),writers:[]})}for(let e of g)await e.proc.invoke(e.input,tu({...r,store:r?.store??this.store},{runName:r.runName??`${this.getName()}UpdateState`,configurable:{[vS]:t=>e.writes.push(...t),[bS]:(t,n=!1)=>CF(o,p,e,t,n)}}));for(let e of g){let t=e.writes.filter(e=>e[0]!==GS);a!==void 0&&t.length>0&&await n.putWrites(l,t,e.id)}DF(o,p,g,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let _=cP(s,o.channel_versions),v=await n.put(l,TN(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]===GS);t.length>0&&await n.putWrites(v,t,e.id)}return dP(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:xL(u,this.channels);let d=r;d===void 0?d=this.inputChannels:xL(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[xS];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=UN()?.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:fP(t?.signal,n.signal).signal},a=await super.stream(e,i);return new eI(t?.encoding===`text/event-stream`?lI(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:JF,subgraphs:!0,encoding:void 0},s=this.stream(e,o),c=vL({[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 eI(wL(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:fP(t?.signal,r.signal).signal};return new eI(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=HN(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 tI({modes:new Set(u)});if(this.checkpointer===!0){f.configurable??={};let e=f.configurable.checkpoint_ns??``;f.configurable[jS]=e.split(`|`).map(e=>e.split(`:`)[0]).join(`|`)}if(u.includes(`messages`)){let e=i?new DI(e=>b.push(e)):new SI(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 nI(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=(UN()?.configurable?.[jS])?.split(`|`).slice(0,-1);b.push([t??[],`custom`,e])},f.interrupt??=this.userInterrupt??CL,f.serverInfo??=OL(f),f.control??=new _P;let x={tracerInheritableMetadata:jL(f)},S=await(await Hl._configureSync(f?.callbacks,void 0,f?.tags,void 0,f?.metadata,void 0,x))?.handleChainStart(this.toJSON(),lP(e,`input`),s,void 0,void 0,void 0,f?.runName??this.getName()),ee=xN(this.channels),C,te,ne=(async()=>{try{C=await yI.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 LI({loop:C,nodeFinished:f.configurable?.[MS]});t?.subgraphs&&(C.config.configurable={...C.config.configurable,[wS]: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`&&YF(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`?rC(e)?o.push(e[LS]):s=e:i.push(e);if(n===`values`){if(o.length>0){let e=o.flat(1);if(s==null)return{[LS]:e};if(typeof s==`object`)return{...s,[LS]: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&&GF(t.checkpointMetadata.step,t.channels,this.streamChannelsList),r&&KF(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(e,t)=>{r&&qF(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 fC(t.control.drainReason??`shutdown`);if(t.status===`out_of_steps`)throw new uC([`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 OL(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 kL=new Set([`key`,`token`,`secret`,`password`,`auth`]);function AL(e,t){let n=e.toLowerCase(),r=!1;for(let e of kL)if(n.includes(e)){r=!0;break}return e.startsWith(`__`)||!(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)||r}function jL(e){let t=e.configurable;if(!t)return;let n={};for(let[e,r]of Object.entries(t))AL(e,r)||(n[e]=r);return Object.keys(n).length>0?n:void 0}var ML=class{path;ends;constructor(e){Tx.isRunnable(e.path)?this.path=e.path:this.path=Ix(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((e,t)=>(e[t]=t,e),{}):e.pathMap}run(e,t){return tP.registerWriter(new KN({name:`<branch_run>`,trace:!1,func:async(n,r)=>{try{return await this._route(n,r,e,t)}catch(e){throw e.name===hC.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=>$S(e)?e:this.ends[e]):i,a.some(e=>!e))throw Error(`Branch condition returned unknown or null destination`);if(a.filter($S).some(e=>e.node===`__end__`))throw new wC(`Cannot send a packet to the END node`);return await n(a,t)??e}},NL=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=Ix(t);this.nodes[e]={runnable:n,metadata:r?.metadata,subgraphs:mP(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.`),Tx.isRunnable(r.path)||(r.path=Ix(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 ML(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(dS,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,fS)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:r,transformers:i}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let a=new PL({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[dS]:new gP,[fS]:new gP},inputChannels:dS,outputChannels:fS,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(fS);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 TC([`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}},PL=class extends DL{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new gP,this.nodes[e]=new oP({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new tP([{channel:e,value:QN}],[HS])),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 tP([{channel:fS,value:QN}],[HS]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e===`__start__`&&!this.nodes.__start__&&(this.nodes[dS]=TL.subscribeTo(dS,{tags:[HS]})),this.nodes[e].pipe(n.run(n=>new tP(n.map(n=>$S(n)?n:{channel:n===`__end__`?fS:`branch:${e}:${t}:${n}`,value:QN}),[HS])));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 gP,this.nodes[n].triggers.push(r),this.nodes[n].channels.push(r)}}async getGraphAsync(e){let t=e?.xray,n=new px,r={[dS]:n.addNode({schema:wA()},dS)},i={},a={};t&&(a=Object.fromEntries((await JN(this.getSubgraphsAsync())).filter(e=>FL(e[1]))));let o=[];function s(e,t,a,s=!1){if(t===`__end__`&&i.__end__===void 0&&(i[fS]=n.addNode({schema:wA()},fS)),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=IL(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&&!Or(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(IL(e),IL(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=>[IL(e),IL(e)])),[fS]:fS};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(IL(e),IL(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(IL(e),IL(n),void 0,!0);return LL(this.builder.nodes,o,s),n}getGraph(e){let t=e?.xray,n=new px,r={[dS]:n.addNode({schema:wA()},dS)},i={},a={};t&&(a=Object.fromEntries(YN(this.getSubgraphs()).filter(e=>FL(e[1]))));let o=[];function s(e,t,a,s=!1){if(t===`__end__`&&i.__end__===void 0&&(i[fS]=n.addNode({schema:wA()},fS)),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=IL(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&&!Or(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(IL(e),IL(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=>[IL(e),IL(e)])),[fS]:fS};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(IL(e),IL(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(IL(e),IL(n),void 0,!0);return LL(this.builder.nodes,o,s),n}};function FL(e){return typeof e.attachNode==`function`&&typeof e.attachEdge==`function`}function IL(e){return e===`subgraph`?`"${e}"`:e}function LL(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=>IL(e)===t);i!==void 0&&e[i]?.isErrorHandler||n(t,fS)}}var RL=(e,t)=>e.size===t.size&&[...e].every(e=>t.has(e)),zL=class e extends yN{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 wC(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!RL(this.names,this.seen))throw new CC}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&RL(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&RL(this.names,this.seen)}},BL=class e extends yN{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 wC(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!this.finished||!RL(this.names,this.seen))throw new CC}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&RL(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&RL(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&RL(this.names,this.seen)}};function VL(e){return typeof e==`object`&&!!e&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`validate`in e[`~standard`]}function HL(e){return typeof e==`object`&&!!e&&`~standard`in e&&typeof e[`~standard`]==`object`&&e[`~standard`]!==null&&`jsonSchema`in e[`~standard`]}function UL(e){if(HL(e))try{return e[`~standard`].jsonSchema.input({target:`draft-07`})}catch{return}}function WL(e){if(e!=null&&VL(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 GL=e=>e!=null&&e.lc_graph_name===`DeltaChannel`,KL=class e extends yN{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():IC(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]=tC(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(nC(r)){if(n)throw new wC(`Can receive only one Overwrite value per step.`);n=!0,[,t]=tC(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 CC;return this.value}checkpoint(){}isAvailable(){return this.value!==void 0}equals(e){return this===e?!0:!GL(e)||this.snapshotFrequency!==e.snapshotFrequency?!1:this.reducer===e.reducer}},qL=Symbol.for(`langgraph.channel.missing`),JL=class e extends yN{lc_graph_name=`UntrackedValue`;guard;_value=qL;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 wC(`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===qL)throw new CC;return this._value}checkpoint(){}isAvailable(){return this._value!==qL}},YL=Symbol.for(`langgraph.state.reduced_value`),XL=class{[YL]=!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&&YL in e&&e[YL]===!0}},ZL=Symbol.for(`langgraph.state.untracked_value`),QL=class{[ZL]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e==`object`&&!!e&&ZL in e}},$L=Symbol.for(`langgraph.state.delta_value`),eR=class{[$L]=!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&&$L in e&&e[$L]===!0}},tR=Symbol.for(`langgraph.state.state_schema`),nR=class{[tR]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,n]of Object.entries(this.fields))if(eR.isInstance(n)){let r=WL(n.valueSchema);e[t]=new KL(n.reducer,{snapshotFrequency:n.snapshotFrequency,initialValueFactory:r})}else if(XL.isInstance(n)){let r=WL(n.valueSchema);e[t]=new AN(n.reducer,r)}else if(QL.isInstance(n)){let r=n.schema?WL(n.schema):void 0;e[t]=new JL({guard:n.guard,initialValueFactory:r})}else if(VL(n))e[t]=new DN(WL(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(eR.isInstance(r)||XL.isInstance(r)?(i=UL(r.valueSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):QL.isInstance(r)?i=r.schema?UL(r.schema):void 0:VL(r)&&(i=UL(r)),i){e[n]=i;let a=!1;a=eR.isInstance(r)||XL.isInstance(r)?WL(r.valueSchema)!==void 0:QL.isInstance(r)?r.schema?WL(r.schema)!==void 0:!1:WL(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;eR.isInstance(n)||XL.isInstance(n)?(r=UL(n.inputSchema),n.jsonSchemaExtra&&(r={...r??{},...n.jsonSchemaExtra})):QL.isInstance(n)?r=n.schema?UL(n.schema):void 0:VL(n)&&(r=UL(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(eR.isInstance(e)||XL.isInstance(e)){let[a,o]=tC(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]={[eC]:r.value};continue}i=e.inputSchema}else QL.isInstance(e)?i=e.schema:VL(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&&tR in e&&e[tR]===!0}};function rR(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t],i=n.map(jn),a=r.map(jn);for(let e of i)(e.id===null||e.id===void 0)&&(e.id=wr(),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=wr(),t.lc_kwargs.id=t.id),xn.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)xn.isInstance(e)?l.add(e.id):(l.delete(e.id),s[t]=e);else{if(xn.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 iR(e,t){let n=[];for(let e of t)Array.isArray(e)?n.push(...e):n.push(e);let r=e.length>0&&ct.isInstance(e[0])?e:e.map(jn),i=n.map(jn),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;xn.isInstance(e)&&t===`__remove_all__`?(o.length=0,a.clear()):t==null?o.push(e):xn.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 aR=pj().default(()=>[]),oR=pj();new XL(aR,{inputSchema:oR,reducer:rR,jsonSchemaExtra:{langgraph_type:`messages`,description:`A list of chat messages`}}),new eR(aR,{inputSchema:oR,reducer:iR,jsonSchemaExtra:{langgraph_type:`messages`,description:`A list of chat messages`}});var sR=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=x_(e);for(let[e,r]of Object.entries(n)){let n=this.get(r);n?.reducer?t[e]=new AN(n.reducer.fn,n.default):t[e]=new DN(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(x_(e)).map(([e,n])=>{let r=this.get(n),i=t.withReducerSchema?r?.reducer?.schema??n:n;if(t.withJsonSchemaExtrasAsDescription&&r?.jsonSchemaExtra){let e=f_(i)??f_(n),t=JSON.stringify({...r.jsonSchemaExtra,description:e});i=i.describe(`lg:${t}`)}return[e,i]});i=S_(e,Object.fromEntries(n)),n_(i)&&(i._def.unknownKeys=`strip`)}return t.asPartial&&(i=C_(i)),r.set(e,i),this._extensionCache.set(n,r),i}};function cR(e){return e!=null&&!!(nR.isInstance(e)||b_(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`||vN(e)))}function lR(e){if(typeof e!=`object`||!e)return!1;let t=e,n=`state`in t&&cR(t.state),r=`stateSchema`in t&&cR(t.stateSchema),i=`input`in t&&cR(t.input);return!(!n&&!r&&!i||`input`in t&&t.input!=null&&!cR(t.input)||`output`in t&&t.output!=null&&!cR(t.output))}var uR=`__root__`,dR=`__default_error_handler__`,fR=Symbol.for(`langgraph.state.partial`),pR=class extends NL{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=sR;_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 EC;let i=this._getChannelsFromSchema(r);this._schemaDefinition=i,(nR.isInstance(r)||b_(r))&&(this._schemaRuntimeDefinition=r),n.input&&(nR.isInstance(n.input)||b_(n.input))?this._inputRuntimeDefinition=n.input:this._inputRuntimeDefinition=fR,n.output&&(nR.isInstance(n.output)||b_(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&&b_(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=uS(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 KN({func:(t,n)=>{let r=n?.configurable?.[NS];return e(t,r,n)},name:dR,trace:!1}),metadata:void 0,input:this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0}}_normalizeToStateGraphInit(e,t){if(lR(e)){if(b_(t)||jN.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(cR(e)){if(b_(t)||jN.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(gR(e))return{state:mR(e.channels)};throw new EC}_getChannelsFromSchema(e){if(nR.isInstance(e))return e.getChannels();if(b_(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 EC(`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=Tx.isRunnable(t)?t:typeof t==`function`?new KN({func:t,name:e,trace:!1}):Ix(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 KN({func:(e,n)=>{let r=n?.configurable?.[NS];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:uS(r?.timeout),metadata:r?.metadata,input:n??this._schemaDefinition,subgraphs:mP(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(dR in this.nodes)throw Error(`Cannot apply a default error handler: the reserved node name \`${dR}\` is already in use. setNodeDefaults({ errorHandler }) registers a node with that name; rename the conflicting node.`);this.nodes[dR]=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:dR})}finally{c!==void 0&&delete this.nodes[dR]}}_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]===uR?uR:l,d=Object.keys(this.channels),f=d.length===1&&d[0]===uR?uR:d,p=this._interrupt,m=new hR({builder:this,checkpointer:e,interruptAfter:i,interruptBefore:r,autoValidate:!1,nodes:{},channels:{...this.channels,[dS]:new gP},inputChannels:dS,outputChannels:u,streamChannels:f,streamMode:`updates`,store:t,cache:n,name:a,description:o,userInterrupt:p,streamTransformers:s});m.attachNode(dS);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(dS,US,vR(),{withReader:!1});for(let[e]of Object.entries(this.nodes))m.attachBranch(e,US,vR(),{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 mR(e){let t={};for(let[n,r]of Object.entries(e))t[n]=NN(r);return t}var hR=class extends PL{description;_metaRegistry=sR;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(aC(e))return e.graph===iC.PARENT?null:e._updateAsTuples();if(Array.isArray(e)&&e.length>0&&e.some(e=>aC(e))){let t=[];for(let n of e)if(aC(n)){if(n.graph===iC.PARENT)continue;t.push(...n._updateAsTuples())}else t.push([uR,n]);return t}else if(e!=null)return[[uR,e]];return null}let i=e,a=async e=>{if(e==null||e.length===0)return e;let t=this.builder._schemaRuntimeDefinition;if(nR.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(b_(t)){let n=new Set(Object.keys(x_(t)));if(e.filter(([e])=>n.has(e)).length===0)return e;let r=C_(this._metaRegistry.getExtendedChannelSchemas(t,{withReducerSchema:!0})),i=C_(t);return e.map(([e,t])=>{if(!n.has(e))return[e,t];let[a,o]=tC(t);if(a){let n=d_(i,{[e]:o});return[e,Object.prototype.hasOwnProperty.call(n,e)?{[eC]:n[e]}:t]}let s=d_(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(aC(e))return e.graph===iC.PARENT?null:a(e._updateAsTuples().filter(([e])=>n.includes(e)));if(Array.isArray(e)&&e.length>0&&e.some(aC)){let t=[];for(let r of e)if(aC(r)){if(r.graph===iC.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 wC(`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:QN,mapper:new KN({func:n.length&&n[0]===uR?r:o,trace:!1,recurse:!1})}];if(e===`__start__`)this.nodes[e]=new oP({tags:[HS],triggers:[dS],channels:[dS],writers:[new tP(s,[HS])]});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&&uR in r,a=`branch:to:${e}`;this.channels[a]=t?.defer?new ON:new gP(!1);let o=t?.cachePolicy,c=o===!1?void 0:o;this.nodes[e]=new oP({triggers:[a],channels:i?Object.keys(r):r,writers:[new tP(s,[HS])],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 tP([{channel:`branch:to:${t}`,value:null}],[HS]));else if(Array.isArray(e)){let n=`join:${e.join(`+`)}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new BL(new Set(e)):new zL(new Set(e)),this.nodes[t].triggers.push(n);for(let t of e)this.nodes[t].writers.push(new tP([{channel:n,value:t}],[HS]))}}}attachBranch(e,t,n,r={withReader:!0}){this.nodes[e].writers.push(n.run(async(t,n)=>{let r=t.filter(e=>e!==fS);if(!r.length)return;let i=r.map(t=>$S(t)?t:{channel:t===`__end__`?t:`branch:to:${t}`,value:e});await tP.doWrite({...n,tags:(n.tags??[]).concat([HS])},i)},r.withReader?e=>iP.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(nR.isInstance(t)){if(aC(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===fR&&nR.isInstance(n)){if(aC(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(b_(t))return e(t);if(t===fR)return b_(n)?C_(e(n)):void 0})();if(aC(e)){let t=e;if(e.update&&r!=null){let n=Array.isArray(e.update)?Object.fromEntries(e.update):e.update,i=d_(r,n);t.update=Object.fromEntries(Object.keys(n).map(e=>[e,i[e]]))}return t}return r==null?e:d_(r,e)}isInterrupted(e){return rC(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return b_(t)&&d_(t,e),e}};function gR(e){return typeof e==`object`&&!!e&&e.channels!==void 0}function _R(e){if($S(e))return[e];let t=[];aC(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(aC));let n=[];for(let e of t){if(e.graph===iC.PARENT)throw new _C(e);$S(e.goto)||typeof e.goto==`string`?n.push(e.goto):Array.isArray(e.goto)&&n.push(...e.goto)}return n}function vR(){return new ML({path:new KN({func:_R,tags:[HS],trace:!1,recurse:!1,name:`<control_branch>`})})}var yR=e=>Array.isArray(e)&&e.every(St),bR=e=>typeof e==`object`&&!!e&&`messages`in e&&yR(e.messages),xR=e=>typeof e==`object`&&!!e&&`lg_tool_call`in e,SR=class extends KN{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 St(o)&&o.getType()===`tool`||aC(o)?o:new Et({status:`success`,name:r.name,content:typeof o==`string`?o:JSON.stringify(o),tool_call_id:e.id})}catch(t){if(!this.handleToolErrors||bC(t))throw t;return new Et({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(xR(e)){let{lg_tool_call:r,...i}=e;n=[await this.runTool(r,t,i)]}else{let r;if(yR(e))r=e;else if(bR(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(on(t)){a=t;break}}if(a==null||!on(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(aC))return Array.isArray(e)?n:{messages:n};let r=[],i=null;for(let t of n)aC(t)?t.graph===iC.PARENT&&Array.isArray(t.goto)&&t.goto.every(e=>$S(e))?i?i.goto.push(...t.goto):i=new iC({graph:iC.PARENT,goto:t.goto}):r.push(t):r.push(Array.isArray(e)?[t]:{messages:[t]});return i&&r.push(i),r}},CR=/<name>(.*?)<\/name>/s,wR=/<content>(.*?)<\/content>/s;function TR(e){if(!(St(e)&&(on(e)||Ct(e)&&sn(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 ER(e){if(!on(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(CR),r=e.text.match(wR);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(CR),r=e.text.match(wR);return!t||!r?e:(n=t[1],{...e,text:r[1]})}return e});else{let r=e.content,i=r.match(CR),a=r.match(wR);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 DR(e,t){let n,r;if(t===`inline`)n=TR,r=ER;else throw Error(`Invalid agent name mode: ${t}. Needs to be one of: "inline"`);function i(e){return e.map(n)}return kx.from([Nx.from(i),e,Nx.from(r)])}function OR(e){if(typeof e==`string`||St(e)&&e._getType()===`system`)return e;if(typeof e==`function`)return async t=>e(t.messages);if(Tx.isRunnable(e))return Nx.from(e=>e.messages).pipe(e);throw Error(`Unexpected type for messageModifier: ${typeof e}`)}var kR=`prompt`;function AR(e){let t;if(e==null)t=Nx.from(e=>e.messages).withConfig({runName:kR});else if(typeof e==`string`){let n=new Sn(e);t=Nx.from(e=>[n,...e.messages??[]]).withConfig({runName:kR})}else if(St(e)&&e._getType()===`system`)t=Nx.from(t=>[e,...t.messages]).withConfig({runName:kR});else if(typeof e==`function`)t=Nx.from(e).withConfig({runName:kR});else if(Tx.isRunnable(e))t=e;else throw Error(`Got unexpected type for 'prompt': ${typeof e}`);return t}function jR(e){return Tx.isRunnable(e)}function MR(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=OR(n)):r=t,AR(r)}function NR(e){return`invoke`in e&&typeof e.invoke==`function`&&`_modelType`in e}function PR(e){return`_queuedMethodOperations`in e&&`_model`in e&&typeof e._model==`function`}function FR(e){return NR(e)?`bindTools`in e&&typeof e.bindTools==`function`:!1}async function IR(e,t){let n=e;if(kx.isRunnableSequence(n)&&(n=n.steps.find(e=>Ex.isRunnableBinding(e)||NR(e)||PR(e))||n),PR(n)&&(n=await n._model()),!Ex.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=>jR(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 LR=(e,t)=>{if(FR(e))return e.bindTools(t);if(Ex.isRunnableBinding(e)&&FR(e.bound)){let n=e.bound.bindTools(t);return Ex.isRunnableBinding(n)?new Ex({bound:n.bound,config:{...e.config,...n.config},kwargs:{...e.kwargs,...n.kwargs},configFactories:n.configFactories??e.configFactories}):new Ex({bound:n,config:e.config,kwargs:e.kwargs,configFactories:e.configFactories})}return null};async function RR(e,t){let n=LR(e,t);if(n)return n;if(PR(e)){let n=LR(await e._model(),t);if(n)return n}if(kx.isRunnableSequence(e)){let n=e.steps.findIndex(e=>Ex.isRunnableBinding(e)||NR(e)||PR(e));if(n>=0){let r=LR(e.steps[n],t);if(r){let t=e.steps.slice();return t.splice(n,1,r),kx.from(t)}}}throw Error(`llm ${e} must define bindTools method.`)}async function zR(e){let t=e;if(kx.isRunnableSequence(t)&&(t=t.steps.find(e=>Ex.isRunnableBinding(e)||NR(e)||PR(e))||t),PR(t)&&(t=await t._model()),Ex.isRunnableBinding(t)&&(t=t.bound),!NR(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 BR=()=>MN.Root({messages:MN({reducer:rR,default:()=>[]}),structuredResponse:MN}),VR=MN.Root({llmInputMessages:MN({reducer:(e,t)=>rR([],t),default:()=>[]})});function HR(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 SR(b.filter(jR))):(b=n.tools,x=n);let S=null,ee=async e=>{if(S)return S;let t;t=await IR(e,b)?await RR(e,b):e;let n=MR(a,i,r),o=y===`inline`?DR(t,y):t;return S=n.pipe(o),S},C=async(e,t,n)=>{let o=await e(t,n);return MR(a,i,r).pipe(y===`inline`?DR(o,y):o)},te=new Set(b.filter(jR).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 zR(t);if(!NR(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 Sn({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 pR(o??BR(),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=MN.Root({...ae._schemaDefinition,...VR.spec})),oe.addNode(`agent`,ie,{input:ce}).addEdge(dS,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(kt).map(e=>e.tool_call_id)),r;for(let e=t.length-1;e>=0;--e){let n=t[e];if(on(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 QS(`tools`,{...e,lg_tool_call:t})):`tools`:a&&kt(a)?w:p==null?fS:`generate_structured_response`},se({tools:`tools`,[w]:w,generate_structured_response:p==null?null:`generate_structured_response`,[fS]:p==null?fS:null})),p!==void 0&&ae.addNode(`generate_structured_response`,re).addEdge(`generate_structured_response`,fS),h??oe.addConditionalEdges(`agent`,e=>{let{messages:t}=e,n=t[t.length-1];return!on(n)||!n.tool_calls?.length?p==null?fS:`generate_structured_response`:v===`v2`?n.tool_calls.map(t=>new QS(`tools`,{...e,lg_tool_call:t})):`tools`},se({tools:`tools`,generate_structured_response:p==null?null:`generate_structured_response`,[fS]:p==null?fS: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(!kt(n))break;if(n.name!==void 0&&te.has(n.name))return fS}return w},se({[w]:w,[fS]:fS})):oe.addEdge(`tools`,w),oe.compile({checkpointer:l??c,interruptBefore:u,interruptAfter:d,store:f,name:g,description:_})}function UR(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 WR=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return WR=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 GR(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var KR=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{},qR=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 YR({message:r,cause:KR(n)});let a=n?.error;return t===400?new ZR(t,a,r,i):t===401?new QR(t,a,r,i):t===403?new $R(t,a,r,i):t===404?new ez(t,a,r,i):t===409?new tz(t,a,r,i):t===422?new nz(t,a,r,i):t===429?new rz(t,a,r,i):t>=500?new iz(t,a,r,i):new e(t,a,r,i)}},JR=class extends qR{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},YR=class extends qR{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},XR=class extends YR{constructor({message:e}={}){super({message:e??`Request timed out.`})}},ZR=class extends qR{},QR=class extends qR{},$R=class extends qR{},ez=class extends qR{},tz=class extends qR{},nz=class extends qR{},rz=class extends qR{},iz=class extends qR{},az=class extends Y{constructor(){super(`Could not parse response content as the length limit was reached`)}},oz=class extends Y{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},sz=class extends Error{constructor(e){super(e)}},cz=class extends qR{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}},lz=class extends Y{constructor(e,t,n){super(e),this.provider=t,this.cause=n}},uz=/^[a-z][a-z0-9+.-]*:/i,dz=e=>uz.test(e),fz=e=>(fz=Array.isArray,fz(e)),pz=fz;function mz(e){return typeof e==`object`?e??{}:{}}function hz(e){if(!e)return!0;for(let t in e)return!1;return!0}function gz(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var vz=(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},yz=e=>{try{return JSON.parse(e)}catch{return}},bz=e=>new Promise(t=>setTimeout(t,e)),xz=`6.45.0`,Sz=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`;function Cz(){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 wz=()=>{let e=Cz();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":xz,"X-Stainless-OS":Dz(Deno.build.os),"X-Stainless-Arch":Ez(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":xz,"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":xz,"X-Stainless-OS":Dz(globalThis.process.platform??`unknown`),"X-Stainless-Arch":Ez(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=Tz();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":xz,"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":xz,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}};function Tz(){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 Ez=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,Dz=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`),Oz,kz=()=>Oz??=wz();function Az(){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 jz(...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 Mz(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return jz({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function Nz(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 Pz(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 Fz=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)}),Iz=`RFC3986`,Lz=e=>String(e),Rz={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:Lz},zz=(e,t)=>(zz=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),zz(e,t)),Bz=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),Vz=1024,Hz=(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+=Vz){let t=a.length>=Vz?a.slice(e,e+Vz):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]=Bz[r];continue}if(r<2048){n[n.length]=Bz[192|r>>6]+Bz[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=Bz[224|r>>12]+Bz[128|r>>6&63]+Bz[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=Bz[240|r>>18]+Bz[128|r>>12&63]+Bz[128|r>>6&63]+Bz[128|r&63]}o+=n.join(``)}return o};function Uz(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Wz(e,t){if(fz(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}var Gz={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},Kz=function(e,t){Array.prototype.push.apply(e,fz(t)?t:[t])},qz,Jz={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:Hz,encodeValuesOnly:!1,format:Iz,formatter:Lz,indices:!1,serializeDate(e){return(qz??=Function.prototype.call.bind(Date.prototype.toISOString))(e)},skipNulls:!1,strictNullHandling:!1};function Yz(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}var Xz={};function Zz(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(Xz))!==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(Xz)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&fz(v)&&(v=Wz(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,Jz.encoder,g,`key`,p):t;v=``}if(Yz(v)||Uz(v)){if(c){let e=h?t:c(t,Jz.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,Jz.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let ee;if(n===`comma`&&fz(v))h&&c&&(v=Wz(v,c)),ee=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(fz(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&&fz(v)&&v.length===1?C+`[]`:C;if(i&&fz(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=fz(v)?typeof n==`function`?n(te,C):te:te+(d?`.`+C:`[`+C+`]`);_.set(e,b);let re=new WeakMap;re.set(Xz,_),Kz(S,Zz(x,ne,n,r,i,a,o,s,n===`comma`&&h&&fz(v)?null:c,l,u,d,f,p,m,h,g,re))}return S}function Qz(e=Jz){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||Jz.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=Iz;if(e.format!==void 0){if(!zz(Rz,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=Rz[n],i=Jz.filter;(typeof e.filter==`function`||fz(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in Gz?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:Jz.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:Jz.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:Jz.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:Jz.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:Jz.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?Jz.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:Jz.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:Jz.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:Jz.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:Jz.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:Jz.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:Jz.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:Jz.strictNullHandling}}function $z(e,t={}){let n=e,r=Qz(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):fz(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=Gz[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||Kz(o,Zz(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 eB(e){return $z(e,{arrayFormat:`brackets`})}function tB(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 nB;function rB(e){let t;return(nB??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var iB;function aB(e){let t;return(iB??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var oB,sB,cB=class{constructor(){oB.set(this,void 0),sB.set(this,void 0),q(this,oB,new Uint8Array,`f`),q(this,sB,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?rB(e):e;q(this,oB,tB([J(this,oB,`f`),t]),`f`);let n=[],r;for(;(r=lB(J(this,oB,`f`),J(this,sB,`f`)))!=null;){if(r.carriage&&J(this,sB,`f`)==null){q(this,sB,r.index,`f`);continue}if(J(this,sB,`f`)!=null&&(r.index!==J(this,sB,`f`)+1||r.carriage)){n.push(aB(J(this,oB,`f`).subarray(0,J(this,sB,`f`)-1))),q(this,oB,J(this,oB,`f`).subarray(J(this,sB,`f`)),`f`),q(this,sB,null,`f`);continue}let e=J(this,sB,`f`)===null?r.preceding:r.preceding-1,t=aB(J(this,oB,`f`).subarray(0,e));n.push(t),q(this,oB,J(this,oB,`f`).subarray(r.index),`f`),q(this,sB,null,`f`)}return n}flush(){return J(this,oB,`f`).length?this.decode(`
|
|
192
|
+
`):[]}};oB=new WeakMap,sB=new WeakMap,cB.NEWLINE_CHARS=new Set([`
|
|
193
|
+
`,`\r`]),cB.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function lB(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 uB(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 dB={off:0,error:200,warn:300,info:400,debug:500},fB=(e,t,n)=>{if(e){if(gz(dB,e))return e;_B(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(dB))}`)}};function pB(){}function mB(e,t,n){return!t||dB[e]>dB[n]?pB:t[e].bind(t)}var hB={error:pB,warn:pB,info:pB,debug:pB},gB=new WeakMap;function _B(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return hB;let r=gB.get(t);if(r&&r[0]===n)return r[1];let i={error:mB(`error`,t,n),warn:mB(`warn`,t,n),info:mB(`info`,t,n),debug:mB(`debug`,t,n)};return gB.set(t,[n,i]),i}var vB=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),yB,bB=class e{constructor(e,t,n){this.iterator=e,yB.set(this,void 0),this.controller=t,q(this,yB,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?_B(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 xB(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 qR(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 qR(void 0,e.error,e.message,void 0);yield{event:r.event,data:e}}}e=!0}catch(e){if(GR(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 cB,n=Nz(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(GR(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(yB=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,yB,`f`)),new e(()=>i(n),this.controller,J(this,yB,`f`))]}toReadableStream(){let e=this,t;return jz({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=rB(JSON.stringify(n)+`
|
|
194
|
+
`);e.enqueue(i)}catch(t){e.error(t)}},async cancel(){await t.return?.()}})}};async function*xB(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 CB,r=new cB,i=Nz(e.body);for await(let e of SB(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*SB(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`?rB(n):n,r=new Uint8Array(t.length+e.length);r.set(t),r.set(e,t.length),t=r;let i;for(;(i=uB(t))!==-1;)yield t.slice(0,i),t=t.slice(i)}t.length>0&&(yield t)}var CB=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]=wB(e,`:`);return r.startsWith(` `)&&(r=r.substring(1)),t===`event`?this.event=r:t===`data`&&this.data.push(r),null}};function wB(e,t){let n=e.indexOf(t);return n===-1?[e,``,``]:[e.substring(0,n),t,e.substring(n+t.length)]}async function TB(e,t){let{response:n,requestLogID:r,retryOfRequestLogID:i,startTime:a}=t,o=await(async()=>{if(t.options.stream)return _B(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):bB.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:EB(await n.json(),n):await n.text()})();return _B(e).debug(`[${r}] response parsed`,vB({retryOfRequestLogID:i,url:n.url,status:n.status,body:o,durationMs:Date.now()-a})),o}function EB(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 DB,OB=class e extends Promise{constructor(e,t,n=TB){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=n,DB.set(this,void 0),q(this,DB,e,`f`)}_thenUnwrap(t){return new e(J(this,DB,`f`),this.responsePromise,async(e,n)=>EB(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,DB,`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)}};DB=new WeakMap;var kB,AB=class{constructor(e,t,n,r){kB.set(this,void 0),q(this,kB,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,kB,`f`).requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(kB=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},jB=class extends OB{constructor(e,t,n){super(e,t,async(e,t)=>new n(e,t.response,await TB(e,t),t.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},MB=class extends AB{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}},NB=class extends AB{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:{...mz(this.options.query),after:t}}:null}},PB=class extends AB{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:{...mz(this.options.query),after:e}}:null}},FB=class extends AB{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:{...mz(this.options.query),after:e}}:null}},IB={jwt:`urn:ietf:params:oauth:token-type:jwt`,id:`urn:ietf:params:oauth:token-type:id_token`},LB=`urn:ietf:params:oauth:grant-type:token-exchange`,RB=class{constructor(e,t){this.cachedToken=null,this.refreshPromise=null,this.tokenExchangeUrl=`https://auth.openai.com/oauth/token`,this.config=e,this.fetch=t??Az()}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:LB,subject_token:await this.config.provider.getToken(),subject_token_type:IB[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 cz(t.status,n,t.headers):qR.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}},zB=()=>{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 BB(e,t,n){return zB(),new File(e,t??`unknown_file`,n)}function VB(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 HB=e=>typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`,UB=async(e,t)=>XB(e.body)?{...e,body:await qB(e.body,t)}:e,WB=async(e,t)=>({...e,body:await qB(e.body,t)}),GB=new WeakMap;function KB(e){let t=typeof e==`function`?e:e.fetch,n=GB.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 GB.set(t,r),r}var qB=async(e,t)=>{if(!await KB(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])=>ZB(n,e,t))),n},JB=e=>e instanceof Blob&&`name`in e,YB=e=>typeof e==`object`&&!!e&&(e instanceof Response||HB(e)||JB(e)),XB=e=>{if(YB(e))return!0;if(Array.isArray(e))return e.some(XB);if(e&&typeof e==`object`){for(let t in e)if(XB(e[t]))return!0}return!1},ZB=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,BB([await n.blob()],VB(n)));else if(HB(n))e.append(t,BB([await new Response(Mz(n)).blob()],VB(n)));else if(JB(n))e.append(t,n,VB(n));else if(Array.isArray(n))await Promise.all(n.map(n=>ZB(e,t+`[]`,n)));else if(typeof n==`object`)await Promise.all(Object.entries(n).map(([n,r])=>ZB(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`)}},QB=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`,$B=e=>typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.lastModified==`number`&&QB(e),eV=e=>typeof e==`object`&&!!e&&typeof e.url==`string`&&typeof e.blob==`function`;async function tV(e,t,n){if(zB(),e=await e,$B(e))return e instanceof File?e:BB([await e.arrayBuffer()],e.name);if(eV(e)){let r=await e.blob();return t||=new URL(e.url).pathname.split(/[\\/]/).pop(),BB(await nV(r),t,n)}let r=await nV(e);if(t||=VB(e),!n?.type){let e=r.find(e=>typeof e==`object`&&`type`in e&&e.type);typeof e==`string`&&(n={...n,type:e})}return BB(r,t,n)}async function nV(e){let t=[];if(typeof e==`string`||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(QB(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(HB(e))for await(let n of e)t.push(...await nV(n));else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:``}${rV(e)}`)}return t}function rV(e){return typeof e!=`object`||!e?``:`; props: [${Object.getOwnPropertyNames(e).map(e=>`"${e}"`).join(`, `)}]`}var X=class{constructor(e){this._client=e}};function iV(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var aV=Object.freeze(Object.create(null)),Z=((e=iV)=>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??aV)??aV)?.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})(iV),oV=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/chat/completions/${e}/messages`,NB,{query:t,...n,__security:{bearerAuth:!0}})}};function sV(e){return e!==void 0&&`function`in e&&e.function!==void 0}function cV(e,t){let n={...e};return Object.defineProperties(n,{$brand:{value:`auto-parseable-response-format`,enumerable:!1},$parseRaw:{value:t,enumerable:!1}}),n}function lV(e){return e?.$brand===`auto-parseable-response-format`}function uV(e){return e?.$brand===`auto-parseable-tool`}function dV(e,t){return!t||!gV(t)?{...e,choices:e.choices.map(e=>(_V(e.message.tool_calls),{...e,message:{...e.message,parsed:null,...e.message.tool_calls?{tool_calls:e.message.tool_calls}:void 0}}))}:fV(e,t)}function fV(e,t){let n=e.choices.map(e=>{if(e.finish_reason===`length`)throw new az;if(e.finish_reason===`content_filter`)throw new oz;return _V(e.message.tool_calls),{...e,message:{...e.message,...e.message.tool_calls?{tool_calls:e.message.tool_calls?.map(e=>mV(t,e))??void 0}:void 0,parsed:e.message.content&&!e.message.refusal?pV(t,e.message.content):null}}});return{...e,choices:n}}function pV(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 mV(e,t){let n=e.tools?.find(e=>sV(e)&&e.function?.name===t.function.name);return{...t,function:{...t.function,parsed_arguments:uV(n)?n.$parseRaw(t.function.arguments):n?.function.strict?JSON.parse(t.function.arguments):null}}}function hV(e,t){if(!e||!(`tools`in e)||!e.tools)return!1;let n=e.tools?.find(e=>sV(e)&&e.function?.name===t.function.name);return sV(n)&&(uV(n)||n?.function.strict||!1)}function gV(e){return lV(e.response_format)?!0:e.tools?.some(e=>uV(e)||e.type===`function`&&e.function.strict===!0)??!1}function _V(e){for(let t of e||[])if(t.type!==`function`)throw new Y(`Currently only \`function\` tool calls are supported; Received \`${t.type}\``)}function vV(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 yV=e=>e?.role===`assistant`,bV=e=>e?.role===`tool`,xV,SV,CV,wV,TV,EV,DV,OV,kV,AV,jV,MV,NV,PV,FV,IV=class{constructor(){xV.add(this),this.controller=new AbortController,SV.set(this,void 0),CV.set(this,()=>{}),wV.set(this,()=>{}),TV.set(this,void 0),EV.set(this,()=>{}),DV.set(this,()=>{}),OV.set(this,{}),kV.set(this,[]),AV.set(this,!1),jV.set(this,!1),MV.set(this,!1),NV.set(this,!1),q(this,SV,new Promise((e,t)=>{q(this,CV,e,`f`),q(this,wV,t,`f`)}),`f`),q(this,TV,new Promise((e,t)=>{q(this,EV,e,`f`),q(this,DV,t,`f`)}),`f`),J(this,SV,`f`).catch(()=>{}),J(this,TV,`f`).catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit(`end`)},J(this,xV,`m`,FV).bind(this))},0)}_connected(){this.ended||(J(this,CV,`f`).call(this),this._emit(`connect`))}get ended(){return J(this,AV,`f`)}get errored(){return J(this,jV,`f`)}get aborted(){return J(this,MV,`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,kV,`f`).push({signal:e,listener:t})}on(e,t){return(J(this,OV,`f`)[e]||(J(this,OV,`f`)[e]=[])).push({listener:t}),this}off(e,t){let n=J(this,OV,`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,OV,`f`)[e]||(J(this,OV,`f`)[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{q(this,NV,!0,`f`),e!==`error`&&this.once(`error`,n),this.once(e,t)})}async done(){q(this,NV,!0,`f`),await J(this,TV,`f`)}_emit(e,...t){if(J(this,AV,`f`))return;e===`end`&&(J(this,xV,`m`,PV).call(this),q(this,AV,!0,`f`),J(this,EV,`f`).call(this));let n=J(this,OV,`f`)[e];if(n&&(J(this,OV,`f`)[e]=n.filter(e=>!e.once),n.forEach(({listener:e})=>e(...t))),e===`abort`){let e=t[0];!J(this,NV,`f`)&&!n?.length&&Promise.reject(e),J(this,wV,`f`).call(this,e),J(this,DV,`f`).call(this,e),this._emit(`end`);return}if(e===`error`){let e=t[0];!J(this,NV,`f`)&&!n?.length&&Promise.reject(e),J(this,wV,`f`).call(this,e),J(this,DV,`f`).call(this,e),this._emit(`end`)}}_emitFinal(){}};SV=new WeakMap,CV=new WeakMap,wV=new WeakMap,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,xV=new WeakSet,PV=function(){for(let{signal:e,listener:t}of J(this,kV,`f`).splice(0))e.removeEventListener(`abort`,t)},FV=function(e){if(q(this,jV,!0,`f`),e instanceof Error&&e.name===`AbortError`&&(e=new JR),e instanceof JR)return q(this,MV,!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 LV(e){return typeof e.parse==`function`}var RV,zV,BV,VV,HV,UV,WV,GV,KV=10,qV=class extends IV{constructor(){super(...arguments),RV.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),bV(e)&&e.content)this._emit(`functionToolCallResult`,e.content);else if(yV(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,RV,`m`,zV).call(this)}async finalMessage(){return await this.done(),J(this,RV,`m`,BV).call(this)}async finalFunctionToolCall(){return await this.done(),J(this,RV,`m`,VV).call(this)}async finalFunctionToolCallResult(){return await this.done(),J(this,RV,`m`,HV).call(this)}async totalUsage(){return await this.done(),J(this,RV,`m`,UV).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit(`finalChatCompletion`,e);let t=J(this,RV,`m`,BV).call(this);t&&this._emit(`finalMessage`,t);let n=J(this,RV,`m`,zV).call(this);n&&this._emit(`finalContent`,n);let r=J(this,RV,`m`,VV).call(this);r&&this._emit(`finalFunctionToolCall`,r);let i=J(this,RV,`m`,HV).call(this);i!=null&&this._emit(`finalFunctionToolCallResult`,i),this._chatCompletions.some(e=>e.usage)&&this._emit(`totalUsage`,J(this,RV,`m`,UV).call(this))}async _createChatCompletion(e,t,n){this._listenForAbort(n?.signal),J(this,RV,`m`,WV).call(this,t);let r=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(fV(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=KV,afterCompletion:u}=r||{},d=t.tools.map(e=>{if(uV(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(LV(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,RV,`m`,GV).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)}}};RV=new WeakSet,zV=function(){return J(this,RV,`m`,BV).call(this).content??null},BV=function(){let e=this.messages.length;for(;e-->0;){let t=this.messages[e];if(yV(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new Y(`stream ended without producing a ChatCompletionMessage with role=assistant`)},VV=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(yV(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}}},HV=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(bV(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}},UV=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},WV=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.`)},GV=function(e){return typeof e==`string`?e:e===void 0?`undefined`:JSON.stringify(e)};var JV=class e extends qV{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),yV(e)&&e.content&&this._emit(`content`,e.content)}},YV={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},XV=class extends Error{},ZV=class extends Error{};function QV(e,t=YV.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return $V(e.trim(),t)}var $V=(e,t)=>{let n=e.length,r=0,i=e=>{throw new XV(`${e} at position ${r}`)},a=e=>{throw new ZV(`${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`||YV.NULL&t&&n-r<4&&`null`.startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)===`true`||YV.BOOL&t&&n-r<4&&`true`.startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)===`false`||YV.BOOL&t&&n-r<5&&`false`.startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)===`Infinity`||YV.INFINITY&t&&n-r<8&&`Infinity`.startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)===`-Infinity`||YV.MINUS_INFINITY&t&&1<n-r&&n-r<9&&`-Infinity`.startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)===`NaN`||YV.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(YV.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&&YV.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(YV.OBJ&t)return a;throw e}d(),e[r]===`,`&&r++}}catch{if(YV.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(YV.ARR&t)return n;i(`Expected ']' at end of array`)}return r++,n},u=()=>{if(r===0){e===`-`&&YV.NUM&t&&i(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(YV.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&&!(YV.NUM&t)&&i(`Unterminated number literal`);try{return JSON.parse(e.substring(o,r))}catch{e.substring(o,r)===`-`&&YV.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()},eH=e=>QV(e,YV.ALL^YV.NUM),tH,nH,rH,iH,aH,oH,sH,cH,lH,uH,dH,fH,pH=class e extends qV{constructor(e){super(),tH.add(this),nH.set(this,void 0),rH.set(this,void 0),iH.set(this,void 0),q(this,nH,e,`f`),q(this,rH,[],`f`)}get currentChatCompletionSnapshot(){return J(this,iH,`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,tH,`m`,aH).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,tH,`m`,sH).call(this,e);if(r.controller.signal?.aborted)throw new JR;return this._addChatCompletion(J(this,tH,`m`,uH).call(this))}async _fromReadableStream(e,t){this._listenForAbort(t?.signal),J(this,tH,`m`,aH).call(this),this._connected();let n=bB.fromReadableStream(e,this.controller),r;for await(let e of n)r&&r!==e.id&&this._addChatCompletion(J(this,tH,`m`,uH).call(this)),J(this,tH,`m`,sH).call(this,e),r=e.id;if(n.controller.signal?.aborted)throw new JR;return this._addChatCompletion(J(this,tH,`m`,uH).call(this))}[(nH=new WeakMap,rH=new WeakMap,iH=new WeakMap,tH=new WeakSet,aH=function(){this.ended||q(this,iH,void 0,`f`)},oH=function(e){let t=J(this,rH,`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,rH,`f`)[e.index]=t,t)},sH=function(e){if(this.ended)return;let t=J(this,tH,`m`,fH).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,tH,`m`,oH).call(this,e);e.finish_reason&&(J(this,tH,`m`,lH).call(this,e),r.current_tool_call_index!=null&&J(this,tH,`m`,cH).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,tH,`m`,lH).call(this,e),r.current_tool_call_index!=null&&J(this,tH,`m`,cH).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)}}},cH=function(e,t){if(J(this,tH,`m`,oH).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,nH,`f`)?.tools?.find(e=>sV(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:uV(e)?e.$parseRaw(n.function.arguments):e?.function.strict?JSON.parse(n.function.arguments):null})}else n.type},lH=function(e){let t=J(this,tH,`m`,oH).call(this,e);if(e.message.content&&!t.content_done){t.content_done=!0;let n=J(this,tH,`m`,dH).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}))},uH=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);let e=J(this,iH,`f`);if(!e)throw new Y(`request ended without sending any chunks`);return q(this,iH,void 0,`f`),q(this,rH,[],`f`),mH(e,J(this,nH,`f`))},dH=function(){let e=J(this,nH,`f`)?.response_format;return lV(e)?e:null},fH=function(e){var t,n,r,i;let a=J(this,iH,`f`),{choices:o,...s}=e;a?Object.assign(a,s):a=q(this,iH,{...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,nH,`f`)&&gV(J(this,nH,`f`)))){if(s===`length`)throw new az;if(s===`content_filter`)throw new oz}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,tH,`m`,dH).call(this)&&(e.message.parsed=e.message.content.trim()?eH(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,hV(J(this,nH,`f`),s)&&(s.function.parsed_arguments=eH(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 bB(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function mH(e,t){let{id:n,choices:r,created:i,model:a,system_fingerprint:o,...s}=e;return dV({...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${hH(e)}`);if(a==null)throw new Y(`missing choices[${r}].tool_calls[${n}].type\n${hH(e)}`);if(l==null)throw new Y(`missing choices[${r}].tool_calls[${n}].function.name\n${hH(e)}`);if(c==null)throw new Y(`missing choices[${r}].tool_calls[${n}].function.arguments\n${hH(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 hH(e){return JSON.stringify(e)}var gH=class e extends pH{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}},_H=class extends X{constructor(){super(...arguments),this.messages=new oV(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`,NB,{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 vV(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t?.headers,"X-Stainless-Helper-Method":`chat.completions.parse`}})._thenUnwrap(t=>fV(t,e))}runTools(e,t){return e.stream?gH.runTools(this._client,e,t):JV.runTools(this._client,e,t)}stream(e,t){return pH.createChatCompletion(this._client,e,t)}};_H.Messages=oV;var vH=class extends X{constructor(){super(...arguments),this.completions=new _H(this._client)}};vH.Completions=_H;var yH=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`,NB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/admin_api_keys/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},bH=class extends X{list(e={},t){return this._client.getAPIList(`/organization/audit_logs`,PB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}},xH=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`,PB,{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`,MB,{body:e,method:`post`,...t,__security:{adminAPIKeyAuth:!0}})}deactivate(e,t){return this._client.getAPIList(`/organization/certificates/deactivate`,MB,{body:e,method:`post`,...t,__security:{adminAPIKeyAuth:!0}})}},SH=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}})}},CH=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`,PB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/invites/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},wH=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`,FB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/roles/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},TH=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`,PB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/spend_alerts/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}},EH=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}})}},DH=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`,FB,{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}})}},OH=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`,FB,{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}})}},kH=class extends X{constructor(){super(...arguments),this.users=new OH(this._client),this.roles=new DH(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`,FB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/groups/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}};kH.Users=OH,kH.Roles=DH;var AH=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`,PB,{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}})}},jH=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates`,PB,{query:t,...n,__security:{adminAPIKeyAuth:!0}})}activate(e,t,n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates/activate`,MB,{body:t,method:`post`,...n,__security:{adminAPIKeyAuth:!0}})}deactivate(e,t,n){return this._client.getAPIList(Z`/organization/projects/${e}/certificates/deactivate`,MB,{body:t,method:`post`,...n,__security:{adminAPIKeyAuth:!0}})}},MH=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}})}},NH=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}})}},PH=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}})}},FH=class extends X{listRateLimits(e,t={},n){return this._client.getAPIList(Z`/organization/projects/${e}/rate_limits`,PB,{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}})}},IH=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`,FB,{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}})}},LH=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`,PB,{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}})}},RH=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`,PB,{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}})}},zH=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`,FB,{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}})}},BH=class extends X{constructor(){super(...arguments),this.roles=new zH(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`,FB,{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}})}};BH.Roles=zH;var VH=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`,FB,{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}})}},HH=class extends X{constructor(){super(...arguments),this.roles=new VH(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`,PB,{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}})}};HH.Roles=VH;var UH=class extends X{constructor(){super(...arguments),this.users=new HH(this._client),this.serviceAccounts=new LH(this._client),this.apiKeys=new AH(this._client),this.rateLimits=new FH(this._client),this.modelPermissions=new PH(this._client),this.hostedToolPermissions=new NH(this._client),this.groups=new BH(this._client),this.roles=new IH(this._client),this.dataRetention=new MH(this._client),this.spendAlerts=new RH(this._client),this.certificates=new jH(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`,PB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}archive(e,t){return this._client.post(Z`/organization/projects/${e}/archive`,{...t,__security:{adminAPIKeyAuth:!0}})}};UH.Users=HH,UH.ServiceAccounts=LH,UH.APIKeys=AH,UH.RateLimits=FH,UH.ModelPermissions=PH,UH.HostedToolPermissions=NH,UH.Groups=BH,UH.Roles=IH,UH.DataRetention=MH,UH.SpendAlerts=RH,UH.Certificates=jH;var WH=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`,FB,{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}})}},GH=class extends X{constructor(){super(...arguments),this.roles=new WH(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`,PB,{query:e,...t,__security:{adminAPIKeyAuth:!0}})}delete(e,t){return this._client.delete(Z`/organization/users/${e}`,{...t,__security:{adminAPIKeyAuth:!0}})}};GH.Roles=WH;var KH=class extends X{constructor(){super(...arguments),this.auditLogs=new bH(this._client),this.adminAPIKeys=new yH(this._client),this.usage=new EH(this._client),this.invites=new CH(this._client),this.users=new GH(this._client),this.groups=new kH(this._client),this.roles=new wH(this._client),this.dataRetention=new SH(this._client),this.spendAlerts=new TH(this._client),this.certificates=new xH(this._client),this.projects=new UH(this._client)}};KH.AuditLogs=bH,KH.AdminAPIKeys=yH,KH.Usage=EH,KH.Invites=CH,KH.Users=GH,KH.Groups=kH,KH.Roles=wH,KH.DataRetention=SH,KH.SpendAlerts=TH,KH.Certificates=xH,KH.Projects=UH;var qH=class extends X{constructor(){super(...arguments),this.organization=new KH(this._client)}};qH.Organization=KH;var JH=Symbol(`brand.privateNullableHeaders`);function*YH(e){if(!e)return;if(JH 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():pz(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=pz(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 YH(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{[JH]:!0,values:t,nulls:n}},XH=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})}},ZH=class extends X{create(e,t){return this._client.post(`/audio/transcriptions`,WB({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model},__security:{bearerAuth:!0}},this._client))}},QH=class extends X{create(e,t){return this._client.post(`/audio/translations`,WB({body:e,...t,__metadata:{model:e.model},__security:{bearerAuth:!0}},this._client))}},$H=class extends X{constructor(){super(...arguments),this.transcriptions=new ZH(this._client),this.translations=new QH(this._client),this.speech=new XH(this._client)}};$H.Transcriptions=ZH,$H.Translations=QH,$H.Speech=XH;var eU=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`,NB,{query:e,...t,__security:{bearerAuth:!0}})}cancel(e,t){return this._client.post(Z`/batches/${e}/cancel`,{...t,__security:{bearerAuth:!0}})}},tU=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`,NB,{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}})}},nU=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}})}},rU=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}})}},iU=class extends X{constructor(){super(...arguments),this.sessions=new nU(this._client),this.transcriptionSessions=new rU(this._client)}};iU.Sessions=nU,iU.TranscriptionSessions=rU;var aU=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}})}},oU=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`,PB,{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`,PB,{query:t,...n,headers:Q([{"OpenAI-Beta":`chatkit_beta=v1`},n?.headers]),__security:{bearerAuth:!0}})}},sU=class extends X{constructor(){super(...arguments),this.sessions=new aU(this._client),this.threads=new oU(this._client)}};sU.Sessions=aU,sU.Threads=oU;var cU=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`,NB,{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}})}},lU=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`,NB,{query:i,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}},uU=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))}},dU=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},fU,pU,mU,hU,gU,_U,vU,yU,bU,xU,SU,CU,wU,TU,EU,DU,OU,kU,AU,jU,MU,NU,PU,FU=class extends IV{constructor(){super(...arguments),fU.add(this),mU.set(this,[]),hU.set(this,{}),gU.set(this,{}),_U.set(this,void 0),vU.set(this,void 0),yU.set(this,void 0),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)}[(mU=new WeakMap,hU=new WeakMap,gU=new WeakMap,_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,fU=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 pU;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){this._listenForAbort(t?.signal),this._connected();let n=bB.fromReadableStream(e,this.controller);for await(let e of n)J(this,fU,`m`,EU).call(this,e);if(n.controller.signal?.aborted)throw new JR;return this._addRun(J(this,fU,`m`,DU).call(this))}toReadableStream(){return new bB(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,r){let i=new pU;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,fU,`m`,EU).call(this,e);if(a.controller.signal?.aborted)throw new JR;return this._addRun(J(this,fU,`m`,DU).call(this))}static createThreadAssistantStream(e,t,n){let r=new pU;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 pU;return i._run(()=>i._runAssistantStream(e,t,n,{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}currentEvent(){return J(this,CU,`f`)}currentRun(){return J(this,wU,`f`)}currentMessageSnapshot(){return J(this,_U,`f`)}currentRunStepSnapshot(){return J(this,TU,`f`)}async finalRunSteps(){return await this.done(),Object.values(J(this,hU,`f`))}async finalMessages(){return await this.done(),Object.values(J(this,gU,`f`))}async finalRun(){if(await this.done(),!J(this,vU,`f`))throw Error(`Final run was not received.`);return J(this,vU,`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,fU,`m`,EU).call(this,e);if(i.controller.signal?.aborted)throw new JR;return this._addRun(J(this,fU,`m`,DU).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,fU,`m`,EU).call(this,e);if(a.controller.signal?.aborted)throw new JR;return this._addRun(J(this,fU,`m`,DU).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(_z(t)&&_z(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(!_z(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)}};pU=FU,EU=function(e){if(!this.ended)switch(q(this,CU,e,`f`),J(this,fU,`m`,AU).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,fU,`m`,PU).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,fU,`m`,kU).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,fU,`m`,OU).call(this,e);break;case`error`:throw Error(`Encountered an error event in event processing - errors should be processed earlier`);default:}},DU=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);if(!J(this,vU,`f`))throw Error(`Final run has not been received`);return J(this,vU,`f`)},OU=function(e){let[t,n]=J(this,fU,`m`,MU).call(this,e,J(this,_U,`f`));q(this,_U,t,`f`),J(this,gU,`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,yU,`f`)){if(J(this,bU,`f`))switch(J(this,bU,`f`).type){case`text`:this._emit(`textDone`,J(this,bU,`f`).text,J(this,_U,`f`));break;case`image_file`:this._emit(`imageFileDone`,J(this,bU,`f`).image_file,J(this,_U,`f`));break}q(this,yU,n.index,`f`)}q(this,bU,t.content[n.index],`f`)}break;case`thread.message.completed`:case`thread.message.incomplete`:if(J(this,yU,`f`)!==void 0){let t=e.data.content[J(this,yU,`f`)];if(t)switch(t.type){case`image_file`:this._emit(`imageFileDone`,t.image_file,J(this,_U,`f`));break;case`text`:this._emit(`textDone`,t.text,J(this,_U,`f`));break}}J(this,_U,`f`)&&this._emit(`messageDone`,e.data),q(this,_U,void 0,`f`)}},kU=function(e){let t=J(this,fU,`m`,jU).call(this,e);switch(q(this,TU,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,xU,`f`)?this._emit(`toolCallDelta`,e,t.step_details.tool_calls[e.index]):(J(this,SU,`f`)&&this._emit(`toolCallDone`,J(this,SU,`f`)),q(this,xU,e.index,`f`),q(this,SU,t.step_details.tool_calls[e.index],`f`),J(this,SU,`f`)&&this._emit(`toolCallCreated`,J(this,SU,`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,TU,void 0,`f`),e.data.step_details.type==`tool_calls`&&J(this,SU,`f`)&&(this._emit(`toolCallDone`,J(this,SU,`f`)),q(this,SU,void 0,`f`)),this._emit(`runStepDone`,e.data,t);break;case`thread.run.step.in_progress`:break}},AU=function(e){J(this,mU,`f`).push(e),this._emit(`event`,e)},jU=function(e){switch(e.event){case`thread.run.step.created`:return J(this,hU,`f`)[e.data.id]=e.data,e.data;case`thread.run.step.delta`:let t=J(this,hU,`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=pU.accumulateDelta(t,n.delta);J(this,hU,`f`)[e.data.id]=r}return J(this,hU,`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,hU,`f`)[e.data.id]=e.data;break}if(J(this,hU,`f`)[e.data.id])return J(this,hU,`f`)[e.data.id];throw Error(`No snapshot available`)},MU=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,fU,`m`,NU).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`)},NU=function(e,t){return pU.accumulateDelta(t,e)},PU=function(e){switch(q(this,wU,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,vU,e.data,`f`),J(this,SU,`f`)&&(this._emit(`toolCallDone`,J(this,SU,`f`)),q(this,SU,void 0,`f`));break;case`thread.run.cancelling`:break}};var IU=class extends X{constructor(){super(...arguments),this.steps=new lU(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`,NB,{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 FU.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 bz(e);break;case`requires_action`:case`incomplete`:case`cancelled`:case`completed`:case`failed`:case`expired`:return i}}}stream(e,t,n){return FU.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 FU.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};IU.Steps=lU;var LU=class extends X{constructor(){super(...arguments),this.runs=new IU(this._client),this.messages=new cU(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 FU.createThreadAssistantStream(e,this._client.beta.threads,t)}};LU.Runs=IU,LU.Messages=cU;var RU=class extends X{constructor(){super(...arguments),this.realtime=new iU(this._client),this.chatkit=new sU(this._client),this.assistants=new tU(this._client),this.threads=new LU(this._client)}};RU.Realtime=iU,RU.ChatKit=sU,RU.Assistants=tU,RU.Threads=LU;var zU=class extends X{create(e,t){return this._client.post(`/completions`,{body:e,...t,stream:e.stream??!1,__security:{bearerAuth:!0}})}},BU=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})}},VU=class extends X{constructor(){super(...arguments),this.content=new BU(this._client)}create(e,t,n){return this._client.post(Z`/containers/${e}/files`,UB({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`,NB,{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}})}};VU.Content=BU;var HU=class extends X{constructor(){super(...arguments),this.files=new VU(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`,NB,{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}})}};HU.Files=VU;var UU=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`,PB,{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}})}},WU=class extends X{constructor(){super(...arguments),this.items=new UU(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}})}};WU.Items=UU;var GU=class extends X{create(e,t){let n=!!e.encoding_format,r=n?e.encoding_format:`base64`;n&&_B(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:(_B(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=uU(t)}),e)))}},KU=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`,NB,{query:i,...n,__security:{bearerAuth:!0}})}},qU=class extends X{constructor(){super(...arguments),this.outputItems=new KU(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`,NB,{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}})}};qU.OutputItems=KU;var JU=class extends X{constructor(){super(...arguments),this.runs=new qU(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`,NB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/evals/${e}`,{...t,__security:{bearerAuth:!0}})}};JU.Runs=qU;var YU=class extends X{create(e,t){return this._client.post(`/files`,WB({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`,NB,{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 bz(t),a=await this.retrieve(e),Date.now()-i>n)throw new XR({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return a}},XU=class extends X{},ZU=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}})}},QU=class extends X{constructor(){super(...arguments),this.graders=new ZU(this._client)}};QU.Graders=ZU;var $U=class extends X{create(e,t,n){return this._client.getAPIList(Z`/fine_tuning/checkpoints/${e}/permissions`,MB,{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`,PB,{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}})}},eW=class extends X{constructor(){super(...arguments),this.permissions=new $U(this._client)}};eW.Permissions=$U;var tW=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/fine_tuning/jobs/${e}/checkpoints`,NB,{query:t,...n,__security:{bearerAuth:!0}})}},nW=class extends X{constructor(){super(...arguments),this.checkpoints=new tW(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`,NB,{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`,NB,{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}})}};nW.Checkpoints=tW;var rW=class extends X{constructor(){super(...arguments),this.methods=new XU(this._client),this.jobs=new nW(this._client),this.checkpoints=new eW(this._client),this.alpha=new QU(this._client)}};rW.Methods=XU,rW.Jobs=nW,rW.Checkpoints=eW,rW.Alpha=QU;var iW=class extends X{},aW=class extends X{constructor(){super(...arguments),this.graderModels=new iW(this._client)}};aW.GraderModels=iW;var oW=class extends X{createVariation(e,t){return this._client.post(`/images/variations`,WB({body:e,...t,__security:{bearerAuth:!0}},this._client))}edit(e,t){return this._client.post(`/images/edits`,WB({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}})}},sW=class extends X{retrieve(e,t){return this._client.get(Z`/models/${e}`,{...t,__security:{bearerAuth:!0}})}list(e){return this._client.getAPIList(`/models`,MB,{...e,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/models/${e}`,{...t,__security:{bearerAuth:!0}})}},cW=class extends X{create(e,t){return this._client.post(`/moderations`,{body:e,...t,__security:{bearerAuth:!0}})}},lW=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}})}},uW=class extends X{create(e,t){return this._client.post(`/realtime/client_secrets`,{body:e,...t,__security:{bearerAuth:!0}})}},dW=class extends X{constructor(){super(...arguments),this.clientSecrets=new uW(this._client),this.calls=new lW(this._client)}};dW.ClientSecrets=uW,dW.Calls=lW;function fW(e,t){if(!t||!hW(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 yW(e,t)&&bW(t),t}return pW(e,t)}function pW(e,t){let n=!e.status||e.status===`completed`,r=e.output.map(e=>{if(e.type===`function_call`)return{...e,parsed_arguments:n?vW(t,e):null};if(e.type===`message`){let r=e.content.map(e=>e.type===`output_text`?{...e,parsed:n?mW(t,e.text):null}:e);return{...e,content:r}}return e}),i=Object.assign({},e,{output:r});return yW(e,i)&&bW(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 mW(e,t){return e.text?.format?.type===`json_schema`?`$parseRaw`in e.text?.format?(e.text?.format).$parseRaw(t):JSON.parse(t):null}function hW(e){return!!lV(e.text?.format)}function gW(e){return e?.$brand===`auto-parseable-tool`}function _W(e,t){return e.find(e=>e.type===`function`&&e.name===t)}function vW(e,t){let n=_W(e.tools??[],t.name);return{...t,...t,parsed_arguments:gW(n)?n.$parseRaw(t.arguments):n?.strict?JSON.parse(t.arguments):null}}function yW(e,t){return!Object.getOwnPropertyDescriptor(e,`output_text`)||t.output_text==null}function bW(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 xW(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 SW(e.response)}switch(e.type){case`response.output_item.added`:t.output.push(structuredClone(e.item)),e.item.type===`message`&&bW(t);break;case`response.output_item.done`:CW(t,e.output_index),t.output[e.output_index]=structuredClone(e.item),e.item.type===`message`&&bW(t);break;case`response.content_part.added`:{let n=CW(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`&&bW(t)):r===`reasoning`&&i.type===`reasoning_text`&&(n.content||=[],n.content.push(structuredClone(i)));break}case`response.content_part.done`:{let n=CW(t,e.output_index),r=e.part;if(n.type===`message`&&r.type!==`reasoning_text`)wW(n.content,e.content_index),n.content[e.content_index]=structuredClone(r),r.type===`output_text`&&bW(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}`);wW(t,e.content_index),t[e.content_index]=structuredClone(r)}break}case`response.output_text.delta`:{let n=CW(t,e.output_index);if(n.type===`message`){let r=wW(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=CW(t,e.output_index);if(n.type===`message`){let r=wW(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,bW(t)}break}case`response.output_text.annotation.added`:{let n=CW(t,e.output_index);if(n.type===`message`){let t=wW(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=CW(t,e.output_index);if(n.type===`message`){let t=wW(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=CW(t,e.output_index);if(n.type===`message`){let t=wW(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=CW(t,e.output_index);n.type===`function_call`&&(n.arguments+=e.delta);break}case`response.function_call_arguments.done`:{let n=CW(t,e.output_index);n.type===`function_call`&&(n.arguments=e.arguments);break}case`response.reasoning_text.delta`:{let n=CW(t,e.output_index);if(n.type===`reasoning`){if(!n.content)throw new Y(`missing content at index ${e.content_index}`);let t=wW(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=CW(t,e.output_index);if(n.type===`reasoning`){if(!n.content)throw new Y(`missing content at index ${e.content_index}`);let t=wW(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=CW(t,e.output_index);n.type===`reasoning`&&n.summary.push(structuredClone(e.part));break}case`response.reasoning_summary_part.done`:{let n=CW(t,e.output_index);n.type===`reasoning`&&(wW(n.summary,e.summary_index),n.summary[e.summary_index]=structuredClone(e.part));break}case`response.reasoning_summary_text.delta`:{let n=CW(t,e.output_index);if(n.type===`reasoning`){let t=wW(n.summary,e.summary_index);t.text+=e.delta}break}case`response.reasoning_summary_text.done`:{let n=CW(t,e.output_index);if(n.type===`reasoning`){let t=wW(n.summary,e.summary_index);t.text=e.text}break}case`response.custom_tool_call_input.delta`:{let n=CW(t,e.output_index);n.type===`custom_tool_call`&&(n.input+=e.delta);break}case`response.custom_tool_call_input.done`:{let n=CW(t,e.output_index);n.type===`custom_tool_call`&&(n.input=e.input);break}case`response.mcp_call_arguments.delta`:{let n=CW(t,e.output_index);n.type===`mcp_call`&&(n.arguments+=e.delta);break}case`response.mcp_call_arguments.done`:{let n=CW(t,e.output_index);n.type===`mcp_call`&&(n.arguments=e.arguments);break}case`response.code_interpreter_call_code.delta`:{let n=CW(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=CW(t,e.output_index);n.type===`code_interpreter_call`&&(n.code=e.code);break}case`response.code_interpreter_call.in_progress`:{let n=CW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`in_progress`);break}case`response.code_interpreter_call.interpreting`:{let n=CW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`interpreting`);break}case`response.code_interpreter_call.completed`:{let n=CW(t,e.output_index);n.type===`code_interpreter_call`&&(n.status=`completed`);break}case`response.file_search_call.in_progress`:{let n=CW(t,e.output_index);n.type===`file_search_call`&&(n.status=`in_progress`);break}case`response.file_search_call.searching`:{let n=CW(t,e.output_index);n.type===`file_search_call`&&(n.status=`searching`);break}case`response.file_search_call.completed`:{let n=CW(t,e.output_index);n.type===`file_search_call`&&(n.status=`completed`);break}case`response.web_search_call.in_progress`:{let n=CW(t,e.output_index);n.type===`web_search_call`&&(n.status=`in_progress`);break}case`response.web_search_call.searching`:{let n=CW(t,e.output_index);n.type===`web_search_call`&&(n.status=`searching`);break}case`response.web_search_call.completed`:{let n=CW(t,e.output_index);n.type===`web_search_call`&&(n.status=`completed`);break}case`response.image_generation_call.in_progress`:{let n=CW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`in_progress`);break}case`response.image_generation_call.generating`:{let n=CW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`generating`);break}case`response.image_generation_call.completed`:{let n=CW(t,e.output_index);n.type===`image_generation_call`&&(n.status=`completed`);break}case`response.mcp_call.in_progress`:{let n=CW(t,e.output_index);n.type===`mcp_call`&&(n.status=`in_progress`);break}case`response.mcp_call.completed`:{let n=CW(t,e.output_index);n.type===`mcp_call`&&(n.status=`completed`);break}case`response.mcp_call.failed`:{let n=CW(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=SW(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:TW(e)}return t}function SW(e){let t=structuredClone(e);return(!Object.getOwnPropertyDescriptor(t,`output_text`)||t.output_text==null)&&bW(t),t}function CW(e,t){let n=e.output[t];if(!n)throw new Y(`missing output at index ${t}`);return n}function wW(e,t){let n=e[t];if(!n)throw new Y(`missing content at index ${t}`);return n}function TW(e){throw new Y(`Unhandled response stream event: ${JSON.stringify(e)}`)}var EW,DW,OW,kW,AW,jW,MW,NW=class e extends IV{constructor(e){super(),EW.add(this),DW.set(this,void 0),OW.set(this,void 0),kW.set(this,void 0),q(this,DW,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,EW,`m`,AW).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,EW,`m`,jW).call(this,e,i);if(r.controller.signal?.aborted)throw new JR;return J(this,EW,`m`,MW).call(this)}[(DW=new WeakMap,OW=new WeakMap,kW=new WeakMap,EW=new WeakSet,AW=function(){this.ended||q(this,OW,void 0,`f`)},jW=function(e,t){if(this.ended)return;let n=(e,n)=>{(t==null||n.sequence_number>t)&&this._emit(e,n)},r=xW(e,J(this,OW,`f`));switch(q(this,OW,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}},MW=function(){if(this.ended)throw new Y(`stream has ended, this shouldn't happen`);let e=J(this,OW,`f`);if(!e)throw new Y(`request ended without sending any events`);q(this,OW,void 0,`f`);let t=PW(e,J(this,DW,`f`));return q(this,kW,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,kW,`f`);if(!e)throw new Y(`stream ended without producing a ChatCompletion`);return e}};function PW(e,t){return fW(e,t)}var FW=class extends X{list(e,t={},n){return this._client.getAPIList(Z`/responses/${e}/input_items`,NB,{query:t,...n,__security:{bearerAuth:!0}})}},IW=class extends X{count(e={},t){return this._client.post(`/responses/input_tokens`,{body:e,...t,__security:{bearerAuth:!0}})}},LW=class extends X{constructor(){super(...arguments),this.inputItems=new FW(this._client),this.inputTokens=new IW(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`&&bW(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`&&bW(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=>pW(t,e))}stream(e,t){return NW.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}})}};LW.InputItems=FW,LW.InputTokens=IW;var RW=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})}},zW=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})}},BW=class extends X{constructor(){super(...arguments),this.content=new zW(this._client)}create(e,t={},n){return this._client.post(Z`/skills/${e}/versions`,UB({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`,NB,{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}})}};BW.Content=zW;var VW=class extends X{constructor(){super(...arguments),this.content=new RW(this._client),this.versions=new BW(this._client)}create(e={},t){return this._client.post(`/skills`,UB({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`,NB,{query:e,...t,__security:{bearerAuth:!0}})}delete(e,t){return this._client.delete(Z`/skills/${e}`,{...t,__security:{bearerAuth:!0}})}};VW.Content=RW,VW.Versions=BW;var HW=class extends X{create(e,t,n){return this._client.post(Z`/uploads/${e}/parts`,WB({body:t,...n,__security:{bearerAuth:!0}},this._client))}},UW=class extends X{constructor(){super(...arguments),this.parts=new HW(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}})}};UW.Parts=HW;var WW=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},GW=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`,NB,{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 bz(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 WW(Array(a).fill(s).map(l)),await this.createAndPoll(e,{file_ids:c})}},KW=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`,NB,{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 bz(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`,MB,{...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}},qW=class extends X{constructor(){super(...arguments),this.files=new KW(this._client),this.fileBatches=new GW(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`,NB,{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`,MB,{body:t,method:`post`,...n,headers:Q([{"OpenAI-Beta":`assistants=v2`},n?.headers]),__security:{bearerAuth:!0}})}};qW.Files=KW,qW.FileBatches=GW;var JW=class extends X{create(e,t){return this._client.post(`/videos`,WB({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`,PB,{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`,WB({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`,WB({body:e,...t,__security:{bearerAuth:!0}},this._client))}extend(e,t){return this._client.post(`/videos/extensions`,WB({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`,UB({body:t,...n,__security:{bearerAuth:!0}},this._client))}},YW,XW,ZW,QW=class extends X{constructor(){super(...arguments),YW.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,YW,`m`,XW).call(this,n);let i=Q([t]).values,a=J(this,YW,`m`,ZW).call(this,i,`webhook-signature`),o=J(this,YW,`m`,ZW).call(this,i,`webhook-timestamp`),s=J(this,YW,`m`,ZW).call(this,i,`webhook-id`),c=parseInt(o,10);if(isNaN(c))throw new sz(`Invalid webhook timestamp format`);let l=Math.floor(Date.now()/1e3);if(l-c>r)throw new sz(`Webhook timestamp is too old`);if(c>l+r)throw new sz(`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 sz(`The given webhook signature does not match the expected signature`)}};YW=new WeakSet,XW=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`)},ZW=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 $W=Symbol.for(`openai.node.providerDefinitions.v1`),eG=globalThis,tG=eG[$W],nG=tG??new WeakMap;tG||Object.defineProperty(eG,$W,{value:nG});function rG(e){let t=nG.get(e);if(!t)throw Error(`Invalid provider. Providers must be created with createProvider().`);return t.configure()}var iG,aG,oG,sG,cG=`workload-identity-auth`,$=class{constructor(e={}){iG.add(this),oG.set(this,void 0),this.completions=new zU(this),this.chat=new vH(this),this.embeddings=new GU(this),this.files=new YU(this),this.images=new oW(this),this.audio=new $H(this),this.moderations=new cW(this),this.models=new sW(this),this.fineTuning=new rW(this),this.graders=new aW(this),this.vectorStores=new qW(this),this.webhooks=new QW(this),this.beta=new RU(this),this.batches=new eU(this),this.uploads=new UW(this),this.admin=new qH(this),this.responses=new LW(this),this.realtime=new dW(this),this.conversations=new WU(this),this.evals=new JU(this),this.containers=new HU(this),this.skills=new VW(this),this.videos=new JW(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:dU(`OPENAI_BASE_URL`),apiKey:r=t?null:dU(`OPENAI_API_KEY`)??null,adminAPIKey:i=t?null:dU(`OPENAI_ADMIN_KEY`)??null,organization:a=t?null:dU(`OPENAI_ORG_ID`)??null,project:o=t?null:dU(`OPENAI_PROJECT_ID`)??null,webhookSecret:s=dU(`OPENAI_WEBHOOK_SECRET`)??null,workloadIdentity:c,...l}=e,u=t?rG(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&&Sz())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??aG.DEFAULT_TIMEOUT,this.logger=d.logger??console;let f=`warn`;this.logLevel=f,this.logLevel=fB(d.logLevel,`ClientOptions.logLevel`,this)??fB(dU(`OPENAI_LOG`),`process.env['OPENAI_LOG']`,this)??f,this.fetchOptions=d.fetchOptions,this.maxRetries=d.maxRetries??2,this.fetch=d.fetch??Az(),q(this,oG,Fz,`f`);let p=t?void 0:dU(`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 RB(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 eB(e)}getUserAgent(){return`${this.constructor.name}/JS ${xz}`}defaultIdempotencyKey(){return`stainless-node-retry-${WR()}`}makeStatusError(e,t,n,r){return qR.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,iG,`m`,sG).call(this)&&n||this.baseURL,i=dz(e)?new URL(e):new URL(r+(r.endsWith(`/`)&&e.startsWith(`/`)?e.slice(1):e)),a=this.defaultQuery(),o=Object.fromEntries(i.searchParams);return(!hz(a)||!hz(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 OB(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(_B(this).debug(`[${c}] sending request`,vB({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:a.headers})),r.signal?.aborted)throw new JR;let d=r.__security??{bearerAuth:!0},f=new AbortController,p=await this.fetchWithAuth(o,a,s,f,d).catch(KR),m=Date.now();if(p instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new JR;let i=GR(p)||/timed? ?out/i.test(String(p)+(`cause`in p?String(p.cause):``));if(t)return _B(this).info(`[${c}] connection ${i?`timed out`:`failed`} - ${e}`),_B(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (${e})`,vB({retryOfRequestLogID:n,url:o,durationMs:m-u,message:p.message})),this.retryRequest(r,t,n??c);throw _B(this).info(`[${c}] connection ${i?`timed out`:`failed`} - error; no more retries left`),_B(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (error; no more retries left)`,vB({retryOfRequestLogID:n,url:o,durationMs:m-u,message:p.message})),p instanceof cz||p instanceof lz?p:i?new XR:new YR({message:lG(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 Pz(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 Pz(p.body),_B(this).info(`${h} - ${e}`),_B(this).debug(`[${c}] response error (${e})`,vB({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`;_B(this).info(`${h} - ${i}`);let a=await p.text().catch(e=>KR(e).message),o=yz(a),s=o?void 0:a;throw _B(this).debug(`[${c}] response error (${i})`,vB({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 _B(this).info(h),_B(this).debug(`[${c}] response start`,vB({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 jB(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 ${cG}`){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 bz(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&&vz(`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))}:{},...kz(),"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,oG,`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:Mz(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,oG,`f`).call(this,{body:t,headers:r}),isStreamingBody:!1}}};aG=$,oG=new WeakMap,iG=new WeakSet,sG=function(){return this._provider!==void 0||this.baseURL!==`https://api.openai.com/v1`},$.OpenAI=aG,$.DEFAULT_TIMEOUT=6e5,$.OpenAIError=Y,$.APIError=qR,$.APIConnectionError=YR,$.APIConnectionTimeoutError=XR,$.APIUserAbortError=JR,$.NotFoundError=ez,$.ConflictError=tz,$.RateLimitError=rz,$.BadRequestError=ZR,$.AuthenticationError=QR,$.InternalServerError=iz,$.PermissionDeniedError=$R,$.UnprocessableEntityError=nz,$.InvalidWebhookSignatureError=sz,$.toFile=tV,$.Completions=zU,$.Chat=vH,$.Embeddings=GU,$.Files=YU,$.Images=oW,$.Audio=$H,$.Moderations=cW,$.Models=sW,$.FineTuning=rW,$.Graders=aW,$.VectorStores=qW,$.Webhooks=QW,$.Beta=RU,$.Batches=eU,$.Uploads=UW,$.Admin=qH,$.Responses=LW,$.Realtime=dW,$.Conversations=WU,$.Evals=JU,$.Containers=HU,$.Skills=VW,$.Videos=JW;function lG(e){if(uG(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 uG(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 dG=class extends ${constructor({baseURL:e=dU(`OPENAI_BASE_URL`),apiKey:t=dU(`AZURE_OPENAI_API_KEY`),apiVersion:n=dU(`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(fG.has(e.path)&&e.method===`post`&&e.body!==void 0){if(!_z(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)}},fG=new Set([`/completions`,`/chat/completions`,`/embeddings`,`/audio/transcriptions`,`/audio/translations`,`/audio/speech`,`/images/generations`,`/batches`,`/images/edits`]);function pG(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 mG(e){if(!e||typeof e!=`object`)return e;let t;return e.constructor.name===XR.name&&`message`in e&&typeof e.message==`string`?(t=Error(e.message),t.name=`TimeoutError`):e.constructor.name===JR.name&&`message`in e&&typeof e.message==`string`?(t=Error(e.message),t.name=`AbortError`):t=pG(e)?x.fromError(e):`status`in e&&e.status===400&&`message`in e&&typeof e.message==`string`&&e.message.includes(`tool_calls`)?UR(e,`INVALID_TOOL_RESULTS`):`status`in e&&e.status===401?UR(e,`MODEL_AUTHENTICATION`):`status`in e&&e.status===429?UR(e,`MODEL_RATE_LIMIT`):`status`in e&&e.status===404?UR(e,`MODEL_NOT_FOUND`):e,t}var hG=e=>e();function gG(e){return e?!!(/^o\d/.test(e??``)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-chat`)):!1}function _G(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 vG(e){return e.metadata?.filename??e.metadata?.name??e.metadata?.title}var yG=`LC_AUTOGENERATED`;function bG(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'.`),yG)}function xG(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(!ln.isInstance(e))throw Error(`Invalid generic chat message`);return _G(e);default:throw Error(`Unknown message type: ${t}`)}}function SG(e){return!!(e.includes(`gpt-5.2-pro`)||e.includes(`gpt-5.4-pro`)||e.includes(`gpt-5.5-pro`)||e.includes(`codex`))}function CG(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 wG(e){return typeof Headers<`u`&&typeof e==`object`&&!!e&&Object.prototype.toString.call(e)===`[object Headers]`}function TG(e){let t=hG(()=>{if(wG(e))return e;if(Array.isArray(e))return new Headers(e);if(typeof e==`object`&&e&&`values`in e&&wG(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 EG(){let e=Ir();return(e===`node`||e===`deno`)&&(e=`(${e}/${process.version}; ${process.platform}; ${process.arch})`),e}function DG(e,t=!1,n=`1.0.0`){let r=TG(e),i=EG(),a=`langchainjs${t?`-azure`:``}-openai`;return{...r,"User-Agent":r[`User-Agent`]?`${a}/${n} (${i})${r[`User-Agent`]}`:`${a}/${n} (${i})`}}function OG(e,t){let n;return n=wk(e)?qj(e):e,t?.strict!==void 0&&(n.function.strict=t.strict),n}function kG(e){return e.anyOf!==void 0&&Array.isArray(e.anyOf)}function AG(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(jG(n.parameters,0)),t.push(`}) => any;`)):t.push(`type ${n.name} = () => any;`),t.push(``);return t.push(`} // namespace functions`),t.join(`
|
|
208
|
+
`)}function jG(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}: ${MG(i,t)},`):n.push(`${r}?: ${MG(i,t)},`);return n.map(e=>` `.repeat(t)+e).join(`
|
|
209
|
+
`)}function MG(e,t){if(kG(e))return e.anyOf.map(e=>MG(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[`{`,jG(e,t+2),`}`].join(`
|
|
210
|
+
`);case`array`:return e.items?`${MG(e.items,t)}[]`:`any[]`;default:return``}}function NG(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 PG(e){return`type`in e&&e.type!==`function`}function FG(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 IG(e){return typeof e==`object`&&!!e&&`type`in e&&e.type!==`function`}function LG(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 RG(e){return`type`in e&&e.type===`custom`&&`custom`in e&&typeof e.custom==`object`&&e.custom!==null}function zG(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 BG(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 VG(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_call`&&`isComputerTool`in e&&e.isComputerTool===!0}function HG(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 UG(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 WG(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 GG=Symbol(`Let zodToJsonSchema decide on which parser to use`),KG={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`},qG=e=>typeof e==`string`?{...KG,basePath:[`#`],definitions:{},name:e}:{...KG,basePath:[`#`],definitions:{},...e},JG=e=>`_def`in e?e._def:e;function YG(e){if(!e)return!0;for(let t in e)return!1;return!0}var XG=e=>{let t=qG(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])=>[JG(n),{def:JG(n),path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}};function ZG(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function QG(e,t,n,r,i){e[t]=n,ZG(e,t,r,i)}function $G(){return{}}function eK(e,t){let n={type:`array`};return e.type?._def?.typeName!==H.ZodAny&&(n.items=BK(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&QG(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&QG(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(QG(n,`minItems`,e.exactLength.value,e.exactLength.message,t),QG(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function tK(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?QG(n,`minimum`,r.value,r.message,t):QG(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),QG(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?QG(n,`maximum`,r.value,r.message,t):QG(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),QG(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:QG(n,`multipleOf`,r.value,r.message,t);break}return n}function nK(){return{type:`boolean`}}function rK(e,t,n){return BK(e.type._def,t,n)}var iK=(e,t,n)=>BK(e.innerType._def,t,n);function aK(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>aK(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 oK(e,t)}}var oK=(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`:QG(n,`minimum`,r.value,r.message,t);break;case`max`:QG(n,`maximum`,r.value,r.message,t);break}return n};function sK(e,t,n){return{...BK(e.innerType._def,t,n),default:e.defaultValue()}}function cK(e,t,n){return t.effectStrategy===`input`?BK(e.schema._def,t,n):{}}function lK(e){return{type:`string`,enum:[...e.values]}}var uK=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function dK(e,t){let n=[BK(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),BK(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(uK(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 fK(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 pK,mK={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:()=>(pK===void 0&&(pK=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),pK),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 hK(e,t){let n={type:`string`};function r(e){return t.patternStrategy===`escape`?gK(e):e}if(e.checks)for(let i of e.checks)switch(i.kind){case`min`:QG(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,i.value):i.value,i.message,t);break;case`max`:QG(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`:_K(n,`email`,i.message,t);break;case`format:idn-email`:_K(n,`idn-email`,i.message,t);break;case`pattern:zod`:vK(n,mK.email,i.message,t);break}break;case`url`:_K(n,`uri`,i.message,t);break;case`uuid`:_K(n,`uuid`,i.message,t);break;case`regex`:vK(n,i.regex,i.message,t);break;case`cuid`:vK(n,mK.cuid,i.message,t);break;case`cuid2`:vK(n,mK.cuid2,i.message,t);break;case`startsWith`:vK(n,RegExp(`^${r(i.value)}`),i.message,t);break;case`endsWith`:vK(n,RegExp(`${r(i.value)}$`),i.message,t);break;case`datetime`:_K(n,`date-time`,i.message,t);break;case`date`:_K(n,`date`,i.message,t);break;case`time`:_K(n,`time`,i.message,t);break;case`duration`:_K(n,`duration`,i.message,t);break;case`length`:QG(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,i.value):i.value,i.message,t),QG(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,i.value):i.value,i.message,t);break;case`includes`:vK(n,RegExp(r(i.value)),i.message,t);break;case`ip`:i.version!==`v6`&&_K(n,`ipv4`,i.message,t),i.version!==`v4`&&_K(n,`ipv6`,i.message,t);break;case`emoji`:vK(n,mK.emoji,i.message,t);break;case`ulid`:vK(n,mK.ulid,i.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:_K(n,`binary`,i.message,t);break;case`contentEncoding:base64`:QG(n,`contentEncoding`,`base64`,i.message,t);break;case`pattern:zod`:vK(n,mK.base64,i.message,t);break}break;case`nanoid`:vK(n,mK.nanoid,i.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}var gK=e=>Array.from(e).map(e=>/[a-zA-Z0-9]/.test(e)?e:`\\${e}`).join(``),_K=(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}}})):QG(e,`format`,t,n,r)},vK=(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:yK(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):QG(e,`pattern`,yK(t,r),n,r)},yK=(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 bK(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]:BK(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??{}}),{}),additionalProperties:!1};let n={type:`object`,additionalProperties:BK(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(hK(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 xK(e,t){return t.mapStrategy===`record`?bK(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[BK(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||{},BK(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||{}],minItems:2,maxItems:2}}}function SK(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 CK(){return{not:{}}}function wK(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}var TK={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function EK(e,t){if(t.target===`openApi3`)return DK(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in TK&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=TK[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 DK(e,t)}var DK=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>BK(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 OK(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:TK[e.innerType._def.typeName],nullable:!0}:{type:[TK[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let r=BK(e.innerType._def,{...t,currentPath:[...t.currentPath]},n);return r&&`$ref`in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let r=BK(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return r&&{anyOf:[r,{type:`null`}]}}function kK(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`,ZG(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?QG(n,`minimum`,r.value,r.message,t):QG(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),QG(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?QG(n,`maximum`,r.value,r.message,t):QG(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),QG(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:QG(n,`multipleOf`,r.value,r.message,t);break}return n}function AK(e,t){return t.removeAdditionalStrategy===`strict`?e.catchall._def.typeName===`ZodNever`?e.unknownKeys!==`strict`:BK(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??!0:e.catchall._def.typeName===`ZodNever`?e.unknownKeys===`passthrough`:BK(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??!0}function jK(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=BK(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:AK(e,t)};return n.required.length||delete n.required,n}var MK=(e,t,n)=>{if(t.propertyPath&&t.currentPath.slice(0,t.propertyPath.length).toString()===t.propertyPath.toString())return BK(e.innerType._def,{...t,currentPath:t.currentPath},n);let r=BK(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]},n);return r?{anyOf:[{not:{}},r]}:{}},NK=(e,t,n)=>{if(t.pipeStrategy===`input`)return BK(e.in._def,t,n);if(t.pipeStrategy===`output`)return BK(e.out._def,t,n);let r=BK(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[r,BK(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,r?`1`:`0`]})].filter(e=>e!==void 0)}};function PK(e,t,n){return BK(e.type._def,t,n)}function FK(e,t){let n={type:`array`,uniqueItems:!0,items:BK(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&QG(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&QG(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function IK(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>BK(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:BK(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>BK(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function LK(){return{not:{}}}function RK(){return{}}var zK=(e,t,n)=>BK(e.innerType._def,t,n);function BK(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==GG)return i}if(r&&!n){let e=VK(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=GK(e,e.typeName,t,n);return r&&KK(e,t,r),i.jsonSchema=r,r}finally{n&&r&&t.seen.set(e,r)}}var VK=(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:UK(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:WK(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}},HK=`_x_`,UK=e=>{if(/^[A-Za-z0-9_-]*$/.test(e)&&!e.startsWith(HK))return e;let t=HK;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n).toString(16).padStart(4,`0`);return t},WK=(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(`/`)},GK=(e,t,n,r)=>{switch(t){case H.ZodString:return hK(e,n);case H.ZodNumber:return kK(e,n);case H.ZodObject:return jK(e,n);case H.ZodBigInt:return tK(e,n);case H.ZodBoolean:return nK();case H.ZodDate:return aK(e,n);case H.ZodUndefined:return LK();case H.ZodNull:return wK(n);case H.ZodArray:return eK(e,n);case H.ZodUnion:case H.ZodDiscriminatedUnion:return EK(e,n);case H.ZodIntersection:return dK(e,n);case H.ZodTuple:return IK(e,n);case H.ZodRecord:return bK(e,n);case H.ZodLiteral:return fK(e,n);case H.ZodEnum:return lK(e);case H.ZodNativeEnum:return SK(e);case H.ZodNullable:return OK(e,n,r);case H.ZodOptional:return MK(e,n,r);case H.ZodMap:return xK(e,n);case H.ZodSet:return FK(e,n);case H.ZodLazy:return BK(e.getter()._def,n,r);case H.ZodPromise:return PK(e,n,r);case H.ZodNaN:case H.ZodNever:return CK();case H.ZodEffects:return cK(e,n,r);case H.ZodAny:return $G();case H.ZodUnknown:return RK();case H.ZodDefault:return sK(e,n,r);case H.ZodBranded:return rK(e,n,r);case H.ZodReadonly:return zK(e,n,r);case H.ZodCatch:return iK(e,n,r);case H.ZodPipeline:return NK(e,n,r);case H.ZodFunction:case H.ZodVoid:case H.ZodSymbol:return;default:return(e=>void 0)(t)}},KK=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),qK=(e,t)=>{let n=XG(t),r=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,i=BK(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(YG(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]=BK(JG(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 JK(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 XK(t,[],t)}function YK(e){if(typeof e==`boolean`)return!1;if(e.type===`null`)return!0;for(let t of e.oneOf??[])if(YK(t))return!0;for(let t of e.anyOf??[])if(YK(t))return!0;return!1}function XK(e,t,n){if(typeof e==`boolean`)throw TypeError(`Expected object schema but got boolean; path=${t.join(`/`)}`);if(!QK(e))throw TypeError(`Expected ${JSON.stringify(e)} to be an object; path=${t.join(`/`)}`);let r=e.$defs;if(QK(r))for(let[e,i]of Object.entries(r))XK(i,[...t,`$defs`,e],n);let i=e.definitions;if(QK(i))for(let[e,r]of Object.entries(i))XK(r,[...t,`definitions`,e],n);e.type===`object`&&!(`additionalProperties`in e)&&(e.additionalProperties=!1);let a=e.required??[],o=e.properties;if(QK(o)){for(let[e,n]of Object.entries(o))if(!YK(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,XK(r,[...t,`properties`,e],n)]))}let s=e.items;QK(s)&&(e.items=XK(s,[...t,`items`],n));let c=e.anyOf;Array.isArray(c)&&(e.anyOf=c.map((e,r)=>XK(e,[...t,`anyOf`,String(r)],n)));let l=e.allOf;if(Array.isArray(l))if(l.length===1){let r=XK(l[0],[...t,`allOf`,`0`],n);Object.assign(e,r),delete e.allOf}else e.allOf=l.map((e,r)=>XK(e,[...t,`allOf`,String(r)],n));e.default===null&&delete e.default;let u=e.$ref;if(u&&$K(e,1)){if(typeof u!=`string`)throw TypeError(`Received non-string $ref - ${u}; path=${t.join(`/`)}`);let r=ZK(n,u);if(typeof r==`boolean`)throw Error(`Expected \`$ref: ${u}\` to resolve to an object schema but got boolean`);if(!QK(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,XK(e,t,n)}return e}function ZK(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(!QK(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 QK(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $K(e,t){let n=0;for(let r in e)if(n++,n>t)return!0;return!1}function eq(e,t){return qK(e,{openaiStrictMode:!0,name:t.name,nameStrategy:`duplicate-ref`,$refStrategy:`extract-to-root`,nullableStrategy:`property`})}function tq(e){return JK(e_(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 nq(e){return`_zod`in e}function rq(e,t,n){return cV({type:`json_schema`,json_schema:{...n,name:t,strict:!0,schema:nq(e)?tq(e):eq(e,{name:t})}},t=>e.parse(JSON.parse(t)))}var iq=[`jsonSchema`,`functionCalling`,`jsonMode`];function aq(e,t){if(t!==void 0&&!iq.includes(t))throw Error(`Invalid method: ${t}. Supported methods are: ${iq.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 oq(e,t){let n={...e};return Object.defineProperties(n,{$brand:{value:`auto-parseable-response-format`,enumerable:!1},$parseRaw:{value:t,enumerable:!1}}),n}function sq(e,t,n){if(n_(e))return rq(e,t,n);if(t_(e))return oq({type:`json_schema`,json_schema:{...n,name:t,strict:!0,schema:cx(e,{cycles:`ref`,reused:`ref`,override(e){e.jsonSchema.title=t}})}},t=>wf(e,JSON.parse(t)));throw Error(`Unsupported schema response format`)}function cq(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 lq={"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 uq(e,t){return typeof e==`string`?{model:e,...t??{}}:e??t}var dq=class extends OE{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??zr(`OPENAI_API_KEY`),this.organization=e?.configuration?.organization??zr(`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(!gG(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&&i_(e.json_schema.schema)?sq(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=CG({baseURL:this.clientConfig.baseURL}),t={...this.clientConfig,baseURL:e,timeout:this.timeout,maxRetries:0};t.baseURL||delete t.baseURL,t.defaultHeaders=DG(t.defaultHeaders),this.client=new $(t)}return{...this.clientConfig,...e}}_convertChatOpenAIToolToCompletionsTool(e,t){return LG(e)?WG(e.metadata.customTool):pT(e)?t?.strict===void 0?e:{...e,function:{...e.function,strict:t.strict}}:OG(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(PG(e)||LG(e))return e;if(FG(e))return e.extras.providerToolDefinition;let t=this._convertChatOpenAIToolToCompletionsTool(e,{strict:n});return wk(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(xG(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=AG(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 mG(e)}})}get profile(){return lq[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=aq(this.model,t?.method);if(s===`jsonMode`){r=XT(i);let e=cx(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=cx(i),o={name:a??`extract`,description:f_(e),schema:i_(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}}}),i_(i)||xb(i)){let e=XT(i);r=Nx.from(async t=>`parsed`in t.additional_kwargs?t.additional_kwargs.parsed:e.invoke(t.content))}else r=new jT}else{let e=a??`extract`,o=cx(i),s;i_(i)||xb(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=ZT(i,e)}return QT(n,r,o)}},fq={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=T({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=Ae(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=Ae(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=T({dataUrl:e.url}),n=bG(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=bG(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`)}},pq=({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(WT(e,{returnId:!0}))}catch(t){o.push(KT(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:cq(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 ln(e.content||``,e.role??`unknown`)}},mq=({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 vn({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 cn({content:a,tool_call_chunks:n,additional_kwargs:o,id:t.id,response_metadata:s})}else if(i===`system`)return new Cn({content:a,response_metadata:s});else if(i===`developer`)return new Cn({content:a,response_metadata:s,additional_kwargs:{__openai_role__:`developer`}});else if(i===`function`)return new mn({content:a,additional_kwargs:o,name:e.name,response_metadata:s});else if(i===`tool`)return new Dt({content:a,additional_kwargs:o,tool_call_id:e.tool_call_id,response_metadata:s});else return new un({content:a,role:i,response_metadata:s})},hq=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=Dn(()=>{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=bG(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}}}},gq=({message:e,model:t})=>{let n=xG(e);if(n===`system`&&gG(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(GT):e.additional_kwargs.tool_calls!=null&&(t.tool_calls=e.additional_kwargs.tool_calls),t}else if(n===`tool`&&Et.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=hq(t);e&&(yield e)}}return{role:`user`,content:Array.from(r(e.contentBlocks))}},_q=({messages:e,model:t})=>e.flatMap(e=>{if(`output_version`in e.response_metadata&&e.response_metadata?.output_version===`v1`)return gq({message:e});let n=xG(e);n===`system`&&gG(t)&&(n=`developer`);let r=typeof e.content==`string`?e.content:e.content.flatMap(e=>we(e)?je(e,fq):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(GT):(e.additional_kwargs.tool_calls!=null&&(i.tool_calls=e.additional_kwargs.tool_calls),Et.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}),vq=class extends dq{constructor(e,t){super(uq(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:NG(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),gG(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=_q({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}:{}},on(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=_q({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*jE(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=_q({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 Ku({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 Ku({message:new cn({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 mG(e)}})}_convertCompletionsDeltaToBaseMessageChunk(e,t,n){return mq({delta:e,rawResponse:t,includeRawResponse:this.__includeRawResponse,defaultRole:n})}_convertCompletionsMessageToBaseMessage(e,t){return pq({message:e,rawResponse:t,includeRawResponse:this.__includeRawResponse})}},yq={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`},bq={azureOpenAIApiKey:`AZURE_OPENAI_API_KEY`},xq=[`azureOpenAIApiKey`,`azureOpenAIApiVersion`,`azureOpenAIBasePath`,`azureOpenAIEndpoint`,`azureOpenAIApiInstanceName`,`azureOpenAIApiDeploymentName`,`deploymentName`,`openAIApiKey`,`openAIApiVersion`];function Sq(e,t){return typeof e==`string`?{model:e,deploymentName:e,azureOpenAIApiDeploymentName:e,...t??{}}:e??t}function Cq(e){if(this.azureOpenAIApiKey=e?.azureOpenAIApiKey??(typeof e?.openAIApiKey==`string`?e?.openAIApiKey:void 0)??(typeof e?.apiKey==`string`?e?.apiKey:void 0)??zr(`AZURE_OPENAI_API_KEY`),this.azureOpenAIApiInstanceName=e?.azureOpenAIApiInstanceName??zr(`AZURE_OPENAI_API_INSTANCE_NAME`),this.azureOpenAIApiDeploymentName=e?.azureOpenAIApiDeploymentName??e?.deploymentName??zr(`AZURE_OPENAI_API_DEPLOYMENT_NAME`),this.azureOpenAIApiVersion=e?.azureOpenAIApiVersion??e?.openAIApiVersion??zr(`AZURE_OPENAI_API_VERSION`),this.azureOpenAIBasePath=e?.azureOpenAIBasePath??zr(`AZURE_OPENAI_BASE_PATH`),this.azureOpenAIEndpoint=e?.azureOpenAIEndpoint??zr(`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 wq(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=CG(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=DG(i.defaultHeaders,!0,`2.0.0`),this.client=new dG({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 Tq(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 Eq=class extends vq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...yq}}get lc_secrets(){return{...super.lc_secrets,...bq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...xq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Sq(e,t);super(n),Cq.call(this,n)}_getClientOptions(e){return wq.call(this,e)}toJSON(){return Tq.call(this,super.toJSON())}},Dq=`__openai_function_call_ids__`,Oq=`__openai_custom_tool_call_ids__`;function kq(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 Aq(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 jq=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}},Mq=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(kq),...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(WT(e,{returnId:!0}))}catch(t){let n;typeof t==`object`&&t&&`message`in t&&typeof t.message==`string`&&(n=t.message),r.push(KT(e,n))}o[Dq]??={},i.id&&(o[Dq][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=zG(i);e?(n.push(e),o[Oq]??={},i.id&&i.call_id&&(o[Oq][i.call_id]=i.id)):r.push(KT(i,`Malformed custom tool call`))}else if(i.type===`computer_call`){let e=BG(i);e?n.push(e):r.push(KT(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:jq(e.usage),additional_kwargs:o,response_metadata:a})},Nq=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}},Pq=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:[kq(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[Dq]={[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[Oq]={[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=Mq(e.response);if(r=jq(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 Ku({text:t.map(e=>e.text).join(``),message:new cn({id:s,content:t,tool_call_chunks:i,usage_metadata:r,additional_kwargs:o,response_metadata:a}),generationInfo:n})},Fq=e=>{let t=k.isInstance(e)&&e.response_metadata?.model_provider===`openai`;function*n(){let n=hG(()=>{try{let t=xG(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=hG(()=>{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=vG(e);return{type:`input_file`,file_id:e.fileId,...t?{filename:t}:{}}}if(e.url){let t=vG(e);return{...t?{filename:t}:{},type:`input_file`,file_url:e.url}}if(e.data){let t=bG(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=hG(()=>{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=hG(()=>{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())},Iq=({messages:e,zdrEnabled:t,model:n})=>e.flatMap(e=>{let r=e.response_metadata;if(r?.output_version===`v1`)return Fq(e);let i=e.additional_kwargs,a=xG(e);if(a===`system`&&gG(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=Nq(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:hG(()=>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(Aq)}}return e.type===`output_text`||e.type===`refusal`?e:[]})),phase:hG(()=>{if(Array.isArray(s))return s.find(e=>`phase`in e&&typeof e.phase==`string`)?.phase})};n.push(r)}let c=i?.[Dq],l=i?.[Oq];k.isInstance(e)&&e.tool_calls?.length?n.push(...e.tool_calls.map(e=>HG(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}:VG(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}),we(e)){if(e.type===`file`){let t=vG(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:bG(e)}}return je(e,fq)}return e.type===`text`?{type:`input_text`,text:e.text}:e.type===`image_url`?{type:`input_image`,image_url:hG(()=>{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:hG(()=>{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*Lq(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:CE(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=Rq(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=jq(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 Rq(e,t){return t===`response.incomplete`?`length`:e===`completed`?`stop`:e===`incomplete`?`length`:`stop`}var zq=class extends dq{constructor(e,t){super(uq(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:IG(e?.tool_choice)?e?.tool_choice:(()=>{let t=NG(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:Iq({messages:e,zdrEnabled:this.zdrEnabled??!1,model:this.model}),...r,stream:!1},{signal:t?.signal,...t?.options});return{generations:[{text:n.output_text,message:Mq(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:Iq({messages:e,zdrEnabled:this.zdrEnabled??!1,model:this.model}),stream:!0},t),i=this.streamUsage??t.streamUsage;yield*Lq(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:Iq({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=Pq(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 mG(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 mG(e)}})}_reduceChatOpenAITools(e,t){let n=[];for(let r of e)if(PG(r))r.type===`image_generation`&&t?.stream&&(r.partial_images=1),n.push(r);else if(LG(r)){let e=r.metadata.customTool;n.push({type:`custom`,name:e.name,description:e.description,format:e.format})}else if(pT(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 RG(r)&&n.push(UG(r));return n}},Bq=class extends zq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...yq}}get lc_secrets(){return{...super.lc_secrets,...bq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...xq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Sq(e,t);super(n),Cq.call(this,n)}_getClientOptions(e){return wq.call(this,e)}toJSON(){return Tq.call(this,super.toJSON())}},Vq=class e extends dq{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=uq(e,t);super(n),this.fields=n,this.useResponsesApi=n?.useResponsesApi??!1,this.responses=n?.responses??new zq(n),this.completions=n?.completions??new vq(n)}_useResponsesApi(e){let t=e?.tools?.some(PG),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(RG)||e?.tools?.some(LG);return this.useResponsesApi||t||n||r||SG(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}},Hq=class extends Vq{azureOpenAIApiVersion;azureOpenAIApiKey;azureADTokenProvider;azureOpenAIApiInstanceName;azureOpenAIApiDeploymentName;azureOpenAIBasePath;azureOpenAIEndpoint;_llmType(){return`azure_openai`}get lc_aliases(){return{...super.lc_aliases,...yq}}get lc_secrets(){return{...super.lc_secrets,...bq}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...xq]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider=`azure`,t}constructor(e,t){let n=Sq(e,t);super({...n,completions:new Eq(n),responses:new Bq(n)}),Cq.call(this,n)}_getStructuredOutputMethod(e){let t={...e};return this.model.startsWith(`gpt-4o`)&&t?.method===void 0?`functionCalling`:super._getStructuredOutputMethod(t)}toJSON(){return Tq.call(this,super.toJSON())}};G({action:NA([G({type:GA(`screenshot`)}),G({type:GA(`click`),x:vA(),y:vA(),button:UA([`left`,`right`,`wheel`,`back`,`forward`]).default(`left`)}),G({type:GA(`double_click`),x:vA(),y:vA(),button:UA([`left`,`right`,`wheel`,`back`,`forward`]).default(`left`)}),G({type:GA(`drag`),path:AA(G({x:vA(),y:vA()}))}),G({type:GA(`keypress`),keys:AA(W())}),G({type:GA(`move`),x:vA(),y:vA()}),G({type:GA(`scroll`),x:vA(),y:vA(),scroll_x:vA(),scroll_y:vA()}),G({type:GA(`type`),text:W()}),G({type:GA(`wait`),duration:vA().optional()})])}),NA([G({type:GA(`exec`),command:AA(W()),env:VA(W(),W()).optional(),working_directory:W().optional(),timeout_ms:vA().optional(),user:W().optional()})]),G({commands:AA(W()).describe(`Array of shell commands to execute`),timeout_ms:vA().optional().describe(`Optional timeout in milliseconds for the commands`),max_output_length:vA().optional().describe(`Optional maximum number of characters to return from each command`)}),NA([G({type:GA(`create_file`),path:W(),diff:W()}),G({type:GA(`update_file`),path:W(),diff:W()}),G({type:GA(`delete_file`),path:W()})]);function Uq(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(Uq):typeof t[e]==`object`&&t[e]!==null&&(t[e]=Uq(t[e])));return t}return e}function Wq(e){let{$schema:t,...n}=Uq(i_(e)||xb(e)?cx(e):e);return n}function Gq(e){let{$schema:t,...n}=Uq(e);return n}function Kq(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))Kq(i,t,[...n,e]);r.items&&Kq(r.items,t,[...n,`[]`]);for(let e of[`anyOf`,`oneOf`,`allOf`]){let i=r[e];Array.isArray(i)&&i.forEach((r,i)=>Kq(r,t,[...n,`${e}[${i}]`]))}r.additionalProperties&&typeof r.additionalProperties==`object`&&Kq(r.additionalProperties,t,[...n,`additionalProperties`])}var qq=`__gemini_function_call_thought_signatures__`,Jq=`ErYCCrMCAdHtim9kOoOkrPiCNVsmlpMIKd7ZMxgiFbVQOkgp7nlLcDMzVsZwIzvuT7nQROivoXA72ccC2lSDvR0Gh7dkWaGuj7ctv6t7ZceHnecx0QYa+ix8tYpRfjhyWozQ49lWiws6+YGjCt10KRTyWsZ2h6O7iHTYJwKIRwGUHRKy/qK/6kFxJm5ML00gLq4D8s5Z6DBpp2ZlR+uF4G8jJgeWQgyHWVdx2wGYElaceVAc66tZdPQRdOHpWtgYSI1YdaXgVI8KHY3/EfNc2YqqMIulvkDBAnuMhkAjV9xmBa54Tq+ih3Im4+r3DzqhGqYdsSkhS0kZMwte4Hjs65dZzCw9lANxIqYi1DJ639WNPYihp/DCJCos7o+/EeSPJaio5sgWDyUnMGkY1atsJZ+m7pj7DD5tvQ==`,Yq=e=>e();function Xq(e){return ln.isInstance(e)?e.role:e.type}function Zq(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 Qq(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 $q(e,t){return t.map(e=>on(e)?e.tool_calls??[]:[]).flat().find(t=>t.id===e.tool_call_id)?.name}function eJ(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=T({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 tJ(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=T({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=T({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=T({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 nJ(e,t){if(we(e))return je(e,tJ(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 Qq(e);else if(e.type===`image`)return eJ(e,`image/png`);else if(e.type===`video`)return eJ(e,`video/mp4`);else if(e.type===`audio`)return eJ(e,`audio/mpeg`);else if(e.type===`file`)return eJ(e,`application/octet-stream`);else if(e.type===`text-plain`)return`text`in e&&typeof e.text==`string`?{text:e.text}:eJ(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 rJ(e,t,n,r){if(kt(e)){let r=e.name??$q(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=>nJ(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=>nJ(e,t)).filter(e=>e!==void 0));let o=e.additional_kwargs?.[qq];return on(e)&&e.tool_calls?.length&&(i=e.tool_calls.map(e=>{let t=Yq(()=>{if(e.id){let t=o?.[e.id];if(t)return t}return r?.includes(`gemini-3`)?Jq:``});return{functionCall:{name:e.name,args:e.args},...t?{thoughtSignature:t}:{}}})),[...a,...i]}function iJ(e,t,n=!1,r){return e.reduce((i,a,o)=>{if(!St(a))throw Error(`Unsupported message input`);let s=Xq(a);if(s===`system`&&o!==0)throw Error(`System message should be the first one`);let c=Zq(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=rJ(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 aJ(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:wr()}),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,[qq]: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 oJ(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:wr()}),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 Ku({text:c,message:new cn({content:o||``,name:r?r.role:void 0,tool_call_chunks:l,additional_kwargs:{[qq]:u},response_metadata:{model_provider:`google-genai`},usage_metadata:t.usageMetadata}),generationInfo:i})}function sJ(e){return e.every(e=>`functionDeclarations`in e&&Array.isArray(e.functionDeclarations))?e:[{functionDeclarations:e.map(e=>{if(wk(e)){let t=Wq(e.schema);return t.type===`object`&&`properties`in t&&Object.keys(t.properties).length===0?{name:e.name,description:e.description}:(Kq(t,e.name),{name:e.name,description:e.description,parameters:t})}if(pT(e)){let t=Gq(e.function.parameters);return Kq(t,e.function.name),{name:e.function.name,description:e.function.description??`A function available to call.`,parameters:t}}return e})}]}function cJ(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*lJ(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=cJ(i.usageMetadata,t.model??``),yield{event:`usage`,usage:s});let e=i.candidates?.[0];e?.finishReason&&(c=uJ(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:CE(t)};yield{event:`message-finish`,reason:c,...s?{usage:s}:{},responseMetadata:{model_provider:`google-genai`}}}function uJ(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 dJ=class extends yT{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 xT(`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 c_(this.zodSchema,e);if(t.success)return t.data;throw new xT(`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)}},fJ;(function(e){e.STRING=`string`,e.NUMBER=`number`,e.INTEGER=`integer`,e.BOOLEAN=`boolean`,e.ARRAY=`array`,e.OBJECT=`object`})(fJ||={});var pJ;(function(e){e.LANGUAGE_UNSPECIFIED=`language_unspecified`,e.PYTHON=`python`})(pJ||={});var mJ;(function(e){e.OUTCOME_UNSPECIFIED=`outcome_unspecified`,e.OUTCOME_OK=`outcome_ok`,e.OUTCOME_FAILED=`outcome_failed`,e.OUTCOME_DEADLINE_EXCEEDED=`outcome_deadline_exceeded`})(mJ||={});var hJ=[`user`,`model`,`function`,`system`],gJ;(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`})(gJ||={});var _J;(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`})(_J||={});var vJ;(function(e){e.HARM_PROBABILITY_UNSPECIFIED=`HARM_PROBABILITY_UNSPECIFIED`,e.NEGLIGIBLE=`NEGLIGIBLE`,e.LOW=`LOW`,e.MEDIUM=`MEDIUM`,e.HIGH=`HIGH`})(vJ||={});var yJ;(function(e){e.BLOCKED_REASON_UNSPECIFIED=`BLOCKED_REASON_UNSPECIFIED`,e.SAFETY=`SAFETY`,e.OTHER=`OTHER`})(yJ||={});var bJ;(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`})(bJ||={});var xJ;(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`})(xJ||={});var SJ;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.AUTO=`AUTO`,e.ANY=`ANY`,e.NONE=`NONE`})(SJ||={});var CJ;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.MODE_DYNAMIC=`MODE_DYNAMIC`})(CJ||={});var wJ=class extends Error{constructor(e){super(`[GoogleGenerativeAI Error]: ${e}`)}},TJ=class extends wJ{constructor(e,t){super(e),this.response=t}},EJ=class extends wJ{constructor(e,t,n,r){super(e),this.status=t,this.statusText=n,this.errorDetails=r}},DJ=class extends wJ{},OJ=class extends wJ{},kJ=`https://generativelanguage.googleapis.com`,AJ=`v1beta`,jJ=`0.24.1`,MJ=`genai-js`,NJ;(function(e){e.GENERATE_CONTENT=`generateContent`,e.STREAM_GENERATE_CONTENT=`streamGenerateContent`,e.COUNT_TOKENS=`countTokens`,e.EMBED_CONTENT=`embedContent`,e.BATCH_EMBED_CONTENTS=`batchEmbedContents`})(NJ||={});var PJ=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||AJ,t=`${this.requestOptions?.baseUrl||kJ}/${e}/${this.model}:${this.task}`;return this.stream&&(t+=`?alt=sse`),t}};function FJ(e){let t=[];return e?.apiClient&&t.push(e.apiClient),t.push(`${MJ}/${jJ}`),t.join(` `)}async function IJ(e){let t=new Headers;t.append(`Content-Type`,`application/json`),t.append(`x-goog-api-client`,FJ(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 DJ(`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 DJ(`Cannot set reserved header name ${e}`);if(e===`x-goog-api-client`)throw new DJ(`Header name ${e} can only be set using the apiClient field`);t.append(e,r)}}return t}async function LJ(e,t,n,r,i,a){let o=new PJ(e,t,n,r,a);return{url:o.toString(),fetchOptions:Object.assign(Object.assign({},HJ(a)),{method:`POST`,headers:await IJ(o),body:i})}}async function RJ(e,t,n,r,i,a={},o=fetch){let{url:s,fetchOptions:c}=await LJ(e,t,n,r,i,a);return zJ(s,c,o)}async function zJ(e,t,n=fetch){let r;try{r=await n(e,t)}catch(t){BJ(t,e)}return r.ok||await VJ(r,e),r}function BJ(e,t){let n=e;throw n.name===`AbortError`?(n=new OJ(`Request aborted when fetching ${t.toString()}: ${e.message}`),n.stack=e.stack):e instanceof EJ||e instanceof DJ||(n=new wJ(`Error fetching from ${t.toString()}: ${e.message}`),n.stack=e.stack),n}async function VJ(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 EJ(`Error fetching from ${t.toString()}: [${e.status} ${e.statusText}] ${n}`,e.status,e.statusText,r)}function HJ(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 UJ(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.`),qJ(e.candidates[0]))throw new TJ(`${JJ(e)}`,e);return WJ(e)}else if(e.promptFeedback)throw new TJ(`Text not available. ${JJ(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.`),qJ(e.candidates[0]))throw new TJ(`${JJ(e)}`,e);return console.warn(`response.functionCall() is deprecated. Use response.functionCalls() instead.`),GJ(e)[0]}else if(e.promptFeedback)throw new TJ(`Function call not available. ${JJ(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.`),qJ(e.candidates[0]))throw new TJ(`${JJ(e)}`,e);return GJ(e)}else if(e.promptFeedback)throw new TJ(`Function call not available. ${JJ(e)}`,e)},e}function WJ(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 GJ(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 KJ=[bJ.RECITATION,bJ.SAFETY,bJ.LANGUAGE];function qJ(e){return!!e.finishReason&&KJ.includes(e.finishReason)}function JJ(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];qJ(n)&&(t+=`Candidate was blocked due to ${n.finishReason}`,n.finishMessage&&(t+=`: ${n.finishMessage}`))}return t}function YJ(e){return this instanceof YJ?(this.v=e,this):new YJ(e)}function XJ(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 YJ?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 ZJ=/^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/;function QJ(e){let[t,n]=tY(e.body.pipeThrough(new TextDecoderStream(`utf8`,{fatal:!0}))).tee();return{stream:eY(t),response:$J(n)}}async function $J(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return UJ(nY(t));t.push(r)}}function eY(e){return XJ(this,arguments,function*(){let t=e.getReader();for(;;){let{value:e,done:n}=yield YJ(t.read());if(n)break;yield yield YJ(UJ(e))}})}function tY(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 wJ(`Failed to parse stream`));return}e.close();return}n+=t;let a=n.match(ZJ),o;for(;a;){try{o=JSON.parse(a[1])}catch{e.error(new wJ(`Error parsing JSON response: "${a[1]}"`));return}e.enqueue(o),n=n.substring(a[0].length),a=n.match(ZJ)}return r()}).catch(e=>{let t=e;throw t.stack=e.stack,t=t.name===`AbortError`?new OJ(`Request aborted when reading from the stream`):new wJ(`Error reading from the stream`),t})}}})}function nY(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 rY(e,t,n,r){return QJ(await RJ(t,NJ.STREAM_GENERATE_CONTENT,e,!0,JSON.stringify(n),r))}async function iY(e,t,n,r){return{response:UJ(await(await RJ(t,NJ.GENERATE_CONTENT,e,!1,JSON.stringify(n),r)).json())}}function aY(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 oY(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 sY(t)}function sY(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 wJ(`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 wJ(`No content is provided for sending chat message.`);return r?t:n}function cY(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 DJ(`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=oY(e);n.contents=[t]}return{generateContentRequest:n}}function lY(e){let t;return t=e.contents?e:{contents:[oY(e)]},e.systemInstruction&&(t.systemInstruction=aY(e.systemInstruction)),t}function uY(e){return typeof e==`string`||Array.isArray(e)?{content:oY(e)}:e}var dY=[`text`,`inlineData`,`functionCall`,`functionResponse`,`executableCode`,`codeExecutionResult`],fY={user:[`text`,`inlineData`],function:[`functionResponse`],model:[`text`,`functionCall`,`executableCode`,`codeExecutionResult`],system:[`text`]};function pY(e){let t=!1;for(let n of e){let{role:e,parts:r}=n;if(!t&&e!==`user`)throw new wJ(`First content should be with role 'user', got ${e}`);if(!hJ.includes(e))throw new wJ(`Each item should include role field. Got ${e} but valid roles are: ${JSON.stringify(hJ)}`);if(!Array.isArray(r))throw new wJ(`Content should have 'parts' property with an array of Parts`);if(r.length===0)throw new wJ(`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 dY)t in e&&(i[t]+=1);let a=fY[e];for(let t of dY)if(!a.includes(t)&&i[t]>0)throw new wJ(`Content with role '${e}' can't contain '${t}' part`);t=!0}}function mY(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 hY=`SILENT_ERROR`,gY=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&&(pY(n.history),this._history=n.history)}async getHistory(){return await this._sendPromise,this._history}async sendMessage(e,t={}){await this._sendPromise;let n=oY(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(()=>iY(this._apiKey,this.model,r,i)).then(e=>{if(mY(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=JJ(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=oY(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=rY(this._apiKey,this.model,r,i);return this._sendPromise=this._sendPromise.then(()=>a).catch(e=>{throw Error(hY)}).then(e=>e.response).then(e=>{if(mY(e)){this._history.push(n);let t=Object.assign({},e.candidates[0].content);t.role||=`model`,this._history.push(t)}else{let t=JJ(e);t&&console.warn(`sendMessageStream() was unsuccessful. ${t}. Inspect response object for details.`)}}).catch(e=>{e.message!==hY&&console.error(e)}),a}};async function _Y(e,t,n,r){return(await RJ(t,NJ.COUNT_TOKENS,e,!1,JSON.stringify(n),r)).json()}async function vY(e,t,n,r){return(await RJ(t,NJ.EMBED_CONTENT,e,!1,JSON.stringify(n),r)).json()}async function yY(e,t,n,r){let i=n.requests.map(e=>Object.assign(Object.assign({},e),{model:t}));return(await RJ(t,NJ.BATCH_EMBED_CONTENTS,e,!1,JSON.stringify({requests:i}),r)).json()}var bY=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=aY(t.systemInstruction),this.cachedContent=t.cachedContent}async generateContent(e,t={}){let n=lY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return iY(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=lY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return rY(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 gY(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=cY(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 _Y(this.apiKey,this.model,n,r)}async embedContent(e,t={}){let n=uY(e),r=Object.assign(Object.assign({},this._requestOptions),t);return vY(this.apiKey,this.model,n,r)}async batchEmbedContents(e,t={}){let n=Object.assign(Object.assign({},this._requestOptions),t);return yY(this.apiKey,this.model,e,n)}},xY=class{constructor(e){this.apiKey=e}getGenerativeModel(e,t){if(!e.model)throw new wJ(`Must provide a model name. Example: genai.getGenerativeModel({ model: 'my-model-name' })`);return new bY(this.apiKey,e,t)}getGenerativeModelFromCachedContent(e,t,n){if(!e.name)throw new DJ("Cached content must contain a `name` field.");if(!e.model)throw new DJ("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 DJ(`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 bY(this.apiKey,r,n)}};function SY(e,t){let n=CY(e);return{tools:n,toolConfig:TY(n,t)}}function CY(e){let t=[],n=[];return e.forEach(e=>{if(wk(e)){let[n]=sJ([e]);n.functionDeclarations&&t.push(...n.functionDeclarations)}else if(pT(e)){let{functionDeclarations:n}=wY(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 wY(e){return{functionDeclarations:[{name:e.function.name,description:e.function.description,parameters:Uq(e.function.parameters)}]}}function TY(e,t){if(!e.length||!t)return;let{toolChoice:n,allowedFunctionNames:r}=t,i={any:SJ.ANY,auto:SJ.AUTO,none:SJ.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:SJ.ANY,allowedFunctionNames:[...r??[],...n&&typeof n==`string`?[n]:[]]}}}var EY={"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}},DY=class extends OE{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??zr(`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 xY(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 xY(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:SY(e)?.tools,...t})}invocationParams(e){let t=e?.tools?.length?SY(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=iJ(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=cJ(r.response.usageMetadata,this.model));let a=aJ(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*lJ(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=cJ(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=oJ(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 EY[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(i_(n)||xb(n)){let r=Wq(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=Uq(n.parameters),e=n.name):t={name:e,description:n.description??``,parameters:Uq(n)};let i=[{functionDeclarations:[t]}];o=this.bindTools(i).withConfig({allowedFunctionNames:[e]}),s=ZT(n,e,dJ)}else{let e=Wq(n);o=this.withConfig({responseSchema:e}),s=XT(n)}return QT(o,s,a,a?`StructuredOutputRunnable`:`ChatGoogleGenerativeAIStructuredOutput`)}},OY=class extends yT{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 xT(`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 xT(`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 c_(this.zodSchema,t);if(n.success)return n.data;throw new xT(`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)?kY(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 kY(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 AY(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 jY=G({cache_control:pj().optional().nullable(),defer_loading:SA().optional(),input_examples:AA(EA()).optional(),allowed_callers:AA(EA()).optional(),strict:SA().optional()}),MY={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 NY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`thinking`}function PY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`redacted_thinking`}function FY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`compaction`}function IY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`search_result`}function LY(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 RY={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=T({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}`)}},zY=e=>e();function BY(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`citation`}function VY(e){function*t(){for(let t of e)BY(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 HY(e){return typeof e==`string`?e:UY(e)}function UY(e){let t=[];for(let n=0,{length:r}=e;n<r;n++)t.push(String.fromCharCode(e[n]));return btoa(t.join(``))}function WY(e){return(e??``).split(`;`)[0].toLowerCase()}function GY(e,t){if(typeof e==`object`&&e&&t in e)return e[t]}function KY(e,t){let n=GY(t,`cache_control`);n!==void 0&&(e.cache_control=n);let r=GY(t,`citations`);r!==void 0&&(e.citations=r);let i=GY(t,`context`);i!==void 0&&(e.context=i);let a=GY(t,`title`);return a!==void 0&&(e.title=a),e}function qY(e,t){let n=GY(t,`cache_control`);return n!==void 0&&(e.cache_control=n),e}function JY(e){return new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]).has(e)}function YY(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:VY(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=zY(()=>{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(KY({type:`document`,source:{type:`file`,file_id:n.fileId}},e));continue}if(n.url){let r=WY(n.mimeType);if(r===`application/pdf`||r===``){t.push(KY({type:`document`,source:{type:`url`,url:n.url}},e));continue}}if(n.data){let r=WY(n.mimeType);if(r===``||r===`application/pdf`)t.push(KY({type:`document`,source:{type:`base64`,data:HY(n.data),media_type:`application/pdf`}},e));else if(r===`text/plain`)t.push(KY({type:`document`,source:{type:`text`,data:HY(n.data),media_type:`text/plain`}},e));else if(JY(r))t.push(KY({type:`document`,source:{type:`content`,content:[{type:`image`,source:{type:`base64`,data:HY(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(qY({type:`image`,source:{type:`file`,file_id:n.fileId}},e));continue}if(n.url){t.push(qY({type:`image`,source:{type:`url`,url:n.url}},e));continue}if(n.data){let r=WY(n.mimeType)||`image/png`;JY(r)&&t.push(qY({type:`image`,source:{type:`base64`,data:HY(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(KY({type:`document`,source:{type:`text`,data:HY(n.data),media_type:`text/plain`}},n.metadata)):n.type===`non_standard`&&r&&t.push(n.value));return t}function XY(e){let t=T({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 ZY(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 _n({content:[{type:`tool_result`,content:n.content,tool_use_id:n.tool_call_id}]}))}else t.push(new _n({content:[{type:`tool_result`,...n.content==null?{}:{content:eX(n)},tool_use_id:n.tool_call_id}]}));else t.push(n);return t}function QY(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*$Y(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){we(i)&&(yield je(i,RY));let a=`cache_control`in i?i.cache_control:void 0;if(i.type===`image_url`){let e;typeof i.image_url==`string`?e=XY(i.image_url):typeof i.image_url==`object`&&i.image_url!==null&&`url`in i.image_url&&typeof i.image_url.url==`string`&&(e=XY(i.image_url.url)),e&&(yield{type:`image`,source:e,...a?{cache_control:a}:{}})}else if(LY(i))yield i;else if(i.type===`image`){let e;`url`in i&&typeof i.url==`string`?e=XY(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(NY(i))yield{type:`thinking`,thinking:i.thinking,signature:i.signature,...a?{cache_control:a}:{}};else if(PY(i))yield{type:`redacted_thinking`,data:i.data,...a?{cache_control:a}:{}};else if(FY(i))yield{type:`compaction`,content:i.content,...a?{cache_control:a}:{}};else if(IY(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 eX(e,t){let{content:n}=e;return typeof n==`string`?n:Array.from($Y(n,t))}function tX(e){let t=ZY(e),n;return t.length>0&&t[0]._getType()===`system`&&(n=e[0].content),{messages:nX((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:YY(e)};if(k.isInstance(e)&&e.tool_calls?.length){if(typeof e.content==`string`)return e.content===``?{role:t,content:e.tool_calls.map(QY)}:{role:t,content:[{type:`text`,text:e.content},...e.tool_calls.map(QY)]};{let{content:n}=e,r=eX(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(QY)]}}}else return{role:t,content:eX(e,k.isInstance(e)?e.tool_calls:void 0)}})),system:n}}function nX(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 rX=[`claude-opus-4-7`,`claude-opus-4-8`,`claude-fable-5`,`claude-mythos-5`,`claude-mythos-preview`];function iX(e,t){return e?t.some(t=>e.startsWith(t)):!1}function aX(e){return e.type===`enabled`||e.type===`adaptive`}function oX(e){return iX(e,[`claude-opus-4-7`])}function sX(e){return iX(e,rX)}function cX(e,t){let n=t&&typeof t==`object`&&`task_budget`in t&&t.task_budget!=null;return oX(e)&&n?[`task-budgets-2026-03-13`]:[]}function lX(e){let{model:t,thinking:n,topK:r,topP:i,temperature:a}=e,o=sX(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(aX(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 uX(e){let{model:t,thinking:n,topK:r,topP:i,temperature:a}=e,o={};return aX(n)||sX(t)?o:(a!==void 0&&(o.temperature=a),r!==void 0&&(o.top_k=r),i!==void 0&&(o.top_p=i),o)}function dX(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=pX(i);return{chunk:new cn({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 cn({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 cn({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 cn({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 cn({content:[{index:e.index,...t,type:`thinking`}],response_metadata:n})}:{chunk:new cn({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 cn({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 cn({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 cn({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 cn({content:t.coerceContentToString?r:[{index:e.index,...e.content_block}],response_metadata:n})}}else if(e.type===`content_block_start`&&FY(e.content_block))return{chunk:new cn({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 cn({content:t.coerceContentToString?``:[{index:e.index,...e.delta,type:`compaction`}],response_metadata:n})};return null}function fX(e,t){let n={...t,model_provider:`anthropic`},r=t.usage,i=r==null?void 0:pX(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:kY(e),usage_metadata:i,response_metadata:n,id:t.id})}]}function pX(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 mX(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 hX(e){let t;return t=e.status===400&&typeof e.message==`string`&&e.message.includes(`prompt is too long`)?mX(x.fromError(e),`CONTEXT_OVERFLOW`):e.status===400&&e.message.includes(`tool`)?mX(e,`INVALID_TOOL_RESULTS`):e.status===401?mX(e,`MODEL_AUTHENTICATION`):e.status===404?mX(e,`MODEL_NOT_FOUND`):e.status===429?mX(e,`MODEL_RATE_LIMIT`):e,t}var gX={"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*_X(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=yX(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:vX(a),...i?{usage:i}:{},metadata:{model_provider:`anthropic`}};break;case`content_block_start`:{let{index:e,content_block:n}=t,i=bX(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}=xX(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:SX(n)},r.delete(e);break}default:yield{event:`provider`,provider:`anthropic`,name:t.type,payload:t};break}}function vX(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 yX(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 bX(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 xX(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 SX(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 CX={"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},wX=4096;function TX(e){return e?Object.entries(CX).find(([t])=>e.startsWith(t))?.[1]??wX:wX}function EX(e){return!!(e.tools&&e.tools.length>0)}function DX(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 OX(e){return!!(e.thinking&&(e.thinking.type===`enabled`||e.thinking.type===`adaptive`))}function kX(e){return!!e.context_management?.edits?.some(e=>e.type===`compact_20260112`)}function AX(e){return`input_schema`in e}function jX(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 MX(e,t,...n){return Array.from(new Set([...e??[],...t??[],...n.flatMap(e=>Array.from(e))]))}function NX(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 PX=class extends OE{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??zr(`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??TX(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 r(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(wk(e)&&e.extras?.providerToolDefinition)return e.extras.providerToolDefinition;if(jX(e))return e;if(AX(e))return t?.strict===void 0?e:{...e,strict:t.strict};if(pT(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(wk(e)){let{strict:n,...r}=e.extras?jY.parse(e.extras):{},i=t?.strict??n;return{name:e.name,description:e.description,input_schema:i_(e.schema)?cx(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=AY(e?.tool_choice),n=e?.tools?.reduce((e,t)=>{if(typeof t==`object`&&`type`in t&&t.type in MY){let n=MY[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=cX(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:MX(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 lX({model:this.model,thinking:this.thinking,topK:this.topK,topP:this.topP,temperature:this.temperature}),Object.assign(o,uX({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=tX(e),a={...r,...i,stream:!0},o=!EX(a)&&!DX(a)&&!OX(a)&&!kX(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=dX(e,{streamUsage:r,coerceContentToString:o});if(!i)continue;let{chunk:a}=i,c=NX(a),l=new Ku({message:new cn({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=tX(e),a={...r,...i,stream:!0},o=await this.createStreamWithRetry(a,{headers:t.headers,signal:t.signal}),s=this.streamUsage??t.streamUsage;yield*_X(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=tX(e),{content:i,...a}=await this.completionWithRetry({...t,stream:!1,...r},n),o=fX(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 hX(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 hX(e)}})}_llmType(){return`anthropic`}get profile(){return gX[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=XT(i);let e=u(cx(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(i_(i)||xb(i)){let t=cx(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=ZT(i,e,OY),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:cx(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:cx(i)},...t?.strict===void 0?{}:{strict:t.strict}})}else throw TypeError(`Unrecognized structured output method '${s}'. Expected 'functionCalling' or 'jsonSchema'`);return QT(n,r,o,o?`StructuredOutputRunnable`:`ChatAnthropicStructuredOutput`)}},FX=class extends PX{};FA(`command`,[G({command:GA(`view`),path:W()}),G({command:GA(`create`),path:W(),file_text:W()}),G({command:GA(`str_replace`),path:W(),old_str:W(),new_str:W()}),G({command:GA(`insert`),path:W(),insert_line:vA(),insert_text:W()}),G({command:GA(`delete`),path:W()}),G({command:GA(`rename`),old_path:W(),new_path:W()})]),FA(`command`,[G({command:GA(`view`),path:W(),view_range:zA([vA(),vA()]).optional()}),G({command:GA(`str_replace`),path:W(),old_str:W(),new_str:W()}),G({command:GA(`create`),path:W(),file_text:W()}),G({command:GA(`insert`),path:W(),insert_line:vA(),new_str:W()})]);var IX=zA([vA(),vA()]),LX=G({action:GA(`screenshot`)}),RX=G({action:GA(`left_click`),coordinate:IX}),zX=G({action:GA(`right_click`),coordinate:IX}),BX=G({action:GA(`middle_click`),coordinate:IX}),VX=G({action:GA(`double_click`),coordinate:IX}),HX=G({action:GA(`triple_click`),coordinate:IX}),UX=G({action:GA(`left_click_drag`),start_coordinate:IX,end_coordinate:IX}),WX=G({action:GA(`left_mouse_down`),coordinate:IX}),GX=G({action:GA(`left_mouse_up`),coordinate:IX}),KX=G({action:GA(`scroll`),coordinate:IX,scroll_direction:UA([`up`,`down`,`left`,`right`]),scroll_amount:vA()}),qX=G({action:GA(`type`),text:W()}),JX=G({action:GA(`key`),key:W()}),YX=G({action:GA(`mouse_move`),coordinate:IX}),XX=G({action:GA(`hold_key`),key:W()}),ZX=G({action:GA(`wait`),duration:vA().optional()}),QX=G({action:GA(`zoom`),region:zA([vA(),vA(),vA(),vA()])});FA(`action`,[LX,RX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX]),FA(`action`,[LX,RX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX]),NA([G({command:W().describe(`The bash command to run`)}),G({restart:GA(!0).describe(`Set to true to restart the bash session`)})]);async function*$X(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=eZ(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:CE(t)};yield{event:`message-finish`,reason:l,...c?{usage:c}:{},responseMetadata:{model_provider:`ollama`}}}function eZ(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;default:return`stop`}}function tZ(e,t){return new cn({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:wr()})),response_metadata:{...t?.responseMetadata,model_provider:`ollama`},usage_metadata:t?.usageMetadata})}function nZ(e){let t=e.match(/^data:.*?;base64,(.*)$/);return t?t[1]:``}function rZ(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 iZ(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:[nZ(e.image_url)]};if(e.image_url.url&&typeof e.image_url.url==`string`)return{role:`user`,content:``,images:[nZ(e.image_url.url)]}}throw Error(`Unsupported content type: ${e.type}`)})}function aZ(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 oZ(e){if(typeof e.content!=`string`)throw Error(`Non string tool message content is not supported`);return[{role:`tool`,content:e.content}]}function sZ(e){return e.flatMap(e=>{if([`human`,`generic`].includes(e._getType()))return iZ(e);if(e._getType()===`ai`)return rZ(e);if(e._getType()===`system`)return aZ(e);if(e._getType()===`tool`)return oZ(e);throw Error(`Unsupported message type: ${e._getType()}`)})}var cZ=typeof globalThis<`u`&&globalThis||typeof self<`u`&&self||typeof global<`u`&&global||{},lZ={searchParams:`URLSearchParams`in cZ,iterable:`Symbol`in cZ&&`iterator`in Symbol,blob:`FileReader`in cZ&&`Blob`in cZ&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:`FormData`in cZ,arrayBuffer:`ArrayBuffer`in cZ};function uZ(e){return e&&DataView.prototype.isPrototypeOf(e)}if(lZ.arrayBuffer)var dZ=[`[object Int8Array]`,`[object Uint8Array]`,`[object Uint8ClampedArray]`,`[object Int16Array]`,`[object Uint16Array]`,`[object Int32Array]`,`[object Uint32Array]`,`[object Float32Array]`,`[object Float64Array]`],fZ=ArrayBuffer.isView||function(e){return e&&dZ.indexOf(Object.prototype.toString.call(e))>-1};function pZ(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 mZ(e){return typeof e!=`string`&&(e=String(e)),e}function hZ(e){var t={next:function(){var t=e.shift();return{done:t===void 0,value:t}}};return lZ.iterable&&(t[Symbol.iterator]=function(){return t}),t}function gZ(e){this.map={},e instanceof gZ?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)}gZ.prototype.append=function(e,t){e=pZ(e),t=mZ(t);var n=this.map[e];this.map[e]=n?n+`, `+t:t},gZ.prototype.delete=function(e){delete this.map[pZ(e)]},gZ.prototype.get=function(e){return e=pZ(e),this.has(e)?this.map[e]:null},gZ.prototype.has=function(e){return this.map.hasOwnProperty(pZ(e))},gZ.prototype.set=function(e,t){this.map[pZ(e)]=mZ(t)},gZ.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},gZ.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),hZ(e)},gZ.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),hZ(e)},gZ.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),hZ(e)},lZ.iterable&&(gZ.prototype[Symbol.iterator]=gZ.prototype.entries);function _Z(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(TypeError(`Already read`));e.bodyUsed=!0}}function vZ(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function yZ(e){var t=new FileReader,n=vZ(t);return t.readAsArrayBuffer(e),n}function bZ(e){var t=new FileReader,n=vZ(t),r=/charset=([A-Za-z0-9_-]+)/.exec(e.type),i=r?r[1]:`utf-8`;return t.readAsText(e,i),n}function xZ(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 SZ(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function CZ(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?typeof e==`string`?this._bodyText=e:lZ.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:lZ.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:lZ.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():lZ.arrayBuffer&&lZ.blob&&uZ(e)?(this._bodyArrayBuffer=SZ(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):lZ.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||fZ(e))?this._bodyArrayBuffer=SZ(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):lZ.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set(`content-type`,`application/x-www-form-urlencoded;charset=UTF-8`))},lZ.blob&&(this.blob=function(){var e=_Z(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 _Z(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(lZ.blob)return this.blob().then(yZ);throw Error(`could not read as ArrayBuffer`)},this.text=function(){var e=_Z(this);if(e)return e;if(this._bodyBlob)return bZ(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(xZ(this._bodyArrayBuffer));if(this._bodyFormData)throw Error(`could not read FormData body as text`);return Promise.resolve(this._bodyText)},lZ.formData&&(this.formData=function(){return this.text().then(DZ)}),this.json=function(){return this.text().then(JSON.parse)},this}var wZ=[`CONNECT`,`DELETE`,`GET`,`HEAD`,`OPTIONS`,`PATCH`,`POST`,`PUT`,`TRACE`];function TZ(e){var t=e.toUpperCase();return wZ.indexOf(t)>-1?t:e}function EZ(e,t){if(!(this instanceof EZ))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 EZ){if(e.bodyUsed)throw TypeError(`Already read`);this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new gZ(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 gZ(t.headers)),this.method=TZ(t.method||this.method||`GET`),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if(`AbortController`in cZ)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()}}}EZ.prototype.clone=function(){return new EZ(this,{body:this._bodyInit})};function DZ(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 OZ(e){var t=new gZ;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}CZ.call(EZ.prototype);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.`);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 gZ(t.headers),this.url=t.url||``,this._initBody(e)}CZ.call(kZ.prototype),kZ.prototype.clone=function(){return new kZ(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new gZ(this.headers),url:this.url})},kZ.error=function(){var e=new kZ(null,{status:200,statusText:``});return e.ok=!1,e.status=0,e.type=`error`,e};var AZ=[301,302,303,307,308];kZ.redirect=function(e,t){if(AZ.indexOf(t)===-1)throw RangeError(`Invalid status code`);return new kZ(null,{status:t,headers:{location:e}})};var jZ=cZ.DOMException;try{new jZ}catch{jZ=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},jZ.prototype=Object.create(Error.prototype),jZ.prototype.constructor=jZ}function MZ(e,t){return new Promise(function(n,r){var i=new EZ(e,t);if(i.signal&&i.signal.aborted)return r(new jZ(`Aborted`,`AbortError`));var a=new XMLHttpRequest;function o(){a.abort()}a.onload=function(){var e={statusText:a.statusText,headers:OZ(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 kZ(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 jZ(`Aborted`,`AbortError`))},0)};function s(e){try{return e===``&&cZ.location.href?cZ.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&&(lZ.blob?a.responseType=`blob`:lZ.arrayBuffer&&(a.responseType=`arraybuffer`)),t&&typeof t.headers==`object`&&!(t.headers instanceof gZ||cZ.Headers&&t.headers instanceof cZ.Headers)){var c=[];Object.getOwnPropertyNames(t.headers).forEach(function(e){c.push(pZ(e)),a.setRequestHeader(e,mZ(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)})}MZ.polyfill=!0,cZ.fetch||(cZ.fetch=MZ,cZ.Headers=gZ,cZ.Request=EZ,cZ.Response=kZ);var NZ=`11434`,PZ=`http://127.0.0.1:${NZ}`,FZ=`0.6.3`,IZ=Object.defineProperty,LZ=(e,t,n)=>t in e?IZ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,RZ=(e,t,n)=>(LZ(e,typeof t==`symbol`?t:t+``,n),n),zZ=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)}},BZ=class{constructor(e,t,n){RZ(this,`abortController`),RZ(this,`itr`),RZ(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.`)}},VZ=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 zZ(t,e.status)};function HZ(){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 UZ(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 WZ=(e,t)=>e[t],GZ=async(e,t,n={})=>{let r={"Content-Type":`application/json`,Accept:`application/json`,"User-Agent":`ollama-js/${FZ} (${HZ()})`};n.headers=UZ(n.headers);try{let e=new URL(t);if(e.protocol===`https:`&&e.hostname===`ollama.com`){let e=typeof process==`object`&&process!==null?WZ({},`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)},KZ=async(e,t,n)=>{let r=await GZ(e,t,{headers:n?.headers});return await VZ(r),r},qZ=async(e,t,n,r)=>{let i=await GZ(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 VZ(i),i},JZ=async(e,t,n,r)=>{let i=await GZ(e,t,{method:`DELETE`,body:JSON.stringify(n),headers:r?.headers});return await VZ(i),i},YZ=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)}},XZ=e=>{if(!e)return PZ;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`:NZ;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},ZZ=Object.defineProperty,QZ=(e,t,n)=>t in e?ZZ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$Z=(e,t,n)=>(QZ(e,typeof t==`symbol`?t:t+``,n),n),eQ=class{constructor(e){$Z(this,`config`),$Z(this,`fetch`),$Z(this,`ongoingStreamedRequests`,[]),this.config={host:``,headers:e?.headers},e?.proxy||(this.config.host=XZ(e?.host??PZ)),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 qZ(this.fetch,n,t,{signal:e.signal,headers:this.config.headers});if(!r.body)throw Error(`Missing body`);let i=new BZ(e,YZ(r.body),()=>{let e=this.ongoingStreamedRequests.indexOf(i);e>-1&&this.ongoingStreamedRequests.splice(e,1)});return this.ongoingStreamedRequests.push(i),i}return await(await qZ(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 JZ(this.fetch,`${this.config.host}/api/delete`,{name:e.model},{headers:this.config.headers}),{status:`success`}}async copy(e){return await qZ(this.fetch,`${this.config.host}/api/copy`,{...e},{headers:this.config.headers}),{status:`success`}}async list(){return await(await KZ(this.fetch,`${this.config.host}/api/tags`,{headers:this.config.headers})).json()}async show(e){return await(await qZ(this.fetch,`${this.config.host}/api/show`,{...e},{headers:this.config.headers})).json()}async embed(e){return await(await qZ(this.fetch,`${this.config.host}/api/embed`,{...e},{headers:this.config.headers})).json()}async embeddings(e){return await(await qZ(this.fetch,`${this.config.host}/api/embeddings`,{...e},{headers:this.config.headers})).json()}async ps(){return await(await KZ(this.fetch,`${this.config.host}/api/ps`,{headers:this.config.headers})).json()}async version(){return await(await KZ(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 qZ(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 qZ(this.fetch,`https://ollama.com/api/web_fetch`,{...e},{headers:this.config.headers})).json()}};new eQ;var tQ=class extends OE{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??zr(`OLLAMA_BASE_URL`)??this.baseUrl,this.client=new eQ({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=>qj(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=>qj(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?cu(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=sZ(e),a=await this.client.chat({...r,messages:i,stream:!0}),o=t.streamUsage??!0;yield*$X(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=sZ(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 Ku({text:o,message:tZ(r)});yield c,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:c})}yield new Ku({text:``,message:new cn({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=cx(i);i_(i)||xb(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:i_(i)||xb(i)?o:i}}),r=ZT(i,e)}else if(s===`jsonMode`||s===`jsonSchema`){r=XT(i);let e=cx(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 QT(n,r,o,o?`StructuredOutputRunnable`:`ChatOllamaStructuredOutput`)}},nQ=e=>o.includes(e),rQ=e=>s.includes(e),iQ=e=>{let{executeQuery:t,search:n,grep:r,readFile:i}=e;return[Sj(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:SA().optional().nullable().describe(`Group results by process (default: true)`),limit:vA().optional().nullable().describe(`Max results to return (default: 10)`)})}),Sj(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}})`)})}),Sj(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:SA().optional().nullable().describe(`Case-sensitive search (default: false)`),maxResults:vA().optional().nullable().describe(`Max results (default: 100)`)})}),Sj(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")`)})}),Sj(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({})}),Sj(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(!nQ(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:UA([`symbol`,`cluster`,`process`]).optional().nullable().describe(`Optional target type (auto-detected if omitted)`)})}),Sj(async({target:e,direction:n,maxDepth:a,relationTypes:o,includeTests:c,minConfidence:l})=>{let u=Math.min(a??3,10),d=c??!1,f=l??.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=>rQ(e)):[`CALLS`,`IMPORTS`,`EXTENDS`,`IMPLEMENTS`];if(m.length===0)return`No valid relation types provided. Valid types: ${s.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`No ${n} dependencies found for "${e}" (types: ${m.join(`, `)}). This code appears to be ${n===`upstream`?`unused (not called by anything)`:`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:UA([`upstream`,`downstream`]).describe(`upstream = what depends on this; downstream = what this depends on`),maxDepth:vA().optional().nullable().describe(`Max traversal depth (default: 3, max: 10)`),relationTypes:AA(W()).optional().nullable().describe(`Filter by relation types: CALLS, IMPORTS, EXTENDS, IMPLEMENTS, CONTAINS, DEFINES (default: usage-based)`),includeTests:SA().optional().nullable().describe(`Include test files in results (default: false, excludes .test.ts, .spec.ts, __tests__)`),minConfidence:vA().optional().nullable().describe(`Minimum edge confidence 0-1 (default: 0.7, excludes fuzzy/inferred matches)`)})})]},aQ=class extends vq{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?pQ(this.activeMessages):e.messages;return super.completionWithRetry({...e,messages:n},t)}},oQ=class e extends Vq{deepSeekFields;constructor(e){let t={...e,completions:new aQ(e)};super(t),this.deepSeekFields=t}withConfig(t){let n=new e(this.deepSeekFields);return n.defaultOptions={...this.defaultOptions,...t},n}},sQ=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),cQ=e=>{if(e?.args&&typeof e.args==`object`)return e.args;try{return e?.function?.arguments?JSON.parse(e.function.arguments):{}}catch{return{}}},lQ=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:cQ(e),type:typeof e?.type==`string`?e.type:`tool_call`}))},uQ=e=>{if(typeof e==`string`)return e;try{return JSON.stringify(e??{})}catch{return`{}`}},dQ=e=>{if(typeof e==`string`)return e;if(!Array.isArray(e))return sQ(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},fQ=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`}},pQ=e=>e.map(e=>{let t=fQ(e),n=e.additional_kwargs&&typeof e.additional_kwargs==`object`?e.additional_kwargs:{},r={role:t,content:dQ(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:uQ(e.function.arguments)}}:{id:e?.id,type:`function`,function:{name:e?.name??`unknown`,arguments:uQ(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}),mQ=`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
|
+
`,hQ=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 Vq({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 Hq({azureOpenAIApiKey:t.apiKey,azureOpenAIApiInstanceName:gQ(t.endpoint),azureOpenAIApiDeploymentName:t.deploymentName,azureOpenAIApiVersion:t.apiVersion??`2024-12-01-preview`,streaming:!0})}case`gemini`:{let t=e;return new DY({apiKey:t.apiKey,model:t.model,temperature:t.temperature??.1,maxOutputTokens:t.maxTokens,streaming:!0})}case`anthropic`:{let t=e;return new FX({anthropicApiKey:t.apiKey,model:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens??8192,streaming:!0})}case`ollama`:{let t=e;return new tQ({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 Vq({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`);return new FX({anthropicApiKey:t.apiKey,model:t.model,temperature:t.temperature??.1,maxTokens:t.maxTokens??8192,streaming:!0,clientOptions:{baseURL:`https://api.minimax.io/anthropic`}})}case`glm`:{let t=e;if(!t.apiKey||t.apiKey.trim()===``)throw Error(`GLM API key is required but was not provided`);return new Vq({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 oQ({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}`)}},gQ=e=>{try{let t=new URL(e).hostname,n=t.match(/^([^.]+)\.openai\.azure\.com$/);return n?n[1]:t.split(`.`)[0]}catch{return e}},_Q=(e,t,n,r=!1)=>HR({llm:hQ(e),tools:iQ(t),messageModifier:new Sn(n?a(mQ,n,r):r?`${mQ}${i}`:mQ)}),vQ=(e,t)=>!!(e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`||t?.aborted),yQ=e=>e.map(e=>e.role===`user`?new _n(e.content):e.role===`tool`?new Et({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}:{}})),bQ=(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=lQ(e.tool_calls);n.push({role:`assistant`,content:sQ(e.content),...r?.length&&typeof t==`string`?{reasoningContent:t}:{},...r?.length?{toolCalls:r}:{}});continue}(t===`tool`||t===`ToolMessage`)&&n.push({role:`tool`,content:sQ(e.content),toolCallId:String(e.tool_call_id??``),...typeof e.name==`string`?{name:e.name}:{}})}return n};async function*xQ(e,t,n={}){try{let r=yQ(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=``;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(``)),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?bQ(u,r.length):void 0}}catch(e){if(vQ(e,n.signal)){yield{type:`cancelled`};return}yield{type:`error`,error:e instanceof Error?e.message:String(e)}}}export{_Q as createGraphRAGAgent,xQ as streamAgentResponse};
|