@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,46 @@
1
+ import { SessionEnrichments } from "./core/enrichments.js";
2
+ import { AiMessageOpts, BoundAgent, EmbeddingOpts, ScoreOpts, SpanOpts, ToolCallOpts, UserMessageOpts } from "./bound-agent.js";
3
+
4
+ //#region src/session.d.ts
5
+
6
+ declare class Session {
7
+ readonly sessionId: string;
8
+ traceId: string | null;
9
+ readonly idleTimeoutMinutes: number | null;
10
+ readonly userId: string | null;
11
+ readonly deviceId: string | null;
12
+ readonly browserSessionId: string | null;
13
+ private _agent;
14
+ private _enrichments;
15
+ private _sessionReplayId;
16
+ constructor(agent: BoundAgent, opts?: {
17
+ sessionId?: string | null;
18
+ idleTimeoutMinutes?: number | null;
19
+ userId?: string | null;
20
+ deviceId?: string | null;
21
+ browserSessionId?: string | null;
22
+ });
23
+ private _buildSessionContext;
24
+ newTrace(): string;
25
+ setEnrichments(enrichments: SessionEnrichments): void;
26
+ /**
27
+ * Run a callback within this session context.
28
+ * This is the Node.js equivalent of Python's `with session as s:` block.
29
+ */
30
+ run<T>(fn: (session: Session) => T | Promise<T>): Promise<T>;
31
+ /**
32
+ * Synchronous version of run() for non-async code.
33
+ */
34
+ runSync<T>(fn: (session: Session) => T): T;
35
+ private _autoEnd;
36
+ private _inject;
37
+ trackUserMessage(content: string, opts?: UserMessageOpts): string;
38
+ trackAiMessage(content: string, model: string, provider: string, latencyMs: number, opts?: AiMessageOpts): string;
39
+ trackToolCall(toolName: string, latencyMs: number, success: boolean, opts?: ToolCallOpts): string;
40
+ trackEmbedding(model: string, provider: string, latencyMs: number, opts?: EmbeddingOpts): string;
41
+ trackSpan(spanName: string, latencyMs: number, opts?: SpanOpts): string;
42
+ score(name: string, value: number, targetId: string, opts?: ScoreOpts): void;
43
+ }
44
+ //#endregion
45
+ export { Session };
46
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","names":[],"sources":["../src/session.ts"],"sourcesContent":[],"mappings":";;;;;AAkLU,cA9IG,OAAA,CA8IH;EAeA,SAAA,SAAA,EAAA,MAAA;EAcA,OAAA,EAAA,MAAA,GAAA,IAAA;EAU6C,SAAA,kBAAA,EAAA,MAAA,GAAA,IAAA;EAQ7C,SAAA,MAAA,EAAA,MAAA,GAAA,IAAA;EAAc,SAAA,QAAA,EAAA,MAAA,GAAA,IAAA;;;;;qBAjLb;;;;;;;;;8BAyDmB;;;;;uBAQD,YAAY,IAAI,QAAQ,KAAK,QAAQ;;;;2BAavC,YAAY,IAAI;;;2CA2CD;6FAShC;8EAeA;4EAcA;wDAU6C;8DAQ7C"}
@@ -0,0 +1,144 @@
1
+ import { getLogger } from "./utils/logger.js";
2
+ import { PROP_SESSION_REPLAY_ID } from "./core/constants.js";
3
+ import { SessionContext, _sessionStorage, getActiveContext } from "./context.js";
4
+ import { randomUUID } from "node:crypto";
5
+
6
+ //#region src/session.ts
7
+ /**
8
+ * Session context manager using Node.js AsyncLocalStorage.
9
+ *
10
+ * Use `.run()` to execute code within session context. The session
11
+ * auto-ends when the callback completes, emitting `[Agent] Session End`.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const session = agent.session();
16
+ * await session.run(async (s) => {
17
+ * s.trackUserMessage('What is retention?');
18
+ * s.trackAiMessage('Retention is...', 'gpt-4', 'openai', 200);
19
+ * });
20
+ * ```
21
+ */
22
+ var Session = class {
23
+ sessionId;
24
+ traceId = null;
25
+ idleTimeoutMinutes;
26
+ userId;
27
+ deviceId;
28
+ browserSessionId;
29
+ _agent;
30
+ _enrichments = null;
31
+ _sessionReplayId;
32
+ constructor(agent, opts = {}) {
33
+ this.sessionId = opts.sessionId ?? randomUUID();
34
+ this.idleTimeoutMinutes = opts.idleTimeoutMinutes ?? null;
35
+ this.userId = opts.userId ?? null;
36
+ this.deviceId = opts.deviceId ?? agent._defaults.deviceId;
37
+ this.browserSessionId = opts.browserSessionId ?? agent._defaults.browserSessionId;
38
+ this._agent = agent;
39
+ this._sessionReplayId = this.deviceId && this.browserSessionId ? `${this.deviceId}/${this.browserSessionId}` : null;
40
+ }
41
+ _buildSessionContext() {
42
+ const defaults = this._agent._defaults;
43
+ const ai = this._agent._ai;
44
+ const sid = this.sessionId;
45
+ return new SessionContext({
46
+ sessionId: sid,
47
+ traceId: this.traceId,
48
+ userId: this.userId ?? defaults.userId,
49
+ agentId: defaults.agentId,
50
+ parentAgentId: defaults.parentAgentId,
51
+ env: defaults.env,
52
+ customerOrgId: defaults.customerOrgId,
53
+ agentVersion: defaults.agentVersion,
54
+ context: defaults.context,
55
+ groups: defaults.groups,
56
+ idleTimeoutMinutes: this.idleTimeoutMinutes,
57
+ deviceId: this.deviceId ?? defaults.deviceId,
58
+ browserSessionId: this.browserSessionId ?? defaults.browserSessionId,
59
+ nextTurnIdFn: () => ai._nextTurnId(sid)
60
+ });
61
+ }
62
+ newTrace() {
63
+ this.traceId = randomUUID();
64
+ const ctx = getActiveContext();
65
+ if (ctx != null) ctx.traceId = this.traceId;
66
+ return this.traceId;
67
+ }
68
+ setEnrichments(enrichments) {
69
+ this._enrichments = enrichments;
70
+ }
71
+ /**
72
+ * Run a callback within this session context.
73
+ * This is the Node.js equivalent of Python's `with session as s:` block.
74
+ */
75
+ async run(fn) {
76
+ const ctx = this._buildSessionContext();
77
+ try {
78
+ return await _sessionStorage.run(ctx, () => fn(this));
79
+ } finally {
80
+ this._autoEnd();
81
+ }
82
+ }
83
+ /**
84
+ * Synchronous version of run() for non-async code.
85
+ */
86
+ runSync(fn) {
87
+ const ctx = this._buildSessionContext();
88
+ try {
89
+ return _sessionStorage.run(ctx, () => fn(this));
90
+ } finally {
91
+ this._autoEnd();
92
+ }
93
+ }
94
+ _autoEnd() {
95
+ try {
96
+ const endOpts = {
97
+ sessionId: this.sessionId,
98
+ enrichments: this._enrichments,
99
+ idleTimeoutMinutes: this.idleTimeoutMinutes
100
+ };
101
+ if (this.userId != null) endOpts.userId = this.userId;
102
+ this._agent.trackSessionEnd(this._inject(endOpts));
103
+ } catch (e) {
104
+ getLogger().debug(`Failed to auto-end session ${this.sessionId}: ${e}`);
105
+ }
106
+ }
107
+ _inject(kwargs) {
108
+ const merged = { ...kwargs };
109
+ if (merged.sessionId == null) merged.sessionId = this.sessionId;
110
+ if (this.traceId != null && merged.traceId == null) merged.traceId = this.traceId;
111
+ if (this.userId != null && merged.userId == null) merged.userId = this.userId;
112
+ if (this._sessionReplayId != null) {
113
+ const existingEp = merged.eventProperties;
114
+ const ep = existingEp != null ? { ...existingEp } : {};
115
+ if (!(PROP_SESSION_REPLAY_ID in ep)) {
116
+ ep[PROP_SESSION_REPLAY_ID] = this._sessionReplayId;
117
+ merged.eventProperties = ep;
118
+ }
119
+ }
120
+ return merged;
121
+ }
122
+ trackUserMessage(content, opts = {}) {
123
+ return this._agent.trackUserMessage(content, this._inject(opts));
124
+ }
125
+ trackAiMessage(content, model, provider, latencyMs, opts = {}) {
126
+ return this._agent.trackAiMessage(content, model, provider, latencyMs, this._inject(opts));
127
+ }
128
+ trackToolCall(toolName, latencyMs, success, opts = {}) {
129
+ return this._agent.trackToolCall(toolName, latencyMs, success, this._inject(opts));
130
+ }
131
+ trackEmbedding(model, provider, latencyMs, opts = {}) {
132
+ return this._agent.trackEmbedding(model, provider, latencyMs, this._inject(opts));
133
+ }
134
+ trackSpan(spanName, latencyMs, opts = {}) {
135
+ return this._agent.trackSpan(spanName, latencyMs, this._inject(opts));
136
+ }
137
+ score(name, value, targetId, opts = {}) {
138
+ this._agent.score(name, value, targetId, this._inject(opts));
139
+ }
140
+ };
141
+
142
+ //#endregion
143
+ export { Session };
144
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","names":["endOpts: SessionEndOpts"],"sources":["../src/session.ts"],"sourcesContent":["/**\n * Session context manager using Node.js AsyncLocalStorage.\n *\n * Use `.run()` to execute code within session context. The session\n * auto-ends when the callback completes, emitting `[Agent] Session End`.\n *\n * @example\n * ```typescript\n * const session = agent.session();\n * await session.run(async (s) => {\n * s.trackUserMessage('What is retention?');\n * s.trackAiMessage('Retention is...', 'gpt-4', 'openai', 200);\n * });\n * ```\n */\n\nimport { randomUUID } from 'node:crypto';\nimport type {\n AiMessageOpts,\n BoundAgent,\n EmbeddingOpts,\n ScoreOpts,\n SessionEndOpts,\n SpanOpts,\n ToolCallOpts,\n UserMessageOpts,\n} from './bound-agent.js';\nimport {\n _sessionStorage,\n getActiveContext,\n SessionContext,\n} from './context.js';\nimport type { SessionEnrichments } from './core/enrichments.js';\nimport { PROP_SESSION_REPLAY_ID } from './core/tracking.js';\nimport { getLogger } from './utils/logger.js';\n\nexport class Session {\n readonly sessionId: string;\n traceId: string | null = null;\n readonly idleTimeoutMinutes: number | null;\n readonly userId: string | null;\n readonly deviceId: string | null;\n readonly browserSessionId: string | null;\n private _agent: BoundAgent;\n private _enrichments: SessionEnrichments | null = null;\n private _sessionReplayId: string | null;\n\n constructor(\n agent: BoundAgent,\n opts: {\n sessionId?: string | null;\n idleTimeoutMinutes?: number | null;\n userId?: string | null;\n deviceId?: string | null;\n browserSessionId?: string | null;\n } = {},\n ) {\n this.sessionId = opts.sessionId ?? randomUUID();\n this.idleTimeoutMinutes = opts.idleTimeoutMinutes ?? null;\n this.userId = opts.userId ?? null;\n this.deviceId =\n opts.deviceId ?? (agent._defaults.deviceId as string | null);\n this.browserSessionId =\n opts.browserSessionId ??\n (agent._defaults.browserSessionId as string | null);\n this._agent = agent;\n this._sessionReplayId =\n this.deviceId && this.browserSessionId\n ? `${this.deviceId}/${this.browserSessionId}`\n : null;\n }\n\n private _buildSessionContext(): SessionContext {\n const defaults = this._agent._defaults;\n const ai = this._agent._ai;\n const sid = this.sessionId;\n\n return new SessionContext({\n sessionId: sid,\n traceId: this.traceId,\n userId: (this.userId ?? defaults.userId) as string | null,\n agentId: defaults.agentId as string | null,\n parentAgentId: defaults.parentAgentId as string | null,\n env: defaults.env as string | null,\n customerOrgId: defaults.customerOrgId as string | null,\n agentVersion: defaults.agentVersion as string | null,\n context: defaults.context as Record<string, unknown> | null,\n groups: defaults.groups as Record<string, unknown> | null,\n idleTimeoutMinutes: this.idleTimeoutMinutes,\n deviceId: this.deviceId ?? (defaults.deviceId as string | null),\n browserSessionId:\n this.browserSessionId ?? (defaults.browserSessionId as string | null),\n nextTurnIdFn: () => ai._nextTurnId(sid),\n });\n }\n\n newTrace(): string {\n this.traceId = randomUUID();\n const ctx = getActiveContext();\n if (ctx != null) {\n ctx.traceId = this.traceId;\n }\n return this.traceId;\n }\n\n setEnrichments(enrichments: SessionEnrichments): void {\n this._enrichments = enrichments;\n }\n\n /**\n * Run a callback within this session context.\n * This is the Node.js equivalent of Python's `with session as s:` block.\n */\n async run<T>(fn: (session: Session) => T | Promise<T>): Promise<T> {\n const ctx = this._buildSessionContext();\n try {\n const result = await _sessionStorage.run(ctx, () => fn(this));\n return result;\n } finally {\n this._autoEnd();\n }\n }\n\n /**\n * Synchronous version of run() for non-async code.\n */\n runSync<T>(fn: (session: Session) => T): T {\n const ctx = this._buildSessionContext();\n try {\n return _sessionStorage.run(ctx, () => fn(this));\n } finally {\n this._autoEnd();\n }\n }\n\n private _autoEnd(): void {\n try {\n const endOpts: SessionEndOpts = {\n sessionId: this.sessionId,\n enrichments: this._enrichments,\n idleTimeoutMinutes: this.idleTimeoutMinutes,\n };\n if (this.userId != null) endOpts.userId = this.userId;\n this._agent.trackSessionEnd(this._inject(endOpts));\n } catch (e) {\n getLogger().debug(`Failed to auto-end session ${this.sessionId}: ${e}`);\n }\n }\n\n private _inject<T extends Record<string, unknown>>(kwargs: T): T {\n const merged = { ...kwargs } as Record<string, unknown>;\n if (merged.sessionId == null) merged.sessionId = this.sessionId;\n if (this.traceId != null && merged.traceId == null)\n merged.traceId = this.traceId;\n if (this.userId != null && merged.userId == null)\n merged.userId = this.userId;\n if (this._sessionReplayId != null) {\n const existingEp = merged.eventProperties as\n | Record<string, unknown>\n | undefined;\n const ep = existingEp != null ? { ...existingEp } : {};\n if (!(PROP_SESSION_REPLAY_ID in ep)) {\n ep[PROP_SESSION_REPLAY_ID] = this._sessionReplayId;\n merged.eventProperties = ep;\n }\n }\n return merged as T;\n }\n\n trackUserMessage(content: string, opts: UserMessageOpts = {}): string {\n return this._agent.trackUserMessage(content, this._inject(opts));\n }\n\n trackAiMessage(\n content: string,\n model: string,\n provider: string,\n latencyMs: number,\n opts: AiMessageOpts = {},\n ): string {\n return this._agent.trackAiMessage(\n content,\n model,\n provider,\n latencyMs,\n this._inject(opts),\n );\n }\n\n trackToolCall(\n toolName: string,\n latencyMs: number,\n success: boolean,\n opts: ToolCallOpts = {},\n ): string {\n return this._agent.trackToolCall(\n toolName,\n latencyMs,\n success,\n this._inject(opts),\n );\n }\n\n trackEmbedding(\n model: string,\n provider: string,\n latencyMs: number,\n opts: EmbeddingOpts = {},\n ): string {\n return this._agent.trackEmbedding(\n model,\n provider,\n latencyMs,\n this._inject(opts),\n );\n }\n\n trackSpan(spanName: string, latencyMs: number, opts: SpanOpts = {}): string {\n return this._agent.trackSpan(spanName, latencyMs, this._inject(opts));\n }\n\n score(\n name: string,\n value: number,\n targetId: string,\n opts: ScoreOpts = {},\n ): void {\n this._agent.score(name, value, targetId, this._inject(opts));\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { AmplitudeAI } from "./client.js";
2
+ import { BoundAgent } from "./bound-agent.js";
3
+
4
+ //#region src/tenant.d.ts
5
+
6
+ declare class TenantHandle {
7
+ private _ai;
8
+ private _customerOrgId;
9
+ private _groups;
10
+ private _env;
11
+ constructor(ai: AmplitudeAI, opts: {
12
+ customerOrgId: string;
13
+ groups?: Record<string, unknown> | null;
14
+ env?: string | null;
15
+ });
16
+ agent(agentId: string, opts?: {
17
+ userId?: string | null;
18
+ parentAgentId?: string | null;
19
+ customerOrgId?: string | null;
20
+ agentVersion?: string | null;
21
+ context?: Record<string, unknown> | null;
22
+ env?: string | null;
23
+ sessionId?: string | null;
24
+ traceId?: string | null;
25
+ groups?: Record<string, unknown> | null;
26
+ }): BoundAgent;
27
+ }
28
+ //#endregion
29
+ export { TenantHandle };
30
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","names":[],"sources":["../src/tenant.ts"],"sourcesContent":[],"mappings":";;;;;cAaa,YAAA;;;;;kBAOL;;aAGO;;;;;;;;cAiBC;;;;aAID;MAEV"}
package/dist/tenant.js ADDED
@@ -0,0 +1,23 @@
1
+ //#region src/tenant.ts
2
+ var TenantHandle = class {
3
+ _ai;
4
+ _customerOrgId;
5
+ _groups;
6
+ _env;
7
+ constructor(ai, opts) {
8
+ this._ai = ai;
9
+ this._customerOrgId = opts.customerOrgId;
10
+ this._groups = opts.groups ?? null;
11
+ this._env = opts.env ?? null;
12
+ }
13
+ agent(agentId, opts = {}) {
14
+ if (!("customerOrgId" in opts)) opts.customerOrgId = this._customerOrgId;
15
+ if (this._groups != null && !("groups" in opts)) opts.groups = this._groups;
16
+ if (this._env != null && !("env" in opts)) opts.env = this._env;
17
+ return this._ai.agent(agentId, opts);
18
+ }
19
+ };
20
+
21
+ //#endregion
22
+ export { TenantHandle };
23
+ //# sourceMappingURL=tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.js","names":[],"sources":["../src/tenant.ts"],"sourcesContent":["/**\n * TenantHandle — multi-tenant helper that pre-binds a customerOrgId to agents.\n *\n * @example\n * ```typescript\n * const tenant = ai.tenant('org-123');\n * const agent = tenant.agent('support-bot');\n * ```\n */\n\nimport type { BoundAgent } from './bound-agent.js';\nimport type { AmplitudeAI } from './client.js';\n\nexport class TenantHandle {\n private _ai: AmplitudeAI;\n private _customerOrgId: string;\n private _groups: Record<string, unknown> | null;\n private _env: string | null;\n\n constructor(\n ai: AmplitudeAI,\n opts: {\n customerOrgId: string;\n groups?: Record<string, unknown> | null;\n env?: string | null;\n },\n ) {\n this._ai = ai;\n this._customerOrgId = opts.customerOrgId;\n this._groups = opts.groups ?? null;\n this._env = opts.env ?? null;\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 } = {},\n ): BoundAgent {\n if (!('customerOrgId' in opts)) opts.customerOrgId = this._customerOrgId;\n if (this._groups != null && !('groups' in opts)) opts.groups = this._groups;\n if (this._env != null && !('env' in opts)) opts.env = this._env;\n return this._ai.agent(agentId, opts);\n }\n}\n"],"mappings":";AAaA,IAAa,eAAb,MAA0B;CACxB,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YACE,IACA,MAKA;AACA,OAAK,MAAM;AACX,OAAK,iBAAiB,KAAK;AAC3B,OAAK,UAAU,KAAK,UAAU;AAC9B,OAAK,OAAO,KAAK,OAAO;;CAG1B,MACE,SACA,OAUI,EAAE,EACM;AACZ,MAAI,EAAE,mBAAmB,MAAO,MAAK,gBAAgB,KAAK;AAC1D,MAAI,KAAK,WAAW,QAAQ,EAAE,YAAY,MAAO,MAAK,SAAS,KAAK;AACpE,MAAI,KAAK,QAAQ,QAAQ,EAAE,SAAS,MAAO,MAAK,MAAM,KAAK;AAC3D,SAAO,KAAK,IAAI,MAAM,SAAS,KAAK"}
@@ -0,0 +1,46 @@
1
+ import { AIConfig } from "./config.js";
2
+ import { AmplitudeAI } from "./client.js";
3
+
4
+ //#region src/testing.d.ts
5
+ interface MockEvent {
6
+ event_type?: string;
7
+ user_id?: string;
8
+ event_properties?: Record<string, unknown>;
9
+ user_properties?: Record<string, unknown>;
10
+ groups?: Record<string, unknown>;
11
+ }
12
+ declare class MockAmplitudeAI extends AmplitudeAI {
13
+ events: MockEvent[];
14
+ private _simulatedError;
15
+ private _simulatedLatencyMs;
16
+ constructor(config?: AIConfig);
17
+ getEvents(eventType?: string): MockEvent[];
18
+ assertEventTracked(eventType: string, options?: {
19
+ userId?: string;
20
+ [key: string]: unknown;
21
+ }): MockEvent;
22
+ /**
23
+ * Configure the mock to throw an error on the next tracking call.
24
+ * Useful for testing error-handling paths in your application.
25
+ *
26
+ * @param type - Error type (e.g., 'rate_limit', 'network', 'auth')
27
+ * @param message - Optional custom error message
28
+ */
29
+ simulateError(type: string, message?: string): void;
30
+ /**
31
+ * Configure a simulated latency (in ms) added to each tracking call.
32
+ * Combined with async tests, this helps verify timeout and retry logic.
33
+ */
34
+ simulateLatency(ms: number): void;
35
+ /**
36
+ * Clear any simulated error or latency, restoring normal capture behavior.
37
+ */
38
+ clearSimulations(): void;
39
+ reset(): void;
40
+ eventsForSession(sessionId: string): MockEvent[];
41
+ eventsForAgent(agentId: string): MockEvent[];
42
+ assertSessionClosed(sessionId: string): MockEvent;
43
+ }
44
+ //#endregion
45
+ export { MockAmplitudeAI };
46
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","names":[],"sources":["../src/testing.ts"],"sourcesContent":[],"mappings":";;;;UAQU,SAAA;;EAAA,OAAA,CAAA,EAAA,MAAS;EAGE,gBAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA;EACD,eAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA;EACT,MAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA;;AAqBE,cAAA,eAAA,SAAwB,WAAA,CAAR;EACnB,MAAA,EAAA,SAAA,EAAA;EAIa,QAAA,eAAA;EA8BU,QAAA,mBAAA;EAQ5B,WAAA,CAAA,MAAA,CAAA,EAtCkB,QAsClB;EA0GkC,SAAA,CAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EAlHN,SAkHM,EAAA;EAMJ,kBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OA3Ja,CA2Jb,EAAA;IAMO,MAAA,CAAA,EAAA,MAAA;IAjKL,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAW,CAAA,CAAA,EA2C3C,SA3C2C;;;;;;;;;;;;;;;;;;;uCAqJT;mCAMJ;0CAMO"}
@@ -0,0 +1,120 @@
1
+ import { EVENT_SESSION_END, PROP_AGENT_ID, PROP_SESSION_ID } from "./core/constants.js";
2
+ import { AmplitudeAI } from "./client.js";
3
+
4
+ //#region src/testing.ts
5
+ var MockAmplitudeAI = class extends AmplitudeAI {
6
+ events = [];
7
+ _simulatedError = null;
8
+ _simulatedLatencyMs = 0;
9
+ constructor(config) {
10
+ const mockAmplitude = {
11
+ track: () => {},
12
+ flush: () => [],
13
+ shutdown: () => {},
14
+ init: () => mockAmplitude
15
+ };
16
+ super({
17
+ amplitude: mockAmplitude,
18
+ config
19
+ });
20
+ this._amplitude.track = (event) => {
21
+ this.events.push(event);
22
+ };
23
+ if (this._config.debug || this._config.dryRun || this._config.onEventCallback != null) this._installTrackHook?.();
24
+ }
25
+ getEvents(eventType) {
26
+ if (eventType == null) return [...this.events];
27
+ return this.events.filter((e) => e.event_type === eventType);
28
+ }
29
+ assertEventTracked(eventType, options = {}) {
30
+ const { userId, ...expectedProps } = options;
31
+ const candidates = this.getEvents(eventType);
32
+ if (!candidates.length) {
33
+ const trackedTypes = new Set(this.events.map((e) => e.event_type));
34
+ throw new Error(`No '${eventType}' event tracked. Tracked types: ${[...trackedTypes].join(", ") || "(none)"}`);
35
+ }
36
+ for (const event of candidates) {
37
+ if (userId != null && event.user_id !== userId) continue;
38
+ if (Object.keys(expectedProps).length > 0) {
39
+ const props = event.event_properties ?? {};
40
+ if (Object.entries(expectedProps).every(([k, v]) => props[k] === v)) return event;
41
+ } else return event;
42
+ }
43
+ const filters = [];
44
+ if (userId != null) filters.push(`userId=${userId}`);
45
+ for (const [k, v] of Object.entries(expectedProps)) filters.push(`${k}=${String(v)}`);
46
+ throw new Error(`Found ${candidates.length} '${eventType}' event(s) but none matched filters: ${filters.join(", ")}`);
47
+ }
48
+ /**
49
+ * Configure the mock to throw an error on the next tracking call.
50
+ * Useful for testing error-handling paths in your application.
51
+ *
52
+ * @param type - Error type (e.g., 'rate_limit', 'network', 'auth')
53
+ * @param message - Optional custom error message
54
+ */
55
+ simulateError(type, message) {
56
+ this._simulatedError = {
57
+ type,
58
+ message: message ?? `Simulated ${type} error`
59
+ };
60
+ this._amplitude.track = () => {
61
+ const err = this._simulatedError;
62
+ if (err) throw new Error(`[MockAmplitudeAI] ${err.type}: ${err.message}`);
63
+ };
64
+ }
65
+ /**
66
+ * Configure a simulated latency (in ms) added to each tracking call.
67
+ * Combined with async tests, this helps verify timeout and retry logic.
68
+ */
69
+ simulateLatency(ms) {
70
+ this._simulatedLatencyMs = ms;
71
+ const originalCapture = (event) => {
72
+ this.events.push(event);
73
+ };
74
+ this._amplitude.track = (event) => {
75
+ if (this._simulatedLatencyMs > 0) {
76
+ const start = Date.now();
77
+ while (Date.now() - start < this._simulatedLatencyMs);
78
+ }
79
+ originalCapture(event);
80
+ };
81
+ }
82
+ /**
83
+ * Clear any simulated error or latency, restoring normal capture behavior.
84
+ */
85
+ clearSimulations() {
86
+ this._simulatedError = null;
87
+ this._simulatedLatencyMs = 0;
88
+ this._amplitude.track = (event) => {
89
+ this.events.push(event);
90
+ };
91
+ }
92
+ reset() {
93
+ this.events = [];
94
+ this._simulatedError = null;
95
+ this._simulatedLatencyMs = 0;
96
+ this._amplitude.track = (event) => {
97
+ this.events.push(event);
98
+ };
99
+ if (this._config.debug || this._config.dryRun || this._config.onEventCallback != null) this._installTrackHook?.();
100
+ this._sessionTurnCounters.clear();
101
+ }
102
+ eventsForSession(sessionId) {
103
+ return this.events.filter((e) => e.event_properties?.[PROP_SESSION_ID] === sessionId);
104
+ }
105
+ eventsForAgent(agentId) {
106
+ return this.events.filter((e) => e.event_properties?.[PROP_AGENT_ID] === agentId);
107
+ }
108
+ assertSessionClosed(sessionId) {
109
+ const candidates = this.events.filter((e) => e.event_type === EVENT_SESSION_END && e.event_properties?.[PROP_SESSION_ID] === sessionId);
110
+ if (!candidates.length) {
111
+ const ended = this.events.filter((e) => e.event_type === EVENT_SESSION_END).map((e) => e.event_properties?.[PROP_SESSION_ID]);
112
+ throw new Error(`No '${EVENT_SESSION_END}' event for session '${sessionId}'. Ended sessions: ${ended.length ? ended.join(", ") : "(none)"}`);
113
+ }
114
+ return candidates[0];
115
+ }
116
+ };
117
+
118
+ //#endregion
119
+ export { MockAmplitudeAI };
120
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","names":[],"sources":["../src/testing.ts"],"sourcesContent":["import { AmplitudeAI } from './client.js';\nimport type { AIConfig } from './config.js';\nimport {\n EVENT_SESSION_END,\n PROP_AGENT_ID,\n PROP_SESSION_ID,\n} from './core/constants.js';\n\ninterface MockEvent {\n event_type?: string;\n user_id?: string;\n event_properties?: Record<string, unknown>;\n user_properties?: Record<string, unknown>;\n groups?: Record<string, unknown>;\n}\n\n/**\n * Test double for AmplitudeAI that captures events in-memory.\n *\n * Use in unit tests to assert tracked events without sending data.\n *\n * @example\n * ```typescript\n * const mock = new MockAmplitudeAI();\n * const agent = mock.agent('test-agent', { userId: 'u1' });\n * agent.trackUserMessage('hello', { sessionId: 's1' });\n * mock.assertEventTracked('[Agent] User Message', { userId: 'u1' });\n * ```\n */\ntype SimulatedError = {\n type: string;\n message: string;\n};\n\nexport class MockAmplitudeAI extends AmplitudeAI {\n events: MockEvent[] = [];\n private _simulatedError: SimulatedError | null = null;\n private _simulatedLatencyMs = 0;\n\n constructor(config?: AIConfig) {\n const mockAmplitude = {\n track: () => {},\n flush: () => [],\n shutdown: () => {},\n init: () => mockAmplitude,\n };\n\n super({\n amplitude: mockAmplitude as unknown as ConstructorParameters<\n typeof AmplitudeAI\n >[0]['amplitude'],\n config,\n });\n\n this._amplitude.track = (event) => {\n this.events.push(event as MockEvent);\n };\n\n if (\n this._config.debug ||\n this._config.dryRun ||\n this._config.onEventCallback != null\n ) {\n (\n this as unknown as { _installTrackHook: () => void }\n )._installTrackHook?.();\n }\n }\n\n getEvents(eventType?: string): MockEvent[] {\n if (eventType == null) return [...this.events];\n return this.events.filter((e) => e.event_type === eventType);\n }\n\n assertEventTracked(\n eventType: string,\n options: { userId?: string; [key: string]: unknown } = {},\n ): MockEvent {\n const { userId, ...expectedProps } = options;\n const candidates = this.getEvents(eventType);\n\n if (!candidates.length) {\n const trackedTypes = new Set(this.events.map((e) => e.event_type));\n throw new Error(\n `No '${eventType}' event tracked. Tracked types: ${[...trackedTypes].join(', ') || '(none)'}`,\n );\n }\n\n for (const event of candidates) {\n if (userId != null && event.user_id !== userId) continue;\n\n if (Object.keys(expectedProps).length > 0) {\n const props = event.event_properties ?? {};\n if (Object.entries(expectedProps).every(([k, v]) => props[k] === v)) {\n return event;\n }\n } else {\n return event;\n }\n }\n\n const filters = [];\n if (userId != null) filters.push(`userId=${userId}`);\n for (const [k, v] of Object.entries(expectedProps)) {\n filters.push(`${k}=${String(v)}`);\n }\n throw new Error(\n `Found ${candidates.length} '${eventType}' event(s) but none matched filters: ${filters.join(', ')}`,\n );\n }\n\n /**\n * Configure the mock to throw an error on the next tracking call.\n * Useful for testing error-handling paths in your application.\n *\n * @param type - Error type (e.g., 'rate_limit', 'network', 'auth')\n * @param message - Optional custom error message\n */\n simulateError(type: string, message?: string): void {\n this._simulatedError = {\n type,\n message: message ?? `Simulated ${type} error`,\n };\n this._amplitude.track = () => {\n const err = this._simulatedError;\n if (err) {\n throw new Error(`[MockAmplitudeAI] ${err.type}: ${err.message}`);\n }\n };\n }\n\n /**\n * Configure a simulated latency (in ms) added to each tracking call.\n * Combined with async tests, this helps verify timeout and retry logic.\n */\n simulateLatency(ms: number): void {\n this._simulatedLatencyMs = ms;\n const originalCapture = (event: MockEvent): void => {\n this.events.push(event);\n };\n this._amplitude.track = (event) => {\n if (this._simulatedLatencyMs > 0) {\n const start = Date.now();\n while (Date.now() - start < this._simulatedLatencyMs) {\n // busy wait for synchronous latency simulation\n }\n }\n originalCapture(event as MockEvent);\n };\n }\n\n /**\n * Clear any simulated error or latency, restoring normal capture behavior.\n */\n clearSimulations(): void {\n this._simulatedError = null;\n this._simulatedLatencyMs = 0;\n this._amplitude.track = (event) => {\n this.events.push(event as MockEvent);\n };\n }\n\n reset(): void {\n this.events = [];\n this._simulatedError = null;\n this._simulatedLatencyMs = 0;\n // Restore base capture (not clearSimulations, which would lose debug hooks)\n this._amplitude.track = (event) => {\n this.events.push(event as MockEvent);\n };\n // Re-install debug/dryRun hooks if configured\n if (\n this._config.debug ||\n this._config.dryRun ||\n this._config.onEventCallback != null\n ) {\n (\n this as unknown as { _installTrackHook: () => void }\n )._installTrackHook?.();\n }\n this._sessionTurnCounters.clear();\n }\n\n eventsForSession(sessionId: string): MockEvent[] {\n return this.events.filter(\n (e) => e.event_properties?.[PROP_SESSION_ID] === sessionId,\n );\n }\n\n eventsForAgent(agentId: string): MockEvent[] {\n return this.events.filter(\n (e) => e.event_properties?.[PROP_AGENT_ID] === agentId,\n );\n }\n\n assertSessionClosed(sessionId: string): MockEvent {\n const candidates = this.events.filter(\n (e) =>\n e.event_type === EVENT_SESSION_END &&\n e.event_properties?.[PROP_SESSION_ID] === sessionId,\n );\n\n if (!candidates.length) {\n const ended = this.events\n .filter((e) => e.event_type === EVENT_SESSION_END)\n .map((e) => e.event_properties?.[PROP_SESSION_ID]);\n throw new Error(\n `No '${EVENT_SESSION_END}' event for session '${sessionId}'. Ended sessions: ${ended.length ? ended.join(', ') : '(none)'}`,\n );\n }\n\n return candidates[0] as Record<string, unknown>;\n }\n}\n"],"mappings":"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"}