@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,144 @@
|
|
|
1
|
+
import { getActiveContext } from "../context.js";
|
|
2
|
+
import { calculateCost } from "../utils/costs.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/llamaindex.ts
|
|
5
|
+
var AmplitudeLlamaIndexHandler = class {
|
|
6
|
+
_ai;
|
|
7
|
+
_userId;
|
|
8
|
+
_sessionId;
|
|
9
|
+
_agentId;
|
|
10
|
+
_env;
|
|
11
|
+
_startTimes = /* @__PURE__ */ new Map();
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this._ai = options.amplitudeAI;
|
|
14
|
+
this._userId = options.userId ?? null;
|
|
15
|
+
this._sessionId = options.sessionId ?? null;
|
|
16
|
+
this._agentId = options.agentId ?? null;
|
|
17
|
+
this._env = options.env ?? null;
|
|
18
|
+
}
|
|
19
|
+
_getContext() {
|
|
20
|
+
const ctx = getActiveContext();
|
|
21
|
+
return {
|
|
22
|
+
userId: this._userId ?? ctx?.userId ?? "unknown",
|
|
23
|
+
sessionId: this._sessionId ?? ctx?.sessionId ?? void 0,
|
|
24
|
+
agentId: this._agentId ?? ctx?.agentId ?? void 0,
|
|
25
|
+
env: this._env ?? ctx?.env ?? void 0,
|
|
26
|
+
traceId: ctx?.traceId ?? void 0
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
onLLMStart(eventId) {
|
|
30
|
+
this._startTimes.set(eventId, performance.now());
|
|
31
|
+
}
|
|
32
|
+
onLLMEnd(eventId, response) {
|
|
33
|
+
const startTime = this._startTimes.get(eventId) ?? performance.now();
|
|
34
|
+
this._startTimes.delete(eventId);
|
|
35
|
+
const latencyMs = performance.now() - startTime;
|
|
36
|
+
const ctx = this._getContext();
|
|
37
|
+
const normalized = _normalizeLlamaLlmResponse(response);
|
|
38
|
+
let costUsd;
|
|
39
|
+
if (normalized.model !== "unknown" && normalized.inputTokens != null && normalized.outputTokens != null) try {
|
|
40
|
+
const cost = calculateCost({
|
|
41
|
+
modelName: normalized.model,
|
|
42
|
+
inputTokens: normalized.inputTokens,
|
|
43
|
+
outputTokens: normalized.outputTokens
|
|
44
|
+
});
|
|
45
|
+
if (cost > 0) costUsd = cost;
|
|
46
|
+
} catch {}
|
|
47
|
+
this._ai.trackAiMessage({
|
|
48
|
+
userId: ctx.userId,
|
|
49
|
+
content: normalized.content,
|
|
50
|
+
sessionId: ctx.sessionId ?? "llamaindex-session",
|
|
51
|
+
model: normalized.model,
|
|
52
|
+
provider: "llamaindex",
|
|
53
|
+
latencyMs,
|
|
54
|
+
traceId: ctx.traceId,
|
|
55
|
+
agentId: ctx.agentId,
|
|
56
|
+
env: ctx.env,
|
|
57
|
+
inputTokens: normalized.inputTokens,
|
|
58
|
+
outputTokens: normalized.outputTokens,
|
|
59
|
+
totalCostUsd: costUsd
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
onEmbeddingStart(eventId) {
|
|
63
|
+
this._startTimes.set(eventId, performance.now());
|
|
64
|
+
}
|
|
65
|
+
onEmbeddingEnd(eventId, response) {
|
|
66
|
+
const startTime = this._startTimes.get(eventId) ?? performance.now();
|
|
67
|
+
this._startTimes.delete(eventId);
|
|
68
|
+
const latencyMs = performance.now() - startTime;
|
|
69
|
+
const ctx = this._getContext();
|
|
70
|
+
const normalized = _normalizeLlamaEmbeddingResponse(response);
|
|
71
|
+
this._ai.trackEmbedding({
|
|
72
|
+
userId: ctx.userId,
|
|
73
|
+
model: normalized.model,
|
|
74
|
+
provider: "llamaindex",
|
|
75
|
+
latencyMs,
|
|
76
|
+
sessionId: ctx.sessionId,
|
|
77
|
+
traceId: ctx.traceId,
|
|
78
|
+
agentId: ctx.agentId,
|
|
79
|
+
env: ctx.env,
|
|
80
|
+
inputTokens: normalized.inputTokens,
|
|
81
|
+
dimensions: normalized.dimensions
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
onToolStart(eventId) {
|
|
85
|
+
this._startTimes.set(eventId, performance.now());
|
|
86
|
+
}
|
|
87
|
+
onToolEnd(eventId, response) {
|
|
88
|
+
const startTime = this._startTimes.get(eventId) ?? performance.now();
|
|
89
|
+
this._startTimes.delete(eventId);
|
|
90
|
+
const latencyMs = performance.now() - startTime;
|
|
91
|
+
const ctx = this._getContext();
|
|
92
|
+
const normalized = _normalizeLlamaToolResponse(response);
|
|
93
|
+
this._ai.trackToolCall({
|
|
94
|
+
userId: ctx.userId,
|
|
95
|
+
toolName: normalized.toolName,
|
|
96
|
+
latencyMs,
|
|
97
|
+
success: normalized.success,
|
|
98
|
+
sessionId: ctx.sessionId,
|
|
99
|
+
traceId: ctx.traceId,
|
|
100
|
+
agentId: ctx.agentId,
|
|
101
|
+
env: ctx.env,
|
|
102
|
+
output: normalized.output
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
function createAmplitudeLlamaIndexHandler(options) {
|
|
107
|
+
return new AmplitudeLlamaIndexHandler(options);
|
|
108
|
+
}
|
|
109
|
+
function _normalizeLlamaLlmResponse(response) {
|
|
110
|
+
const resp = response != null && typeof response === "object" ? response : {};
|
|
111
|
+
const message = resp.message;
|
|
112
|
+
const content = (typeof resp.content === "string" ? resp.content : void 0) ?? (typeof message?.content === "string" ? message.content : "") ?? "";
|
|
113
|
+
const usage = resp.usage ?? {};
|
|
114
|
+
return {
|
|
115
|
+
content,
|
|
116
|
+
model: String(resp.model ?? message?.model ?? "unknown"),
|
|
117
|
+
inputTokens: _toNumber(resp.inputTokens ?? usage.input_tokens ?? usage.prompt_tokens),
|
|
118
|
+
outputTokens: _toNumber(resp.outputTokens ?? usage.output_tokens ?? usage.completion_tokens)
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function _normalizeLlamaEmbeddingResponse(response) {
|
|
122
|
+
const resp = response != null && typeof response === "object" ? response : {};
|
|
123
|
+
const usage = resp.usage ?? {};
|
|
124
|
+
return {
|
|
125
|
+
model: String(resp.model ?? "unknown"),
|
|
126
|
+
inputTokens: _toNumber(resp.inputTokens ?? usage.input_tokens),
|
|
127
|
+
dimensions: _toNumber(resp.dimensions ?? resp.vectorSize ?? resp.embedding_dimensions)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function _normalizeLlamaToolResponse(response) {
|
|
131
|
+
const resp = response != null && typeof response === "object" ? response : {};
|
|
132
|
+
return {
|
|
133
|
+
toolName: String(resp.toolName ?? resp.name ?? "llamaindex-tool"),
|
|
134
|
+
success: Boolean(resp.success ?? resp.error == null),
|
|
135
|
+
output: resp.output ?? resp.result
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function _toNumber(value) {
|
|
139
|
+
return typeof value === "number" ? value : void 0;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//#endregion
|
|
143
|
+
export { AmplitudeLlamaIndexHandler, createAmplitudeLlamaIndexHandler };
|
|
144
|
+
//# sourceMappingURL=llamaindex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llamaindex.js","names":["costUsd: number | undefined"],"sources":["../../src/integrations/llamaindex.ts"],"sourcesContent":["/**\n * LlamaIndex integration — AmplitudeLlamaIndexHandler.\n *\n * Tracks LLM calls, function calls, and embedding events\n * from LlamaIndex via its callback handler system.\n */\n\nimport type { AmplitudeAI } from '../client.js';\nimport { getActiveContext } from '../context.js';\nimport { calculateCost } from '../utils/costs.js';\n\nexport interface LlamaIndexHandlerOptions {\n amplitudeAI: AmplitudeAI;\n userId?: string;\n sessionId?: string;\n agentId?: string;\n env?: string;\n}\n\nexport class AmplitudeLlamaIndexHandler {\n private _ai: AmplitudeAI;\n private _userId: string | null;\n private _sessionId: string | null;\n private _agentId: string | null;\n private _env: string | null;\n private _startTimes: Map<string, number> = new Map();\n\n constructor(options: LlamaIndexHandlerOptions) {\n this._ai = options.amplitudeAI;\n this._userId = options.userId ?? null;\n this._sessionId = options.sessionId ?? null;\n this._agentId = options.agentId ?? null;\n this._env = options.env ?? null;\n }\n\n private _getContext() {\n const ctx = getActiveContext();\n return {\n userId: this._userId ?? ctx?.userId ?? 'unknown',\n sessionId: this._sessionId ?? ctx?.sessionId ?? undefined,\n agentId: this._agentId ?? ctx?.agentId ?? undefined,\n env: this._env ?? ctx?.env ?? undefined,\n traceId: ctx?.traceId ?? undefined,\n };\n }\n\n onLLMStart(eventId: string): void {\n this._startTimes.set(eventId, performance.now());\n }\n\n onLLMEnd(\n eventId: string,\n response: {\n content?: string;\n model?: string;\n inputTokens?: number;\n outputTokens?: number;\n },\n ): void {\n const startTime = this._startTimes.get(eventId) ?? performance.now();\n this._startTimes.delete(eventId);\n const latencyMs = performance.now() - startTime;\n\n const ctx = this._getContext();\n const normalized = _normalizeLlamaLlmResponse(response as unknown);\n\n let costUsd: number | undefined;\n if (\n normalized.model !== 'unknown' &&\n normalized.inputTokens != null &&\n normalized.outputTokens != null\n ) {\n try {\n const cost = calculateCost({\n modelName: normalized.model,\n inputTokens: normalized.inputTokens,\n outputTokens: normalized.outputTokens,\n });\n if (cost > 0) costUsd = cost;\n } catch {\n // cost calculation is best-effort\n }\n }\n\n this._ai.trackAiMessage({\n userId: ctx.userId,\n content: normalized.content,\n sessionId: ctx.sessionId ?? 'llamaindex-session',\n model: normalized.model,\n provider: 'llamaindex',\n latencyMs,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n inputTokens: normalized.inputTokens,\n outputTokens: normalized.outputTokens,\n totalCostUsd: costUsd,\n });\n }\n\n onEmbeddingStart(eventId: string): void {\n this._startTimes.set(eventId, performance.now());\n }\n\n onEmbeddingEnd(\n eventId: string,\n response: { model?: string; inputTokens?: number; dimensions?: number },\n ): void {\n const startTime = this._startTimes.get(eventId) ?? performance.now();\n this._startTimes.delete(eventId);\n const latencyMs = performance.now() - startTime;\n\n const ctx = this._getContext();\n const normalized = _normalizeLlamaEmbeddingResponse(response as unknown);\n this._ai.trackEmbedding({\n userId: ctx.userId,\n model: normalized.model,\n provider: 'llamaindex',\n latencyMs,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n inputTokens: normalized.inputTokens,\n dimensions: normalized.dimensions,\n });\n }\n\n onToolStart(eventId: string): void {\n this._startTimes.set(eventId, performance.now());\n }\n\n onToolEnd(\n eventId: string,\n response: { toolName?: string; output?: unknown; success?: boolean },\n ): void {\n const startTime = this._startTimes.get(eventId) ?? performance.now();\n this._startTimes.delete(eventId);\n const latencyMs = performance.now() - startTime;\n\n const ctx = this._getContext();\n const normalized = _normalizeLlamaToolResponse(response as unknown);\n this._ai.trackToolCall({\n userId: ctx.userId,\n toolName: normalized.toolName,\n latencyMs,\n success: normalized.success,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n output: normalized.output,\n });\n }\n}\n\nexport function createAmplitudeLlamaIndexHandler(\n options: LlamaIndexHandlerOptions,\n): AmplitudeLlamaIndexHandler {\n return new AmplitudeLlamaIndexHandler(options);\n}\n\nfunction _normalizeLlamaLlmResponse(response: unknown): {\n content: string;\n model: string;\n inputTokens?: number;\n outputTokens?: number;\n} {\n const resp =\n response != null && typeof response === 'object'\n ? (response as Record<string, unknown>)\n : {};\n const message = resp.message as Record<string, unknown> | undefined;\n const content =\n (typeof resp.content === 'string' ? resp.content : undefined) ??\n (typeof message?.content === 'string' ? (message.content as string) : '') ??\n '';\n const usage = (resp.usage as Record<string, unknown> | undefined) ?? {};\n return {\n content,\n model: String(resp.model ?? message?.model ?? 'unknown'),\n inputTokens: _toNumber(\n resp.inputTokens ?? usage.input_tokens ?? usage.prompt_tokens,\n ),\n outputTokens: _toNumber(\n resp.outputTokens ?? usage.output_tokens ?? usage.completion_tokens,\n ),\n };\n}\n\nfunction _normalizeLlamaEmbeddingResponse(response: unknown): {\n model: string;\n inputTokens?: number;\n dimensions?: number;\n} {\n const resp =\n response != null && typeof response === 'object'\n ? (response as Record<string, unknown>)\n : {};\n const usage = (resp.usage as Record<string, unknown> | undefined) ?? {};\n return {\n model: String(resp.model ?? 'unknown'),\n inputTokens: _toNumber(resp.inputTokens ?? usage.input_tokens),\n dimensions: _toNumber(\n resp.dimensions ?? resp.vectorSize ?? resp.embedding_dimensions,\n ),\n };\n}\n\nfunction _normalizeLlamaToolResponse(response: unknown): {\n toolName: string;\n success: boolean;\n output?: unknown;\n} {\n const resp =\n response != null && typeof response === 'object'\n ? (response as Record<string, unknown>)\n : {};\n return {\n toolName: String(resp.toolName ?? resp.name ?? 'llamaindex-tool'),\n success: Boolean(resp.success ?? resp.error == null),\n output: resp.output ?? resp.result,\n };\n}\n\nfunction _toNumber(value: unknown): number | undefined {\n return typeof value === 'number' ? value : undefined;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AmplitudeAI } from "../client.js";
|
|
2
|
+
|
|
3
|
+
//#region src/integrations/openai-agents.d.ts
|
|
4
|
+
interface TracingProcessorOptions {
|
|
5
|
+
amplitudeAI: AmplitudeAI;
|
|
6
|
+
userId?: string;
|
|
7
|
+
sessionId?: string;
|
|
8
|
+
traceId?: string;
|
|
9
|
+
agentId?: string;
|
|
10
|
+
env?: string;
|
|
11
|
+
}
|
|
12
|
+
declare class AmplitudeTracingProcessor {
|
|
13
|
+
private _ai;
|
|
14
|
+
private _defaults;
|
|
15
|
+
private _turnId;
|
|
16
|
+
constructor(options: TracingProcessorOptions);
|
|
17
|
+
onSpanStart(_span: Record<string, unknown>): void;
|
|
18
|
+
onTraceStart(_trace: Record<string, unknown>): void;
|
|
19
|
+
onTraceEnd(_trace: Record<string, unknown>): void;
|
|
20
|
+
onSpanEnd(span: Record<string, unknown>): void;
|
|
21
|
+
shutdown(): void;
|
|
22
|
+
private _handleGeneration;
|
|
23
|
+
private _handleFunction;
|
|
24
|
+
private _inferKind;
|
|
25
|
+
private _getSpanData;
|
|
26
|
+
private _getTraceId;
|
|
27
|
+
private _getLatencyMs;
|
|
28
|
+
private _safeNumber;
|
|
29
|
+
private _normalizeMessagesArray;
|
|
30
|
+
private _extractAssistantText;
|
|
31
|
+
private _extractToolCalls;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { AmplitudeTracingProcessor, TracingProcessorOptions };
|
|
35
|
+
//# sourceMappingURL=openai-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents.d.ts","names":[],"sources":["../../src/integrations/openai-agents.ts"],"sourcesContent":[],"mappings":";;;UAKiB,uBAAA;eACF;EADE,MAAA,CAAA,EAAA,MAAA;EASJ,SAAA,CAAA,EAAA,MAAA;EAWU,OAAA,CAAA,EAAA,MAAA;EAYF,OAAA,CAAA,EAAA,MAAA;EAIE,GAAA,CAAA,EAAA,MAAA;;AAQL,cAnCL,yBAAA,CAmCK;EAAM,QAAA,GAAA;;;uBAxBD;qBAYF;uBAIE;qBAIF;kBAIH"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { getActiveContext } from "../context.js";
|
|
2
|
+
import { calculateCost, inferProvider } from "../utils/costs.js";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
|
|
5
|
+
//#region src/integrations/openai-agents.ts
|
|
6
|
+
var AmplitudeTracingProcessor = class {
|
|
7
|
+
_ai;
|
|
8
|
+
_defaults;
|
|
9
|
+
_turnId = 1;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
const ctx = getActiveContext();
|
|
12
|
+
this._ai = options.amplitudeAI;
|
|
13
|
+
this._defaults = {
|
|
14
|
+
userId: options.userId ?? ctx?.userId ?? "openai-agents-user",
|
|
15
|
+
sessionId: options.sessionId ?? ctx?.sessionId ?? randomUUID(),
|
|
16
|
+
traceId: options.traceId ?? ctx?.traceId ?? randomUUID(),
|
|
17
|
+
agentId: options.agentId ?? ctx?.agentId ?? null,
|
|
18
|
+
env: options.env ?? ctx?.env ?? null
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
onSpanStart(_span) {}
|
|
22
|
+
onTraceStart(_trace) {}
|
|
23
|
+
onTraceEnd(_trace) {}
|
|
24
|
+
onSpanEnd(span) {
|
|
25
|
+
const spanData = this._getSpanData(span);
|
|
26
|
+
if (spanData == null) return;
|
|
27
|
+
const traceId = this._getTraceId(span);
|
|
28
|
+
const latencyMs = this._getLatencyMs(span);
|
|
29
|
+
const kind = this._inferKind(spanData);
|
|
30
|
+
if (kind === "generation") {
|
|
31
|
+
this._handleGeneration(spanData, traceId, latencyMs);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (kind === "function") {
|
|
35
|
+
this._handleFunction(spanData, traceId, latencyMs);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (kind === "handoff") {
|
|
39
|
+
const fromAgent = String(spanData.from_agent ?? "unknown");
|
|
40
|
+
const toAgent = String(spanData.to_agent ?? "unknown");
|
|
41
|
+
this._ai.trackSpan({
|
|
42
|
+
userId: this._defaults.userId,
|
|
43
|
+
spanName: `handoff:${fromAgent}->${toAgent}`,
|
|
44
|
+
traceId,
|
|
45
|
+
latencyMs,
|
|
46
|
+
sessionId: this._defaults.sessionId,
|
|
47
|
+
agentId: this._defaults.agentId,
|
|
48
|
+
env: this._defaults.env,
|
|
49
|
+
inputState: { from_agent: fromAgent },
|
|
50
|
+
outputState: { to_agent: toAgent }
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (kind === "guardrail") {
|
|
55
|
+
const guardrail = String(spanData.name ?? "guardrail");
|
|
56
|
+
const triggered = Boolean(spanData.triggered);
|
|
57
|
+
this._ai.trackSpan({
|
|
58
|
+
userId: this._defaults.userId,
|
|
59
|
+
spanName: `guardrail:${guardrail}`,
|
|
60
|
+
traceId,
|
|
61
|
+
latencyMs,
|
|
62
|
+
sessionId: this._defaults.sessionId,
|
|
63
|
+
agentId: this._defaults.agentId,
|
|
64
|
+
env: this._defaults.env,
|
|
65
|
+
outputState: { triggered },
|
|
66
|
+
isError: triggered
|
|
67
|
+
});
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const name = String(spanData.name ?? "agent");
|
|
71
|
+
this._ai.trackSpan({
|
|
72
|
+
userId: this._defaults.userId,
|
|
73
|
+
spanName: `agent:${name}`,
|
|
74
|
+
traceId,
|
|
75
|
+
latencyMs,
|
|
76
|
+
sessionId: this._defaults.sessionId,
|
|
77
|
+
agentId: this._defaults.agentId ?? name,
|
|
78
|
+
env: this._defaults.env,
|
|
79
|
+
outputState: spanData.output != null ? { output: String(spanData.output) } : void 0
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
shutdown() {
|
|
83
|
+
this._ai.flush();
|
|
84
|
+
}
|
|
85
|
+
_handleGeneration(data, traceId, latencyMs) {
|
|
86
|
+
const input = this._normalizeMessagesArray(data.input);
|
|
87
|
+
for (const message of input) {
|
|
88
|
+
const role = message?.role;
|
|
89
|
+
const content = message?.content;
|
|
90
|
+
if (role !== "user" || typeof content !== "string" || content.length === 0) continue;
|
|
91
|
+
this._ai.trackUserMessage({
|
|
92
|
+
userId: this._defaults.userId,
|
|
93
|
+
content,
|
|
94
|
+
sessionId: this._defaults.sessionId,
|
|
95
|
+
traceId,
|
|
96
|
+
turnId: this._turnId,
|
|
97
|
+
agentId: this._defaults.agentId,
|
|
98
|
+
env: this._defaults.env
|
|
99
|
+
});
|
|
100
|
+
this._turnId += 1;
|
|
101
|
+
}
|
|
102
|
+
const output = this._normalizeMessagesArray(data.output);
|
|
103
|
+
const responseText = this._extractAssistantText(output);
|
|
104
|
+
const toolCalls = this._extractToolCalls(output);
|
|
105
|
+
const model = String(data.model ?? "unknown");
|
|
106
|
+
const usage = data.usage ?? {};
|
|
107
|
+
const inputTokens = this._safeNumber(usage.input_tokens ?? usage.prompt_tokens ?? null);
|
|
108
|
+
const outputTokens = this._safeNumber(usage.output_tokens ?? usage.completion_tokens ?? null);
|
|
109
|
+
const totalTokens = this._safeNumber(usage.total_tokens ?? null);
|
|
110
|
+
let costUsd;
|
|
111
|
+
if (model !== "unknown" && inputTokens != null && outputTokens != null) try {
|
|
112
|
+
const cost = calculateCost({
|
|
113
|
+
modelName: model,
|
|
114
|
+
inputTokens,
|
|
115
|
+
outputTokens
|
|
116
|
+
});
|
|
117
|
+
if (cost > 0) costUsd = cost;
|
|
118
|
+
} catch {}
|
|
119
|
+
this._ai.trackAiMessage({
|
|
120
|
+
userId: this._defaults.userId,
|
|
121
|
+
content: responseText,
|
|
122
|
+
sessionId: this._defaults.sessionId,
|
|
123
|
+
traceId,
|
|
124
|
+
turnId: this._turnId,
|
|
125
|
+
model,
|
|
126
|
+
provider: inferProvider(model),
|
|
127
|
+
latencyMs,
|
|
128
|
+
inputTokens,
|
|
129
|
+
outputTokens,
|
|
130
|
+
totalTokens,
|
|
131
|
+
totalCostUsd: costUsd,
|
|
132
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : void 0,
|
|
133
|
+
agentId: this._defaults.agentId,
|
|
134
|
+
env: this._defaults.env
|
|
135
|
+
});
|
|
136
|
+
this._turnId += 1;
|
|
137
|
+
}
|
|
138
|
+
_handleFunction(data, traceId, latencyMs) {
|
|
139
|
+
const toolName = String(data.name ?? "unknown");
|
|
140
|
+
const errorMessage = data.error == null ? void 0 : String(data.error ?? "unknown error");
|
|
141
|
+
const toolInput = data.input != null && typeof data.input === "object" ? data.input : data.input != null ? { raw: String(data.input) } : void 0;
|
|
142
|
+
const toolOutput = data.output == null ? void 0 : String(data.output ?? void 0);
|
|
143
|
+
this._ai.trackToolCall({
|
|
144
|
+
userId: this._defaults.userId,
|
|
145
|
+
toolName,
|
|
146
|
+
success: errorMessage == null,
|
|
147
|
+
latencyMs,
|
|
148
|
+
sessionId: this._defaults.sessionId,
|
|
149
|
+
traceId,
|
|
150
|
+
turnId: this._turnId,
|
|
151
|
+
input: toolInput,
|
|
152
|
+
output: toolOutput,
|
|
153
|
+
errorMessage,
|
|
154
|
+
agentId: this._defaults.agentId,
|
|
155
|
+
env: this._defaults.env
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
_inferKind(data) {
|
|
159
|
+
if ("from_agent" in data || "to_agent" in data) return "handoff";
|
|
160
|
+
if ("triggered" in data) return "guardrail";
|
|
161
|
+
if ("model" in data && ("input" in data || "output" in data)) return "generation";
|
|
162
|
+
if ("name" in data && ("input" in data || "output" in data || "error" in data)) return "function";
|
|
163
|
+
return "agent";
|
|
164
|
+
}
|
|
165
|
+
_getSpanData(span) {
|
|
166
|
+
const data = span.span_data ?? span.data ?? span;
|
|
167
|
+
if (data == null || typeof data !== "object") return null;
|
|
168
|
+
return data;
|
|
169
|
+
}
|
|
170
|
+
_getTraceId(span) {
|
|
171
|
+
const traceId = span.trace_id ?? span.traceId ?? this._defaults.traceId;
|
|
172
|
+
return traceId == null ? randomUUID() : String(traceId);
|
|
173
|
+
}
|
|
174
|
+
_getLatencyMs(span) {
|
|
175
|
+
if (typeof span.latency_ms === "number") return span.latency_ms;
|
|
176
|
+
if (typeof span.latencyMs === "number") return span.latencyMs;
|
|
177
|
+
const start = span.start_time_ms ?? span.startTimeMs;
|
|
178
|
+
const end = span.end_time_ms ?? span.endTimeMs;
|
|
179
|
+
if (typeof start === "number" && typeof end === "number" && end >= start) return end - start;
|
|
180
|
+
return 0;
|
|
181
|
+
}
|
|
182
|
+
_safeNumber(value) {
|
|
183
|
+
if (typeof value === "number") return value;
|
|
184
|
+
if (typeof value === "string") {
|
|
185
|
+
const parsed = Number(value);
|
|
186
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
_normalizeMessagesArray(value) {
|
|
190
|
+
if (Array.isArray(value)) return value;
|
|
191
|
+
if (value == null) return [];
|
|
192
|
+
return [value];
|
|
193
|
+
}
|
|
194
|
+
_extractAssistantText(output) {
|
|
195
|
+
let responseText = "";
|
|
196
|
+
for (const block of output) {
|
|
197
|
+
if (block == null || typeof block !== "object") continue;
|
|
198
|
+
const item = block;
|
|
199
|
+
if (!(item.role === "assistant" || item.type === "message" || item.type === "output_text")) continue;
|
|
200
|
+
if (typeof item.content === "string") {
|
|
201
|
+
responseText += item.content;
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (Array.isArray(item.content)) for (const part of item.content) {
|
|
205
|
+
const p = part;
|
|
206
|
+
if (p.type === "text" && typeof p.text === "string") responseText += p.text;
|
|
207
|
+
if (typeof p.value === "string") responseText += p.value;
|
|
208
|
+
}
|
|
209
|
+
if (item.type === "output_text" && typeof item.text === "string") responseText += item.text;
|
|
210
|
+
}
|
|
211
|
+
return responseText;
|
|
212
|
+
}
|
|
213
|
+
_extractToolCalls(output) {
|
|
214
|
+
const result = [];
|
|
215
|
+
for (const block of output) {
|
|
216
|
+
if (block == null || typeof block !== "object") continue;
|
|
217
|
+
const item = block;
|
|
218
|
+
if (item.type === "function_call") {
|
|
219
|
+
result.push({
|
|
220
|
+
type: "function",
|
|
221
|
+
id: String(item.id ?? ""),
|
|
222
|
+
function: {
|
|
223
|
+
name: String(item.name ?? ""),
|
|
224
|
+
arguments: String(item.arguments ?? "")
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
if (!Array.isArray(item.tool_calls)) continue;
|
|
230
|
+
for (const rawCall of item.tool_calls) {
|
|
231
|
+
const call = rawCall;
|
|
232
|
+
result.push({
|
|
233
|
+
type: "function",
|
|
234
|
+
id: String(call.id ?? ""),
|
|
235
|
+
function: {
|
|
236
|
+
name: String(call.function?.name ?? ""),
|
|
237
|
+
arguments: String(call.function?.arguments ?? "")
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
//#endregion
|
|
247
|
+
export { AmplitudeTracingProcessor };
|
|
248
|
+
//# sourceMappingURL=openai-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents.js","names":["costUsd: number | undefined","result: Array<Record<string, unknown>>"],"sources":["../../src/integrations/openai-agents.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { AmplitudeAI } from '../client.js';\nimport { getActiveContext } from '../context.js';\nimport { calculateCost, inferProvider } from '../utils/costs.js';\n\nexport interface TracingProcessorOptions {\n amplitudeAI: AmplitudeAI;\n userId?: string;\n sessionId?: string;\n traceId?: string;\n agentId?: string;\n env?: string;\n}\n\nexport class AmplitudeTracingProcessor {\n private _ai: AmplitudeAI;\n private _defaults: {\n userId: string;\n sessionId: string;\n traceId: string;\n agentId: string | null;\n env: string | null;\n };\n private _turnId = 1;\n\n constructor(options: TracingProcessorOptions) {\n const ctx = getActiveContext();\n this._ai = options.amplitudeAI;\n this._defaults = {\n userId: options.userId ?? ctx?.userId ?? 'openai-agents-user',\n sessionId: options.sessionId ?? ctx?.sessionId ?? randomUUID(),\n traceId: options.traceId ?? ctx?.traceId ?? randomUUID(),\n agentId: options.agentId ?? ctx?.agentId ?? null,\n env: options.env ?? ctx?.env ?? null,\n };\n }\n\n onSpanStart(_span: Record<string, unknown>): void {\n // compatibility hook with tracing processors\n }\n\n onTraceStart(_trace: Record<string, unknown>): void {\n // compatibility hook with tracing processors\n }\n\n onTraceEnd(_trace: Record<string, unknown>): void {\n // compatibility hook with tracing processors\n }\n\n onSpanEnd(span: Record<string, unknown>): void {\n const spanData = this._getSpanData(span);\n if (spanData == null) return;\n\n const traceId = this._getTraceId(span);\n const latencyMs = this._getLatencyMs(span);\n const kind = this._inferKind(spanData);\n if (kind === 'generation') {\n this._handleGeneration(spanData, traceId, latencyMs);\n return;\n }\n if (kind === 'function') {\n this._handleFunction(spanData, traceId, latencyMs);\n return;\n }\n if (kind === 'handoff') {\n const fromAgent = String(spanData.from_agent ?? 'unknown');\n const toAgent = String(spanData.to_agent ?? 'unknown');\n this._ai.trackSpan({\n userId: this._defaults.userId,\n spanName: `handoff:${fromAgent}->${toAgent}`,\n traceId,\n latencyMs,\n sessionId: this._defaults.sessionId,\n agentId: this._defaults.agentId,\n env: this._defaults.env,\n inputState: { from_agent: fromAgent },\n outputState: { to_agent: toAgent },\n });\n return;\n }\n if (kind === 'guardrail') {\n const guardrail = String(spanData.name ?? 'guardrail');\n const triggered = Boolean(spanData.triggered);\n this._ai.trackSpan({\n userId: this._defaults.userId,\n spanName: `guardrail:${guardrail}`,\n traceId,\n latencyMs,\n sessionId: this._defaults.sessionId,\n agentId: this._defaults.agentId,\n env: this._defaults.env,\n outputState: { triggered },\n isError: triggered,\n });\n return;\n }\n\n const name = String(spanData.name ?? 'agent');\n this._ai.trackSpan({\n userId: this._defaults.userId,\n spanName: `agent:${name}`,\n traceId,\n latencyMs,\n sessionId: this._defaults.sessionId,\n agentId: this._defaults.agentId ?? name,\n env: this._defaults.env,\n outputState:\n spanData.output != null\n ? { output: String(spanData.output) }\n : undefined,\n });\n }\n\n shutdown(): void {\n this._ai.flush();\n }\n\n private _handleGeneration(\n data: Record<string, unknown>,\n traceId: string,\n latencyMs: number,\n ): void {\n const input = this._normalizeMessagesArray(data.input);\n for (const message of input) {\n const role = (message as Record<string, unknown>)?.role;\n const content = (message as Record<string, unknown>)?.content;\n if (\n role !== 'user' ||\n typeof content !== 'string' ||\n content.length === 0\n )\n continue;\n this._ai.trackUserMessage({\n userId: this._defaults.userId,\n content,\n sessionId: this._defaults.sessionId,\n traceId,\n turnId: this._turnId,\n agentId: this._defaults.agentId,\n env: this._defaults.env,\n });\n this._turnId += 1;\n }\n\n const output = this._normalizeMessagesArray(data.output);\n const responseText = this._extractAssistantText(output);\n const toolCalls = this._extractToolCalls(output);\n const model = String(data.model ?? 'unknown');\n const usage = (data.usage ?? {}) as Record<string, unknown>;\n const inputTokens = this._safeNumber(\n usage.input_tokens ?? usage.prompt_tokens ?? null,\n );\n const outputTokens = this._safeNumber(\n usage.output_tokens ?? usage.completion_tokens ?? null,\n );\n const totalTokens = this._safeNumber(usage.total_tokens ?? null);\n let costUsd: number | undefined;\n if (model !== 'unknown' && inputTokens != null && outputTokens != null) {\n try {\n const cost = calculateCost({\n modelName: model,\n inputTokens,\n outputTokens,\n });\n if (cost > 0) costUsd = cost;\n } catch {\n // cost calculation is best-effort\n }\n }\n\n this._ai.trackAiMessage({\n userId: this._defaults.userId,\n content: responseText,\n sessionId: this._defaults.sessionId,\n traceId,\n turnId: this._turnId,\n model,\n provider: inferProvider(model),\n latencyMs,\n inputTokens,\n outputTokens,\n totalTokens,\n totalCostUsd: costUsd,\n toolCalls: toolCalls.length > 0 ? toolCalls : undefined,\n agentId: this._defaults.agentId,\n env: this._defaults.env,\n });\n this._turnId += 1;\n }\n\n private _handleFunction(\n data: Record<string, unknown>,\n traceId: string,\n latencyMs: number,\n ): void {\n const toolName = String(data.name ?? 'unknown');\n const errorMessage =\n data.error == null ? undefined : String(data.error ?? 'unknown error');\n const toolInput =\n data.input != null && typeof data.input === 'object'\n ? (data.input as Record<string, unknown>)\n : data.input != null\n ? { raw: String(data.input) }\n : undefined;\n const toolOutput =\n data.output == null ? undefined : String(data.output ?? undefined);\n\n this._ai.trackToolCall({\n userId: this._defaults.userId,\n toolName,\n success: errorMessage == null,\n latencyMs,\n sessionId: this._defaults.sessionId,\n traceId,\n turnId: this._turnId,\n input: toolInput,\n output: toolOutput,\n errorMessage,\n agentId: this._defaults.agentId,\n env: this._defaults.env,\n });\n }\n\n private _inferKind(\n data: Record<string, unknown>,\n ): 'generation' | 'function' | 'agent' | 'handoff' | 'guardrail' {\n if ('from_agent' in data || 'to_agent' in data) return 'handoff';\n if ('triggered' in data) return 'guardrail';\n if ('model' in data && ('input' in data || 'output' in data))\n return 'generation';\n if (\n 'name' in data &&\n ('input' in data || 'output' in data || 'error' in data)\n )\n return 'function';\n return 'agent';\n }\n\n private _getSpanData(\n span: Record<string, unknown>,\n ): Record<string, unknown> | null {\n const data = (span.span_data ?? span.data ?? span) as unknown;\n if (data == null || typeof data !== 'object') return null;\n return data as Record<string, unknown>;\n }\n\n private _getTraceId(span: Record<string, unknown>): string {\n const traceId = span.trace_id ?? span.traceId ?? this._defaults.traceId;\n return traceId == null ? randomUUID() : String(traceId);\n }\n\n private _getLatencyMs(span: Record<string, unknown>): number {\n if (typeof span.latency_ms === 'number') return span.latency_ms;\n if (typeof span.latencyMs === 'number') return span.latencyMs;\n const start = span.start_time_ms ?? span.startTimeMs;\n const end = span.end_time_ms ?? span.endTimeMs;\n if (typeof start === 'number' && typeof end === 'number' && end >= start)\n return end - start;\n return 0;\n }\n\n private _safeNumber(value: unknown): number | undefined {\n if (typeof value === 'number') return value;\n if (typeof value === 'string') {\n const parsed = Number(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n }\n\n private _normalizeMessagesArray(value: unknown): unknown[] {\n if (Array.isArray(value)) return value;\n if (value == null) return [];\n return [value];\n }\n\n private _extractAssistantText(output: unknown[]): string {\n let responseText = '';\n for (const block of output) {\n if (block == null || typeof block !== 'object') continue;\n const item = block as Record<string, unknown>;\n const isAssistantLike =\n item.role === 'assistant' ||\n item.type === 'message' ||\n item.type === 'output_text';\n if (!isAssistantLike) continue;\n if (typeof item.content === 'string') {\n responseText += item.content;\n continue;\n }\n if (Array.isArray(item.content)) {\n for (const part of item.content) {\n const p = part as Record<string, unknown>;\n if (p.type === 'text' && typeof p.text === 'string')\n responseText += p.text;\n if (typeof p.value === 'string') responseText += p.value;\n }\n }\n if (item.type === 'output_text' && typeof item.text === 'string') {\n responseText += item.text;\n }\n }\n return responseText;\n }\n\n private _extractToolCalls(output: unknown[]): Array<Record<string, unknown>> {\n const result: Array<Record<string, unknown>> = [];\n for (const block of output) {\n if (block == null || typeof block !== 'object') continue;\n const item = block as Record<string, unknown>;\n if (item.type === 'function_call') {\n result.push({\n type: 'function',\n id: String(item.id ?? ''),\n function: {\n name: String(item.name ?? ''),\n arguments: String(item.arguments ?? ''),\n },\n });\n continue;\n }\n if (!Array.isArray(item.tool_calls)) continue;\n for (const rawCall of item.tool_calls) {\n const call = rawCall as Record<string, unknown>;\n result.push({\n type: 'function',\n id: String(call.id ?? ''),\n function: {\n name: String(\n (call.function as Record<string, unknown> | undefined)?.name ??\n '',\n ),\n arguments: String(\n (call.function as Record<string, unknown> | undefined)\n ?.arguments ?? '',\n ),\n },\n });\n }\n }\n return result;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AmplitudeAI } from "../client.js";
|
|
2
|
+
|
|
3
|
+
//#region src/integrations/opentelemetry.d.ts
|
|
4
|
+
|
|
5
|
+
interface ExporterOptions {
|
|
6
|
+
amplitudeAI: AmplitudeAI;
|
|
7
|
+
defaultUserId?: string;
|
|
8
|
+
}
|
|
9
|
+
interface OTELSpan {
|
|
10
|
+
name: string;
|
|
11
|
+
kind?: number;
|
|
12
|
+
attributes?: Record<string, unknown>;
|
|
13
|
+
startTimeUnixNano?: bigint | number;
|
|
14
|
+
endTimeUnixNano?: bigint | number;
|
|
15
|
+
status?: {
|
|
16
|
+
code?: number;
|
|
17
|
+
message?: string;
|
|
18
|
+
};
|
|
19
|
+
parentSpanId?: string;
|
|
20
|
+
spanContext?: () => {
|
|
21
|
+
traceId: string;
|
|
22
|
+
spanId: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
declare class AmplitudeAgentExporter {
|
|
26
|
+
private _ai;
|
|
27
|
+
private _defaultUserId;
|
|
28
|
+
constructor(options: ExporterOptions);
|
|
29
|
+
export(spans: OTELSpan[], resultCallback: (result: {
|
|
30
|
+
code: number;
|
|
31
|
+
}) => void): void;
|
|
32
|
+
shutdown(): Promise<void>;
|
|
33
|
+
forceFlush(): Promise<void>;
|
|
34
|
+
private _processSpan;
|
|
35
|
+
}
|
|
36
|
+
declare const AmplitudeGenAIExporter: typeof AmplitudeAgentExporter;
|
|
37
|
+
declare const AmplitudeSpanExporter: typeof AmplitudeAgentExporter;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { AmplitudeAgentExporter, AmplitudeGenAIExporter, AmplitudeSpanExporter, ExporterOptions };
|
|
40
|
+
//# sourceMappingURL=opentelemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opentelemetry.d.ts","names":[],"sources":["../../src/integrations/opentelemetry.ts"],"sourcesContent":[],"mappings":";;;;AAkDc,UAvCG,eAAA,CAuCH;EAIE,WAAA,EA1CD,WA0CC;EAAO,aAAA,CAAA,EAAA,MAAA;AAgKvB;AACA,UAvMU,QAAA,CAuMG;;;eApME;;;;;;;;;;;;;cAQF,sBAAA;;;uBAIU;gBAMZ;;;cAaG;gBAIE;;;cAgKH,+BAAsB;cACtB,8BAAqB"}
|