@amplitude/ai 0.1.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/.cursor/skills/instrument-with-amplitude-ai/SKILL.md +50 -0
- package/AGENTS.md +79 -0
- package/LICENSE +21 -0
- package/README.md +2111 -0
- package/bin/amplitude-ai-completions.mjs +19 -0
- package/bin/amplitude-ai-doctor.mjs +26 -0
- package/bin/amplitude-ai-init.mjs +27 -0
- package/bin/amplitude-ai-instrument.mjs +52 -0
- package/bin/amplitude-ai-mcp.mjs +8 -0
- package/bin/amplitude-ai-register-catalog.mjs +156 -0
- package/bin/amplitude-ai-status.mjs +28 -0
- package/bin/amplitude-ai.mjs +43 -0
- package/bin/validate-catalog-constants.mjs +134 -0
- package/data/agent_event_catalog.json +1277 -0
- package/dist/_virtual/rolldown_runtime.js +31 -0
- package/dist/bound-agent.d.ts +56 -0
- package/dist/bound-agent.d.ts.map +1 -0
- package/dist/bound-agent.js +155 -0
- package/dist/bound-agent.js.map +1 -0
- package/dist/cli/doctor.d.ts +17 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +89 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/init.d.ts +14 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +40 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/providers.d.ts +32 -0
- package/dist/cli/providers.d.ts.map +1 -0
- package/dist/cli/providers.js +46 -0
- package/dist/cli/providers.js.map +1 -0
- package/dist/cli/status.d.ts +14 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +38 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/client.d.ts +246 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +369 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +60 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +57 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +44 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +53 -0
- package/dist/context.js.map +1 -0
- package/dist/core/constants.d.ts +96 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +105 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/enrichments.d.ts +139 -0
- package/dist/core/enrichments.d.ts.map +1 -0
- package/dist/core/enrichments.js +177 -0
- package/dist/core/enrichments.js.map +1 -0
- package/dist/core/privacy.d.ts +53 -0
- package/dist/core/privacy.d.ts.map +1 -0
- package/dist/core/privacy.js +235 -0
- package/dist/core/privacy.js.map +1 -0
- package/dist/core/tracking.d.ts +242 -0
- package/dist/core/tracking.d.ts.map +1 -0
- package/dist/core/tracking.js +469 -0
- package/dist/core/tracking.js.map +1 -0
- package/dist/decorators.d.ts +109 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +281 -0
- package/dist/decorators.js.map +1 -0
- package/dist/exceptions.d.ts +19 -0
- package/dist/exceptions.d.ts.map +1 -0
- package/dist/exceptions.js +35 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +38 -0
- package/dist/integrations/anthropic-tools.d.ts +38 -0
- package/dist/integrations/anthropic-tools.d.ts.map +1 -0
- package/dist/integrations/anthropic-tools.js +175 -0
- package/dist/integrations/anthropic-tools.js.map +1 -0
- package/dist/integrations/crewai.d.ts +14 -0
- package/dist/integrations/crewai.d.ts.map +1 -0
- package/dist/integrations/crewai.js +19 -0
- package/dist/integrations/crewai.js.map +1 -0
- package/dist/integrations/langchain.d.ts +37 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +189 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/llamaindex.d.ts +44 -0
- package/dist/integrations/llamaindex.d.ts.map +1 -0
- package/dist/integrations/llamaindex.js +144 -0
- package/dist/integrations/llamaindex.js.map +1 -0
- package/dist/integrations/openai-agents.d.ts +35 -0
- package/dist/integrations/openai-agents.d.ts.map +1 -0
- package/dist/integrations/openai-agents.js +248 -0
- package/dist/integrations/openai-agents.js.map +1 -0
- package/dist/integrations/opentelemetry.d.ts +40 -0
- package/dist/integrations/opentelemetry.d.ts.map +1 -0
- package/dist/integrations/opentelemetry.js +146 -0
- package/dist/integrations/opentelemetry.js.map +1 -0
- package/dist/internals.d.ts +5 -0
- package/dist/internals.js +5 -0
- package/dist/mcp/contract.d.ts +27 -0
- package/dist/mcp/contract.d.ts.map +1 -0
- package/dist/mcp/contract.js +25 -0
- package/dist/mcp/contract.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/patterns.d.ts +11 -0
- package/dist/mcp/patterns.d.ts.map +1 -0
- package/dist/mcp/patterns.js +38 -0
- package/dist/mcp/patterns.js.map +1 -0
- package/dist/mcp/server.d.ts +10 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +241 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/validate-file.d.ts +20 -0
- package/dist/mcp/validate-file.d.ts.map +1 -0
- package/dist/mcp/validate-file.js +122 -0
- package/dist/mcp/validate-file.js.map +1 -0
- package/dist/middleware.d.ts +32 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +67 -0
- package/dist/middleware.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js +54 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js +20 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js +34 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js +225 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +22 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +351 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +634 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +60 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +122 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +37 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +858 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +32 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +74 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1262 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +83 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js +195 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js +44 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js +88 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.js +107 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js +142 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.js +678 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.js +145 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.js +106 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js +227 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/names.js +33 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.js +22 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.js +137 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.js +65 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.js +150 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/boolSchema.js +52 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.js +176 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.js +437 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/keyword.js +117 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.js +76 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.js +587 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/data.js +22 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/data.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/json-schema-draft-07.js +145 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/json-schema-draft-07.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/equal.js +16 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/ucs2length.js +29 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/uri.js +16 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.js +20 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +61 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +101 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +34 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +21 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +94 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +91 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js +64 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items.js +63 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +39 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +56 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +66 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +57 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +46 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +22 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/code.js +134 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/ref.js +116 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +106 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.js +97 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js +15 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.js +32 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.js +54 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js +53 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +33 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +38 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +52 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +33 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +32 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +43 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.js +77 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +37 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js +240 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js +194 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js +286 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +82 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +37 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +30 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +57 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +17 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +23 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +36 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +39 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +13 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +11 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +11 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +47 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +17 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +38 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +13 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +11 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +46 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +37 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +64 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +20 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +27 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +56 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +21 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +250 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +38 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +64 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +78 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +70 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +104 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +11 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +10 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +110 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +99 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +84 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js +3160 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js +23 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js +38 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js +12 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js +611 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js +437 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js +360 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js +50 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js +34 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js +71 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js +74 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js +63 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js +50 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js +1098 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js +599 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js +267 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js +10 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/mini/schemas.js +50 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/mini/schemas.js.map +1 -0
- package/dist/patching.d.ts +59 -0
- package/dist/patching.d.ts.map +1 -0
- package/dist/patching.js +891 -0
- package/dist/patching.js.map +1 -0
- package/dist/propagation.d.ts +8 -0
- package/dist/propagation.d.ts.map +1 -0
- package/dist/propagation.js +46 -0
- package/dist/propagation.js.map +1 -0
- package/dist/providers/anthropic.d.ts +44 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +287 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/azure-openai.d.ts +32 -0
- package/dist/providers/azure-openai.d.ts.map +1 -0
- package/dist/providers/azure-openai.js +39 -0
- package/dist/providers/azure-openai.js.map +1 -0
- package/dist/providers/base.d.ts +70 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +141 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/bedrock.d.ts +41 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +229 -0
- package/dist/providers/bedrock.js.map +1 -0
- package/dist/providers/gemini.d.ts +34 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +225 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/mistral.d.ts +32 -0
- package/dist/providers/mistral.d.ts.map +1 -0
- package/dist/providers/mistral.js +218 -0
- package/dist/providers/mistral.js.map +1 -0
- package/dist/providers/openai.d.ts +61 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +530 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/register.d.ts +1 -0
- package/dist/register.js +46 -0
- package/dist/register.js.map +1 -0
- package/dist/session.d.ts +46 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +144 -0
- package/dist/session.js.map +1 -0
- package/dist/tenant.d.ts +30 -0
- package/dist/tenant.d.ts.map +1 -0
- package/dist/tenant.js +23 -0
- package/dist/tenant.js.map +1 -0
- package/dist/testing.d.ts +46 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +120 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +384 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/costs.d.ts +27 -0
- package/dist/utils/costs.d.ts.map +1 -0
- package/dist/utils/costs.js +63 -0
- package/dist/utils/costs.js.map +1 -0
- package/dist/utils/debug.d.ts +6 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +73 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +18 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/model-tiers.d.ts +8 -0
- package/dist/utils/model-tiers.d.ts.map +1 -0
- package/dist/utils/model-tiers.js +76 -0
- package/dist/utils/model-tiers.js.map +1 -0
- package/dist/utils/providers.d.ts +5 -0
- package/dist/utils/providers.d.ts.map +1 -0
- package/dist/utils/providers.js +20 -0
- package/dist/utils/providers.js.map +1 -0
- package/dist/utils/resolve-module.d.ts +5 -0
- package/dist/utils/resolve-module.d.ts.map +1 -0
- package/dist/utils/resolve-module.js +29 -0
- package/dist/utils/resolve-module.js.map +1 -0
- package/dist/utils/streaming.d.ts +55 -0
- package/dist/utils/streaming.d.ts.map +1 -0
- package/dist/utils/streaming.js +72 -0
- package/dist/utils/streaming.js.map +1 -0
- package/dist/utils/tokens.d.ts +16 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +80 -0
- package/dist/utils/tokens.js.map +1 -0
- package/dist/wrappers.d.ts +37 -0
- package/dist/wrappers.d.ts.map +1 -0
- package/dist/wrappers.js +61 -0
- package/dist/wrappers.js.map +1 -0
- package/llms-full.txt +127 -0
- package/llms.txt +28 -0
- package/mcp.schema.json +18 -0
- package/package.json +189 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PrivacyConfig } from "../core/privacy.js";
|
|
2
|
+
import { AmplitudeOrAI } from "../types.js";
|
|
3
|
+
import { BaseAIProvider } from "./base.js";
|
|
4
|
+
import { OPENAI_AVAILABLE } from "./openai.js";
|
|
5
|
+
|
|
6
|
+
//#region src/providers/azure-openai.d.ts
|
|
7
|
+
|
|
8
|
+
interface AzureOpenAIOptions {
|
|
9
|
+
amplitude: AmplitudeOrAI;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
azureEndpoint?: string;
|
|
12
|
+
apiVersion?: string;
|
|
13
|
+
privacyConfig?: PrivacyConfig | null;
|
|
14
|
+
propagateContext?: boolean;
|
|
15
|
+
/** Pass the `openai` module directly to bypass `tryRequire` (required in bundler environments). */
|
|
16
|
+
openaiModule?: unknown;
|
|
17
|
+
}
|
|
18
|
+
declare class AzureOpenAI extends BaseAIProvider {
|
|
19
|
+
private _client;
|
|
20
|
+
private _propagateContext;
|
|
21
|
+
readonly chat: {
|
|
22
|
+
completions: {
|
|
23
|
+
create: (params: Record<string, unknown>) => Promise<unknown>;
|
|
24
|
+
parse: (params: Record<string, unknown>) => Promise<unknown>;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
constructor(options: AzureOpenAIOptions);
|
|
28
|
+
get client(): unknown;
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { OPENAI_AVAILABLE as AZURE_OPENAI_AVAILABLE, AzureOpenAI, AzureOpenAIOptions };
|
|
32
|
+
//# sourceMappingURL=azure-openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-openai.d.ts","names":[],"sources":["../../src/providers/azure-openai.ts"],"sourcesContent":[],"mappings":";;;;;;;AAgCuB,UAhBN,kBAAA,CAgBM;EAA4B,SAAA,EAftC,aAesC;EAC7B,MAAA,CAAA,EAAA,MAAA;EAA4B,aAAA,CAAA,EAAA,MAAA;EAI3B,UAAA,CAAA,EAAA,MAAA;EAVU,aAAA,CAAA,EANf,aAMe,GAAA,IAAA;EAAc,gBAAA,CAAA,EAAA,OAAA;;;;cAAlC,WAAA,SAAoB,cAAA;;;;;uBAKV,4BAA4B;sBAC7B,4BAA4B;;;uBAI3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getDefaultPropagateContext } from "../propagation.js";
|
|
2
|
+
import { BaseAIProvider } from "./base.js";
|
|
3
|
+
import { OPENAI_AVAILABLE, WrappedCompletions, _OpenAIModule } from "./openai.js";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/azure-openai.ts
|
|
6
|
+
var AzureOpenAI = class extends BaseAIProvider {
|
|
7
|
+
_client;
|
|
8
|
+
_propagateContext;
|
|
9
|
+
chat;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super({
|
|
12
|
+
amplitude: options.amplitude,
|
|
13
|
+
privacyConfig: options.privacyConfig,
|
|
14
|
+
providerName: "azure-openai"
|
|
15
|
+
});
|
|
16
|
+
const mod = options.openaiModule ?? _OpenAIModule;
|
|
17
|
+
if (mod == null) throw new Error("openai package is required for Azure OpenAI. Install it with: npm install openai — or pass the module directly via the openaiModule option.");
|
|
18
|
+
const AzureOpenAISDK = mod.AzureOpenAI;
|
|
19
|
+
const clientOpts = {};
|
|
20
|
+
if (options.apiKey) clientOpts.apiKey = options.apiKey;
|
|
21
|
+
if (options.azureEndpoint) clientOpts.baseURL = options.azureEndpoint;
|
|
22
|
+
if (options.apiVersion) clientOpts.defaultQuery = { "api-version": options.apiVersion };
|
|
23
|
+
this._client = new AzureOpenAISDK(clientOpts);
|
|
24
|
+
this._propagateContext = options.propagateContext ?? getDefaultPropagateContext();
|
|
25
|
+
const originalCompletions = this._client.chat.completions;
|
|
26
|
+
const wrappedCompletions = new WrappedCompletions(originalCompletions, this.trackFn(), this._amplitude, this._privacyConfig, this._propagateContext, "azure-openai");
|
|
27
|
+
this.chat = { completions: {
|
|
28
|
+
create: (params) => wrappedCompletions.create(params),
|
|
29
|
+
parse: (params) => wrappedCompletions.parse(params)
|
|
30
|
+
} };
|
|
31
|
+
}
|
|
32
|
+
get client() {
|
|
33
|
+
return this._client;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { OPENAI_AVAILABLE as AZURE_OPENAI_AVAILABLE, AzureOpenAI };
|
|
39
|
+
//# sourceMappingURL=azure-openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-openai.js","names":["clientOpts: Record<string, unknown>"],"sources":["../../src/providers/azure-openai.ts"],"sourcesContent":["/**\n * Azure OpenAI provider wrapper — reuses OpenAI wrapper logic.\n */\n\nimport type { PrivacyConfig } from '../core/privacy.js';\nimport { getDefaultPropagateContext } from '../propagation.js';\nimport type { AmplitudeOrAI } from '../types.js';\nimport { BaseAIProvider } from './base.js';\nimport {\n _OpenAIModule,\n OPENAI_AVAILABLE,\n WrappedCompletions,\n} from './openai.js';\n\nexport { OPENAI_AVAILABLE as AZURE_OPENAI_AVAILABLE };\n\nexport interface AzureOpenAIOptions {\n amplitude: AmplitudeOrAI;\n apiKey?: string;\n azureEndpoint?: string;\n apiVersion?: string;\n privacyConfig?: PrivacyConfig | null;\n propagateContext?: boolean;\n /** Pass the `openai` module directly to bypass `tryRequire` (required in bundler environments). */\n openaiModule?: unknown;\n}\n\nexport class AzureOpenAI extends BaseAIProvider {\n private _client: unknown;\n private _propagateContext: boolean;\n readonly chat: {\n completions: {\n create: (params: Record<string, unknown>) => Promise<unknown>;\n parse: (params: Record<string, unknown>) => Promise<unknown>;\n };\n };\n\n constructor(options: AzureOpenAIOptions) {\n super({\n amplitude: options.amplitude,\n privacyConfig: options.privacyConfig,\n providerName: 'azure-openai',\n });\n\n const mod =\n (options.openaiModule as Record<string, unknown> | null) ?? _OpenAIModule;\n if (mod == null) {\n throw new Error(\n 'openai package is required for Azure OpenAI. Install it with: npm install openai — or pass the module directly via the openaiModule option.',\n );\n }\n\n const AzureOpenAISDK = mod.AzureOpenAI as new (\n opts: Record<string, unknown>,\n ) => unknown;\n\n const clientOpts: Record<string, unknown> = {};\n if (options.apiKey) clientOpts.apiKey = options.apiKey;\n if (options.azureEndpoint) clientOpts.baseURL = options.azureEndpoint;\n if (options.apiVersion) {\n clientOpts.defaultQuery = { 'api-version': options.apiVersion };\n }\n\n this._client = new AzureOpenAISDK(clientOpts);\n this._propagateContext =\n options.propagateContext ?? getDefaultPropagateContext();\n const clientObj = this._client as Record<string, unknown>;\n const originalChat = clientObj.chat as Record<string, unknown>;\n const originalCompletions = originalChat.completions as Record<\n string,\n unknown\n >;\n const wrappedCompletions = new WrappedCompletions(\n originalCompletions,\n this.trackFn(),\n this._amplitude,\n this._privacyConfig,\n this._propagateContext,\n 'azure-openai',\n );\n\n this.chat = {\n completions: {\n create: (params: Record<string, unknown>): Promise<unknown> =>\n wrappedCompletions.create(params),\n parse: (params: Record<string, unknown>): Promise<unknown> =>\n wrappedCompletions.parse(params),\n },\n };\n }\n\n get client(): unknown {\n return this._client;\n }\n}\n"],"mappings":";;;;;AA2BA,IAAa,cAAb,cAAiC,eAAe;CAC9C,AAAQ;CACR,AAAQ;CACR,AAAS;CAOT,YAAY,SAA6B;AACvC,QAAM;GACJ,WAAW,QAAQ;GACnB,eAAe,QAAQ;GACvB,cAAc;GACf,CAAC;EAEF,MAAM,MACH,QAAQ,gBAAmD;AAC9D,MAAI,OAAO,KACT,OAAM,IAAI,MACR,8IACD;EAGH,MAAM,iBAAiB,IAAI;EAI3B,MAAMA,aAAsC,EAAE;AAC9C,MAAI,QAAQ,OAAQ,YAAW,SAAS,QAAQ;AAChD,MAAI,QAAQ,cAAe,YAAW,UAAU,QAAQ;AACxD,MAAI,QAAQ,WACV,YAAW,eAAe,EAAE,eAAe,QAAQ,YAAY;AAGjE,OAAK,UAAU,IAAI,eAAe,WAAW;AAC7C,OAAK,oBACH,QAAQ,oBAAoB,4BAA4B;EAG1D,MAAM,sBAFY,KAAK,QACQ,KACU;EAIzC,MAAM,qBAAqB,IAAI,mBAC7B,qBACA,KAAK,SAAS,EACd,KAAK,YACL,KAAK,gBACL,KAAK,mBACL,eACD;AAED,OAAK,OAAO,EACV,aAAa;GACX,SAAS,WACP,mBAAmB,OAAO,OAAO;GACnC,QAAQ,WACN,mBAAmB,MAAM,OAAO;GACnC,EACF;;CAGH,IAAI,SAAkB;AACpB,SAAO,KAAK"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { PrivacyConfig } from "../core/privacy.js";
|
|
2
|
+
import { AmplitudeLike, AmplitudeOrAI, TrackFn } from "../types.js";
|
|
3
|
+
import { TrackAiMessageOptions } from "../core/tracking.js";
|
|
4
|
+
import { StreamingAccumulator } from "../utils/streaming.js";
|
|
5
|
+
|
|
6
|
+
//#region src/providers/base.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Per-call context overrides for provider wrappers.
|
|
10
|
+
*
|
|
11
|
+
* Pass as the second argument to wrapped provider methods
|
|
12
|
+
* (e.g., `openai.chat.completions.create(params, overrides)`)
|
|
13
|
+
* to set Amplitude tracking context for that specific call.
|
|
14
|
+
* Any fields left `null`/`undefined` are filled from the
|
|
15
|
+
* active `SessionContext` via `AsyncLocalStorage`.
|
|
16
|
+
*/
|
|
17
|
+
interface ProviderTrackOptions {
|
|
18
|
+
userId?: string | null;
|
|
19
|
+
sessionId?: string | null;
|
|
20
|
+
traceId?: string | null;
|
|
21
|
+
turnId?: number | null;
|
|
22
|
+
agentId?: string | null;
|
|
23
|
+
parentAgentId?: string | null;
|
|
24
|
+
customerOrgId?: string | null;
|
|
25
|
+
env?: string | null;
|
|
26
|
+
groups?: Record<string, unknown> | null;
|
|
27
|
+
eventProperties?: Record<string, unknown> | null;
|
|
28
|
+
/**
|
|
29
|
+
* Controls whether provider wrappers auto-track user input payloads.
|
|
30
|
+
* Set to false when you already call `trackUserMessage()` explicitly.
|
|
31
|
+
*/
|
|
32
|
+
trackInputMessages?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Apply session context fields from AsyncLocalStorage to tracking options.
|
|
36
|
+
* Returns a merged set of fields with explicit values taking precedence.
|
|
37
|
+
* Also injects idle_timeout_minutes and session_replay_id from the context.
|
|
38
|
+
*/
|
|
39
|
+
declare function applySessionContext(overrides?: ProviderTrackOptions): ProviderTrackOptions & {
|
|
40
|
+
userId: string;
|
|
41
|
+
};
|
|
42
|
+
declare abstract class BaseAIProvider {
|
|
43
|
+
protected _amplitude: AmplitudeLike;
|
|
44
|
+
protected _privacyConfig: PrivacyConfig | null;
|
|
45
|
+
readonly _providerName: string;
|
|
46
|
+
constructor(options: {
|
|
47
|
+
amplitude: AmplitudeOrAI;
|
|
48
|
+
privacyConfig?: PrivacyConfig | null;
|
|
49
|
+
providerName: string;
|
|
50
|
+
});
|
|
51
|
+
protected _track(opts: Omit<TrackAiMessageOptions, 'amplitude'>): string;
|
|
52
|
+
trackFn(): TrackFn;
|
|
53
|
+
createStreamingTracker(): SimpleStreamingTracker;
|
|
54
|
+
}
|
|
55
|
+
declare class SimpleStreamingTracker {
|
|
56
|
+
private _trackFn;
|
|
57
|
+
readonly accumulator: StreamingAccumulator;
|
|
58
|
+
private _modelName;
|
|
59
|
+
private _providerName;
|
|
60
|
+
constructor(provider: BaseAIProvider);
|
|
61
|
+
setModel(model: string): void;
|
|
62
|
+
addContent(chunk: string): void;
|
|
63
|
+
setUsage(usage: Parameters<StreamingAccumulator['setUsage']>[0]): void;
|
|
64
|
+
setFinishReason(reason: string): void;
|
|
65
|
+
addToolCall(toolCall: Record<string, unknown>): void;
|
|
66
|
+
finalize(overrides?: ProviderTrackOptions): string;
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { BaseAIProvider, ProviderTrackOptions, SimpleStreamingTracker, applySessionContext };
|
|
70
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../src/providers/base.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;AAsJa,UApHI,oBAAA,CAoHkB;EAEX,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAIA,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAeK,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAX,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAQM,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAIF,aAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAyB,aAAA,CAAA,EAAA,MAAA,GAAA,IAAA;;WA5IpC;oBACS;;;;;;;;;;;;iBAaJ,mBAAA,aACH,uBACV;;;uBAqCmB,cAAA;wBACE;4BACI;;;eAIb;oBACK;;;yBAQK,KAAK;aA6BjB;4BAKe;;cAKf,sBAAA;;wBAEW;;;wBAIA;;;kBAeN,WAAW;;wBAQL;uBAIF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { PROP_IDLE_TIMEOUT_MINUTES, PROP_SESSION_REPLAY_ID } from "../core/constants.js";
|
|
2
|
+
import { trackAiMessage } from "../core/tracking.js";
|
|
3
|
+
import { getActiveContext } from "../context.js";
|
|
4
|
+
import { StreamingAccumulator } from "../utils/streaming.js";
|
|
5
|
+
import { resolveAmplitude } from "../types.js";
|
|
6
|
+
|
|
7
|
+
//#region src/providers/base.ts
|
|
8
|
+
/**
|
|
9
|
+
* Base class for AI provider wrappers.
|
|
10
|
+
*
|
|
11
|
+
* Provides shared tracking logic and session context integration.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Apply session context fields from AsyncLocalStorage to tracking options.
|
|
15
|
+
* Returns a merged set of fields with explicit values taking precedence.
|
|
16
|
+
* Also injects idle_timeout_minutes and session_replay_id from the context.
|
|
17
|
+
*/
|
|
18
|
+
function applySessionContext(overrides = {}) {
|
|
19
|
+
const ctx = getActiveContext();
|
|
20
|
+
const result = { ...overrides };
|
|
21
|
+
if (ctx != null) {
|
|
22
|
+
if (!result.userId) result.userId = ctx.userId;
|
|
23
|
+
if (!result.sessionId) result.sessionId = ctx.sessionId;
|
|
24
|
+
if (!result.traceId) result.traceId = ctx.traceId;
|
|
25
|
+
if (!result.agentId) result.agentId = ctx.agentId;
|
|
26
|
+
if (!result.parentAgentId) result.parentAgentId = ctx.parentAgentId;
|
|
27
|
+
if (!result.customerOrgId) result.customerOrgId = ctx.customerOrgId;
|
|
28
|
+
if (!result.env) result.env = ctx.env;
|
|
29
|
+
if (!result.groups) result.groups = ctx.groups;
|
|
30
|
+
const turnId = ctx.nextTurnId();
|
|
31
|
+
if (turnId != null && result.turnId == null) result.turnId = turnId;
|
|
32
|
+
const existingEp = result.eventProperties;
|
|
33
|
+
const ep = existingEp != null ? { ...existingEp } : {};
|
|
34
|
+
if (ctx.idleTimeoutMinutes != null && !(PROP_IDLE_TIMEOUT_MINUTES in ep)) ep[PROP_IDLE_TIMEOUT_MINUTES] = ctx.idleTimeoutMinutes;
|
|
35
|
+
if (ctx.deviceId && ctx.browserSessionId && !(PROP_SESSION_REPLAY_ID in ep)) ep[PROP_SESSION_REPLAY_ID] = `${ctx.deviceId}/${ctx.browserSessionId}`;
|
|
36
|
+
if (Object.keys(ep).length > 0) result.eventProperties = ep;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
var BaseAIProvider = class {
|
|
41
|
+
_amplitude;
|
|
42
|
+
_privacyConfig;
|
|
43
|
+
_providerName;
|
|
44
|
+
constructor(options) {
|
|
45
|
+
this._amplitude = resolveAmplitude(options.amplitude);
|
|
46
|
+
this._privacyConfig = options.privacyConfig ?? null;
|
|
47
|
+
this._providerName = options.providerName;
|
|
48
|
+
}
|
|
49
|
+
_track(opts) {
|
|
50
|
+
const merged = applySessionContext({
|
|
51
|
+
userId: opts.userId,
|
|
52
|
+
sessionId: opts.sessionId,
|
|
53
|
+
traceId: opts.traceId,
|
|
54
|
+
turnId: opts.turnId,
|
|
55
|
+
agentId: opts.agentId,
|
|
56
|
+
parentAgentId: opts.parentAgentId,
|
|
57
|
+
customerOrgId: opts.customerOrgId,
|
|
58
|
+
env: opts.env,
|
|
59
|
+
groups: opts.groups
|
|
60
|
+
});
|
|
61
|
+
return trackAiMessage({
|
|
62
|
+
...opts,
|
|
63
|
+
amplitude: this._amplitude,
|
|
64
|
+
userId: merged.userId ?? opts.userId,
|
|
65
|
+
sessionId: merged.sessionId ?? opts.sessionId,
|
|
66
|
+
traceId: merged.traceId ?? opts.traceId,
|
|
67
|
+
turnId: merged.turnId ?? opts.turnId,
|
|
68
|
+
agentId: merged.agentId ?? opts.agentId,
|
|
69
|
+
parentAgentId: merged.parentAgentId ?? opts.parentAgentId,
|
|
70
|
+
customerOrgId: merged.customerOrgId ?? opts.customerOrgId,
|
|
71
|
+
env: merged.env ?? opts.env,
|
|
72
|
+
groups: merged.groups ?? opts.groups,
|
|
73
|
+
privacyConfig: this._privacyConfig
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
trackFn() {
|
|
77
|
+
return (opts) => this._track(opts);
|
|
78
|
+
}
|
|
79
|
+
createStreamingTracker() {
|
|
80
|
+
return new SimpleStreamingTracker(this);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var SimpleStreamingTracker = class {
|
|
84
|
+
_trackFn;
|
|
85
|
+
accumulator;
|
|
86
|
+
_modelName = "unknown";
|
|
87
|
+
_providerName;
|
|
88
|
+
constructor(provider) {
|
|
89
|
+
this._trackFn = provider.trackFn();
|
|
90
|
+
this._providerName = provider._providerName;
|
|
91
|
+
this.accumulator = new StreamingAccumulator();
|
|
92
|
+
}
|
|
93
|
+
setModel(model) {
|
|
94
|
+
this._modelName = model;
|
|
95
|
+
this.accumulator.model = model;
|
|
96
|
+
}
|
|
97
|
+
addContent(chunk) {
|
|
98
|
+
this.accumulator.addContent(chunk);
|
|
99
|
+
}
|
|
100
|
+
setUsage(usage) {
|
|
101
|
+
this.accumulator.setUsage(usage);
|
|
102
|
+
}
|
|
103
|
+
setFinishReason(reason) {
|
|
104
|
+
this.accumulator.finishReason = reason;
|
|
105
|
+
}
|
|
106
|
+
addToolCall(toolCall) {
|
|
107
|
+
this.accumulator.addToolCall(toolCall);
|
|
108
|
+
}
|
|
109
|
+
finalize(overrides = {}) {
|
|
110
|
+
const state = this.accumulator.getState();
|
|
111
|
+
return this._trackFn({
|
|
112
|
+
userId: overrides.userId ?? "unknown",
|
|
113
|
+
modelName: this._modelName,
|
|
114
|
+
provider: this._providerName,
|
|
115
|
+
responseContent: state.content,
|
|
116
|
+
latencyMs: this.accumulator.elapsedMs,
|
|
117
|
+
inputTokens: state.inputTokens,
|
|
118
|
+
outputTokens: state.outputTokens,
|
|
119
|
+
totalTokens: state.totalTokens,
|
|
120
|
+
reasoningTokens: state.reasoningTokens,
|
|
121
|
+
cacheReadInputTokens: state.cacheReadTokens,
|
|
122
|
+
cacheCreationInputTokens: state.cacheCreationTokens,
|
|
123
|
+
finishReason: state.finishReason,
|
|
124
|
+
toolCalls: state.toolCalls.length > 0 ? state.toolCalls : null,
|
|
125
|
+
providerTtfbMs: state.ttfbMs,
|
|
126
|
+
isStreaming: true,
|
|
127
|
+
sessionId: overrides.sessionId,
|
|
128
|
+
traceId: overrides.traceId,
|
|
129
|
+
turnId: overrides.turnId ?? void 0,
|
|
130
|
+
agentId: overrides.agentId,
|
|
131
|
+
parentAgentId: overrides.parentAgentId,
|
|
132
|
+
customerOrgId: overrides.customerOrgId,
|
|
133
|
+
env: overrides.env,
|
|
134
|
+
groups: overrides.groups
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
export { BaseAIProvider, SimpleStreamingTracker, applySessionContext };
|
|
141
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","names":["result: Record<string, unknown>"],"sources":["../../src/providers/base.ts"],"sourcesContent":["/**\n * Base class for AI provider wrappers.\n *\n * Provides shared tracking logic and session context integration.\n */\n\nimport { getActiveContext } from '../context.js';\nimport {\n PROP_IDLE_TIMEOUT_MINUTES,\n PROP_SESSION_REPLAY_ID,\n} from '../core/constants.js';\nimport type { PrivacyConfig } from '../core/privacy.js';\nimport {\n trackAiMessage,\n type TrackAiMessageOptions,\n} from '../core/tracking.js';\nimport {\n resolveAmplitude,\n type AmplitudeLike,\n type AmplitudeOrAI,\n type TrackCallOptions,\n type TrackFn,\n} from '../types.js';\nimport { StreamingAccumulator } from '../utils/streaming.js';\n\n/**\n * Per-call context overrides for provider wrappers.\n *\n * Pass as the second argument to wrapped provider methods\n * (e.g., `openai.chat.completions.create(params, overrides)`)\n * to set Amplitude tracking context for that specific call.\n * Any fields left `null`/`undefined` are filled from the\n * active `SessionContext` via `AsyncLocalStorage`.\n */\nexport interface ProviderTrackOptions {\n userId?: string | null;\n sessionId?: string | null;\n traceId?: string | null;\n turnId?: number | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n env?: string | null;\n groups?: Record<string, unknown> | null;\n eventProperties?: Record<string, unknown> | null;\n /**\n * Controls whether provider wrappers auto-track user input payloads.\n * Set to false when you already call `trackUserMessage()` explicitly.\n */\n trackInputMessages?: boolean;\n}\n\n/**\n * Apply session context fields from AsyncLocalStorage to tracking options.\n * Returns a merged set of fields with explicit values taking precedence.\n * Also injects idle_timeout_minutes and session_replay_id from the context.\n */\nexport function applySessionContext(\n overrides: ProviderTrackOptions = {},\n): ProviderTrackOptions & { userId: string } {\n const ctx = getActiveContext();\n const result: Record<string, unknown> = { ...overrides };\n\n if (ctx != null) {\n if (!result.userId) result.userId = ctx.userId;\n if (!result.sessionId) result.sessionId = ctx.sessionId;\n if (!result.traceId) result.traceId = ctx.traceId;\n if (!result.agentId) result.agentId = ctx.agentId;\n if (!result.parentAgentId) result.parentAgentId = ctx.parentAgentId;\n if (!result.customerOrgId) result.customerOrgId = ctx.customerOrgId;\n if (!result.env) result.env = ctx.env;\n if (!result.groups) result.groups = ctx.groups;\n\n const turnId = ctx.nextTurnId();\n if (turnId != null && result.turnId == null) result.turnId = turnId;\n\n const existingEp = result.eventProperties as Record<string, unknown> | null;\n const ep = existingEp != null ? { ...existingEp } : {};\n if (ctx.idleTimeoutMinutes != null && !(PROP_IDLE_TIMEOUT_MINUTES in ep)) {\n ep[PROP_IDLE_TIMEOUT_MINUTES] = ctx.idleTimeoutMinutes;\n }\n if (\n ctx.deviceId &&\n ctx.browserSessionId &&\n !(PROP_SESSION_REPLAY_ID in ep)\n ) {\n ep[PROP_SESSION_REPLAY_ID] = `${ctx.deviceId}/${ctx.browserSessionId}`;\n }\n if (Object.keys(ep).length > 0) {\n result.eventProperties = ep;\n }\n }\n\n return result as unknown as ProviderTrackOptions & { userId: string };\n}\n\nexport abstract class BaseAIProvider {\n protected _amplitude: AmplitudeLike;\n protected _privacyConfig: PrivacyConfig | null;\n readonly _providerName: string;\n\n constructor(options: {\n amplitude: AmplitudeOrAI;\n privacyConfig?: PrivacyConfig | null;\n providerName: string;\n }) {\n this._amplitude = resolveAmplitude(options.amplitude);\n this._privacyConfig = options.privacyConfig ?? null;\n this._providerName = options.providerName;\n }\n\n protected _track(opts: Omit<TrackAiMessageOptions, 'amplitude'>): string {\n const merged = applySessionContext({\n userId: opts.userId,\n sessionId: opts.sessionId,\n traceId: opts.traceId,\n turnId: opts.turnId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n env: opts.env,\n groups: opts.groups,\n });\n\n return trackAiMessage({\n ...opts,\n amplitude: this._amplitude,\n userId: merged.userId ?? opts.userId,\n sessionId: merged.sessionId ?? opts.sessionId,\n traceId: merged.traceId ?? opts.traceId,\n turnId: merged.turnId ?? opts.turnId,\n agentId: merged.agentId ?? opts.agentId,\n parentAgentId: merged.parentAgentId ?? opts.parentAgentId,\n customerOrgId: merged.customerOrgId ?? opts.customerOrgId,\n env: merged.env ?? opts.env,\n groups: merged.groups ?? opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n trackFn(): TrackFn {\n return (opts: TrackCallOptions) =>\n this._track(opts as Omit<TrackAiMessageOptions, 'amplitude'>);\n }\n\n createStreamingTracker(): SimpleStreamingTracker {\n return new SimpleStreamingTracker(this);\n }\n}\n\nexport class SimpleStreamingTracker {\n private _trackFn: TrackFn;\n readonly accumulator: StreamingAccumulator;\n private _modelName = 'unknown';\n private _providerName: string;\n\n constructor(provider: BaseAIProvider) {\n this._trackFn = provider.trackFn();\n this._providerName = provider._providerName;\n this.accumulator = new StreamingAccumulator();\n }\n\n setModel(model: string): void {\n this._modelName = model;\n this.accumulator.model = model;\n }\n\n addContent(chunk: string): void {\n this.accumulator.addContent(chunk);\n }\n\n setUsage(usage: Parameters<StreamingAccumulator['setUsage']>[0]): void {\n this.accumulator.setUsage(usage);\n }\n\n setFinishReason(reason: string): void {\n this.accumulator.finishReason = reason;\n }\n\n addToolCall(toolCall: Record<string, unknown>): void {\n this.accumulator.addToolCall(toolCall);\n }\n\n finalize(overrides: ProviderTrackOptions = {}): string {\n const state = this.accumulator.getState();\n\n return this._trackFn({\n userId: overrides.userId ?? 'unknown',\n modelName: this._modelName,\n provider: this._providerName,\n responseContent: state.content,\n latencyMs: this.accumulator.elapsedMs,\n inputTokens: state.inputTokens,\n outputTokens: state.outputTokens,\n totalTokens: state.totalTokens,\n reasoningTokens: state.reasoningTokens,\n cacheReadInputTokens: state.cacheReadTokens,\n cacheCreationInputTokens: state.cacheCreationTokens,\n finishReason: state.finishReason,\n toolCalls: state.toolCalls.length > 0 ? state.toolCalls : null,\n providerTtfbMs: state.ttfbMs,\n isStreaming: true,\n sessionId: overrides.sessionId,\n traceId: overrides.traceId,\n turnId: overrides.turnId ?? undefined,\n agentId: overrides.agentId,\n parentAgentId: overrides.parentAgentId,\n customerOrgId: overrides.customerOrgId,\n env: overrides.env,\n groups: overrides.groups,\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PrivacyConfig } from "../core/privacy.js";
|
|
2
|
+
import { AmplitudeOrAI } from "../types.js";
|
|
3
|
+
import { BaseAIProvider } from "./base.js";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/bedrock.d.ts
|
|
6
|
+
|
|
7
|
+
declare const BEDROCK_AVAILABLE: boolean;
|
|
8
|
+
declare const _BedrockModule: Record<string, unknown> | null;
|
|
9
|
+
interface BedrockOptions {
|
|
10
|
+
amplitude: AmplitudeOrAI;
|
|
11
|
+
client: unknown;
|
|
12
|
+
privacyConfig?: PrivacyConfig | null;
|
|
13
|
+
/** Pass the `@aws-sdk/client-bedrock-runtime` module directly to bypass `tryRequire` (required in bundler environments). */
|
|
14
|
+
bedrockModule?: unknown;
|
|
15
|
+
}
|
|
16
|
+
declare class Bedrock extends BaseAIProvider {
|
|
17
|
+
private _client;
|
|
18
|
+
private _bedrockMod;
|
|
19
|
+
constructor(options: BedrockOptions);
|
|
20
|
+
converse(params: Record<string, unknown>): Promise<unknown>;
|
|
21
|
+
converseStream(params: Record<string, unknown>): Promise<unknown>;
|
|
22
|
+
get client(): unknown;
|
|
23
|
+
private _wrapConverseStream;
|
|
24
|
+
}
|
|
25
|
+
declare function extractBedrockResponse(response: unknown): {
|
|
26
|
+
text: string;
|
|
27
|
+
inputTokens?: number;
|
|
28
|
+
outputTokens?: number;
|
|
29
|
+
totalTokens?: number;
|
|
30
|
+
cacheReadTokens?: number;
|
|
31
|
+
cacheWriteTokens?: number;
|
|
32
|
+
stopReason?: string;
|
|
33
|
+
toolCalls: Array<Record<string, unknown>>;
|
|
34
|
+
systemPrompt?: string;
|
|
35
|
+
temperature?: number;
|
|
36
|
+
topP?: number;
|
|
37
|
+
maxOutputTokens?: number;
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { BEDROCK_AVAILABLE, Bedrock, BedrockOptions, _BedrockModule, extractBedrockResponse };
|
|
41
|
+
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","names":[],"sources":["../../src/providers/bedrock.ts"],"sourcesContent":[],"mappings":";;;;;;AA2Ba,cAbA,iBAaQ,EAAA,OAAA;cAZf,cAgBiB,EAhBD,MAgBC,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA;AAY4B,UAxBlC,cAAA,CAwBkC;EAwFpB,SAAA,EA/GlB,aA+GkB;EAA0B,MAAA,EAAA,OAAA;EAxG5B,aAAA,CAAA,EALX,aAKW,GAAA,IAAA;EAAc;EA+Q3B,aAAA,CAAA,EAAA,OAAA;;cA/QH,OAAA,SAAgB,cAAA;;;uBAIN;mBAYE,0BAA0B;yBAwFpB,0BAA0B;;;;iBAuKzC,sBAAA;;;;;;;;aAQH,MAAM"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { tryRequire } from "../utils/resolve-module.js";
|
|
2
|
+
import { calculateCost } from "../utils/costs.js";
|
|
3
|
+
import { StreamingAccumulator } from "../utils/streaming.js";
|
|
4
|
+
import { BaseAIProvider, applySessionContext } from "./base.js";
|
|
5
|
+
|
|
6
|
+
//#region src/providers/bedrock.ts
|
|
7
|
+
const _resolved = tryRequire("@aws-sdk/client-bedrock-runtime");
|
|
8
|
+
const BEDROCK_AVAILABLE = _resolved != null;
|
|
9
|
+
const _BedrockModule = _resolved;
|
|
10
|
+
var Bedrock = class extends BaseAIProvider {
|
|
11
|
+
_client;
|
|
12
|
+
_bedrockMod;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super({
|
|
15
|
+
amplitude: options.amplitude,
|
|
16
|
+
privacyConfig: options.privacyConfig,
|
|
17
|
+
providerName: "bedrock"
|
|
18
|
+
});
|
|
19
|
+
this._client = options.client;
|
|
20
|
+
this._bedrockMod = options.bedrockModule ?? _BedrockModule;
|
|
21
|
+
}
|
|
22
|
+
async converse(params) {
|
|
23
|
+
const client = this._client;
|
|
24
|
+
const modelId = String(params.modelId ?? "unknown");
|
|
25
|
+
if (this._bedrockMod == null) throw new Error("@aws-sdk/client-bedrock-runtime is required. Install it with: npm install @aws-sdk/client-bedrock-runtime — or pass the module directly via the bedrockModule option.");
|
|
26
|
+
const ConverseCommand = this._bedrockMod.ConverseCommand;
|
|
27
|
+
const command = new ConverseCommand(params);
|
|
28
|
+
const startTime = performance.now();
|
|
29
|
+
try {
|
|
30
|
+
const response = await client.send(command);
|
|
31
|
+
const latencyMs = performance.now() - startTime;
|
|
32
|
+
const extracted = extractBedrockResponse(response);
|
|
33
|
+
let costUsd = null;
|
|
34
|
+
if (extracted.inputTokens != null && extracted.outputTokens != null) try {
|
|
35
|
+
costUsd = calculateCost({
|
|
36
|
+
modelName: modelId,
|
|
37
|
+
inputTokens: extracted.inputTokens,
|
|
38
|
+
outputTokens: extracted.outputTokens,
|
|
39
|
+
cacheReadInputTokens: extracted.cacheReadTokens ?? 0,
|
|
40
|
+
cacheCreationInputTokens: extracted.cacheWriteTokens ?? 0
|
|
41
|
+
});
|
|
42
|
+
} catch {}
|
|
43
|
+
const ctx = applySessionContext();
|
|
44
|
+
this._track({
|
|
45
|
+
userId: ctx.userId ?? "unknown",
|
|
46
|
+
modelName: modelId,
|
|
47
|
+
provider: "bedrock",
|
|
48
|
+
responseContent: extracted.text,
|
|
49
|
+
latencyMs,
|
|
50
|
+
sessionId: ctx.sessionId,
|
|
51
|
+
traceId: ctx.traceId,
|
|
52
|
+
turnId: ctx.turnId ?? void 0,
|
|
53
|
+
agentId: ctx.agentId,
|
|
54
|
+
env: ctx.env,
|
|
55
|
+
inputTokens: extracted.inputTokens,
|
|
56
|
+
outputTokens: extracted.outputTokens,
|
|
57
|
+
totalTokens: extracted.totalTokens,
|
|
58
|
+
totalCostUsd: costUsd,
|
|
59
|
+
finishReason: extracted.stopReason,
|
|
60
|
+
toolCalls: extracted.toolCalls.length > 0 ? extracted.toolCalls : void 0,
|
|
61
|
+
systemPrompt: extracted.systemPrompt,
|
|
62
|
+
temperature: extracted.temperature,
|
|
63
|
+
topP: extracted.topP,
|
|
64
|
+
maxOutputTokens: extracted.maxOutputTokens,
|
|
65
|
+
isStreaming: false
|
|
66
|
+
});
|
|
67
|
+
return response;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
const latencyMs = performance.now() - startTime;
|
|
70
|
+
const ctx = applySessionContext();
|
|
71
|
+
this._track({
|
|
72
|
+
userId: ctx.userId ?? "unknown",
|
|
73
|
+
modelName: modelId,
|
|
74
|
+
provider: "bedrock",
|
|
75
|
+
responseContent: "",
|
|
76
|
+
latencyMs,
|
|
77
|
+
sessionId: ctx.sessionId,
|
|
78
|
+
traceId: ctx.traceId,
|
|
79
|
+
agentId: ctx.agentId,
|
|
80
|
+
env: ctx.env,
|
|
81
|
+
isError: true,
|
|
82
|
+
errorMessage: error instanceof Error ? error.message : String(error)
|
|
83
|
+
});
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async converseStream(params) {
|
|
88
|
+
const modelId = String(params.modelId ?? "unknown");
|
|
89
|
+
const ctx = applySessionContext();
|
|
90
|
+
const startTime = performance.now();
|
|
91
|
+
try {
|
|
92
|
+
const client = this._client;
|
|
93
|
+
if (this._bedrockMod == null) throw new Error("@aws-sdk/client-bedrock-runtime is required. Install it with: npm install @aws-sdk/client-bedrock-runtime — or pass the module directly via the bedrockModule option.");
|
|
94
|
+
const ConverseStreamCommand = this._bedrockMod.ConverseStreamCommand;
|
|
95
|
+
if (ConverseStreamCommand == null) throw new Error("Bedrock SDK does not expose ConverseStreamCommand");
|
|
96
|
+
const command = new ConverseStreamCommand(params);
|
|
97
|
+
const response = await client.send(command);
|
|
98
|
+
const stream = response.stream;
|
|
99
|
+
if (!_isAsyncIterable(stream)) throw new Error("Bedrock stream response is not AsyncIterable");
|
|
100
|
+
return {
|
|
101
|
+
...response,
|
|
102
|
+
stream: this._wrapConverseStream(modelId, params, stream)
|
|
103
|
+
};
|
|
104
|
+
} catch (error) {
|
|
105
|
+
this._track({
|
|
106
|
+
userId: ctx.userId ?? "unknown",
|
|
107
|
+
modelName: modelId,
|
|
108
|
+
provider: "bedrock",
|
|
109
|
+
responseContent: "",
|
|
110
|
+
latencyMs: performance.now() - startTime,
|
|
111
|
+
sessionId: ctx.sessionId,
|
|
112
|
+
traceId: ctx.traceId,
|
|
113
|
+
agentId: ctx.agentId,
|
|
114
|
+
env: ctx.env,
|
|
115
|
+
isError: true,
|
|
116
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
117
|
+
isStreaming: true
|
|
118
|
+
});
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
get client() {
|
|
123
|
+
return this._client;
|
|
124
|
+
}
|
|
125
|
+
async *_wrapConverseStream(modelId, params, stream) {
|
|
126
|
+
const accumulator = new StreamingAccumulator();
|
|
127
|
+
accumulator.model = modelId;
|
|
128
|
+
const ctx = applySessionContext();
|
|
129
|
+
try {
|
|
130
|
+
for await (const rawEvent of stream) {
|
|
131
|
+
const event = rawEvent;
|
|
132
|
+
const delta = event.contentBlockDelta?.delta;
|
|
133
|
+
if (delta?.text != null) accumulator.addContent(String(delta.text));
|
|
134
|
+
const start = event.contentBlockStart?.start;
|
|
135
|
+
if (start?.toolUse != null) accumulator.addToolCall(start.toolUse);
|
|
136
|
+
const messageStart = event.messageStart;
|
|
137
|
+
if (messageStart?.model != null) accumulator.model = String(messageStart.model);
|
|
138
|
+
const messageStop = event.messageStop;
|
|
139
|
+
if (messageStop?.stopReason != null) accumulator.finishReason = String(messageStop.stopReason);
|
|
140
|
+
const usage = event.metadata?.usage;
|
|
141
|
+
accumulator.setUsage({
|
|
142
|
+
inputTokens: usage?.inputTokens,
|
|
143
|
+
outputTokens: usage?.outputTokens,
|
|
144
|
+
totalTokens: usage?.totalTokens
|
|
145
|
+
});
|
|
146
|
+
yield rawEvent;
|
|
147
|
+
}
|
|
148
|
+
} catch (error) {
|
|
149
|
+
accumulator.setError(error instanceof Error ? error.message : String(error));
|
|
150
|
+
throw error;
|
|
151
|
+
} finally {
|
|
152
|
+
const state = accumulator.getState();
|
|
153
|
+
const modelName = String(accumulator.model ?? modelId);
|
|
154
|
+
let costUsd = null;
|
|
155
|
+
if (state.inputTokens != null && state.outputTokens != null) try {
|
|
156
|
+
costUsd = calculateCost({
|
|
157
|
+
modelName,
|
|
158
|
+
inputTokens: state.inputTokens,
|
|
159
|
+
outputTokens: state.outputTokens
|
|
160
|
+
});
|
|
161
|
+
} catch {}
|
|
162
|
+
this._track({
|
|
163
|
+
userId: ctx.userId ?? "unknown",
|
|
164
|
+
modelName,
|
|
165
|
+
provider: "bedrock",
|
|
166
|
+
responseContent: state.content,
|
|
167
|
+
latencyMs: accumulator.elapsedMs,
|
|
168
|
+
sessionId: ctx.sessionId,
|
|
169
|
+
traceId: ctx.traceId,
|
|
170
|
+
turnId: ctx.turnId ?? void 0,
|
|
171
|
+
agentId: ctx.agentId,
|
|
172
|
+
env: ctx.env,
|
|
173
|
+
inputTokens: state.inputTokens,
|
|
174
|
+
outputTokens: state.outputTokens,
|
|
175
|
+
totalTokens: state.totalTokens,
|
|
176
|
+
totalCostUsd: costUsd,
|
|
177
|
+
finishReason: state.finishReason,
|
|
178
|
+
toolCalls: state.toolCalls.length > 0 ? state.toolCalls : void 0,
|
|
179
|
+
systemPrompt: extractSystemPromptFromParams(params),
|
|
180
|
+
temperature: params.inferenceConfig?.temperature,
|
|
181
|
+
topP: params.inferenceConfig?.topP,
|
|
182
|
+
maxOutputTokens: params.inferenceConfig?.maxTokens,
|
|
183
|
+
providerTtfbMs: state.ttfbMs,
|
|
184
|
+
isStreaming: true,
|
|
185
|
+
isError: state.isError,
|
|
186
|
+
errorMessage: state.errorMessage
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
function extractBedrockResponse(response) {
|
|
192
|
+
const resp = response;
|
|
193
|
+
const content = resp.output?.message?.content;
|
|
194
|
+
const textBlock = content?.find((b) => b.text != null);
|
|
195
|
+
const toolCalls = content?.filter((b) => b.toolUse != null).map((b) => b.toolUse);
|
|
196
|
+
const usage = resp.usage;
|
|
197
|
+
const respAny = resp;
|
|
198
|
+
const metrics = respAny.metrics;
|
|
199
|
+
const additionalModelResponseFields = respAny.additionalModelResponseFields;
|
|
200
|
+
const inferenceConfig = respAny.inferenceConfig;
|
|
201
|
+
const system = respAny.system;
|
|
202
|
+
const systemPrompt = Array.isArray(system) && system.length > 0 ? system.map((s) => String(s.text ?? "")).join("") : void 0;
|
|
203
|
+
return {
|
|
204
|
+
text: String(textBlock?.text ?? ""),
|
|
205
|
+
inputTokens: usage?.inputTokens,
|
|
206
|
+
outputTokens: usage?.outputTokens,
|
|
207
|
+
totalTokens: usage?.totalTokens,
|
|
208
|
+
cacheReadTokens: usage?.cacheReadInputTokens,
|
|
209
|
+
cacheWriteTokens: usage?.cacheWriteInputTokens,
|
|
210
|
+
stopReason: resp.stopReason,
|
|
211
|
+
toolCalls: toolCalls ?? [],
|
|
212
|
+
systemPrompt,
|
|
213
|
+
temperature: inferenceConfig?.temperature ?? additionalModelResponseFields?.temperature,
|
|
214
|
+
topP: inferenceConfig?.topP ?? additionalModelResponseFields?.topP,
|
|
215
|
+
maxOutputTokens: inferenceConfig?.maxTokens ?? metrics?.maxOutputTokens
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function extractSystemPromptFromParams(params) {
|
|
219
|
+
const system = params.system;
|
|
220
|
+
if (!Array.isArray(system) || system.length === 0) return void 0;
|
|
221
|
+
return system.map((s) => String(s.text ?? "")).join("");
|
|
222
|
+
}
|
|
223
|
+
function _isAsyncIterable(value) {
|
|
224
|
+
return value != null && typeof value[Symbol.asyncIterator] === "function";
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
//#endregion
|
|
228
|
+
export { BEDROCK_AVAILABLE, Bedrock, _BedrockModule, extractBedrockResponse };
|
|
229
|
+
//# sourceMappingURL=bedrock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.js","names":["_BedrockModule: Record<string, unknown> | null","costUsd: number | null"],"sources":["../../src/providers/bedrock.ts"],"sourcesContent":["/**\n * AWS Bedrock provider wrapper with automatic tracking.\n *\n * Wraps the AWS SDK BedrockRuntimeClient's converse command.\n */\n\nimport type { PrivacyConfig } from '../core/privacy.js';\nimport type { AmplitudeOrAI, BedrockConverseResponse } from '../types.js';\nimport { calculateCost } from '../utils/costs.js';\nimport { tryRequire } from '../utils/resolve-module.js';\nimport { StreamingAccumulator } from '../utils/streaming.js';\nimport { applySessionContext, BaseAIProvider } from './base.js';\n\nconst _resolved = tryRequire('@aws-sdk/client-bedrock-runtime');\nexport const BEDROCK_AVAILABLE = _resolved != null;\nconst _BedrockModule: Record<string, unknown> | null = _resolved;\n\nexport { _BedrockModule };\n\nexport interface BedrockOptions {\n amplitude: AmplitudeOrAI;\n client: unknown;\n privacyConfig?: PrivacyConfig | null;\n /** Pass the `@aws-sdk/client-bedrock-runtime` module directly to bypass `tryRequire` (required in bundler environments). */\n bedrockModule?: unknown;\n}\n\nexport class Bedrock extends BaseAIProvider {\n private _client: unknown;\n private _bedrockMod: Record<string, unknown> | null;\n\n constructor(options: BedrockOptions) {\n super({\n amplitude: options.amplitude,\n privacyConfig: options.privacyConfig,\n providerName: 'bedrock',\n });\n this._client = options.client;\n this._bedrockMod =\n (options.bedrockModule as Record<string, unknown> | null) ??\n _BedrockModule;\n }\n\n async converse(params: Record<string, unknown>): Promise<unknown> {\n const client = this._client as {\n send: (command: unknown) => Promise<unknown>;\n };\n const modelId = String(params.modelId ?? 'unknown');\n\n if (this._bedrockMod == null) {\n throw new Error(\n '@aws-sdk/client-bedrock-runtime is required. Install it with: npm install @aws-sdk/client-bedrock-runtime — or pass the module directly via the bedrockModule option.',\n );\n }\n\n const ConverseCommand = this._bedrockMod.ConverseCommand as new (\n opts: Record<string, unknown>,\n ) => unknown;\n\n const command = new ConverseCommand(params);\n const startTime = performance.now();\n\n try {\n const response = await client.send(command);\n const latencyMs = performance.now() - startTime;\n\n const extracted = extractBedrockResponse(response);\n let costUsd: number | null = null;\n if (extracted.inputTokens != null && extracted.outputTokens != null) {\n try {\n costUsd = calculateCost({\n modelName: modelId,\n inputTokens: extracted.inputTokens,\n outputTokens: extracted.outputTokens,\n cacheReadInputTokens: extracted.cacheReadTokens ?? 0,\n cacheCreationInputTokens: extracted.cacheWriteTokens ?? 0,\n });\n } catch {\n // cost calculation is best-effort\n }\n }\n\n const ctx = applySessionContext();\n this._track({\n userId: ctx.userId ?? 'unknown',\n modelName: modelId,\n provider: 'bedrock',\n responseContent: extracted.text,\n latencyMs,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n turnId: ctx.turnId ?? undefined,\n agentId: ctx.agentId,\n env: ctx.env,\n inputTokens: extracted.inputTokens,\n outputTokens: extracted.outputTokens,\n totalTokens: extracted.totalTokens,\n totalCostUsd: costUsd,\n finishReason: extracted.stopReason,\n toolCalls:\n extracted.toolCalls.length > 0 ? extracted.toolCalls : undefined,\n systemPrompt: extracted.systemPrompt,\n temperature: extracted.temperature,\n topP: extracted.topP,\n maxOutputTokens: extracted.maxOutputTokens,\n isStreaming: false,\n });\n\n return response;\n } catch (error) {\n const latencyMs = performance.now() - startTime;\n const ctx = applySessionContext();\n\n this._track({\n userId: ctx.userId ?? 'unknown',\n modelName: modelId,\n provider: 'bedrock',\n responseContent: '',\n latencyMs,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n isError: true,\n errorMessage: error instanceof Error ? error.message : String(error),\n });\n\n throw error;\n }\n }\n\n async converseStream(params: Record<string, unknown>): Promise<unknown> {\n const modelId = String(params.modelId ?? 'unknown');\n const ctx = applySessionContext();\n const startTime = performance.now();\n try {\n const client = this._client as {\n send: (command: unknown) => Promise<unknown>;\n };\n if (this._bedrockMod == null) {\n throw new Error(\n '@aws-sdk/client-bedrock-runtime is required. Install it with: npm install @aws-sdk/client-bedrock-runtime — or pass the module directly via the bedrockModule option.',\n );\n }\n\n const ConverseStreamCommand = this._bedrockMod.ConverseStreamCommand as\n | (new (opts: Record<string, unknown>) => unknown)\n | undefined;\n if (ConverseStreamCommand == null) {\n throw new Error('Bedrock SDK does not expose ConverseStreamCommand');\n }\n\n const command = new ConverseStreamCommand(params);\n const response = (await client.send(command)) as Record<string, unknown>;\n const stream = response.stream as AsyncIterable<unknown> | undefined;\n if (!_isAsyncIterable(stream)) {\n throw new Error('Bedrock stream response is not AsyncIterable');\n }\n\n return {\n ...response,\n stream: this._wrapConverseStream(modelId, params, stream),\n };\n } catch (error) {\n this._track({\n userId: ctx.userId ?? 'unknown',\n modelName: modelId,\n provider: 'bedrock',\n responseContent: '',\n latencyMs: performance.now() - startTime,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n isError: true,\n errorMessage: error instanceof Error ? error.message : String(error),\n isStreaming: true,\n });\n throw error;\n }\n }\n\n get client(): unknown {\n return this._client;\n }\n\n private async *_wrapConverseStream(\n modelId: string,\n params: Record<string, unknown>,\n stream: AsyncIterable<unknown>,\n ): AsyncGenerator<unknown> {\n const accumulator = new StreamingAccumulator();\n accumulator.model = modelId;\n const ctx = applySessionContext();\n\n try {\n for await (const rawEvent of stream) {\n const event = rawEvent as Record<string, unknown>;\n const contentBlockDelta = event.contentBlockDelta as\n | Record<string, unknown>\n | undefined;\n const delta = contentBlockDelta?.delta as\n | Record<string, unknown>\n | undefined;\n if (delta?.text != null) {\n accumulator.addContent(String(delta.text));\n }\n\n const contentBlockStart = event.contentBlockStart as\n | Record<string, unknown>\n | undefined;\n const start = contentBlockStart?.start as\n | Record<string, unknown>\n | undefined;\n if (start?.toolUse != null) {\n accumulator.addToolCall(start.toolUse as Record<string, unknown>);\n }\n\n const messageStart = event.messageStart as\n | Record<string, unknown>\n | undefined;\n if (messageStart?.model != null) {\n accumulator.model = String(messageStart.model);\n }\n\n const messageStop = event.messageStop as\n | Record<string, unknown>\n | undefined;\n if (messageStop?.stopReason != null) {\n accumulator.finishReason = String(messageStop.stopReason);\n }\n\n const metadata = event.metadata as Record<string, unknown> | undefined;\n const usage = metadata?.usage as Record<string, unknown> | undefined;\n accumulator.setUsage({\n inputTokens: usage?.inputTokens as number | undefined,\n outputTokens: usage?.outputTokens as number | undefined,\n totalTokens: usage?.totalTokens as number | undefined,\n });\n\n yield rawEvent;\n }\n } catch (error) {\n accumulator.setError(\n error instanceof Error ? error.message : String(error),\n );\n throw error;\n } finally {\n const state = accumulator.getState();\n const modelName = String(accumulator.model ?? modelId);\n let costUsd: number | null = null;\n if (state.inputTokens != null && state.outputTokens != null) {\n try {\n costUsd = calculateCost({\n modelName,\n inputTokens: state.inputTokens,\n outputTokens: state.outputTokens,\n });\n } catch {\n // cost calculation is best-effort\n }\n }\n\n this._track({\n userId: ctx.userId ?? 'unknown',\n modelName,\n provider: 'bedrock',\n responseContent: state.content,\n latencyMs: accumulator.elapsedMs,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n turnId: ctx.turnId ?? undefined,\n agentId: ctx.agentId,\n env: ctx.env,\n inputTokens: state.inputTokens,\n outputTokens: state.outputTokens,\n totalTokens: state.totalTokens,\n totalCostUsd: costUsd,\n finishReason: state.finishReason,\n toolCalls: state.toolCalls.length > 0 ? state.toolCalls : undefined,\n systemPrompt: extractSystemPromptFromParams(params),\n temperature: (\n params.inferenceConfig as Record<string, unknown> | undefined\n )?.temperature as number | undefined,\n topP: (params.inferenceConfig as Record<string, unknown> | undefined)\n ?.topP as number | undefined,\n maxOutputTokens: (\n params.inferenceConfig as Record<string, unknown> | undefined\n )?.maxTokens as number | undefined,\n providerTtfbMs: state.ttfbMs,\n isStreaming: true,\n isError: state.isError,\n errorMessage: state.errorMessage,\n });\n }\n }\n}\n\nexport function extractBedrockResponse(response: unknown): {\n text: string;\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n cacheReadTokens?: number;\n cacheWriteTokens?: number;\n stopReason?: string;\n toolCalls: Array<Record<string, unknown>>;\n systemPrompt?: string;\n temperature?: number;\n topP?: number;\n maxOutputTokens?: number;\n} {\n const resp = response as BedrockConverseResponse;\n const content = resp.output?.message?.content;\n const textBlock = content?.find(\n (b) => (b as Record<string, unknown>).text != null,\n ) as { text?: string } | undefined;\n const toolCalls = content\n ?.filter((b) => (b as Record<string, unknown>).toolUse != null)\n .map(\n (b) => (b as Record<string, unknown>).toolUse as Record<string, unknown>,\n );\n const usage = resp.usage;\n const respAny = resp as Record<string, unknown>;\n const metrics = respAny.metrics as Record<string, unknown> | undefined;\n const additionalModelResponseFields =\n respAny.additionalModelResponseFields as\n | Record<string, unknown>\n | undefined;\n const inferenceConfig = respAny.inferenceConfig as\n | Record<string, unknown>\n | undefined;\n const system = respAny.system as Array<Record<string, unknown>> | undefined;\n const systemPrompt =\n Array.isArray(system) && system.length > 0\n ? system\n .map((s) => String((s as Record<string, unknown>).text ?? ''))\n .join('')\n : undefined;\n\n return {\n text: String(textBlock?.text ?? ''),\n inputTokens: usage?.inputTokens,\n outputTokens: usage?.outputTokens,\n totalTokens: usage?.totalTokens,\n cacheReadTokens: (usage as Record<string, unknown> | undefined)\n ?.cacheReadInputTokens as number | undefined,\n cacheWriteTokens: (usage as Record<string, unknown> | undefined)\n ?.cacheWriteInputTokens as number | undefined,\n stopReason: resp.stopReason,\n toolCalls: toolCalls ?? [],\n systemPrompt,\n temperature:\n (inferenceConfig?.temperature as number | undefined) ??\n (additionalModelResponseFields?.temperature as number | undefined),\n topP:\n (inferenceConfig?.topP as number | undefined) ??\n (additionalModelResponseFields?.topP as number | undefined),\n maxOutputTokens:\n (inferenceConfig?.maxTokens as number | undefined) ??\n (metrics?.maxOutputTokens as number | undefined),\n };\n}\n\nfunction extractSystemPromptFromParams(\n params: Record<string, unknown>,\n): string | undefined {\n const system = params.system as Array<Record<string, unknown>> | undefined;\n if (!Array.isArray(system) || system.length === 0) return undefined;\n return system.map((s) => String(s.text ?? '')).join('');\n}\n\nfunction _isAsyncIterable(value: unknown): value is AsyncIterable<unknown> {\n return (\n value != null &&\n typeof (value as Record<symbol, unknown>)[Symbol.asyncIterator] ===\n 'function'\n );\n}\n"],"mappings":";;;;;;AAaA,MAAM,YAAY,WAAW,kCAAkC;AAC/D,MAAa,oBAAoB,aAAa;AAC9C,MAAMA,iBAAiD;AAYvD,IAAa,UAAb,cAA6B,eAAe;CAC1C,AAAQ;CACR,AAAQ;CAER,YAAY,SAAyB;AACnC,QAAM;GACJ,WAAW,QAAQ;GACnB,eAAe,QAAQ;GACvB,cAAc;GACf,CAAC;AACF,OAAK,UAAU,QAAQ;AACvB,OAAK,cACF,QAAQ,iBACT;;CAGJ,MAAM,SAAS,QAAmD;EAChE,MAAM,SAAS,KAAK;EAGpB,MAAM,UAAU,OAAO,OAAO,WAAW,UAAU;AAEnD,MAAI,KAAK,eAAe,KACtB,OAAM,IAAI,MACR,wKACD;EAGH,MAAM,kBAAkB,KAAK,YAAY;EAIzC,MAAM,UAAU,IAAI,gBAAgB,OAAO;EAC3C,MAAM,YAAY,YAAY,KAAK;AAEnC,MAAI;GACF,MAAM,WAAW,MAAM,OAAO,KAAK,QAAQ;GAC3C,MAAM,YAAY,YAAY,KAAK,GAAG;GAEtC,MAAM,YAAY,uBAAuB,SAAS;GAClD,IAAIC,UAAyB;AAC7B,OAAI,UAAU,eAAe,QAAQ,UAAU,gBAAgB,KAC7D,KAAI;AACF,cAAU,cAAc;KACtB,WAAW;KACX,aAAa,UAAU;KACvB,cAAc,UAAU;KACxB,sBAAsB,UAAU,mBAAmB;KACnD,0BAA0B,UAAU,oBAAoB;KACzD,CAAC;WACI;GAKV,MAAM,MAAM,qBAAqB;AACjC,QAAK,OAAO;IACV,QAAQ,IAAI,UAAU;IACtB,WAAW;IACX,UAAU;IACV,iBAAiB,UAAU;IAC3B;IACA,WAAW,IAAI;IACf,SAAS,IAAI;IACb,QAAQ,IAAI,UAAU;IACtB,SAAS,IAAI;IACb,KAAK,IAAI;IACT,aAAa,UAAU;IACvB,cAAc,UAAU;IACxB,aAAa,UAAU;IACvB,cAAc;IACd,cAAc,UAAU;IACxB,WACE,UAAU,UAAU,SAAS,IAAI,UAAU,YAAY;IACzD,cAAc,UAAU;IACxB,aAAa,UAAU;IACvB,MAAM,UAAU;IAChB,iBAAiB,UAAU;IAC3B,aAAa;IACd,CAAC;AAEF,UAAO;WACA,OAAO;GACd,MAAM,YAAY,YAAY,KAAK,GAAG;GACtC,MAAM,MAAM,qBAAqB;AAEjC,QAAK,OAAO;IACV,QAAQ,IAAI,UAAU;IACtB,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB;IACA,WAAW,IAAI;IACf,SAAS,IAAI;IACb,SAAS,IAAI;IACb,KAAK,IAAI;IACT,SAAS;IACT,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IACrE,CAAC;AAEF,SAAM;;;CAIV,MAAM,eAAe,QAAmD;EACtE,MAAM,UAAU,OAAO,OAAO,WAAW,UAAU;EACnD,MAAM,MAAM,qBAAqB;EACjC,MAAM,YAAY,YAAY,KAAK;AACnC,MAAI;GACF,MAAM,SAAS,KAAK;AAGpB,OAAI,KAAK,eAAe,KACtB,OAAM,IAAI,MACR,wKACD;GAGH,MAAM,wBAAwB,KAAK,YAAY;AAG/C,OAAI,yBAAyB,KAC3B,OAAM,IAAI,MAAM,oDAAoD;GAGtE,MAAM,UAAU,IAAI,sBAAsB,OAAO;GACjD,MAAM,WAAY,MAAM,OAAO,KAAK,QAAQ;GAC5C,MAAM,SAAS,SAAS;AACxB,OAAI,CAAC,iBAAiB,OAAO,CAC3B,OAAM,IAAI,MAAM,+CAA+C;AAGjE,UAAO;IACL,GAAG;IACH,QAAQ,KAAK,oBAAoB,SAAS,QAAQ,OAAO;IAC1D;WACM,OAAO;AACd,QAAK,OAAO;IACV,QAAQ,IAAI,UAAU;IACtB,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,WAAW,YAAY,KAAK,GAAG;IAC/B,WAAW,IAAI;IACf,SAAS,IAAI;IACb,SAAS,IAAI;IACb,KAAK,IAAI;IACT,SAAS;IACT,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IACpE,aAAa;IACd,CAAC;AACF,SAAM;;;CAIV,IAAI,SAAkB;AACpB,SAAO,KAAK;;CAGd,OAAe,oBACb,SACA,QACA,QACyB;EACzB,MAAM,cAAc,IAAI,sBAAsB;AAC9C,cAAY,QAAQ;EACpB,MAAM,MAAM,qBAAqB;AAEjC,MAAI;AACF,cAAW,MAAM,YAAY,QAAQ;IACnC,MAAM,QAAQ;IAId,MAAM,QAHoB,MAAM,mBAGC;AAGjC,QAAI,OAAO,QAAQ,KACjB,aAAY,WAAW,OAAO,MAAM,KAAK,CAAC;IAM5C,MAAM,QAHoB,MAAM,mBAGC;AAGjC,QAAI,OAAO,WAAW,KACpB,aAAY,YAAY,MAAM,QAAmC;IAGnE,MAAM,eAAe,MAAM;AAG3B,QAAI,cAAc,SAAS,KACzB,aAAY,QAAQ,OAAO,aAAa,MAAM;IAGhD,MAAM,cAAc,MAAM;AAG1B,QAAI,aAAa,cAAc,KAC7B,aAAY,eAAe,OAAO,YAAY,WAAW;IAI3D,MAAM,QADW,MAAM,UACC;AACxB,gBAAY,SAAS;KACnB,aAAa,OAAO;KACpB,cAAc,OAAO;KACrB,aAAa,OAAO;KACrB,CAAC;AAEF,UAAM;;WAED,OAAO;AACd,eAAY,SACV,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,CACvD;AACD,SAAM;YACE;GACR,MAAM,QAAQ,YAAY,UAAU;GACpC,MAAM,YAAY,OAAO,YAAY,SAAS,QAAQ;GACtD,IAAIA,UAAyB;AAC7B,OAAI,MAAM,eAAe,QAAQ,MAAM,gBAAgB,KACrD,KAAI;AACF,cAAU,cAAc;KACtB;KACA,aAAa,MAAM;KACnB,cAAc,MAAM;KACrB,CAAC;WACI;AAKV,QAAK,OAAO;IACV,QAAQ,IAAI,UAAU;IACtB;IACA,UAAU;IACV,iBAAiB,MAAM;IACvB,WAAW,YAAY;IACvB,WAAW,IAAI;IACf,SAAS,IAAI;IACb,QAAQ,IAAI,UAAU;IACtB,SAAS,IAAI;IACb,KAAK,IAAI;IACT,aAAa,MAAM;IACnB,cAAc,MAAM;IACpB,aAAa,MAAM;IACnB,cAAc;IACd,cAAc,MAAM;IACpB,WAAW,MAAM,UAAU,SAAS,IAAI,MAAM,YAAY;IAC1D,cAAc,8BAA8B,OAAO;IACnD,aACE,OAAO,iBACN;IACH,MAAO,OAAO,iBACV;IACJ,iBACE,OAAO,iBACN;IACH,gBAAgB,MAAM;IACtB,aAAa;IACb,SAAS,MAAM;IACf,cAAc,MAAM;IACrB,CAAC;;;;AAKR,SAAgB,uBAAuB,UAarC;CACA,MAAM,OAAO;CACb,MAAM,UAAU,KAAK,QAAQ,SAAS;CACtC,MAAM,YAAY,SAAS,MACxB,MAAO,EAA8B,QAAQ,KAC/C;CACD,MAAM,YAAY,SACd,QAAQ,MAAO,EAA8B,WAAW,KAAK,CAC9D,KACE,MAAO,EAA8B,QACvC;CACH,MAAM,QAAQ,KAAK;CACnB,MAAM,UAAU;CAChB,MAAM,UAAU,QAAQ;CACxB,MAAM,gCACJ,QAAQ;CAGV,MAAM,kBAAkB,QAAQ;CAGhC,MAAM,SAAS,QAAQ;CACvB,MAAM,eACJ,MAAM,QAAQ,OAAO,IAAI,OAAO,SAAS,IACrC,OACG,KAAK,MAAM,OAAQ,EAA8B,QAAQ,GAAG,CAAC,CAC7D,KAAK,GAAG,GACX;AAEN,QAAO;EACL,MAAM,OAAO,WAAW,QAAQ,GAAG;EACnC,aAAa,OAAO;EACpB,cAAc,OAAO;EACrB,aAAa,OAAO;EACpB,iBAAkB,OACd;EACJ,kBAAmB,OACf;EACJ,YAAY,KAAK;EACjB,WAAW,aAAa,EAAE;EAC1B;EACA,aACG,iBAAiB,eACjB,+BAA+B;EAClC,MACG,iBAAiB,QACjB,+BAA+B;EAClC,iBACG,iBAAiB,aACjB,SAAS;EACb;;AAGH,SAAS,8BACP,QACoB;CACpB,MAAM,SAAS,OAAO;AACtB,KAAI,CAAC,MAAM,QAAQ,OAAO,IAAI,OAAO,WAAW,EAAG,QAAO;AAC1D,QAAO,OAAO,KAAK,MAAM,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG;;AAGzD,SAAS,iBAAiB,OAAiD;AACzE,QACE,SAAS,QACT,OAAQ,MAAkC,OAAO,mBAC/C"}
|