@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,38 @@
1
+ import { AmplitudeAI } from "../client.js";
2
+
3
+ //#region src/integrations/anthropic-tools.d.ts
4
+
5
+ interface ToolLoopOptions {
6
+ amplitudeAI: AmplitudeAI;
7
+ userId?: string;
8
+ sessionId?: string;
9
+ agentId?: string;
10
+ env?: string;
11
+ maxTurns?: number;
12
+ }
13
+ declare class AmplitudeToolLoop {
14
+ private _ai;
15
+ private _userId;
16
+ private _sessionId;
17
+ private _agentId;
18
+ private _env;
19
+ private _maxTurns;
20
+ constructor(options: ToolLoopOptions);
21
+ /**
22
+ * Run a tool loop with the Anthropic API.
23
+ *
24
+ * This method orchestrates multi-turn tool_use conversations,
25
+ * tracking each AI response and tool call along the way.
26
+ */
27
+ run(options: {
28
+ client: unknown;
29
+ model: string;
30
+ messages: Array<Record<string, unknown>>;
31
+ tools: Array<Record<string, unknown>>;
32
+ system?: string;
33
+ toolExecutor: (name: string, input: Record<string, unknown>) => Promise<unknown>;
34
+ }): Promise<Array<Record<string, unknown>>>;
35
+ }
36
+ //#endregion
37
+ export { AmplitudeToolLoop, ToolLoopOptions };
38
+ //# sourceMappingURL=anthropic-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-tools.d.ts","names":[],"sources":["../../src/integrations/anthropic-tools.ts"],"sourcesContent":[],"mappings":";;;;AA6CoB,UAnCH,eAAA,CAmCG;EAAN,WAAA,EAlCC,WAkCD;EACG,MAAA,CAAA,EAAA,MAAA;EAAN,SAAA,CAAA,EAAA,MAAA;EAIE,OAAA,CAAA,EAAA,MAAA;EACJ,GAAA,CAAA,EAAA,MAAA;EACW,QAAA,CAAA,EAAA,MAAA;;AAAd,cAjCO,iBAAA,CAiCP;EAAO,QAAA,GAAA;;;;;;uBAzBU;;;;;;;;;;cAkBT,MAAM;WACT,MAAM;;wCAIJ,4BACJ;MACH,QAAQ,MAAM"}
@@ -0,0 +1,175 @@
1
+ import { getActiveContext } from "../context.js";
2
+ import { calculateCost } from "../utils/costs.js";
3
+
4
+ //#region src/integrations/anthropic-tools.ts
5
+ var AmplitudeToolLoop = class {
6
+ _ai;
7
+ _userId;
8
+ _sessionId;
9
+ _agentId;
10
+ _env;
11
+ _maxTurns;
12
+ constructor(options) {
13
+ this._ai = options.amplitudeAI;
14
+ this._userId = options.userId ?? null;
15
+ this._sessionId = options.sessionId ?? null;
16
+ this._agentId = options.agentId ?? null;
17
+ this._env = options.env ?? null;
18
+ this._maxTurns = options.maxTurns ?? 10;
19
+ }
20
+ /**
21
+ * Run a tool loop with the Anthropic API.
22
+ *
23
+ * This method orchestrates multi-turn tool_use conversations,
24
+ * tracking each AI response and tool call along the way.
25
+ */
26
+ async run(options) {
27
+ const ctx = getActiveContext();
28
+ const userId = this._userId ?? ctx?.userId ?? "unknown";
29
+ const sessionId = this._sessionId ?? ctx?.sessionId ?? "tool-loop-session";
30
+ const agentId = this._agentId ?? ctx?.agentId ?? void 0;
31
+ const env = this._env ?? ctx?.env ?? void 0;
32
+ const messages = [...options.messages];
33
+ const allResponses = [];
34
+ let currentTurnId = 1;
35
+ for (const msg of messages) {
36
+ const userText = _extractUserText(msg);
37
+ if (msg.role === "user" && userText.length > 0) {
38
+ this._ai.trackUserMessage({
39
+ userId,
40
+ content: userText,
41
+ sessionId,
42
+ agentId,
43
+ env,
44
+ turnId: currentTurnId
45
+ });
46
+ currentTurnId += 1;
47
+ }
48
+ }
49
+ for (let turn = 0; turn < this._maxTurns; turn++) {
50
+ const messagesApi = options.client.messages;
51
+ const createFn = messagesApi.create;
52
+ const startTime = performance.now();
53
+ const response = await createFn.call(messagesApi, {
54
+ model: options.model,
55
+ messages,
56
+ tools: options.tools,
57
+ system: options.system
58
+ });
59
+ const latencyMs = performance.now() - startTime;
60
+ allResponses.push(response);
61
+ const content = _normalizeContentBlocks(response.content);
62
+ const responseText = _extractAssistantText(content);
63
+ const toolUseBlocks = content.filter((b) => b.type === "tool_use");
64
+ const usage = response.usage;
65
+ const cacheRead = usage?.cache_read_input_tokens ?? 0;
66
+ const cacheCreation = usage?.cache_creation_input_tokens ?? 0;
67
+ const rawInput = usage?.input_tokens ?? 0;
68
+ const normalizedInput = cacheRead || cacheCreation ? rawInput + cacheRead + cacheCreation : rawInput;
69
+ let costUsd;
70
+ if (usage?.input_tokens != null && usage?.output_tokens != null) try {
71
+ const cost = calculateCost({
72
+ modelName: options.model,
73
+ inputTokens: normalizedInput,
74
+ outputTokens: usage.output_tokens,
75
+ cacheReadInputTokens: cacheRead,
76
+ cacheCreationInputTokens: cacheCreation
77
+ });
78
+ if (cost > 0) costUsd = cost;
79
+ } catch {}
80
+ this._ai.trackAiMessage({
81
+ userId,
82
+ content: responseText,
83
+ sessionId,
84
+ model: options.model,
85
+ provider: "anthropic",
86
+ latencyMs,
87
+ turnId: currentTurnId,
88
+ agentId,
89
+ env,
90
+ inputTokens: normalizedInput || void 0,
91
+ outputTokens: usage?.output_tokens,
92
+ cacheReadTokens: cacheRead || void 0,
93
+ cacheCreationTokens: cacheCreation || void 0,
94
+ totalCostUsd: costUsd
95
+ });
96
+ currentTurnId += 1;
97
+ if (response.stop_reason !== "tool_use" || toolUseBlocks.length === 0) break;
98
+ messages.push({
99
+ role: "assistant",
100
+ content
101
+ });
102
+ const toolResults = [];
103
+ for (const toolUse of toolUseBlocks) {
104
+ const toolName = String(toolUse.name);
105
+ const toolInput = toolUse.input;
106
+ const toolStartTime = performance.now();
107
+ try {
108
+ const output = await options.toolExecutor(toolName, toolInput);
109
+ const toolLatencyMs = performance.now() - toolStartTime;
110
+ this._ai.trackToolCall({
111
+ userId,
112
+ toolName,
113
+ latencyMs: toolLatencyMs,
114
+ success: true,
115
+ sessionId,
116
+ agentId,
117
+ env,
118
+ input: toolInput,
119
+ output: output == null ? void 0 : String(output)
120
+ });
121
+ toolResults.push({
122
+ type: "tool_result",
123
+ tool_use_id: toolUse.id,
124
+ content: output == null ? "" : String(output)
125
+ });
126
+ } catch (error) {
127
+ const toolLatencyMs = performance.now() - toolStartTime;
128
+ this._ai.trackToolCall({
129
+ userId,
130
+ toolName,
131
+ latencyMs: toolLatencyMs,
132
+ success: false,
133
+ sessionId,
134
+ agentId,
135
+ env,
136
+ input: toolInput,
137
+ errorMessage: error instanceof Error ? error.message : String(error)
138
+ });
139
+ toolResults.push({
140
+ type: "tool_result",
141
+ tool_use_id: toolUse.id,
142
+ content: `Error: ${error instanceof Error ? error.message : String(error)}`,
143
+ is_error: true
144
+ });
145
+ }
146
+ }
147
+ messages.push({
148
+ role: "user",
149
+ content: toolResults
150
+ });
151
+ }
152
+ return allResponses;
153
+ }
154
+ };
155
+ function _extractUserText(msg) {
156
+ if (typeof msg.content === "string") return msg.content;
157
+ if (!Array.isArray(msg.content)) return "";
158
+ return msg.content.map((block) => {
159
+ if (typeof block === "string") return block;
160
+ const item = block;
161
+ return typeof item.text === "string" ? item.text : "";
162
+ }).join("");
163
+ }
164
+ function _extractAssistantText(content) {
165
+ if (!Array.isArray(content)) return "";
166
+ return content.filter((b) => b.type === "text").map((b) => String(b.text ?? "")).join("");
167
+ }
168
+ function _normalizeContentBlocks(value) {
169
+ if (!Array.isArray(value)) return [];
170
+ return value.filter((v) => v != null && typeof v === "object");
171
+ }
172
+
173
+ //#endregion
174
+ export { AmplitudeToolLoop };
175
+ //# sourceMappingURL=anthropic-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-tools.js","names":["allResponses: Array<Record<string, unknown>>","costUsd: number | undefined","toolResults: Array<Record<string, unknown>>"],"sources":["../../src/integrations/anthropic-tools.ts"],"sourcesContent":["/**\n * Anthropic tool loop integration.\n *\n * Runs Anthropic's multi-turn tool_use loop and tracks each turn.\n */\n\nimport type { AmplitudeAI } from '../client.js';\nimport { getActiveContext } from '../context.js';\nimport { calculateCost } from '../utils/costs.js';\n\nexport interface ToolLoopOptions {\n amplitudeAI: AmplitudeAI;\n userId?: string;\n sessionId?: string;\n agentId?: string;\n env?: string;\n maxTurns?: number;\n}\n\nexport class AmplitudeToolLoop {\n private _ai: AmplitudeAI;\n private _userId: string | null;\n private _sessionId: string | null;\n private _agentId: string | null;\n private _env: string | null;\n private _maxTurns: number;\n\n constructor(options: ToolLoopOptions) {\n this._ai = options.amplitudeAI;\n this._userId = options.userId ?? null;\n this._sessionId = options.sessionId ?? null;\n this._agentId = options.agentId ?? null;\n this._env = options.env ?? null;\n this._maxTurns = options.maxTurns ?? 10;\n }\n\n /**\n * Run a tool loop with the Anthropic API.\n *\n * This method orchestrates multi-turn tool_use conversations,\n * tracking each AI response and tool call along the way.\n */\n async run(options: {\n client: unknown;\n model: string;\n messages: Array<Record<string, unknown>>;\n tools: Array<Record<string, unknown>>;\n system?: string;\n toolExecutor: (\n name: string,\n input: Record<string, unknown>,\n ) => Promise<unknown>;\n }): Promise<Array<Record<string, unknown>>> {\n const ctx = getActiveContext();\n const userId = this._userId ?? ctx?.userId ?? 'unknown';\n const sessionId = this._sessionId ?? ctx?.sessionId ?? 'tool-loop-session';\n const agentId = this._agentId ?? ctx?.agentId ?? undefined;\n const env = this._env ?? ctx?.env ?? undefined;\n\n const messages = [...options.messages];\n const allResponses: Array<Record<string, unknown>> = [];\n let currentTurnId = 1;\n\n for (const msg of messages) {\n const userText = _extractUserText(msg);\n if (msg.role === 'user' && userText.length > 0) {\n this._ai.trackUserMessage({\n userId,\n content: userText,\n sessionId,\n agentId,\n env,\n turnId: currentTurnId,\n });\n currentTurnId += 1;\n }\n }\n\n for (let turn = 0; turn < this._maxTurns; turn++) {\n const clientObj = options.client as Record<string, unknown>;\n const messagesApi = clientObj.messages as Record<string, unknown>;\n const createFn = messagesApi.create as (\n ...args: unknown[]\n ) => Promise<unknown>;\n\n const startTime = performance.now();\n const response = (await createFn.call(messagesApi, {\n model: options.model,\n messages,\n tools: options.tools,\n system: options.system,\n })) as Record<string, unknown>;\n\n const latencyMs = performance.now() - startTime;\n allResponses.push(response);\n\n const content = _normalizeContentBlocks(response.content);\n const responseText = _extractAssistantText(content);\n const toolUseBlocks = content.filter((b) => b.type === 'tool_use');\n const usage = response.usage as Record<string, number> | undefined;\n\n const cacheRead = usage?.cache_read_input_tokens ?? 0;\n const cacheCreation = usage?.cache_creation_input_tokens ?? 0;\n const rawInput = usage?.input_tokens ?? 0;\n const normalizedInput =\n cacheRead || cacheCreation\n ? rawInput + cacheRead + cacheCreation\n : rawInput;\n\n let costUsd: number | undefined;\n if (usage?.input_tokens != null && usage?.output_tokens != null) {\n try {\n const cost = calculateCost({\n modelName: options.model,\n inputTokens: normalizedInput,\n outputTokens: usage.output_tokens,\n cacheReadInputTokens: cacheRead,\n cacheCreationInputTokens: cacheCreation,\n });\n if (cost > 0) costUsd = cost;\n } catch {\n // cost calculation is best-effort\n }\n }\n\n this._ai.trackAiMessage({\n userId,\n content: responseText,\n sessionId,\n model: options.model,\n provider: 'anthropic',\n latencyMs,\n turnId: currentTurnId,\n agentId,\n env,\n inputTokens: normalizedInput || undefined,\n outputTokens: usage?.output_tokens,\n cacheReadTokens: cacheRead || undefined,\n cacheCreationTokens: cacheCreation || undefined,\n totalCostUsd: costUsd,\n });\n currentTurnId += 1;\n\n if (response.stop_reason !== 'tool_use' || toolUseBlocks.length === 0) {\n break;\n }\n\n messages.push({ role: 'assistant', content });\n\n const toolResults: Array<Record<string, unknown>> = [];\n for (const toolUse of toolUseBlocks) {\n const toolName = String(toolUse.name);\n const toolInput = toolUse.input as Record<string, unknown>;\n const toolStartTime = performance.now();\n\n try {\n const output = await options.toolExecutor(toolName, toolInput);\n const toolLatencyMs = performance.now() - toolStartTime;\n\n this._ai.trackToolCall({\n userId,\n toolName,\n latencyMs: toolLatencyMs,\n success: true,\n sessionId,\n agentId,\n env,\n input: toolInput,\n output: output == null ? undefined : String(output),\n });\n\n toolResults.push({\n type: 'tool_result',\n tool_use_id: toolUse.id,\n content: output == null ? '' : String(output),\n });\n } catch (error) {\n const toolLatencyMs = performance.now() - toolStartTime;\n\n this._ai.trackToolCall({\n userId,\n toolName,\n latencyMs: toolLatencyMs,\n success: false,\n sessionId,\n agentId,\n env,\n input: toolInput,\n errorMessage:\n error instanceof Error ? error.message : String(error),\n });\n\n toolResults.push({\n type: 'tool_result',\n tool_use_id: toolUse.id,\n content: `Error: ${error instanceof Error ? error.message : String(error)}`,\n is_error: true,\n });\n }\n }\n\n messages.push({ role: 'user', content: toolResults });\n }\n\n return allResponses;\n }\n}\n\nfunction _extractUserText(msg: Record<string, unknown>): string {\n if (typeof msg.content === 'string') return msg.content;\n if (!Array.isArray(msg.content)) return '';\n return msg.content\n .map((block) => {\n if (typeof block === 'string') return block;\n const item = block as Record<string, unknown>;\n return typeof item.text === 'string' ? item.text : '';\n })\n .join('');\n}\n\nfunction _extractAssistantText(\n content: Array<Record<string, unknown>> | undefined,\n): string {\n if (!Array.isArray(content)) return '';\n return content\n .filter((b) => b.type === 'text')\n .map((b) => String(b.text ?? ''))\n .join('');\n}\n\nfunction _normalizeContentBlocks(\n value: unknown,\n): Array<Record<string, unknown>> {\n if (!Array.isArray(value)) return [];\n return value.filter((v) => v != null && typeof v === 'object') as Array<\n Record<string, unknown>\n >;\n}\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ //#region src/integrations/crewai.d.ts
2
+ /**
3
+ * CrewAI integration — stub for TypeScript.
4
+ *
5
+ * CrewAI is a Python-only framework. This module is a placeholder
6
+ * to maintain API parity with the Python SDK. It will throw an
7
+ * informative error if someone tries to use it.
8
+ */
9
+ declare class AmplitudeCrewAIHooks {
10
+ constructor();
11
+ }
12
+ //#endregion
13
+ export { AmplitudeCrewAIHooks };
14
+ //# sourceMappingURL=crewai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.d.ts","names":[],"sources":["../../src/integrations/crewai.ts"],"sourcesContent":[],"mappings":";;AAUA;;;;;;cAAa,oBAAA"}
@@ -0,0 +1,19 @@
1
+ import { ProviderError } from "../exceptions.js";
2
+
3
+ //#region src/integrations/crewai.ts
4
+ /**
5
+ * CrewAI integration — stub for TypeScript.
6
+ *
7
+ * CrewAI is a Python-only framework. This module is a placeholder
8
+ * to maintain API parity with the Python SDK. It will throw an
9
+ * informative error if someone tries to use it.
10
+ */
11
+ var AmplitudeCrewAIHooks = class {
12
+ constructor() {
13
+ throw new ProviderError("CrewAI is a Python-only framework. The @amplitude/ai CrewAI integration is not available in Node.js. Use the LangChain or OpenTelemetry integration instead.");
14
+ }
15
+ };
16
+
17
+ //#endregion
18
+ export { AmplitudeCrewAIHooks };
19
+ //# sourceMappingURL=crewai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.js","names":[],"sources":["../../src/integrations/crewai.ts"],"sourcesContent":["/**\n * CrewAI integration — stub for TypeScript.\n *\n * CrewAI is a Python-only framework. This module is a placeholder\n * to maintain API parity with the Python SDK. It will throw an\n * informative error if someone tries to use it.\n */\n\nimport { ProviderError } from '../exceptions.js';\n\nexport class AmplitudeCrewAIHooks {\n constructor() {\n throw new ProviderError(\n 'CrewAI is a Python-only framework. The @amplitude/ai CrewAI integration ' +\n 'is not available in Node.js. Use the LangChain or OpenTelemetry integration instead.',\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAa,uBAAb,MAAkC;CAChC,cAAc;AACZ,QAAM,IAAI,cACR,+JAED"}
@@ -0,0 +1,37 @@
1
+ import { PrivacyConfig } from "../core/privacy.js";
2
+ import { AmplitudeAI } from "../client.js";
3
+
4
+ //#region src/integrations/langchain.d.ts
5
+
6
+ interface CallbackHandlerOptions {
7
+ amplitudeAI: AmplitudeAI;
8
+ userId?: string;
9
+ sessionId?: string;
10
+ agentId?: string;
11
+ env?: string;
12
+ privacyConfig?: PrivacyConfig | null;
13
+ }
14
+ declare class AmplitudeCallbackHandler {
15
+ private _ai;
16
+ private _userId;
17
+ private _sessionId;
18
+ private _agentId;
19
+ private _env;
20
+ private _privacyConfig;
21
+ private _runStartTimes;
22
+ private _runModelNames;
23
+ private _toolInputs;
24
+ private _toolNames;
25
+ constructor(options: CallbackHandlerOptions);
26
+ private _getContext;
27
+ handleLLMStart(serialized: Record<string, unknown>, prompts: string[], runId: string): void;
28
+ handleLLMEnd(output: Record<string, unknown>, runId: string): void;
29
+ handleToolStart(serialized: Record<string, unknown>, input: string, runId: string): void;
30
+ handleToolEnd(output: string, runId: string): void;
31
+ handleToolError(error: unknown, runId: string): void;
32
+ handleLLMError(error: unknown, runId: string): void;
33
+ }
34
+ declare function createAmplitudeCallback(options: CallbackHandlerOptions): AmplitudeCallbackHandler;
35
+ //#endregion
36
+ export { AmplitudeCallbackHandler, CallbackHandlerOptions, createAmplitudeCallback };
37
+ //# sourceMappingURL=langchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.d.ts","names":[],"sources":["../../src/integrations/langchain.ts"],"sourcesContent":[],"mappings":";;;;;AA6FuB,UAjFN,sBAAA,CAiFM;EAgEP,WAAA,EAhJD,WAgJC;EAAM,MAAA,CAAA,EAAA,MAAA;EAoFN,SAAA,CAAA,EAAA,MAAA;;;kBA/NE;;cAGL,wBAAA;;;;;;;;;;;uBAYU;;6BAqBP;uBAuCO;8BAgEP;;;;;iBAoFA,uBAAA,UACL,yBACR"}
@@ -0,0 +1,189 @@
1
+ import { getActiveContext } from "../context.js";
2
+ import { calculateCost } from "../utils/costs.js";
3
+
4
+ //#region src/integrations/langchain.ts
5
+ var AmplitudeCallbackHandler = class {
6
+ _ai;
7
+ _userId;
8
+ _sessionId;
9
+ _agentId;
10
+ _env;
11
+ _privacyConfig;
12
+ _runStartTimes = /* @__PURE__ */ new Map();
13
+ _runModelNames = /* @__PURE__ */ new Map();
14
+ _toolInputs = /* @__PURE__ */ new Map();
15
+ _toolNames = /* @__PURE__ */ new Map();
16
+ constructor(options) {
17
+ this._ai = options.amplitudeAI;
18
+ this._userId = options.userId ?? null;
19
+ this._sessionId = options.sessionId ?? null;
20
+ this._agentId = options.agentId ?? null;
21
+ this._env = options.env ?? null;
22
+ this._privacyConfig = options.privacyConfig ?? null;
23
+ }
24
+ _getContext() {
25
+ const ctx = getActiveContext();
26
+ return {
27
+ userId: this._userId ?? ctx?.userId ?? "unknown",
28
+ sessionId: this._sessionId ?? ctx?.sessionId ?? void 0,
29
+ agentId: this._agentId ?? ctx?.agentId ?? void 0,
30
+ env: this._env ?? ctx?.env ?? void 0,
31
+ traceId: ctx?.traceId ?? void 0
32
+ };
33
+ }
34
+ handleLLMStart(serialized, prompts, runId) {
35
+ this._runStartTimes.set(runId, performance.now());
36
+ const kwargs = serialized.kwargs;
37
+ const idModel = Array.isArray(serialized.id) ? serialized.id.find((v) => typeof v === "string" && (v.includes("gpt") || v.includes("claude") || v.includes("gemini"))) : void 0;
38
+ const modelName = String(kwargs?.model ?? kwargs?.modelName ?? kwargs?.model_name ?? idModel ?? "");
39
+ if (modelName) this._runModelNames.set(runId, modelName);
40
+ const trackUserMessage = this._ai.trackUserMessage;
41
+ if (typeof trackUserMessage === "function") {
42
+ const ctx = this._getContext();
43
+ for (const prompt of prompts) {
44
+ if (!prompt) continue;
45
+ trackUserMessage({
46
+ userId: ctx.userId,
47
+ content: prompt,
48
+ sessionId: ctx.sessionId ?? "langchain-session",
49
+ traceId: ctx.traceId,
50
+ agentId: ctx.agentId,
51
+ env: ctx.env
52
+ });
53
+ }
54
+ }
55
+ }
56
+ handleLLMEnd(output, runId) {
57
+ const startTime = this._runStartTimes.get(runId) ?? performance.now();
58
+ this._runStartTimes.delete(runId);
59
+ const latencyMs = performance.now() - startTime;
60
+ const firstGen = output.generations?.[0]?.[0];
61
+ const content = _extractLangchainText(firstGen);
62
+ const llmOutput = output.llmOutput;
63
+ const usage = llmOutput?.tokenUsage ?? llmOutput?.usage ?? llmOutput?.usage_metadata;
64
+ const modelFromStart = this._runModelNames.get(runId);
65
+ this._runModelNames.delete(runId);
66
+ const ctx = this._getContext();
67
+ const modelName = String(llmOutput?.modelName ?? modelFromStart ?? "unknown");
68
+ const inputTokens = _safeNumber(usage?.promptTokens ?? usage?.prompt_tokens ?? usage?.input_tokens);
69
+ const outputTokens = _safeNumber(usage?.completionTokens ?? usage?.completion_tokens ?? usage?.output_tokens);
70
+ let costUsd;
71
+ if (modelName !== "unknown" && inputTokens != null && outputTokens != null) try {
72
+ const cost = calculateCost({
73
+ modelName,
74
+ inputTokens,
75
+ outputTokens
76
+ });
77
+ if (cost > 0) costUsd = cost;
78
+ } catch {}
79
+ this._ai.trackAiMessage({
80
+ userId: ctx.userId,
81
+ content,
82
+ sessionId: ctx.sessionId ?? "langchain-session",
83
+ model: modelName,
84
+ provider: "langchain",
85
+ latencyMs,
86
+ traceId: ctx.traceId,
87
+ agentId: ctx.agentId,
88
+ env: ctx.env,
89
+ inputTokens,
90
+ outputTokens,
91
+ totalTokens: _safeNumber(usage?.totalTokens ?? usage?.total_tokens),
92
+ totalCostUsd: costUsd,
93
+ privacyConfig: this._privacyConfig
94
+ });
95
+ }
96
+ handleToolStart(serialized, input, runId) {
97
+ this._runStartTimes.set(runId, performance.now());
98
+ this._toolInputs.set(runId, input);
99
+ const name = String(serialized.name ?? serialized.id?.slice(-1)[0] ?? "langchain-tool");
100
+ this._toolNames.set(runId, name);
101
+ }
102
+ handleToolEnd(output, runId) {
103
+ const startTime = this._runStartTimes.get(runId) ?? performance.now();
104
+ this._runStartTimes.delete(runId);
105
+ const latencyMs = performance.now() - startTime;
106
+ const toolInput = this._toolInputs.get(runId);
107
+ this._toolInputs.delete(runId);
108
+ const toolName = this._toolNames.get(runId) ?? "langchain-tool";
109
+ this._toolNames.delete(runId);
110
+ const ctx = this._getContext();
111
+ this._ai.trackToolCall({
112
+ userId: ctx.userId,
113
+ toolName,
114
+ latencyMs,
115
+ success: true,
116
+ sessionId: ctx.sessionId,
117
+ traceId: ctx.traceId,
118
+ agentId: ctx.agentId,
119
+ env: ctx.env,
120
+ input: toolInput,
121
+ output
122
+ });
123
+ }
124
+ handleToolError(error, runId) {
125
+ const startTime = this._runStartTimes.get(runId) ?? performance.now();
126
+ this._runStartTimes.delete(runId);
127
+ const latencyMs = performance.now() - startTime;
128
+ const toolInput = this._toolInputs.get(runId);
129
+ this._toolInputs.delete(runId);
130
+ const toolName = this._toolNames.get(runId) ?? "langchain-tool";
131
+ this._toolNames.delete(runId);
132
+ const ctx = this._getContext();
133
+ this._ai.trackToolCall({
134
+ userId: ctx.userId,
135
+ toolName,
136
+ latencyMs,
137
+ success: false,
138
+ sessionId: ctx.sessionId,
139
+ traceId: ctx.traceId,
140
+ agentId: ctx.agentId,
141
+ env: ctx.env,
142
+ input: toolInput,
143
+ errorMessage: error instanceof Error ? error.message : String(error)
144
+ });
145
+ }
146
+ handleLLMError(error, runId) {
147
+ const startTime = this._runStartTimes.get(runId) ?? performance.now();
148
+ this._runStartTimes.delete(runId);
149
+ const latencyMs = performance.now() - startTime;
150
+ const ctx = this._getContext();
151
+ this._ai.trackAiMessage({
152
+ userId: ctx.userId,
153
+ content: "",
154
+ sessionId: ctx.sessionId ?? "langchain-session",
155
+ model: "unknown",
156
+ provider: "langchain",
157
+ latencyMs,
158
+ traceId: ctx.traceId,
159
+ agentId: ctx.agentId,
160
+ env: ctx.env,
161
+ isError: true,
162
+ errorMessage: error instanceof Error ? error.message : String(error)
163
+ });
164
+ }
165
+ };
166
+ function createAmplitudeCallback(options) {
167
+ return new AmplitudeCallbackHandler(options);
168
+ }
169
+ function _safeNumber(value) {
170
+ return typeof value === "number" ? value : void 0;
171
+ }
172
+ function _extractLangchainText(generation) {
173
+ if (generation == null || typeof generation !== "object") return "";
174
+ const gen = generation;
175
+ if (typeof gen.text === "string") return gen.text;
176
+ const message = gen.message;
177
+ if (message == null) return "";
178
+ if (typeof message.content === "string") return message.content;
179
+ if (!Array.isArray(message.content)) return "";
180
+ return message.content.map((part) => {
181
+ if (typeof part === "string") return part;
182
+ const item = part;
183
+ return typeof item.text === "string" ? item.text : "";
184
+ }).join("");
185
+ }
186
+
187
+ //#endregion
188
+ export { AmplitudeCallbackHandler, createAmplitudeCallback };
189
+ //# sourceMappingURL=langchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.js","names":["costUsd: number | undefined"],"sources":["../../src/integrations/langchain.ts"],"sourcesContent":["/**\n * LangChain integration — AmplitudeCallbackHandler.\n *\n * Tracks LLM calls, tool calls, and chain events via LangChain's\n * callback system.\n */\n\nimport type { AmplitudeAI } from '../client.js';\nimport { getActiveContext } from '../context.js';\nimport type { PrivacyConfig } from '../core/privacy.js';\nimport { calculateCost } from '../utils/costs.js';\n\nexport interface CallbackHandlerOptions {\n amplitudeAI: AmplitudeAI;\n userId?: string;\n sessionId?: string;\n agentId?: string;\n env?: string;\n privacyConfig?: PrivacyConfig | null;\n}\n\nexport class AmplitudeCallbackHandler {\n private _ai: AmplitudeAI;\n private _userId: string | null;\n private _sessionId: string | null;\n private _agentId: string | null;\n private _env: string | null;\n private _privacyConfig: PrivacyConfig | null;\n private _runStartTimes: Map<string, number> = new Map();\n private _runModelNames: Map<string, string> = new Map();\n private _toolInputs: Map<string, unknown> = new Map();\n private _toolNames: Map<string, string> = new Map();\n\n constructor(options: CallbackHandlerOptions) {\n this._ai = options.amplitudeAI;\n this._userId = options.userId ?? null;\n this._sessionId = options.sessionId ?? null;\n this._agentId = options.agentId ?? null;\n this._env = options.env ?? null;\n this._privacyConfig = options.privacyConfig ?? null;\n }\n\n private _getContext() {\n const ctx = getActiveContext();\n return {\n userId: this._userId ?? ctx?.userId ?? 'unknown',\n sessionId: this._sessionId ?? ctx?.sessionId ?? undefined,\n agentId: this._agentId ?? ctx?.agentId ?? undefined,\n env: this._env ?? ctx?.env ?? undefined,\n traceId: ctx?.traceId ?? undefined,\n };\n }\n\n handleLLMStart(\n serialized: Record<string, unknown>,\n prompts: string[],\n runId: string,\n ): void {\n this._runStartTimes.set(runId, performance.now());\n const kwargs = serialized.kwargs as Record<string, unknown> | undefined;\n const idModel = Array.isArray(serialized.id)\n ? serialized.id.find(\n (v) =>\n typeof v === 'string' &&\n (v.includes('gpt') || v.includes('claude') || v.includes('gemini')),\n )\n : undefined;\n const modelName = String(\n kwargs?.model ?? kwargs?.modelName ?? kwargs?.model_name ?? idModel ?? '',\n );\n if (modelName) this._runModelNames.set(runId, modelName);\n\n const trackUserMessage = (\n this._ai as unknown as {\n trackUserMessage?: (opts: Record<string, unknown>) => void;\n }\n ).trackUserMessage;\n if (typeof trackUserMessage === 'function') {\n const ctx = this._getContext();\n for (const prompt of prompts) {\n if (!prompt) continue;\n trackUserMessage({\n userId: ctx.userId,\n content: prompt,\n sessionId: ctx.sessionId ?? 'langchain-session',\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n });\n }\n }\n }\n\n handleLLMEnd(output: Record<string, unknown>, runId: string): void {\n const startTime = this._runStartTimes.get(runId) ?? performance.now();\n this._runStartTimes.delete(runId);\n const latencyMs = performance.now() - startTime;\n\n const generations = output.generations as\n | Array<Array<Record<string, unknown>>>\n | undefined;\n const firstGen = generations?.[0]?.[0];\n const content = _extractLangchainText(firstGen);\n const llmOutput = output.llmOutput as Record<string, unknown> | undefined;\n const usage =\n (llmOutput?.tokenUsage as Record<string, unknown> | undefined) ??\n (llmOutput?.usage as Record<string, unknown> | undefined) ??\n (llmOutput?.usage_metadata as Record<string, unknown> | undefined);\n const modelFromStart = this._runModelNames.get(runId);\n this._runModelNames.delete(runId);\n\n const ctx = this._getContext();\n const modelName = String(\n llmOutput?.modelName ?? modelFromStart ?? 'unknown',\n );\n const inputTokens = _safeNumber(\n usage?.promptTokens ?? usage?.prompt_tokens ?? usage?.input_tokens,\n );\n const outputTokens = _safeNumber(\n usage?.completionTokens ??\n usage?.completion_tokens ??\n usage?.output_tokens,\n );\n\n let costUsd: number | undefined;\n if (\n modelName !== 'unknown' &&\n inputTokens != null &&\n outputTokens != null\n ) {\n try {\n const cost = calculateCost({ modelName, inputTokens, outputTokens });\n if (cost > 0) costUsd = cost;\n } catch {\n // cost calculation is best-effort\n }\n }\n\n this._ai.trackAiMessage({\n userId: ctx.userId,\n content,\n sessionId: ctx.sessionId ?? 'langchain-session',\n model: modelName,\n provider: 'langchain',\n latencyMs,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n inputTokens,\n outputTokens,\n totalTokens: _safeNumber(usage?.totalTokens ?? usage?.total_tokens),\n totalCostUsd: costUsd,\n privacyConfig: this._privacyConfig,\n });\n }\n\n handleToolStart(\n serialized: Record<string, unknown>,\n input: string,\n runId: string,\n ): void {\n this._runStartTimes.set(runId, performance.now());\n this._toolInputs.set(runId, input);\n const name = String(\n serialized.name ??\n (serialized.id as string[] | undefined)?.slice(-1)[0] ??\n 'langchain-tool',\n );\n this._toolNames.set(runId, name);\n }\n\n handleToolEnd(output: string, runId: string): void {\n const startTime = this._runStartTimes.get(runId) ?? performance.now();\n this._runStartTimes.delete(runId);\n const latencyMs = performance.now() - startTime;\n const toolInput = this._toolInputs.get(runId);\n this._toolInputs.delete(runId);\n const toolName = this._toolNames.get(runId) ?? 'langchain-tool';\n this._toolNames.delete(runId);\n\n const ctx = this._getContext();\n this._ai.trackToolCall({\n userId: ctx.userId,\n toolName,\n latencyMs,\n success: true,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n input: toolInput,\n output,\n });\n }\n\n handleToolError(error: unknown, runId: string): void {\n const startTime = this._runStartTimes.get(runId) ?? performance.now();\n this._runStartTimes.delete(runId);\n const latencyMs = performance.now() - startTime;\n const toolInput = this._toolInputs.get(runId);\n this._toolInputs.delete(runId);\n const toolName = this._toolNames.get(runId) ?? 'langchain-tool';\n this._toolNames.delete(runId);\n\n const ctx = this._getContext();\n this._ai.trackToolCall({\n userId: ctx.userId,\n toolName,\n latencyMs,\n success: false,\n sessionId: ctx.sessionId,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n input: toolInput,\n errorMessage: error instanceof Error ? error.message : String(error),\n });\n }\n\n handleLLMError(error: unknown, runId: string): void {\n const startTime = this._runStartTimes.get(runId) ?? performance.now();\n this._runStartTimes.delete(runId);\n const latencyMs = performance.now() - startTime;\n\n const ctx = this._getContext();\n this._ai.trackAiMessage({\n userId: ctx.userId,\n content: '',\n sessionId: ctx.sessionId ?? 'langchain-session',\n model: 'unknown',\n provider: 'langchain',\n latencyMs,\n traceId: ctx.traceId,\n agentId: ctx.agentId,\n env: ctx.env,\n isError: true,\n errorMessage: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport function createAmplitudeCallback(\n options: CallbackHandlerOptions,\n): AmplitudeCallbackHandler {\n return new AmplitudeCallbackHandler(options);\n}\n\nfunction _safeNumber(value: unknown): number | undefined {\n return typeof value === 'number' ? value : undefined;\n}\n\nfunction _extractLangchainText(generation: unknown): string {\n if (generation == null || typeof generation !== 'object') return '';\n const gen = generation as Record<string, unknown>;\n if (typeof gen.text === 'string') return gen.text;\n const message = gen.message as Record<string, unknown> | undefined;\n if (message == null) return '';\n if (typeof message.content === 'string') return message.content;\n if (!Array.isArray(message.content)) return '';\n return message.content\n .map((part) => {\n if (typeof part === 'string') return part;\n const item = part as Record<string, unknown>;\n return typeof item.text === 'string' ? item.text : '';\n })\n .join('');\n}\n"],"mappings":";;;;AAqBA,IAAa,2BAAb,MAAsC;CACpC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ,iCAAsC,IAAI,KAAK;CACvD,AAAQ,iCAAsC,IAAI,KAAK;CACvD,AAAQ,8BAAoC,IAAI,KAAK;CACrD,AAAQ,6BAAkC,IAAI,KAAK;CAEnD,YAAY,SAAiC;AAC3C,OAAK,MAAM,QAAQ;AACnB,OAAK,UAAU,QAAQ,UAAU;AACjC,OAAK,aAAa,QAAQ,aAAa;AACvC,OAAK,WAAW,QAAQ,WAAW;AACnC,OAAK,OAAO,QAAQ,OAAO;AAC3B,OAAK,iBAAiB,QAAQ,iBAAiB;;CAGjD,AAAQ,cAAc;EACpB,MAAM,MAAM,kBAAkB;AAC9B,SAAO;GACL,QAAQ,KAAK,WAAW,KAAK,UAAU;GACvC,WAAW,KAAK,cAAc,KAAK,aAAa;GAChD,SAAS,KAAK,YAAY,KAAK,WAAW;GAC1C,KAAK,KAAK,QAAQ,KAAK,OAAO;GAC9B,SAAS,KAAK,WAAW;GAC1B;;CAGH,eACE,YACA,SACA,OACM;AACN,OAAK,eAAe,IAAI,OAAO,YAAY,KAAK,CAAC;EACjD,MAAM,SAAS,WAAW;EAC1B,MAAM,UAAU,MAAM,QAAQ,WAAW,GAAG,GACxC,WAAW,GAAG,MACX,MACC,OAAO,MAAM,aACZ,EAAE,SAAS,MAAM,IAAI,EAAE,SAAS,SAAS,IAAI,EAAE,SAAS,SAAS,EACrE,GACD;EACJ,MAAM,YAAY,OAChB,QAAQ,SAAS,QAAQ,aAAa,QAAQ,cAAc,WAAW,GACxE;AACD,MAAI,UAAW,MAAK,eAAe,IAAI,OAAO,UAAU;EAExD,MAAM,mBACJ,KAAK,IAGL;AACF,MAAI,OAAO,qBAAqB,YAAY;GAC1C,MAAM,MAAM,KAAK,aAAa;AAC9B,QAAK,MAAM,UAAU,SAAS;AAC5B,QAAI,CAAC,OAAQ;AACb,qBAAiB;KACf,QAAQ,IAAI;KACZ,SAAS;KACT,WAAW,IAAI,aAAa;KAC5B,SAAS,IAAI;KACb,SAAS,IAAI;KACb,KAAK,IAAI;KACV,CAAC;;;;CAKR,aAAa,QAAiC,OAAqB;EACjE,MAAM,YAAY,KAAK,eAAe,IAAI,MAAM,IAAI,YAAY,KAAK;AACrE,OAAK,eAAe,OAAO,MAAM;EACjC,MAAM,YAAY,YAAY,KAAK,GAAG;EAKtC,MAAM,WAHc,OAAO,cAGI,KAAK;EACpC,MAAM,UAAU,sBAAsB,SAAS;EAC/C,MAAM,YAAY,OAAO;EACzB,MAAM,QACH,WAAW,cACX,WAAW,SACX,WAAW;EACd,MAAM,iBAAiB,KAAK,eAAe,IAAI,MAAM;AACrD,OAAK,eAAe,OAAO,MAAM;EAEjC,MAAM,MAAM,KAAK,aAAa;EAC9B,MAAM,YAAY,OAChB,WAAW,aAAa,kBAAkB,UAC3C;EACD,MAAM,cAAc,YAClB,OAAO,gBAAgB,OAAO,iBAAiB,OAAO,aACvD;EACD,MAAM,eAAe,YACnB,OAAO,oBACL,OAAO,qBACP,OAAO,cACV;EAED,IAAIA;AACJ,MACE,cAAc,aACd,eAAe,QACf,gBAAgB,KAEhB,KAAI;GACF,MAAM,OAAO,cAAc;IAAE;IAAW;IAAa;IAAc,CAAC;AACpE,OAAI,OAAO,EAAG,WAAU;UAClB;AAKV,OAAK,IAAI,eAAe;GACtB,QAAQ,IAAI;GACZ;GACA,WAAW,IAAI,aAAa;GAC5B,OAAO;GACP,UAAU;GACV;GACA,SAAS,IAAI;GACb,SAAS,IAAI;GACb,KAAK,IAAI;GACT;GACA;GACA,aAAa,YAAY,OAAO,eAAe,OAAO,aAAa;GACnE,cAAc;GACd,eAAe,KAAK;GACrB,CAAC;;CAGJ,gBACE,YACA,OACA,OACM;AACN,OAAK,eAAe,IAAI,OAAO,YAAY,KAAK,CAAC;AACjD,OAAK,YAAY,IAAI,OAAO,MAAM;EAClC,MAAM,OAAO,OACX,WAAW,QACR,WAAW,IAA6B,MAAM,GAAG,CAAC,MACnD,iBACH;AACD,OAAK,WAAW,IAAI,OAAO,KAAK;;CAGlC,cAAc,QAAgB,OAAqB;EACjD,MAAM,YAAY,KAAK,eAAe,IAAI,MAAM,IAAI,YAAY,KAAK;AACrE,OAAK,eAAe,OAAO,MAAM;EACjC,MAAM,YAAY,YAAY,KAAK,GAAG;EACtC,MAAM,YAAY,KAAK,YAAY,IAAI,MAAM;AAC7C,OAAK,YAAY,OAAO,MAAM;EAC9B,MAAM,WAAW,KAAK,WAAW,IAAI,MAAM,IAAI;AAC/C,OAAK,WAAW,OAAO,MAAM;EAE7B,MAAM,MAAM,KAAK,aAAa;AAC9B,OAAK,IAAI,cAAc;GACrB,QAAQ,IAAI;GACZ;GACA;GACA,SAAS;GACT,WAAW,IAAI;GACf,SAAS,IAAI;GACb,SAAS,IAAI;GACb,KAAK,IAAI;GACT,OAAO;GACP;GACD,CAAC;;CAGJ,gBAAgB,OAAgB,OAAqB;EACnD,MAAM,YAAY,KAAK,eAAe,IAAI,MAAM,IAAI,YAAY,KAAK;AACrE,OAAK,eAAe,OAAO,MAAM;EACjC,MAAM,YAAY,YAAY,KAAK,GAAG;EACtC,MAAM,YAAY,KAAK,YAAY,IAAI,MAAM;AAC7C,OAAK,YAAY,OAAO,MAAM;EAC9B,MAAM,WAAW,KAAK,WAAW,IAAI,MAAM,IAAI;AAC/C,OAAK,WAAW,OAAO,MAAM;EAE7B,MAAM,MAAM,KAAK,aAAa;AAC9B,OAAK,IAAI,cAAc;GACrB,QAAQ,IAAI;GACZ;GACA;GACA,SAAS;GACT,WAAW,IAAI;GACf,SAAS,IAAI;GACb,SAAS,IAAI;GACb,KAAK,IAAI;GACT,OAAO;GACP,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GACrE,CAAC;;CAGJ,eAAe,OAAgB,OAAqB;EAClD,MAAM,YAAY,KAAK,eAAe,IAAI,MAAM,IAAI,YAAY,KAAK;AACrE,OAAK,eAAe,OAAO,MAAM;EACjC,MAAM,YAAY,YAAY,KAAK,GAAG;EAEtC,MAAM,MAAM,KAAK,aAAa;AAC9B,OAAK,IAAI,eAAe;GACtB,QAAQ,IAAI;GACZ,SAAS;GACT,WAAW,IAAI,aAAa;GAC5B,OAAO;GACP,UAAU;GACV;GACA,SAAS,IAAI;GACb,SAAS,IAAI;GACb,KAAK,IAAI;GACT,SAAS;GACT,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GACrE,CAAC;;;AAIN,SAAgB,wBACd,SAC0B;AAC1B,QAAO,IAAI,yBAAyB,QAAQ;;AAG9C,SAAS,YAAY,OAAoC;AACvD,QAAO,OAAO,UAAU,WAAW,QAAQ;;AAG7C,SAAS,sBAAsB,YAA6B;AAC1D,KAAI,cAAc,QAAQ,OAAO,eAAe,SAAU,QAAO;CACjE,MAAM,MAAM;AACZ,KAAI,OAAO,IAAI,SAAS,SAAU,QAAO,IAAI;CAC7C,MAAM,UAAU,IAAI;AACpB,KAAI,WAAW,KAAM,QAAO;AAC5B,KAAI,OAAO,QAAQ,YAAY,SAAU,QAAO,QAAQ;AACxD,KAAI,CAAC,MAAM,QAAQ,QAAQ,QAAQ,CAAE,QAAO;AAC5C,QAAO,QAAQ,QACZ,KAAK,SAAS;AACb,MAAI,OAAO,SAAS,SAAU,QAAO;EACrC,MAAM,OAAO;AACb,SAAO,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO;GACnD,CACD,KAAK,GAAG"}
@@ -0,0 +1,44 @@
1
+ import { AmplitudeAI } from "../client.js";
2
+
3
+ //#region src/integrations/llamaindex.d.ts
4
+
5
+ interface LlamaIndexHandlerOptions {
6
+ amplitudeAI: AmplitudeAI;
7
+ userId?: string;
8
+ sessionId?: string;
9
+ agentId?: string;
10
+ env?: string;
11
+ }
12
+ declare class AmplitudeLlamaIndexHandler {
13
+ private _ai;
14
+ private _userId;
15
+ private _sessionId;
16
+ private _agentId;
17
+ private _env;
18
+ private _startTimes;
19
+ constructor(options: LlamaIndexHandlerOptions);
20
+ private _getContext;
21
+ onLLMStart(eventId: string): void;
22
+ onLLMEnd(eventId: string, response: {
23
+ content?: string;
24
+ model?: string;
25
+ inputTokens?: number;
26
+ outputTokens?: number;
27
+ }): void;
28
+ onEmbeddingStart(eventId: string): void;
29
+ onEmbeddingEnd(eventId: string, response: {
30
+ model?: string;
31
+ inputTokens?: number;
32
+ dimensions?: number;
33
+ }): void;
34
+ onToolStart(eventId: string): void;
35
+ onToolEnd(eventId: string, response: {
36
+ toolName?: string;
37
+ output?: unknown;
38
+ success?: boolean;
39
+ }): void;
40
+ }
41
+ declare function createAmplitudeLlamaIndexHandler(options: LlamaIndexHandlerOptions): AmplitudeLlamaIndexHandler;
42
+ //#endregion
43
+ export { AmplitudeLlamaIndexHandler, LlamaIndexHandlerOptions, createAmplitudeLlamaIndexHandler };
44
+ //# sourceMappingURL=llamaindex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaindex.d.ts","names":[],"sources":["../../src/integrations/llamaindex.ts"],"sourcesContent":[],"mappings":";;;;UAWiB,wBAAA;eACF;;;;;;cAOF,0BAAA;;;;;;;uBAQU;;;;;;;;;;;;;;;;;;;;;;iBAiIP,gCAAA,UACL,2BACR"}