@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.
Files changed (510) hide show
  1. package/.cursor/skills/instrument-with-amplitude-ai/SKILL.md +50 -0
  2. package/AGENTS.md +79 -0
  3. package/LICENSE +21 -0
  4. package/README.md +2111 -0
  5. package/bin/amplitude-ai-completions.mjs +19 -0
  6. package/bin/amplitude-ai-doctor.mjs +26 -0
  7. package/bin/amplitude-ai-init.mjs +27 -0
  8. package/bin/amplitude-ai-instrument.mjs +52 -0
  9. package/bin/amplitude-ai-mcp.mjs +8 -0
  10. package/bin/amplitude-ai-register-catalog.mjs +156 -0
  11. package/bin/amplitude-ai-status.mjs +28 -0
  12. package/bin/amplitude-ai.mjs +43 -0
  13. package/bin/validate-catalog-constants.mjs +134 -0
  14. package/data/agent_event_catalog.json +1277 -0
  15. package/dist/_virtual/rolldown_runtime.js +31 -0
  16. package/dist/bound-agent.d.ts +56 -0
  17. package/dist/bound-agent.d.ts.map +1 -0
  18. package/dist/bound-agent.js +155 -0
  19. package/dist/bound-agent.js.map +1 -0
  20. package/dist/cli/doctor.d.ts +17 -0
  21. package/dist/cli/doctor.d.ts.map +1 -0
  22. package/dist/cli/doctor.js +89 -0
  23. package/dist/cli/doctor.js.map +1 -0
  24. package/dist/cli/init.d.ts +14 -0
  25. package/dist/cli/init.d.ts.map +1 -0
  26. package/dist/cli/init.js +40 -0
  27. package/dist/cli/init.js.map +1 -0
  28. package/dist/cli/providers.d.ts +32 -0
  29. package/dist/cli/providers.d.ts.map +1 -0
  30. package/dist/cli/providers.js +46 -0
  31. package/dist/cli/providers.js.map +1 -0
  32. package/dist/cli/status.d.ts +14 -0
  33. package/dist/cli/status.d.ts.map +1 -0
  34. package/dist/cli/status.js +38 -0
  35. package/dist/cli/status.js.map +1 -0
  36. package/dist/client.d.ts +246 -0
  37. package/dist/client.d.ts.map +1 -0
  38. package/dist/client.js +369 -0
  39. package/dist/client.js.map +1 -0
  40. package/dist/config.d.ts +60 -0
  41. package/dist/config.d.ts.map +1 -0
  42. package/dist/config.js +57 -0
  43. package/dist/config.js.map +1 -0
  44. package/dist/context.d.ts +44 -0
  45. package/dist/context.d.ts.map +1 -0
  46. package/dist/context.js +53 -0
  47. package/dist/context.js.map +1 -0
  48. package/dist/core/constants.d.ts +96 -0
  49. package/dist/core/constants.d.ts.map +1 -0
  50. package/dist/core/constants.js +105 -0
  51. package/dist/core/constants.js.map +1 -0
  52. package/dist/core/enrichments.d.ts +139 -0
  53. package/dist/core/enrichments.d.ts.map +1 -0
  54. package/dist/core/enrichments.js +177 -0
  55. package/dist/core/enrichments.js.map +1 -0
  56. package/dist/core/privacy.d.ts +53 -0
  57. package/dist/core/privacy.d.ts.map +1 -0
  58. package/dist/core/privacy.js +235 -0
  59. package/dist/core/privacy.js.map +1 -0
  60. package/dist/core/tracking.d.ts +242 -0
  61. package/dist/core/tracking.d.ts.map +1 -0
  62. package/dist/core/tracking.js +469 -0
  63. package/dist/core/tracking.js.map +1 -0
  64. package/dist/decorators.d.ts +109 -0
  65. package/dist/decorators.d.ts.map +1 -0
  66. package/dist/decorators.js +281 -0
  67. package/dist/decorators.js.map +1 -0
  68. package/dist/exceptions.d.ts +19 -0
  69. package/dist/exceptions.d.ts.map +1 -0
  70. package/dist/exceptions.js +35 -0
  71. package/dist/exceptions.js.map +1 -0
  72. package/dist/index.d.ts +37 -0
  73. package/dist/index.js +38 -0
  74. package/dist/integrations/anthropic-tools.d.ts +38 -0
  75. package/dist/integrations/anthropic-tools.d.ts.map +1 -0
  76. package/dist/integrations/anthropic-tools.js +175 -0
  77. package/dist/integrations/anthropic-tools.js.map +1 -0
  78. package/dist/integrations/crewai.d.ts +14 -0
  79. package/dist/integrations/crewai.d.ts.map +1 -0
  80. package/dist/integrations/crewai.js +19 -0
  81. package/dist/integrations/crewai.js.map +1 -0
  82. package/dist/integrations/langchain.d.ts +37 -0
  83. package/dist/integrations/langchain.d.ts.map +1 -0
  84. package/dist/integrations/langchain.js +189 -0
  85. package/dist/integrations/langchain.js.map +1 -0
  86. package/dist/integrations/llamaindex.d.ts +44 -0
  87. package/dist/integrations/llamaindex.d.ts.map +1 -0
  88. package/dist/integrations/llamaindex.js +144 -0
  89. package/dist/integrations/llamaindex.js.map +1 -0
  90. package/dist/integrations/openai-agents.d.ts +35 -0
  91. package/dist/integrations/openai-agents.d.ts.map +1 -0
  92. package/dist/integrations/openai-agents.js +248 -0
  93. package/dist/integrations/openai-agents.js.map +1 -0
  94. package/dist/integrations/opentelemetry.d.ts +40 -0
  95. package/dist/integrations/opentelemetry.d.ts.map +1 -0
  96. package/dist/integrations/opentelemetry.js +146 -0
  97. package/dist/integrations/opentelemetry.js.map +1 -0
  98. package/dist/internals.d.ts +5 -0
  99. package/dist/internals.js +5 -0
  100. package/dist/mcp/contract.d.ts +27 -0
  101. package/dist/mcp/contract.d.ts.map +1 -0
  102. package/dist/mcp/contract.js +25 -0
  103. package/dist/mcp/contract.js.map +1 -0
  104. package/dist/mcp/index.d.ts +4 -0
  105. package/dist/mcp/index.js +5 -0
  106. package/dist/mcp/patterns.d.ts +11 -0
  107. package/dist/mcp/patterns.d.ts.map +1 -0
  108. package/dist/mcp/patterns.js +38 -0
  109. package/dist/mcp/patterns.js.map +1 -0
  110. package/dist/mcp/server.d.ts +10 -0
  111. package/dist/mcp/server.d.ts.map +1 -0
  112. package/dist/mcp/server.js +241 -0
  113. package/dist/mcp/server.js.map +1 -0
  114. package/dist/mcp/validate-file.d.ts +20 -0
  115. package/dist/mcp/validate-file.d.ts.map +1 -0
  116. package/dist/mcp/validate-file.js +122 -0
  117. package/dist/mcp/validate-file.js.map +1 -0
  118. package/dist/middleware.d.ts +32 -0
  119. package/dist/middleware.d.ts.map +1 -0
  120. package/dist/middleware.js +67 -0
  121. package/dist/middleware.js.map +1 -0
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1262 -0
  149. 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
  150. 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
  151. 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
  152. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js +195 -0
  153. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js.map +1 -0
  154. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js +44 -0
  155. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js.map +1 -0
  156. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js +88 -0
  157. package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js.map +1 -0
  158. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.js +107 -0
  159. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.js.map +1 -0
  160. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js +142 -0
  161. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  162. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.js +678 -0
  163. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  164. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.js +145 -0
  165. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  166. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.js +106 -0
  167. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.js.map +1 -0
  168. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js +227 -0
  169. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js.map +1 -0
  170. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/names.js +33 -0
  171. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/names.js.map +1 -0
  172. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.js +22 -0
  173. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  174. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.js +137 -0
  175. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  176. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.js +65 -0
  177. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.js.map +1 -0
  178. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.js +150 -0
  179. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.js.map +1 -0
  180. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  181. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  182. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/boolSchema.js +52 -0
  183. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  184. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.js +176 -0
  185. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  186. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  187. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  188. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.js +437 -0
  189. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  190. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/keyword.js +117 -0
  191. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  192. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.js +76 -0
  193. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  194. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.js +587 -0
  195. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.js.map +1 -0
  196. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/data.js +22 -0
  197. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/data.js.map +1 -0
  198. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/json-schema-draft-07.js +145 -0
  199. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/json-schema-draft-07.js.map +1 -0
  200. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/equal.js +16 -0
  201. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  202. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/ucs2length.js +29 -0
  203. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  204. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/uri.js +16 -0
  205. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  206. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  207. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  208. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +61 -0
  209. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  210. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +101 -0
  211. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  212. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +34 -0
  213. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  214. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +21 -0
  215. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  216. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +94 -0
  217. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  218. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +91 -0
  219. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  220. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  221. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  222. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js +64 -0
  223. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  224. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items.js +63 -0
  225. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  226. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +39 -0
  227. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  228. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  229. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  230. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +56 -0
  231. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  232. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +66 -0
  233. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  234. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  235. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  236. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +57 -0
  237. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  238. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +46 -0
  239. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  240. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +22 -0
  241. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  242. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/code.js +134 -0
  243. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  244. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  245. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  246. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  247. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  248. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/ref.js +116 -0
  249. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  250. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +106 -0
  251. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  252. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  253. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  254. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  255. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  256. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.js +97 -0
  257. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  258. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js +15 -0
  259. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  260. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  261. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  262. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.js +32 -0
  263. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  264. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.js +54 -0
  265. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  266. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js +53 -0
  267. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  268. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +33 -0
  269. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  270. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +38 -0
  271. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  272. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +52 -0
  273. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  274. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +33 -0
  275. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  276. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +32 -0
  277. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  278. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +43 -0
  279. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  280. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.js +77 -0
  281. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  282. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  283. package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  284. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +37 -0
  285. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
  286. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js +240 -0
  287. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js.map +1 -0
  288. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js +194 -0
  289. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js.map +1 -0
  290. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js +286 -0
  291. package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js.map +1 -0
  292. package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +82 -0
  293. package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js.map +1 -0
  294. 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
  295. 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
  296. 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
  297. 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
  298. 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
  299. 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
  300. 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
  301. 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
  302. 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
  303. 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
  304. 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
  305. 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
  306. 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
  307. 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
  308. 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
  309. 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
  310. 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
  311. 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
  312. 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
  313. 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
  314. 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
  315. 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
  316. 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
  317. 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
  318. 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
  319. 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
  320. 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
  321. 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
  322. 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
  323. 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
  324. 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
  325. 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
  326. 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
  327. 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
  328. 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
  329. 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
  330. 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
  331. 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
  332. 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
  333. 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
  334. 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
  335. 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
  336. 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
  337. 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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. 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
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. 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
  355. 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
  356. 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
  357. 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
  358. 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
  359. 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
  360. 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
  361. 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
  362. 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
  363. 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
  364. 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
  365. 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
  366. 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
  367. 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
  368. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +104 -0
  369. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
  370. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +11 -0
  371. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
  372. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +10 -0
  373. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  374. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +110 -0
  375. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  376. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +99 -0
  377. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
  378. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +84 -0
  379. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
  380. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js +3160 -0
  381. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
  382. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js +23 -0
  383. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js.map +1 -0
  384. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js +38 -0
  385. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js.map +1 -0
  386. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js +12 -0
  387. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js.map +1 -0
  388. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js +611 -0
  389. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js.map +1 -0
  390. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js +437 -0
  391. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js.map +1 -0
  392. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js +360 -0
  393. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js.map +1 -0
  394. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js +50 -0
  395. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js.map +1 -0
  396. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js +34 -0
  397. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js.map +1 -0
  398. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js +71 -0
  399. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js.map +1 -0
  400. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js +74 -0
  401. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js.map +1 -0
  402. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js +63 -0
  403. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js.map +1 -0
  404. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js +50 -0
  405. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js.map +1 -0
  406. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js +1098 -0
  407. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js.map +1 -0
  408. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js +599 -0
  409. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
  410. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js +267 -0
  411. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js.map +1 -0
  412. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js +10 -0
  413. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js.map +1 -0
  414. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/mini/schemas.js +50 -0
  415. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/mini/schemas.js.map +1 -0
  416. package/dist/patching.d.ts +59 -0
  417. package/dist/patching.d.ts.map +1 -0
  418. package/dist/patching.js +891 -0
  419. package/dist/patching.js.map +1 -0
  420. package/dist/propagation.d.ts +8 -0
  421. package/dist/propagation.d.ts.map +1 -0
  422. package/dist/propagation.js +46 -0
  423. package/dist/propagation.js.map +1 -0
  424. package/dist/providers/anthropic.d.ts +44 -0
  425. package/dist/providers/anthropic.d.ts.map +1 -0
  426. package/dist/providers/anthropic.js +287 -0
  427. package/dist/providers/anthropic.js.map +1 -0
  428. package/dist/providers/azure-openai.d.ts +32 -0
  429. package/dist/providers/azure-openai.d.ts.map +1 -0
  430. package/dist/providers/azure-openai.js +39 -0
  431. package/dist/providers/azure-openai.js.map +1 -0
  432. package/dist/providers/base.d.ts +70 -0
  433. package/dist/providers/base.d.ts.map +1 -0
  434. package/dist/providers/base.js +141 -0
  435. package/dist/providers/base.js.map +1 -0
  436. package/dist/providers/bedrock.d.ts +41 -0
  437. package/dist/providers/bedrock.d.ts.map +1 -0
  438. package/dist/providers/bedrock.js +229 -0
  439. package/dist/providers/bedrock.js.map +1 -0
  440. package/dist/providers/gemini.d.ts +34 -0
  441. package/dist/providers/gemini.d.ts.map +1 -0
  442. package/dist/providers/gemini.js +225 -0
  443. package/dist/providers/gemini.js.map +1 -0
  444. package/dist/providers/mistral.d.ts +32 -0
  445. package/dist/providers/mistral.d.ts.map +1 -0
  446. package/dist/providers/mistral.js +218 -0
  447. package/dist/providers/mistral.js.map +1 -0
  448. package/dist/providers/openai.d.ts +61 -0
  449. package/dist/providers/openai.d.ts.map +1 -0
  450. package/dist/providers/openai.js +530 -0
  451. package/dist/providers/openai.js.map +1 -0
  452. package/dist/register.d.ts +1 -0
  453. package/dist/register.js +46 -0
  454. package/dist/register.js.map +1 -0
  455. package/dist/session.d.ts +46 -0
  456. package/dist/session.d.ts.map +1 -0
  457. package/dist/session.js +144 -0
  458. package/dist/session.js.map +1 -0
  459. package/dist/tenant.d.ts +30 -0
  460. package/dist/tenant.d.ts.map +1 -0
  461. package/dist/tenant.js +23 -0
  462. package/dist/tenant.js.map +1 -0
  463. package/dist/testing.d.ts +46 -0
  464. package/dist/testing.d.ts.map +1 -0
  465. package/dist/testing.js +120 -0
  466. package/dist/testing.js.map +1 -0
  467. package/dist/types.d.ts +384 -0
  468. package/dist/types.d.ts.map +1 -0
  469. package/dist/types.js +13 -0
  470. package/dist/types.js.map +1 -0
  471. package/dist/utils/costs.d.ts +27 -0
  472. package/dist/utils/costs.d.ts.map +1 -0
  473. package/dist/utils/costs.js +63 -0
  474. package/dist/utils/costs.js.map +1 -0
  475. package/dist/utils/debug.d.ts +6 -0
  476. package/dist/utils/debug.d.ts.map +1 -0
  477. package/dist/utils/debug.js +73 -0
  478. package/dist/utils/debug.js.map +1 -0
  479. package/dist/utils/logger.d.ts +11 -0
  480. package/dist/utils/logger.d.ts.map +1 -0
  481. package/dist/utils/logger.js +18 -0
  482. package/dist/utils/logger.js.map +1 -0
  483. package/dist/utils/model-tiers.d.ts +8 -0
  484. package/dist/utils/model-tiers.d.ts.map +1 -0
  485. package/dist/utils/model-tiers.js +76 -0
  486. package/dist/utils/model-tiers.js.map +1 -0
  487. package/dist/utils/providers.d.ts +5 -0
  488. package/dist/utils/providers.d.ts.map +1 -0
  489. package/dist/utils/providers.js +20 -0
  490. package/dist/utils/providers.js.map +1 -0
  491. package/dist/utils/resolve-module.d.ts +5 -0
  492. package/dist/utils/resolve-module.d.ts.map +1 -0
  493. package/dist/utils/resolve-module.js +29 -0
  494. package/dist/utils/resolve-module.js.map +1 -0
  495. package/dist/utils/streaming.d.ts +55 -0
  496. package/dist/utils/streaming.d.ts.map +1 -0
  497. package/dist/utils/streaming.js +72 -0
  498. package/dist/utils/streaming.js.map +1 -0
  499. package/dist/utils/tokens.d.ts +16 -0
  500. package/dist/utils/tokens.d.ts.map +1 -0
  501. package/dist/utils/tokens.js +80 -0
  502. package/dist/utils/tokens.js.map +1 -0
  503. package/dist/wrappers.d.ts +37 -0
  504. package/dist/wrappers.d.ts.map +1 -0
  505. package/dist/wrappers.js +61 -0
  506. package/dist/wrappers.js.map +1 -0
  507. package/llms-full.txt +127 -0
  508. package/llms.txt +28 -0
  509. package/mcp.schema.json +18 -0
  510. package/package.json +189 -0
@@ -0,0 +1,246 @@
1
+ import { PrivacyConfig } from "./core/privacy.js";
2
+ import { AIConfig } from "./config.js";
3
+ import { MessageLabel, SessionEnrichments } from "./core/enrichments.js";
4
+ import { TenantHandle } from "./tenant.js";
5
+ import { AmplitudeClientLike, Attachment } from "./types.js";
6
+ import { BoundAgent } from "./bound-agent.js";
7
+
8
+ //#region src/client.d.ts
9
+
10
+ /**
11
+ * Main Amplitude AI client for tracking LLM interactions.
12
+ *
13
+ * Create an instance with an API key or an existing Amplitude client,
14
+ * then use `.agent()` to create bound agents and `.session()` to
15
+ * manage session context.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const ai = new AmplitudeAI({ apiKey: 'YOUR_KEY' });
20
+ * const agent = ai.agent('my-chatbot', { userId: 'user-1' });
21
+ * const session = agent.session();
22
+ * await session.run(async (s) => {
23
+ * s.trackUserMessage('Hello');
24
+ * s.trackAiMessage('Hi there!', 'gpt-4', 'openai', 150);
25
+ * });
26
+ * ```
27
+ */
28
+ declare class AmplitudeAI {
29
+ protected _amplitude: AmplitudeClientLike;
30
+ protected _ownsClient: boolean;
31
+ protected _config: AIConfig;
32
+ protected _privacyConfig: PrivacyConfig;
33
+ protected _sessionTurnCounters: Map<string, number>;
34
+ constructor(options: {
35
+ amplitude?: AmplitudeClientLike;
36
+ apiKey?: string;
37
+ config?: AIConfig;
38
+ });
39
+ private _installTrackHook;
40
+ get amplitude(): AmplitudeClientLike;
41
+ get config(): AIConfig;
42
+ _nextTurnId(sessionId: string): number;
43
+ trackUserMessage(opts: {
44
+ userId: string;
45
+ content: string;
46
+ sessionId: string;
47
+ traceId?: string | null;
48
+ turnId?: number | null;
49
+ messageId?: string | null;
50
+ agentId?: string | null;
51
+ parentAgentId?: string | null;
52
+ customerOrgId?: string | null;
53
+ agentVersion?: string | null;
54
+ context?: Record<string, unknown> | null;
55
+ env?: string | null;
56
+ isRegeneration?: boolean;
57
+ isEdit?: boolean;
58
+ editedMessageId?: string | null;
59
+ attachments?: Attachment[] | null;
60
+ labels?: MessageLabel[] | null;
61
+ eventProperties?: Record<string, unknown> | null;
62
+ groups?: Record<string, unknown> | null;
63
+ }): string;
64
+ trackAiMessage(opts: {
65
+ userId: string;
66
+ content: string;
67
+ sessionId: string;
68
+ model: string;
69
+ provider: string;
70
+ latencyMs: number;
71
+ inputTokens?: number | null;
72
+ outputTokens?: number | null;
73
+ reasoningTokens?: number | null;
74
+ cacheReadTokens?: number | null;
75
+ cacheCreationTokens?: number | null;
76
+ totalTokens?: number | null;
77
+ totalCostUsd?: number | null;
78
+ finishReason?: string | null;
79
+ toolCalls?: Array<Record<string, unknown>> | null;
80
+ reasoningContent?: string | null;
81
+ systemPrompt?: string | null;
82
+ temperature?: number | null;
83
+ maxOutputTokens?: number | null;
84
+ topP?: number | null;
85
+ isStreaming?: boolean | null;
86
+ promptId?: string | null;
87
+ wasCopied?: boolean;
88
+ wasCached?: boolean;
89
+ modelTier?: string | null;
90
+ attachments?: Attachment[] | null;
91
+ labels?: MessageLabel[] | null;
92
+ traceId?: string | null;
93
+ turnId?: number | null;
94
+ messageId?: string | null;
95
+ agentId?: string | null;
96
+ parentAgentId?: string | null;
97
+ customerOrgId?: string | null;
98
+ agentVersion?: string | null;
99
+ context?: Record<string, unknown> | null;
100
+ env?: string | null;
101
+ isError?: boolean;
102
+ errorMessage?: string | null;
103
+ ttfbMs?: number | null;
104
+ eventProperties?: Record<string, unknown> | null;
105
+ groups?: Record<string, unknown> | null;
106
+ privacyConfig?: PrivacyConfig | null;
107
+ }): string;
108
+ trackToolCall(opts: {
109
+ userId: string;
110
+ toolName: string;
111
+ latencyMs: number;
112
+ success: boolean;
113
+ sessionId?: string | null;
114
+ traceId?: string | null;
115
+ turnId?: number | null;
116
+ invocationId?: string | null;
117
+ input?: unknown;
118
+ output?: unknown;
119
+ parentMessageId?: string | null;
120
+ agentId?: string | null;
121
+ parentAgentId?: string | null;
122
+ customerOrgId?: string | null;
123
+ agentVersion?: string | null;
124
+ context?: Record<string, unknown> | null;
125
+ env?: string | null;
126
+ errorMessage?: string | null;
127
+ eventProperties?: Record<string, unknown> | null;
128
+ groups?: Record<string, unknown> | null;
129
+ }): string;
130
+ trackEmbedding(opts: {
131
+ userId: string;
132
+ model: string;
133
+ provider: string;
134
+ latencyMs: number;
135
+ inputTokens?: number | null;
136
+ dimensions?: number | null;
137
+ totalCostUsd?: number | null;
138
+ sessionId?: string | null;
139
+ traceId?: string | null;
140
+ turnId?: number | null;
141
+ agentId?: string | null;
142
+ parentAgentId?: string | null;
143
+ customerOrgId?: string | null;
144
+ agentVersion?: string | null;
145
+ context?: Record<string, unknown> | null;
146
+ env?: string | null;
147
+ eventProperties?: Record<string, unknown> | null;
148
+ groups?: Record<string, unknown> | null;
149
+ }): string;
150
+ trackSpan(opts: {
151
+ userId: string;
152
+ spanName: string;
153
+ traceId: string;
154
+ latencyMs: number;
155
+ inputState?: Record<string, unknown> | null;
156
+ outputState?: Record<string, unknown> | null;
157
+ parentSpanId?: string | null;
158
+ isError?: boolean;
159
+ errorMessage?: string | null;
160
+ sessionId?: string | null;
161
+ turnId?: number | null;
162
+ agentId?: string | null;
163
+ parentAgentId?: string | null;
164
+ customerOrgId?: string | null;
165
+ agentVersion?: string | null;
166
+ context?: Record<string, unknown> | null;
167
+ env?: string | null;
168
+ eventProperties?: Record<string, unknown> | null;
169
+ groups?: Record<string, unknown> | null;
170
+ }): string;
171
+ trackSessionEnd(opts: {
172
+ userId: string;
173
+ sessionId: string;
174
+ enrichments?: SessionEnrichments | null;
175
+ traceId?: string | null;
176
+ turnId?: number | null;
177
+ agentId?: string | null;
178
+ parentAgentId?: string | null;
179
+ customerOrgId?: string | null;
180
+ agentVersion?: string | null;
181
+ context?: Record<string, unknown> | null;
182
+ env?: string | null;
183
+ abandonmentTurn?: number | null;
184
+ idleTimeoutMinutes?: number | null;
185
+ eventProperties?: Record<string, unknown> | null;
186
+ groups?: Record<string, unknown> | null;
187
+ }): void;
188
+ trackSessionEnrichment(opts: {
189
+ userId: string;
190
+ sessionId: string;
191
+ enrichments: SessionEnrichments;
192
+ traceId?: string | null;
193
+ turnId?: number | null;
194
+ agentId?: string | null;
195
+ parentAgentId?: string | null;
196
+ customerOrgId?: string | null;
197
+ agentVersion?: string | null;
198
+ context?: Record<string, unknown> | null;
199
+ env?: string | null;
200
+ eventProperties?: Record<string, unknown> | null;
201
+ groups?: Record<string, unknown> | null;
202
+ }): void;
203
+ score(opts: {
204
+ userId: string;
205
+ name: string;
206
+ value: number;
207
+ targetId: string;
208
+ targetType?: string;
209
+ source?: string;
210
+ comment?: string | null;
211
+ sessionId?: string | null;
212
+ traceId?: string | null;
213
+ turnId?: number | null;
214
+ agentId?: string | null;
215
+ parentAgentId?: string | null;
216
+ customerOrgId?: string | null;
217
+ agentVersion?: string | null;
218
+ context?: Record<string, unknown> | null;
219
+ env?: string | null;
220
+ eventProperties?: Record<string, unknown> | null;
221
+ groups?: Record<string, unknown> | null;
222
+ }): void;
223
+ agent(agentId: string, opts?: {
224
+ userId?: string | null;
225
+ parentAgentId?: string | null;
226
+ customerOrgId?: string | null;
227
+ agentVersion?: string | null;
228
+ context?: Record<string, unknown> | null;
229
+ env?: string | null;
230
+ sessionId?: string | null;
231
+ traceId?: string | null;
232
+ groups?: Record<string, unknown> | null;
233
+ deviceId?: string | null;
234
+ browserSessionId?: string | null;
235
+ }): BoundAgent;
236
+ tenant(customerOrgId: string, opts?: {
237
+ groups?: Record<string, unknown> | null;
238
+ env?: string | null;
239
+ }): TenantHandle;
240
+ status(): Record<string, unknown>;
241
+ flush(): unknown;
242
+ shutdown(): void;
243
+ }
244
+ //#endregion
245
+ export { AmplitudeAI };
246
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","names":[],"sources":["../src/client.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AA+CA;;;;;;;;;;;;;;;;AAsMkB,cAtML,WAAA,CAsMK;EACL,UAAA,UAAA,EAtMW,mBAsMX;EAQC,UAAA,WAAA,EAAA,OAAA;EAKQ,UAAA,OAAA,EAjND,QAiNC;EACT,UAAA,cAAA,EAjNe,aAiNf;EACO,UAAA,oBAAA,EAjNc,GAiNd,CAAA,MAAA,EAAA,MAAA,CAAA;EA2FN,WAAA,CAAA,OAAA,EAAA;IAGQ,SAAA,CAAA,EA5SN,mBA4SM;IACT,MAAA,CAAA,EAAA,MAAA;IA2CC,MAAA,CAAA,EAtVD,QAsVC;EAEQ,CAAA;EACT,QAAA,iBAAA;EA+BI,IAAA,SAAA,CAAA,CAAA,EAhSE,mBAgSF;EACC,IAAA,MAAA,CAAA,CAAA,EA7RF,QA6RE;EAUJ,WAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAEQ,gBAAA,CAAA,IAAA,EAAA;IACT,MAAA,EAAA,MAAA;IAkCK,OAAA,EAAA,MAAA;IAOJ,SAAA,EAAA,MAAA;IAIQ,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IACT,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IA2BI,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAOH,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAEQ,aAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IACT,aAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAwCC,YAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAEQ,OAAA,CAAA,EArYR,MAqYQ,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA;IACT,GAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAqCG,cAAA,CAAA,EAAA,OAAA;IAID,MAAA,CAAA,EAAA,OAAA;IAIV,eAAA,CAAA,EAAA,MAAA,GAAA,IAAA;IAUgB,WAAA,CAAA,EAxbH,UAwbG,EAAA,GAAA,IAAA;IAChB,MAAA,CAAA,EAxbQ,YAwbR,EAAA,GAAA,IAAA;IAQO,eAAA,CAAA,EA/bU,MA+bV,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA;IAAM,MAAA,CAAA,EA9bL,MA8bK,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA;;;;;;;;;;;;;;;;;gBAnZF,MAAM;;;;;;;;;;;kBAWJ;aACL;;;;;;;;cAQC;;;;;sBAKQ;aACT;oBACO;;;;;;;;;;;;;;;;;;cA2FN;;;sBAGQ;aACT;;;;;;;;;;;;;;;;;cA2CC;;sBAEQ;aACT;;;;;;;iBA+BI;kBACC;;;;;;;;;;cAUJ;;sBAEQ;aACT;;;;;kBAkCK;;;;;;;cAOJ;;;;sBAIQ;aACT;;;;;iBA2BI;;;;;;;cAOH;;sBAEQ;aACT;;;;;;;;;;;;;;;;;cAwCC;;sBAEQ;aACT;;;;;;;cAqCG;;;;aAID;;;MAIV;;aAUgB;;MAChB;YAQO"}
package/dist/client.js ADDED
@@ -0,0 +1,369 @@
1
+ import { ConfigurationError } from "./exceptions.js";
2
+ import { trackAiMessage, trackEmbedding, trackScore, trackSessionEnd, trackSessionEnrichment, trackSpan, trackToolCall, trackUserMessage } from "./core/tracking.js";
3
+ import { BoundAgent } from "./bound-agent.js";
4
+ import { AIConfig } from "./config.js";
5
+ import { setDefaultPropagateContext } from "./propagation.js";
6
+ import { tryRequire } from "./utils/resolve-module.js";
7
+ import { calculateCost } from "./utils/costs.js";
8
+ import { patchedProviders } from "./patching.js";
9
+ import { TenantHandle } from "./tenant.js";
10
+ import { formatDebugLine, formatDryRunLine } from "./utils/debug.js";
11
+
12
+ //#region src/client.ts
13
+ const _MAX_SESSION_TURN_COUNTERS = 1e4;
14
+ /**
15
+ * Main Amplitude AI client for tracking LLM interactions.
16
+ *
17
+ * Create an instance with an API key or an existing Amplitude client,
18
+ * then use `.agent()` to create bound agents and `.session()` to
19
+ * manage session context.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const ai = new AmplitudeAI({ apiKey: 'YOUR_KEY' });
24
+ * const agent = ai.agent('my-chatbot', { userId: 'user-1' });
25
+ * const session = agent.session();
26
+ * await session.run(async (s) => {
27
+ * s.trackUserMessage('Hello');
28
+ * s.trackAiMessage('Hi there!', 'gpt-4', 'openai', 150);
29
+ * });
30
+ * ```
31
+ */
32
+ var AmplitudeAI = class {
33
+ _amplitude;
34
+ _ownsClient;
35
+ _config;
36
+ _privacyConfig;
37
+ _sessionTurnCounters = /* @__PURE__ */ new Map();
38
+ constructor(options) {
39
+ if (options.amplitude != null) {
40
+ this._amplitude = options.amplitude;
41
+ this._ownsClient = false;
42
+ } else if (options.apiKey != null) {
43
+ const amplitudeNode = tryRequire("@amplitude/analytics-node");
44
+ if (amplitudeNode == null || typeof amplitudeNode.init !== "function") throw new ConfigurationError("@amplitude/analytics-node is required. Install it as a dependency.");
45
+ amplitudeNode.init(options.apiKey);
46
+ this._amplitude = amplitudeNode;
47
+ this._ownsClient = true;
48
+ } else throw new ConfigurationError("Provide either an existing Amplitude instance via 'amplitude' or an API key via 'apiKey'.");
49
+ this._config = options.config ?? new AIConfig();
50
+ this._privacyConfig = this._config.toPrivacyConfig();
51
+ setDefaultPropagateContext(this._config.propagateContext);
52
+ if (this._config.debug || this._config.dryRun || this._config.onEventCallback != null) this._installTrackHook();
53
+ }
54
+ _installTrackHook() {
55
+ const originalTrack = this._amplitude.track.bind(this._amplitude);
56
+ const debug = this._config.debug;
57
+ const dryRun = this._config.dryRun;
58
+ const onEvent = this._config.onEventCallback;
59
+ const clientWithConfig = this._amplitude;
60
+ const existingCallback = clientWithConfig.configuration?.callback;
61
+ let callbackHandledByTransport = false;
62
+ if (onEvent != null && clientWithConfig.configuration != null) {
63
+ clientWithConfig.configuration.callback = (...args) => {
64
+ const event = args[0];
65
+ const statusCode = typeof args[1] === "number" ? args[1] : 0;
66
+ const message = args[2] == null ? null : String(args[2]);
67
+ if (typeof existingCallback === "function") try {
68
+ existingCallback(...args);
69
+ } catch {}
70
+ try {
71
+ onEvent(event, statusCode, message);
72
+ } catch {}
73
+ };
74
+ callbackHandledByTransport = true;
75
+ }
76
+ this._amplitude.track = (event) => {
77
+ if (debug) console.error(formatDebugLine(event));
78
+ if (dryRun) console.error(formatDryRunLine(event));
79
+ if (!dryRun) originalTrack(event);
80
+ if (onEvent != null && (!callbackHandledByTransport || dryRun)) try {
81
+ onEvent(event, dryRun ? -1 : 0, dryRun ? "dry-run" : null);
82
+ } catch {}
83
+ };
84
+ }
85
+ get amplitude() {
86
+ return this._amplitude;
87
+ }
88
+ get config() {
89
+ return this._config;
90
+ }
91
+ _nextTurnId(sessionId) {
92
+ if (!this._sessionTurnCounters.has(sessionId) && this._sessionTurnCounters.size >= _MAX_SESSION_TURN_COUNTERS) {
93
+ const oldestKey = this._sessionTurnCounters.keys().next().value;
94
+ if (oldestKey != null) this._sessionTurnCounters.delete(oldestKey);
95
+ }
96
+ const next = (this._sessionTurnCounters.get(sessionId) ?? 0) + 1;
97
+ this._sessionTurnCounters.set(sessionId, next);
98
+ return next;
99
+ }
100
+ trackUserMessage(opts) {
101
+ const effectiveTurnId = opts.turnId ?? this._nextTurnId(opts.sessionId);
102
+ return trackUserMessage({
103
+ amplitude: this._amplitude,
104
+ userId: opts.userId,
105
+ messageContent: opts.content,
106
+ sessionId: opts.sessionId,
107
+ traceId: opts.traceId,
108
+ turnId: effectiveTurnId,
109
+ messageId: opts.messageId,
110
+ agentId: opts.agentId,
111
+ parentAgentId: opts.parentAgentId,
112
+ customerOrgId: opts.customerOrgId,
113
+ agentVersion: opts.agentVersion,
114
+ context: opts.context,
115
+ env: opts.env,
116
+ isRegeneration: opts.isRegeneration,
117
+ isEdit: opts.isEdit,
118
+ editedMessageId: opts.editedMessageId,
119
+ attachments: opts.attachments,
120
+ labels: opts.labels,
121
+ eventProperties: opts.eventProperties,
122
+ groups: opts.groups,
123
+ privacyConfig: this._privacyConfig
124
+ });
125
+ }
126
+ trackAiMessage(opts) {
127
+ const effectiveTurnId = opts.turnId ?? this._nextTurnId(opts.sessionId);
128
+ let effectiveCost = opts.totalCostUsd ?? null;
129
+ if (effectiveCost == null && opts.inputTokens != null && opts.outputTokens != null) try {
130
+ effectiveCost = calculateCost({
131
+ modelName: opts.model,
132
+ inputTokens: opts.inputTokens,
133
+ outputTokens: opts.outputTokens,
134
+ reasoningTokens: opts.reasoningTokens ?? 0,
135
+ cacheReadInputTokens: opts.cacheReadTokens ?? 0,
136
+ cacheCreationInputTokens: opts.cacheCreationTokens ?? 0
137
+ });
138
+ } catch {}
139
+ return trackAiMessage({
140
+ amplitude: this._amplitude,
141
+ userId: opts.userId,
142
+ modelName: opts.model,
143
+ provider: opts.provider,
144
+ responseContent: opts.content,
145
+ latencyMs: opts.latencyMs,
146
+ sessionId: opts.sessionId,
147
+ traceId: opts.traceId,
148
+ turnId: effectiveTurnId,
149
+ messageId: opts.messageId,
150
+ inputTokens: opts.inputTokens,
151
+ outputTokens: opts.outputTokens,
152
+ reasoningTokens: opts.reasoningTokens,
153
+ cacheReadInputTokens: opts.cacheReadTokens,
154
+ cacheCreationInputTokens: opts.cacheCreationTokens,
155
+ totalTokens: opts.totalTokens,
156
+ totalCostUsd: effectiveCost,
157
+ finishReason: opts.finishReason,
158
+ toolCalls: opts.toolCalls,
159
+ reasoningContent: opts.reasoningContent,
160
+ systemPrompt: opts.systemPrompt,
161
+ temperature: opts.temperature,
162
+ maxOutputTokens: opts.maxOutputTokens,
163
+ topP: opts.topP,
164
+ isStreaming: opts.isStreaming,
165
+ promptId: opts.promptId,
166
+ wasCopied: opts.wasCopied,
167
+ wasCached: opts.wasCached,
168
+ modelTier: opts.modelTier,
169
+ attachments: opts.attachments,
170
+ labels: opts.labels,
171
+ agentId: opts.agentId,
172
+ parentAgentId: opts.parentAgentId,
173
+ customerOrgId: opts.customerOrgId,
174
+ agentVersion: opts.agentVersion,
175
+ context: opts.context,
176
+ env: opts.env,
177
+ isError: opts.isError,
178
+ errorMessage: opts.errorMessage,
179
+ providerTtfbMs: opts.ttfbMs,
180
+ eventProperties: opts.eventProperties,
181
+ groups: opts.groups,
182
+ privacyConfig: opts.privacyConfig ?? this._privacyConfig
183
+ });
184
+ }
185
+ trackToolCall(opts) {
186
+ return trackToolCall({
187
+ amplitude: this._amplitude,
188
+ userId: opts.userId,
189
+ toolName: opts.toolName,
190
+ success: opts.success,
191
+ latencyMs: opts.latencyMs,
192
+ sessionId: opts.sessionId,
193
+ traceId: opts.traceId,
194
+ turnId: opts.turnId ?? void 0,
195
+ invocationId: opts.invocationId,
196
+ toolInput: opts.input,
197
+ toolOutput: opts.output,
198
+ parentMessageId: opts.parentMessageId,
199
+ agentId: opts.agentId,
200
+ parentAgentId: opts.parentAgentId,
201
+ customerOrgId: opts.customerOrgId,
202
+ agentVersion: opts.agentVersion,
203
+ context: opts.context,
204
+ env: opts.env,
205
+ errorMessage: opts.errorMessage,
206
+ eventProperties: opts.eventProperties,
207
+ groups: opts.groups,
208
+ privacyConfig: this._privacyConfig
209
+ });
210
+ }
211
+ trackEmbedding(opts) {
212
+ return trackEmbedding({
213
+ amplitude: this._amplitude,
214
+ userId: opts.userId,
215
+ model: opts.model,
216
+ provider: opts.provider,
217
+ latencyMs: opts.latencyMs,
218
+ inputTokens: opts.inputTokens,
219
+ dimensions: opts.dimensions,
220
+ totalCostUsd: opts.totalCostUsd,
221
+ sessionId: opts.sessionId,
222
+ traceId: opts.traceId,
223
+ turnId: opts.turnId,
224
+ agentId: opts.agentId,
225
+ parentAgentId: opts.parentAgentId,
226
+ customerOrgId: opts.customerOrgId,
227
+ agentVersion: opts.agentVersion,
228
+ context: opts.context,
229
+ env: opts.env,
230
+ eventProperties: opts.eventProperties,
231
+ groups: opts.groups,
232
+ privacyConfig: this._privacyConfig
233
+ });
234
+ }
235
+ trackSpan(opts) {
236
+ return trackSpan({
237
+ amplitude: this._amplitude,
238
+ userId: opts.userId,
239
+ spanName: opts.spanName,
240
+ traceId: opts.traceId,
241
+ latencyMs: opts.latencyMs,
242
+ inputState: opts.inputState,
243
+ outputState: opts.outputState,
244
+ parentSpanId: opts.parentSpanId,
245
+ isError: opts.isError,
246
+ errorMessage: opts.errorMessage,
247
+ sessionId: opts.sessionId,
248
+ turnId: opts.turnId,
249
+ agentId: opts.agentId,
250
+ parentAgentId: opts.parentAgentId,
251
+ customerOrgId: opts.customerOrgId,
252
+ agentVersion: opts.agentVersion,
253
+ context: opts.context,
254
+ env: opts.env,
255
+ eventProperties: opts.eventProperties,
256
+ groups: opts.groups,
257
+ privacyConfig: this._privacyConfig
258
+ });
259
+ }
260
+ trackSessionEnd(opts) {
261
+ trackSessionEnd({
262
+ amplitude: this._amplitude,
263
+ userId: opts.userId,
264
+ sessionId: opts.sessionId,
265
+ enrichments: opts.enrichments,
266
+ traceId: opts.traceId,
267
+ turnId: opts.turnId,
268
+ agentId: opts.agentId,
269
+ parentAgentId: opts.parentAgentId,
270
+ customerOrgId: opts.customerOrgId,
271
+ agentVersion: opts.agentVersion,
272
+ context: opts.context,
273
+ env: opts.env,
274
+ abandonmentTurn: opts.abandonmentTurn,
275
+ idleTimeoutMinutes: opts.idleTimeoutMinutes,
276
+ eventProperties: opts.eventProperties,
277
+ groups: opts.groups,
278
+ privacyConfig: this._privacyConfig
279
+ });
280
+ this._sessionTurnCounters.delete(opts.sessionId);
281
+ }
282
+ trackSessionEnrichment(opts) {
283
+ trackSessionEnrichment({
284
+ amplitude: this._amplitude,
285
+ userId: opts.userId,
286
+ sessionId: opts.sessionId,
287
+ enrichments: opts.enrichments,
288
+ traceId: opts.traceId,
289
+ turnId: opts.turnId,
290
+ agentId: opts.agentId,
291
+ parentAgentId: opts.parentAgentId,
292
+ customerOrgId: opts.customerOrgId,
293
+ agentVersion: opts.agentVersion,
294
+ context: opts.context,
295
+ env: opts.env,
296
+ eventProperties: opts.eventProperties,
297
+ groups: opts.groups,
298
+ privacyConfig: this._privacyConfig
299
+ });
300
+ }
301
+ score(opts) {
302
+ trackScore({
303
+ amplitude: this._amplitude,
304
+ userId: opts.userId,
305
+ name: opts.name,
306
+ value: opts.value,
307
+ targetId: opts.targetId,
308
+ targetType: opts.targetType,
309
+ source: opts.source,
310
+ comment: opts.comment,
311
+ sessionId: opts.sessionId,
312
+ traceId: opts.traceId,
313
+ turnId: opts.turnId,
314
+ agentId: opts.agentId,
315
+ parentAgentId: opts.parentAgentId,
316
+ customerOrgId: opts.customerOrgId,
317
+ agentVersion: opts.agentVersion,
318
+ context: opts.context,
319
+ env: opts.env,
320
+ eventProperties: opts.eventProperties,
321
+ groups: opts.groups,
322
+ privacyConfig: this._privacyConfig
323
+ });
324
+ }
325
+ agent(agentId, opts = {}) {
326
+ return new BoundAgent(this, {
327
+ agentId,
328
+ ...opts
329
+ });
330
+ }
331
+ tenant(customerOrgId, opts = {}) {
332
+ return new TenantHandle(this, {
333
+ customerOrgId,
334
+ ...opts
335
+ });
336
+ }
337
+ status() {
338
+ const availableProviders = [];
339
+ for (const mod of [
340
+ "openai",
341
+ "@anthropic-ai/sdk",
342
+ "@google/generative-ai",
343
+ "@aws-sdk/client-bedrock-runtime",
344
+ "@mistralai/mistralai"
345
+ ]) if (tryRequire(mod) != null) {
346
+ const name = mod === "@anthropic-ai/sdk" ? "anthropic" : mod === "@google/generative-ai" ? "gemini" : mod === "@aws-sdk/client-bedrock-runtime" ? "bedrock" : mod === "@mistralai/mistralai" ? "mistral" : mod;
347
+ availableProviders.push(name);
348
+ if (mod === "openai") availableProviders.push("azure-openai");
349
+ }
350
+ return {
351
+ content_mode: this._config.contentMode,
352
+ debug: this._config.debug,
353
+ dry_run: this._config.dryRun,
354
+ redact_pii: this._config.redactPii,
355
+ providers_available: availableProviders,
356
+ patched_providers: patchedProviders()
357
+ };
358
+ }
359
+ flush() {
360
+ return this._amplitude.flush();
361
+ }
362
+ shutdown() {
363
+ if (this._ownsClient) this._amplitude.shutdown?.();
364
+ }
365
+ };
366
+
367
+ //#endregion
368
+ export { AmplitudeAI };
369
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["availableProviders: string[]"],"sources":["../src/client.ts"],"sourcesContent":["import { BoundAgent } from './bound-agent.js';\nimport { AIConfig } from './config.js';\nimport type { MessageLabel, SessionEnrichments } from './core/enrichments.js';\nimport type { PrivacyConfig } from './core/privacy.js';\nimport {\n trackAiMessage,\n trackEmbedding,\n trackScore,\n trackSessionEnd,\n trackSessionEnrichment,\n trackSpan,\n trackToolCall,\n trackUserMessage,\n} from './core/tracking.js';\nimport { ConfigurationError } from './exceptions.js';\nimport { patchedProviders } from './patching.js';\nimport { setDefaultPropagateContext } from './propagation.js';\nimport { TenantHandle } from './tenant.js';\nimport type {\n AmplitudeClientLike,\n AmplitudeEvent,\n Attachment,\n} from './types.js';\nimport { calculateCost } from './utils/costs.js';\nimport { formatDebugLine, formatDryRunLine } from './utils/debug.js';\nimport { tryRequire } from './utils/resolve-module.js';\n\nconst _MAX_SESSION_TURN_COUNTERS = 10_000;\n\n/**\n * Main Amplitude AI client for tracking LLM interactions.\n *\n * Create an instance with an API key or an existing Amplitude client,\n * then use `.agent()` to create bound agents and `.session()` to\n * manage session context.\n *\n * @example\n * ```typescript\n * const ai = new AmplitudeAI({ apiKey: 'YOUR_KEY' });\n * const agent = ai.agent('my-chatbot', { userId: 'user-1' });\n * const session = agent.session();\n * await session.run(async (s) => {\n * s.trackUserMessage('Hello');\n * s.trackAiMessage('Hi there!', 'gpt-4', 'openai', 150);\n * });\n * ```\n */\nexport class AmplitudeAI {\n protected _amplitude: AmplitudeClientLike;\n protected _ownsClient: boolean;\n protected _config: AIConfig;\n protected _privacyConfig: PrivacyConfig;\n protected _sessionTurnCounters: Map<string, number> = new Map();\n\n constructor(options: {\n amplitude?: AmplitudeClientLike;\n apiKey?: string;\n config?: AIConfig;\n }) {\n if (options.amplitude != null) {\n this._amplitude = options.amplitude;\n this._ownsClient = false;\n } else if (options.apiKey != null) {\n const amplitudeNode = tryRequire('@amplitude/analytics-node') as\n | (AmplitudeClientLike & { init?: (apiKey: string) => unknown })\n | null;\n if (amplitudeNode == null || typeof amplitudeNode.init !== 'function') {\n throw new ConfigurationError(\n '@amplitude/analytics-node is required. Install it as a dependency.',\n );\n }\n amplitudeNode.init(options.apiKey);\n this._amplitude = amplitudeNode;\n this._ownsClient = true;\n } else {\n throw new ConfigurationError(\n \"Provide either an existing Amplitude instance via 'amplitude' or an API key via 'apiKey'.\",\n );\n }\n\n this._config = options.config ?? new AIConfig();\n this._privacyConfig = this._config.toPrivacyConfig();\n setDefaultPropagateContext(this._config.propagateContext);\n\n if (\n this._config.debug ||\n this._config.dryRun ||\n this._config.onEventCallback != null\n ) {\n this._installTrackHook();\n }\n }\n\n private _installTrackHook(): void {\n const originalTrack = this._amplitude.track.bind(this._amplitude);\n const debug = this._config.debug;\n const dryRun = this._config.dryRun;\n const onEvent = this._config.onEventCallback;\n const clientWithConfig = this._amplitude as AmplitudeClientLike & {\n configuration?: { callback?: (...args: unknown[]) => void };\n };\n const existingCallback = clientWithConfig.configuration?.callback;\n let callbackHandledByTransport = false;\n\n if (onEvent != null && clientWithConfig.configuration != null) {\n clientWithConfig.configuration.callback = (...args: unknown[]) => {\n const event = args[0];\n const statusCode = typeof args[1] === 'number' ? args[1] : 0;\n const message = args[2] == null ? null : String(args[2]);\n if (typeof existingCallback === 'function') {\n try {\n existingCallback(...args);\n } catch {\n // preserve hook behavior even if customer callback throws\n }\n }\n try {\n onEvent(event, statusCode, message);\n } catch {\n // swallow callback errors to avoid disrupting tracking\n }\n };\n callbackHandledByTransport = true;\n }\n\n this._amplitude.track = (event: AmplitudeEvent) => {\n if (debug) {\n console.error(formatDebugLine(event));\n }\n if (dryRun) {\n console.error(formatDryRunLine(event));\n }\n if (!dryRun) {\n originalTrack(event);\n }\n if (onEvent != null && (!callbackHandledByTransport || dryRun)) {\n try {\n onEvent(event, dryRun ? -1 : 0, dryRun ? 'dry-run' : null);\n } catch {\n // swallow callback errors to avoid disrupting tracking\n }\n }\n };\n }\n\n get amplitude(): AmplitudeClientLike {\n return this._amplitude;\n }\n\n get config(): AIConfig {\n return this._config;\n }\n\n _nextTurnId(sessionId: string): number {\n if (\n !this._sessionTurnCounters.has(sessionId) &&\n this._sessionTurnCounters.size >= _MAX_SESSION_TURN_COUNTERS\n ) {\n const oldestKey = this._sessionTurnCounters.keys().next().value;\n if (oldestKey != null) this._sessionTurnCounters.delete(oldestKey);\n }\n\n const current = this._sessionTurnCounters.get(sessionId) ?? 0;\n const next = current + 1;\n this._sessionTurnCounters.set(sessionId, next);\n return next;\n }\n\n // ---------------------------------------------------------------\n // Message Tracking\n // ---------------------------------------------------------------\n\n trackUserMessage(opts: {\n userId: string;\n content: string;\n sessionId: string;\n traceId?: string | null;\n turnId?: number | null;\n messageId?: string | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n isRegeneration?: boolean;\n isEdit?: boolean;\n editedMessageId?: string | null;\n attachments?: Attachment[] | null;\n labels?: MessageLabel[] | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): string {\n const effectiveTurnId = opts.turnId ?? this._nextTurnId(opts.sessionId);\n return trackUserMessage({\n amplitude: this._amplitude,\n userId: opts.userId,\n messageContent: opts.content,\n sessionId: opts.sessionId,\n traceId: opts.traceId,\n turnId: effectiveTurnId,\n messageId: opts.messageId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n isRegeneration: opts.isRegeneration,\n isEdit: opts.isEdit,\n editedMessageId: opts.editedMessageId,\n attachments: opts.attachments,\n labels: opts.labels,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n trackAiMessage(opts: {\n userId: string;\n content: string;\n sessionId: string;\n model: string;\n provider: string;\n latencyMs: number;\n inputTokens?: number | null;\n outputTokens?: number | null;\n reasoningTokens?: number | null;\n cacheReadTokens?: number | null;\n cacheCreationTokens?: number | null;\n totalTokens?: number | null;\n totalCostUsd?: number | null;\n finishReason?: string | null;\n toolCalls?: Array<Record<string, unknown>> | null;\n reasoningContent?: string | null;\n systemPrompt?: string | null;\n temperature?: number | null;\n maxOutputTokens?: number | null;\n topP?: number | null;\n isStreaming?: boolean | null;\n promptId?: string | null;\n wasCopied?: boolean;\n wasCached?: boolean;\n modelTier?: string | null;\n attachments?: Attachment[] | null;\n labels?: MessageLabel[] | null;\n traceId?: string | null;\n turnId?: number | null;\n messageId?: string | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n isError?: boolean;\n errorMessage?: string | null;\n ttfbMs?: number | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n privacyConfig?: PrivacyConfig | null;\n }): string {\n const effectiveTurnId = opts.turnId ?? this._nextTurnId(opts.sessionId);\n\n let effectiveCost = opts.totalCostUsd ?? null;\n if (\n effectiveCost == null &&\n opts.inputTokens != null &&\n opts.outputTokens != null\n ) {\n try {\n effectiveCost = calculateCost({\n modelName: opts.model,\n inputTokens: opts.inputTokens,\n outputTokens: opts.outputTokens,\n reasoningTokens: opts.reasoningTokens ?? 0,\n cacheReadInputTokens: opts.cacheReadTokens ?? 0,\n cacheCreationInputTokens: opts.cacheCreationTokens ?? 0,\n });\n } catch {\n // cost calculation is best-effort\n }\n }\n\n return trackAiMessage({\n amplitude: this._amplitude,\n userId: opts.userId,\n modelName: opts.model,\n provider: opts.provider,\n responseContent: opts.content,\n latencyMs: opts.latencyMs,\n sessionId: opts.sessionId,\n traceId: opts.traceId,\n turnId: effectiveTurnId,\n messageId: opts.messageId,\n inputTokens: opts.inputTokens,\n outputTokens: opts.outputTokens,\n reasoningTokens: opts.reasoningTokens,\n cacheReadInputTokens: opts.cacheReadTokens,\n cacheCreationInputTokens: opts.cacheCreationTokens,\n totalTokens: opts.totalTokens,\n totalCostUsd: effectiveCost,\n finishReason: opts.finishReason,\n toolCalls: opts.toolCalls,\n reasoningContent: opts.reasoningContent,\n systemPrompt: opts.systemPrompt,\n temperature: opts.temperature,\n maxOutputTokens: opts.maxOutputTokens,\n topP: opts.topP,\n isStreaming: opts.isStreaming,\n promptId: opts.promptId,\n wasCopied: opts.wasCopied,\n wasCached: opts.wasCached,\n modelTier: opts.modelTier,\n attachments: opts.attachments,\n labels: opts.labels,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n isError: opts.isError,\n errorMessage: opts.errorMessage,\n providerTtfbMs: opts.ttfbMs,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: opts.privacyConfig ?? this._privacyConfig,\n });\n }\n\n // ---------------------------------------------------------------\n // Operation Tracking\n // ---------------------------------------------------------------\n\n trackToolCall(opts: {\n userId: string;\n toolName: string;\n latencyMs: number;\n success: boolean;\n sessionId?: string | null;\n traceId?: string | null;\n turnId?: number | null;\n invocationId?: string | null;\n input?: unknown;\n output?: unknown;\n parentMessageId?: string | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n errorMessage?: string | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): string {\n return trackToolCall({\n amplitude: this._amplitude,\n userId: opts.userId,\n toolName: opts.toolName,\n success: opts.success,\n latencyMs: opts.latencyMs,\n sessionId: opts.sessionId,\n traceId: opts.traceId,\n turnId: opts.turnId ?? undefined,\n invocationId: opts.invocationId,\n toolInput: opts.input,\n toolOutput: opts.output,\n parentMessageId: opts.parentMessageId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n errorMessage: opts.errorMessage,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n trackEmbedding(opts: {\n userId: string;\n model: string;\n provider: string;\n latencyMs: number;\n inputTokens?: number | null;\n dimensions?: number | null;\n totalCostUsd?: number | 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 agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): string {\n return trackEmbedding({\n amplitude: this._amplitude,\n userId: opts.userId,\n model: opts.model,\n provider: opts.provider,\n latencyMs: opts.latencyMs,\n inputTokens: opts.inputTokens,\n dimensions: opts.dimensions,\n totalCostUsd: opts.totalCostUsd,\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 agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n trackSpan(opts: {\n userId: string;\n spanName: string;\n traceId: string;\n latencyMs: number;\n inputState?: Record<string, unknown> | null;\n outputState?: Record<string, unknown> | null;\n parentSpanId?: string | null;\n isError?: boolean;\n errorMessage?: string | null;\n sessionId?: string | null;\n turnId?: number | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): string {\n return trackSpan({\n amplitude: this._amplitude,\n userId: opts.userId,\n spanName: opts.spanName,\n traceId: opts.traceId,\n latencyMs: opts.latencyMs,\n inputState: opts.inputState,\n outputState: opts.outputState,\n parentSpanId: opts.parentSpanId,\n isError: opts.isError,\n errorMessage: opts.errorMessage,\n sessionId: opts.sessionId,\n turnId: opts.turnId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n // ---------------------------------------------------------------\n // Session Management\n // ---------------------------------------------------------------\n\n trackSessionEnd(opts: {\n userId: string;\n sessionId: string;\n enrichments?: SessionEnrichments | null;\n traceId?: string | null;\n turnId?: number | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n abandonmentTurn?: number | null;\n idleTimeoutMinutes?: number | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): void {\n trackSessionEnd({\n amplitude: this._amplitude,\n userId: opts.userId,\n sessionId: opts.sessionId,\n enrichments: opts.enrichments,\n traceId: opts.traceId,\n turnId: opts.turnId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n abandonmentTurn: opts.abandonmentTurn,\n idleTimeoutMinutes: opts.idleTimeoutMinutes,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n this._sessionTurnCounters.delete(opts.sessionId);\n }\n\n trackSessionEnrichment(opts: {\n userId: string;\n sessionId: string;\n enrichments: SessionEnrichments;\n traceId?: string | null;\n turnId?: number | null;\n agentId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): void {\n trackSessionEnrichment({\n amplitude: this._amplitude,\n userId: opts.userId,\n sessionId: opts.sessionId,\n enrichments: opts.enrichments,\n traceId: opts.traceId,\n turnId: opts.turnId,\n agentId: opts.agentId,\n parentAgentId: opts.parentAgentId,\n customerOrgId: opts.customerOrgId,\n agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n // ---------------------------------------------------------------\n // Scoring\n // ---------------------------------------------------------------\n\n score(opts: {\n userId: string;\n name: string;\n value: number;\n targetId: string;\n targetType?: string;\n source?: string;\n comment?: 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 agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n eventProperties?: Record<string, unknown> | null;\n groups?: Record<string, unknown> | null;\n }): void {\n trackScore({\n amplitude: this._amplitude,\n userId: opts.userId,\n name: opts.name,\n value: opts.value,\n targetId: opts.targetId,\n targetType: opts.targetType,\n source: opts.source,\n comment: opts.comment,\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 agentVersion: opts.agentVersion,\n context: opts.context,\n env: opts.env,\n eventProperties: opts.eventProperties,\n groups: opts.groups,\n privacyConfig: this._privacyConfig,\n });\n }\n\n // ---------------------------------------------------------------\n // Bound Agent Factory\n // ---------------------------------------------------------------\n\n agent(\n agentId: string,\n opts: {\n userId?: string | null;\n parentAgentId?: string | null;\n customerOrgId?: string | null;\n agentVersion?: string | null;\n context?: Record<string, unknown> | null;\n env?: string | null;\n sessionId?: string | null;\n traceId?: string | null;\n groups?: Record<string, unknown> | null;\n deviceId?: string | null;\n browserSessionId?: string | null;\n } = {},\n ): BoundAgent {\n return new BoundAgent(this, { agentId, ...opts });\n }\n\n // ---------------------------------------------------------------\n // Tenant Factory\n // ---------------------------------------------------------------\n\n tenant(\n customerOrgId: string,\n opts: { groups?: Record<string, unknown> | null; env?: string | null } = {},\n ): TenantHandle {\n return new TenantHandle(this, { customerOrgId, ...opts });\n }\n\n // ---------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------\n\n status(): Record<string, unknown> {\n const availableProviders: string[] = [];\n for (const mod of [\n 'openai',\n '@anthropic-ai/sdk',\n '@google/generative-ai',\n '@aws-sdk/client-bedrock-runtime',\n '@mistralai/mistralai',\n ]) {\n if (tryRequire(mod) != null) {\n const name =\n mod === '@anthropic-ai/sdk'\n ? 'anthropic'\n : mod === '@google/generative-ai'\n ? 'gemini'\n : mod === '@aws-sdk/client-bedrock-runtime'\n ? 'bedrock'\n : mod === '@mistralai/mistralai'\n ? 'mistral'\n : mod;\n availableProviders.push(name);\n if (mod === 'openai') {\n availableProviders.push('azure-openai');\n }\n }\n }\n\n return {\n content_mode: this._config.contentMode,\n debug: this._config.debug,\n dry_run: this._config.dryRun,\n redact_pii: this._config.redactPii,\n providers_available: availableProviders,\n patched_providers: patchedProviders(),\n };\n }\n\n flush(): unknown {\n return this._amplitude.flush();\n }\n\n shutdown(): void {\n if (this._ownsClient) {\n this._amplitude.shutdown?.();\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AA2BA,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;AAoBnC,IAAa,cAAb,MAAyB;CACvB,AAAU;CACV,AAAU;CACV,AAAU;CACV,AAAU;CACV,AAAU,uCAA4C,IAAI,KAAK;CAE/D,YAAY,SAIT;AACD,MAAI,QAAQ,aAAa,MAAM;AAC7B,QAAK,aAAa,QAAQ;AAC1B,QAAK,cAAc;aACV,QAAQ,UAAU,MAAM;GACjC,MAAM,gBAAgB,WAAW,4BAA4B;AAG7D,OAAI,iBAAiB,QAAQ,OAAO,cAAc,SAAS,WACzD,OAAM,IAAI,mBACR,qEACD;AAEH,iBAAc,KAAK,QAAQ,OAAO;AAClC,QAAK,aAAa;AAClB,QAAK,cAAc;QAEnB,OAAM,IAAI,mBACR,4FACD;AAGH,OAAK,UAAU,QAAQ,UAAU,IAAI,UAAU;AAC/C,OAAK,iBAAiB,KAAK,QAAQ,iBAAiB;AACpD,6BAA2B,KAAK,QAAQ,iBAAiB;AAEzD,MACE,KAAK,QAAQ,SACb,KAAK,QAAQ,UACb,KAAK,QAAQ,mBAAmB,KAEhC,MAAK,mBAAmB;;CAI5B,AAAQ,oBAA0B;EAChC,MAAM,gBAAgB,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW;EACjE,MAAM,QAAQ,KAAK,QAAQ;EAC3B,MAAM,SAAS,KAAK,QAAQ;EAC5B,MAAM,UAAU,KAAK,QAAQ;EAC7B,MAAM,mBAAmB,KAAK;EAG9B,MAAM,mBAAmB,iBAAiB,eAAe;EACzD,IAAI,6BAA6B;AAEjC,MAAI,WAAW,QAAQ,iBAAiB,iBAAiB,MAAM;AAC7D,oBAAiB,cAAc,YAAY,GAAG,SAAoB;IAChE,MAAM,QAAQ,KAAK;IACnB,MAAM,aAAa,OAAO,KAAK,OAAO,WAAW,KAAK,KAAK;IAC3D,MAAM,UAAU,KAAK,MAAM,OAAO,OAAO,OAAO,KAAK,GAAG;AACxD,QAAI,OAAO,qBAAqB,WAC9B,KAAI;AACF,sBAAiB,GAAG,KAAK;YACnB;AAIV,QAAI;AACF,aAAQ,OAAO,YAAY,QAAQ;YAC7B;;AAIV,gCAA6B;;AAG/B,OAAK,WAAW,SAAS,UAA0B;AACjD,OAAI,MACF,SAAQ,MAAM,gBAAgB,MAAM,CAAC;AAEvC,OAAI,OACF,SAAQ,MAAM,iBAAiB,MAAM,CAAC;AAExC,OAAI,CAAC,OACH,eAAc,MAAM;AAEtB,OAAI,WAAW,SAAS,CAAC,8BAA8B,QACrD,KAAI;AACF,YAAQ,OAAO,SAAS,KAAK,GAAG,SAAS,YAAY,KAAK;WACpD;;;CAOd,IAAI,YAAiC;AACnC,SAAO,KAAK;;CAGd,IAAI,SAAmB;AACrB,SAAO,KAAK;;CAGd,YAAY,WAA2B;AACrC,MACE,CAAC,KAAK,qBAAqB,IAAI,UAAU,IACzC,KAAK,qBAAqB,QAAQ,4BAClC;GACA,MAAM,YAAY,KAAK,qBAAqB,MAAM,CAAC,MAAM,CAAC;AAC1D,OAAI,aAAa,KAAM,MAAK,qBAAqB,OAAO,UAAU;;EAIpE,MAAM,QADU,KAAK,qBAAqB,IAAI,UAAU,IAAI,KACrC;AACvB,OAAK,qBAAqB,IAAI,WAAW,KAAK;AAC9C,SAAO;;CAOT,iBAAiB,MAoBN;EACT,MAAM,kBAAkB,KAAK,UAAU,KAAK,YAAY,KAAK,UAAU;AACvE,SAAO,iBAAiB;GACtB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,gBAAgB,KAAK;GACrB,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,QAAQ;GACR,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,gBAAgB,KAAK;GACrB,QAAQ,KAAK;GACb,iBAAiB,KAAK;GACtB,aAAa,KAAK;GAClB,QAAQ,KAAK;GACb,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAGJ,eAAe,MA2CJ;EACT,MAAM,kBAAkB,KAAK,UAAU,KAAK,YAAY,KAAK,UAAU;EAEvE,IAAI,gBAAgB,KAAK,gBAAgB;AACzC,MACE,iBAAiB,QACjB,KAAK,eAAe,QACpB,KAAK,gBAAgB,KAErB,KAAI;AACF,mBAAgB,cAAc;IAC5B,WAAW,KAAK;IAChB,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,iBAAiB,KAAK,mBAAmB;IACzC,sBAAsB,KAAK,mBAAmB;IAC9C,0BAA0B,KAAK,uBAAuB;IACvD,CAAC;UACI;AAKV,SAAO,eAAe;GACpB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,UAAU,KAAK;GACf,iBAAiB,KAAK;GACtB,WAAW,KAAK;GAChB,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,QAAQ;GACR,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,cAAc,KAAK;GACnB,iBAAiB,KAAK;GACtB,sBAAsB,KAAK;GAC3B,0BAA0B,KAAK;GAC/B,aAAa,KAAK;GAClB,cAAc;GACd,cAAc,KAAK;GACnB,WAAW,KAAK;GAChB,kBAAkB,KAAK;GACvB,cAAc,KAAK;GACnB,aAAa,KAAK;GAClB,iBAAiB,KAAK;GACtB,MAAM,KAAK;GACX,aAAa,KAAK;GAClB,UAAU,KAAK;GACf,WAAW,KAAK;GAChB,WAAW,KAAK;GAChB,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,SAAS,KAAK;GACd,cAAc,KAAK;GACnB,gBAAgB,KAAK;GACrB,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK,iBAAiB,KAAK;GAC3C,CAAC;;CAOJ,cAAc,MAqBH;AACT,SAAO,cAAc;GACnB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,QAAQ,KAAK,UAAU;GACvB,cAAc,KAAK;GACnB,WAAW,KAAK;GAChB,YAAY,KAAK;GACjB,iBAAiB,KAAK;GACtB,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,cAAc,KAAK;GACnB,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAGJ,eAAe,MAmBJ;AACT,SAAO,eAAe;GACpB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,YAAY,KAAK;GACjB,cAAc,KAAK;GACnB,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAGJ,UAAU,MAoBC;AACT,SAAO,UAAU;GACf,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,YAAY,KAAK;GACjB,aAAa,KAAK;GAClB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,cAAc,KAAK;GACnB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAOJ,gBAAgB,MAgBP;AACP,kBAAgB;GACd,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,iBAAiB,KAAK;GACtB,oBAAoB,KAAK;GACzB,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;AACF,OAAK,qBAAqB,OAAO,KAAK,UAAU;;CAGlD,uBAAuB,MAcd;AACP,yBAAuB;GACrB,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAOJ,MAAM,MAmBG;AACP,aAAW;GACT,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,MAAM,KAAK;GACX,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,eAAe,KAAK;GACpB,cAAc,KAAK;GACnB,SAAS,KAAK;GACd,KAAK,KAAK;GACV,iBAAiB,KAAK;GACtB,QAAQ,KAAK;GACb,eAAe,KAAK;GACrB,CAAC;;CAOJ,MACE,SACA,OAYI,EAAE,EACM;AACZ,SAAO,IAAI,WAAW,MAAM;GAAE;GAAS,GAAG;GAAM,CAAC;;CAOnD,OACE,eACA,OAAyE,EAAE,EAC7D;AACd,SAAO,IAAI,aAAa,MAAM;GAAE;GAAe,GAAG;GAAM,CAAC;;CAO3D,SAAkC;EAChC,MAAMA,qBAA+B,EAAE;AACvC,OAAK,MAAM,OAAO;GAChB;GACA;GACA;GACA;GACA;GACD,CACC,KAAI,WAAW,IAAI,IAAI,MAAM;GAC3B,MAAM,OACJ,QAAQ,sBACJ,cACA,QAAQ,0BACN,WACA,QAAQ,oCACN,YACA,QAAQ,yBACN,YACA;AACZ,sBAAmB,KAAK,KAAK;AAC7B,OAAI,QAAQ,SACV,oBAAmB,KAAK,eAAe;;AAK7C,SAAO;GACL,cAAc,KAAK,QAAQ;GAC3B,OAAO,KAAK,QAAQ;GACpB,SAAS,KAAK,QAAQ;GACtB,YAAY,KAAK,QAAQ;GACzB,qBAAqB;GACrB,mBAAmB,kBAAkB;GACtC;;CAGH,QAAiB;AACf,SAAO,KAAK,WAAW,OAAO;;CAGhC,WAAiB;AACf,MAAI,KAAK,YACP,MAAK,WAAW,YAAY"}