@anam-ai/js-sdk 4.8.0-alpha.sam.1 → 4.8.0-alpha.sam.3

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 (298) hide show
  1. package/dist/main/AnamClient.d.ts +1 -1
  2. package/dist/main/AnamClient.d.ts.map +1 -1
  3. package/dist/main/AnamClient.js +1 -1
  4. package/dist/main/AnamClient.js.map +1 -1
  5. package/dist/main/modules/{ThoughtHistoryClient.d.ts → ReasoningHistoryClient.d.ts} +4 -4
  6. package/dist/main/modules/ReasoningHistoryClient.d.ts.map +1 -0
  7. package/dist/main/modules/ReasoningHistoryClient.js +46 -0
  8. package/dist/main/modules/ReasoningHistoryClient.js.map +1 -0
  9. package/dist/main/modules/index.d.ts +1 -1
  10. package/dist/main/modules/index.d.ts.map +1 -1
  11. package/dist/main/modules/index.js +3 -3
  12. package/dist/main/modules/index.js.map +1 -1
  13. package/dist/main/types/events/internal/InternalEvent.d.ts +1 -1
  14. package/dist/main/types/events/internal/InternalEvent.d.ts.map +1 -1
  15. package/dist/main/types/events/internal/InternalEvent.js +1 -1
  16. package/dist/main/types/events/internal/InternalEvent.js.map +1 -1
  17. package/dist/main/types/events/internal/InternalEventCallbacks.d.ts +2 -1
  18. package/dist/main/types/events/internal/InternalEventCallbacks.d.ts.map +1 -1
  19. package/dist/main/types/events/public/AnamEvent.d.ts +2 -2
  20. package/dist/main/types/events/public/AnamEvent.d.ts.map +1 -1
  21. package/dist/main/types/events/public/AnamEvent.js +2 -2
  22. package/dist/main/types/events/public/AnamEvent.js.map +1 -1
  23. package/dist/main/types/events/public/EventCallbacks.d.ts +3 -1
  24. package/dist/main/types/events/public/EventCallbacks.d.ts.map +1 -1
  25. package/dist/main/types/messageHistory/ReasoningMessage.d.ts +6 -0
  26. package/dist/main/types/messageHistory/ReasoningMessage.d.ts.map +1 -0
  27. package/dist/main/types/messageHistory/{Thought.js → ReasoningMessage.js} +1 -1
  28. package/dist/main/types/messageHistory/ReasoningMessage.js.map +1 -0
  29. package/dist/main/types/messageHistory/ReasoningStreamEvent.d.ts +7 -0
  30. package/dist/main/types/messageHistory/ReasoningStreamEvent.d.ts.map +1 -0
  31. package/dist/main/types/messageHistory/{ThoughtStreamEvent.js → ReasoningStreamEvent.js} +1 -1
  32. package/dist/main/types/messageHistory/ReasoningStreamEvent.js.map +1 -0
  33. package/dist/main/types/messageHistory/index.d.ts +2 -2
  34. package/dist/main/types/messageHistory/index.d.ts.map +1 -1
  35. package/dist/module/AnamClient.d.ts +65 -0
  36. package/dist/module/AnamClient.d.ts.map +1 -0
  37. package/dist/module/AnamClient.js +462 -0
  38. package/dist/module/AnamClient.js.map +1 -0
  39. package/dist/module/index.d.ts +26 -0
  40. package/dist/module/index.d.ts.map +1 -0
  41. package/dist/module/index.js +27 -0
  42. package/dist/module/index.js.map +1 -0
  43. package/dist/module/lib/ClientError.d.ts +19 -0
  44. package/dist/module/lib/ClientError.d.ts.map +1 -0
  45. package/dist/module/lib/ClientError.js +30 -0
  46. package/dist/module/lib/ClientError.js.map +1 -0
  47. package/dist/module/lib/ClientMetrics.d.ts +59 -0
  48. package/dist/module/lib/ClientMetrics.d.ts.map +1 -0
  49. package/dist/module/lib/ClientMetrics.js +305 -0
  50. package/dist/module/lib/ClientMetrics.js.map +1 -0
  51. package/dist/module/lib/constants.d.ts +10 -0
  52. package/dist/module/lib/constants.d.ts.map +1 -0
  53. package/dist/module/lib/constants.js +11 -0
  54. package/dist/module/lib/constants.js.map +1 -0
  55. package/dist/module/lib/correlationId.d.ts +2 -0
  56. package/dist/module/lib/correlationId.d.ts.map +1 -0
  57. package/dist/module/lib/correlationId.js +9 -0
  58. package/dist/module/lib/correlationId.js.map +1 -0
  59. package/dist/module/lib/validateApiGatewayConfig.d.ts +8 -0
  60. package/dist/module/lib/validateApiGatewayConfig.d.ts.map +1 -0
  61. package/dist/module/lib/validateApiGatewayConfig.js +31 -0
  62. package/dist/module/lib/validateApiGatewayConfig.js.map +1 -0
  63. package/dist/module/lib/version.d.ts +3 -0
  64. package/dist/module/lib/version.d.ts.map +1 -0
  65. package/dist/module/lib/version.js +3 -0
  66. package/dist/module/lib/version.js.map +1 -0
  67. package/dist/module/modules/CoreApiRestClient.d.ts +18 -0
  68. package/dist/module/modules/CoreApiRestClient.d.ts.map +1 -0
  69. package/dist/module/modules/CoreApiRestClient.js +149 -0
  70. package/dist/module/modules/CoreApiRestClient.js.map +1 -0
  71. package/dist/module/modules/EngineApiRestClient.d.ts +9 -0
  72. package/dist/module/modules/EngineApiRestClient.d.ts.map +1 -0
  73. package/dist/module/modules/EngineApiRestClient.js +56 -0
  74. package/dist/module/modules/EngineApiRestClient.js.map +1 -0
  75. package/dist/module/modules/InternalEventEmitter.d.ts +9 -0
  76. package/dist/module/modules/InternalEventEmitter.d.ts.map +1 -0
  77. package/dist/module/modules/InternalEventEmitter.js +24 -0
  78. package/dist/module/modules/InternalEventEmitter.js.map +1 -0
  79. package/dist/module/modules/MessageHistoryClient.d.ts +13 -0
  80. package/dist/module/modules/MessageHistoryClient.d.ts.map +1 -0
  81. package/dist/module/modules/MessageHistoryClient.js +66 -0
  82. package/dist/module/modules/MessageHistoryClient.js.map +1 -0
  83. package/dist/module/modules/PublicEventEmitter.d.ts +9 -0
  84. package/dist/module/modules/PublicEventEmitter.d.ts.map +1 -0
  85. package/dist/module/modules/PublicEventEmitter.js +33 -0
  86. package/dist/module/modules/PublicEventEmitter.js.map +1 -0
  87. package/dist/module/modules/ReasoningHistoryClient.d.ts +10 -0
  88. package/dist/module/modules/ReasoningHistoryClient.d.ts.map +1 -0
  89. package/dist/module/modules/ReasoningHistoryClient.js +42 -0
  90. package/dist/module/modules/ReasoningHistoryClient.js.map +1 -0
  91. package/dist/module/modules/SignallingClient.d.ts +34 -0
  92. package/dist/module/modules/SignallingClient.d.ts.map +1 -0
  93. package/dist/module/modules/SignallingClient.js +251 -0
  94. package/dist/module/modules/SignallingClient.js.map +1 -0
  95. package/dist/module/modules/StreamingClient.d.ts +81 -0
  96. package/dist/module/modules/StreamingClient.d.ts.map +1 -0
  97. package/dist/module/modules/StreamingClient.js +706 -0
  98. package/dist/module/modules/StreamingClient.js.map +1 -0
  99. package/dist/module/modules/ToolCallManager.d.ts +8 -0
  100. package/dist/module/modules/ToolCallManager.d.ts.map +1 -0
  101. package/dist/module/modules/ToolCallManager.js +17 -0
  102. package/dist/module/modules/ToolCallManager.js.map +1 -0
  103. package/dist/module/modules/index.d.ts +10 -0
  104. package/dist/module/modules/index.d.ts.map +1 -0
  105. package/dist/module/modules/index.js +10 -0
  106. package/dist/module/modules/index.js.map +1 -0
  107. package/dist/module/types/AgentAudioInputStream.d.ts +28 -0
  108. package/dist/module/types/AgentAudioInputStream.d.ts.map +1 -0
  109. package/dist/module/types/AgentAudioInputStream.js +50 -0
  110. package/dist/module/types/AgentAudioInputStream.js.map +1 -0
  111. package/dist/module/types/AnamClientOptions.d.ts +4 -0
  112. package/dist/module/types/AnamClientOptions.d.ts.map +1 -0
  113. package/dist/module/types/AnamClientOptions.js +2 -0
  114. package/dist/module/types/AnamClientOptions.js.map +1 -0
  115. package/dist/module/types/AnamInternalClientOptions.d.ts +4 -0
  116. package/dist/module/types/AnamInternalClientOptions.d.ts.map +1 -0
  117. package/dist/module/types/AnamInternalClientOptions.js +2 -0
  118. package/dist/module/types/AnamInternalClientOptions.js.map +1 -0
  119. package/dist/module/types/AnamPublicClientOptions.d.ts +20 -0
  120. package/dist/module/types/AnamPublicClientOptions.d.ts.map +1 -0
  121. package/dist/module/types/AnamPublicClientOptions.js +2 -0
  122. package/dist/module/types/AnamPublicClientOptions.js.map +1 -0
  123. package/dist/module/types/ApiGatewayConfig.d.ts +45 -0
  124. package/dist/module/types/ApiGatewayConfig.d.ts.map +1 -0
  125. package/dist/module/types/ApiGatewayConfig.js +2 -0
  126. package/dist/module/types/ApiGatewayConfig.js.map +1 -0
  127. package/dist/module/types/InputAudioState.d.ts +11 -0
  128. package/dist/module/types/InputAudioState.d.ts.map +1 -0
  129. package/dist/module/types/InputAudioState.js +8 -0
  130. package/dist/module/types/InputAudioState.js.map +1 -0
  131. package/dist/module/types/PersonaConfig.d.ts +13 -0
  132. package/dist/module/types/PersonaConfig.d.ts.map +1 -0
  133. package/dist/module/types/PersonaConfig.js +4 -0
  134. package/dist/module/types/PersonaConfig.js.map +1 -0
  135. package/dist/module/types/TalkMessageStream.d.ts +18 -0
  136. package/dist/module/types/TalkMessageStream.d.ts.map +1 -0
  137. package/dist/module/types/TalkMessageStream.js +89 -0
  138. package/dist/module/types/TalkMessageStream.js.map +1 -0
  139. package/dist/module/types/TalkMessageStreamState.d.ts +7 -0
  140. package/dist/module/types/TalkMessageStreamState.d.ts.map +1 -0
  141. package/dist/module/types/TalkMessageStreamState.js +8 -0
  142. package/dist/module/types/TalkMessageStreamState.js.map +1 -0
  143. package/dist/module/types/VoiceDetectionOptions.d.ts +4 -0
  144. package/dist/module/types/VoiceDetectionOptions.d.ts.map +1 -0
  145. package/dist/module/types/VoiceDetectionOptions.js +2 -0
  146. package/dist/module/types/VoiceDetectionOptions.js.map +1 -0
  147. package/dist/module/types/coreApi/ApiOptions.d.ts +7 -0
  148. package/dist/module/types/coreApi/ApiOptions.d.ts.map +1 -0
  149. package/dist/module/types/coreApi/ApiOptions.js +2 -0
  150. package/dist/module/types/coreApi/ApiOptions.js.map +1 -0
  151. package/dist/module/types/coreApi/StartSessionOptions.d.ts +5 -0
  152. package/dist/module/types/coreApi/StartSessionOptions.d.ts.map +1 -0
  153. package/dist/module/types/coreApi/StartSessionOptions.js +2 -0
  154. package/dist/module/types/coreApi/StartSessionOptions.js.map +1 -0
  155. package/dist/module/types/coreApi/StartSessionResponse.d.ts +13 -0
  156. package/dist/module/types/coreApi/StartSessionResponse.d.ts.map +1 -0
  157. package/dist/module/types/coreApi/StartSessionResponse.js +2 -0
  158. package/dist/module/types/coreApi/StartSessionResponse.js.map +1 -0
  159. package/dist/module/types/coreApi/index.d.ts +5 -0
  160. package/dist/module/types/coreApi/index.d.ts.map +1 -0
  161. package/dist/module/types/coreApi/index.js +2 -0
  162. package/dist/module/types/coreApi/index.js.map +1 -0
  163. package/dist/module/types/engineApi/EngineApiRestClientOptions.d.ts +4 -0
  164. package/dist/module/types/engineApi/EngineApiRestClientOptions.d.ts.map +1 -0
  165. package/dist/module/types/engineApi/EngineApiRestClientOptions.js +2 -0
  166. package/dist/module/types/engineApi/EngineApiRestClientOptions.js.map +1 -0
  167. package/dist/module/types/engineApi/index.d.ts +1 -0
  168. package/dist/module/types/engineApi/index.d.ts.map +1 -0
  169. package/dist/module/types/engineApi/index.js +2 -0
  170. package/dist/module/types/engineApi/index.js.map +1 -0
  171. package/dist/module/types/events/EventCallback.d.ts +2 -0
  172. package/dist/module/types/events/EventCallback.d.ts.map +1 -0
  173. package/dist/module/types/events/EventCallback.js +2 -0
  174. package/dist/module/types/events/EventCallback.js.map +1 -0
  175. package/dist/module/types/events/index.d.ts +7 -0
  176. package/dist/module/types/events/index.d.ts.map +1 -0
  177. package/dist/module/types/events/index.js +4 -0
  178. package/dist/module/types/events/index.js.map +1 -0
  179. package/dist/module/types/events/internal/InternalEvent.d.ts +8 -0
  180. package/dist/module/types/events/internal/InternalEvent.d.ts.map +1 -0
  181. package/dist/module/types/events/internal/InternalEvent.js +9 -0
  182. package/dist/module/types/events/internal/InternalEvent.js.map +1 -0
  183. package/dist/module/types/events/internal/InternalEventCallbacks.d.ts +9 -0
  184. package/dist/module/types/events/internal/InternalEventCallbacks.d.ts.map +1 -0
  185. package/dist/module/types/events/internal/InternalEventCallbacks.js +2 -0
  186. package/dist/module/types/events/internal/InternalEventCallbacks.js.map +1 -0
  187. package/dist/module/types/events/public/AnamEvent.d.ts +21 -0
  188. package/dist/module/types/events/public/AnamEvent.d.ts.map +1 -0
  189. package/dist/module/types/events/public/AnamEvent.js +22 -0
  190. package/dist/module/types/events/public/AnamEvent.js.map +1 -0
  191. package/dist/module/types/events/public/ConnectionClosedCodes.d.ts +8 -0
  192. package/dist/module/types/events/public/ConnectionClosedCodes.d.ts.map +1 -0
  193. package/dist/module/types/events/public/ConnectionClosedCodes.js +9 -0
  194. package/dist/module/types/events/public/ConnectionClosedCodes.js.map +1 -0
  195. package/dist/module/types/events/public/EventCallbacks.d.ts +23 -0
  196. package/dist/module/types/events/public/EventCallbacks.d.ts.map +1 -0
  197. package/dist/module/types/events/public/EventCallbacks.js +2 -0
  198. package/dist/module/types/events/public/EventCallbacks.js.map +1 -0
  199. package/dist/module/types/index.d.ts +18 -0
  200. package/dist/module/types/index.d.ts.map +1 -0
  201. package/dist/module/types/index.js +9 -0
  202. package/dist/module/types/index.js.map +1 -0
  203. package/dist/module/types/messageHistory/Message.d.ts +8 -0
  204. package/dist/module/types/messageHistory/Message.d.ts.map +1 -0
  205. package/dist/module/types/messageHistory/Message.js +2 -0
  206. package/dist/module/types/messageHistory/Message.js.map +1 -0
  207. package/dist/module/types/messageHistory/MessageRole.d.ts +5 -0
  208. package/dist/module/types/messageHistory/MessageRole.d.ts.map +1 -0
  209. package/dist/module/types/messageHistory/MessageRole.js +6 -0
  210. package/dist/module/types/messageHistory/MessageRole.js.map +1 -0
  211. package/dist/module/types/messageHistory/MessageStreamEvent.d.ts +9 -0
  212. package/dist/module/types/messageHistory/MessageStreamEvent.d.ts.map +1 -0
  213. package/dist/module/types/messageHistory/MessageStreamEvent.js +2 -0
  214. package/dist/module/types/messageHistory/MessageStreamEvent.js.map +1 -0
  215. package/dist/module/types/messageHistory/ReasoningMessage.d.ts +6 -0
  216. package/dist/module/types/messageHistory/ReasoningMessage.d.ts.map +1 -0
  217. package/dist/module/types/messageHistory/ReasoningMessage.js +2 -0
  218. package/dist/module/types/messageHistory/ReasoningMessage.js.map +1 -0
  219. package/dist/module/types/messageHistory/ReasoningStreamEvent.d.ts +7 -0
  220. package/dist/module/types/messageHistory/ReasoningStreamEvent.d.ts.map +1 -0
  221. package/dist/module/types/messageHistory/ReasoningStreamEvent.js +2 -0
  222. package/dist/module/types/messageHistory/ReasoningStreamEvent.js.map +1 -0
  223. package/dist/module/types/messageHistory/index.d.ts +6 -0
  224. package/dist/module/types/messageHistory/index.d.ts.map +1 -0
  225. package/dist/module/types/messageHistory/index.js +2 -0
  226. package/dist/module/types/messageHistory/index.js.map +1 -0
  227. package/dist/module/types/signalling/AgentAudioInputConfig.d.ts +9 -0
  228. package/dist/module/types/signalling/AgentAudioInputConfig.d.ts.map +1 -0
  229. package/dist/module/types/signalling/AgentAudioInputConfig.js +2 -0
  230. package/dist/module/types/signalling/AgentAudioInputConfig.js.map +1 -0
  231. package/dist/module/types/signalling/AgentAudioInputPayload.d.ts +13 -0
  232. package/dist/module/types/signalling/AgentAudioInputPayload.d.ts.map +1 -0
  233. package/dist/module/types/signalling/AgentAudioInputPayload.js +2 -0
  234. package/dist/module/types/signalling/AgentAudioInputPayload.js.map +1 -0
  235. package/dist/module/types/signalling/SignalMessage.d.ts +19 -0
  236. package/dist/module/types/signalling/SignalMessage.d.ts.map +1 -0
  237. package/dist/module/types/signalling/SignalMessage.js +15 -0
  238. package/dist/module/types/signalling/SignalMessage.js.map +1 -0
  239. package/dist/module/types/signalling/SignallingClientOptions.d.ts +12 -0
  240. package/dist/module/types/signalling/SignallingClientOptions.d.ts.map +1 -0
  241. package/dist/module/types/signalling/SignallingClientOptions.js +2 -0
  242. package/dist/module/types/signalling/SignallingClientOptions.js.map +1 -0
  243. package/dist/module/types/signalling/TalkMessageStreamPayload.d.ts +7 -0
  244. package/dist/module/types/signalling/TalkMessageStreamPayload.d.ts.map +1 -0
  245. package/dist/module/types/signalling/TalkMessageStreamPayload.js +2 -0
  246. package/dist/module/types/signalling/TalkMessageStreamPayload.js.map +1 -0
  247. package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.d.ts +5 -0
  248. package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.d.ts.map +1 -0
  249. package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.js +7 -0
  250. package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.js.map +1 -0
  251. package/dist/module/types/signalling/index.d.ts +6 -0
  252. package/dist/module/types/signalling/index.d.ts.map +1 -0
  253. package/dist/module/types/signalling/index.js +2 -0
  254. package/dist/module/types/signalling/index.js.map +1 -0
  255. package/dist/module/types/streaming/ClientToolEvent.d.ts +10 -0
  256. package/dist/module/types/streaming/ClientToolEvent.d.ts.map +1 -0
  257. package/dist/module/types/streaming/ClientToolEvent.js +2 -0
  258. package/dist/module/types/streaming/ClientToolEvent.js.map +1 -0
  259. package/dist/module/types/streaming/DataChannelMessage.d.ts +6 -0
  260. package/dist/module/types/streaming/DataChannelMessage.d.ts.map +1 -0
  261. package/dist/module/types/streaming/DataChannelMessage.js +7 -0
  262. package/dist/module/types/streaming/DataChannelMessage.js.map +1 -0
  263. package/dist/module/types/streaming/InputAudioOptions.d.ts +8 -0
  264. package/dist/module/types/streaming/InputAudioOptions.d.ts.map +1 -0
  265. package/dist/module/types/streaming/InputAudioOptions.js +2 -0
  266. package/dist/module/types/streaming/InputAudioOptions.js.map +1 -0
  267. package/dist/module/types/streaming/StreamingClientOptions.d.ts +16 -0
  268. package/dist/module/types/streaming/StreamingClientOptions.d.ts.map +1 -0
  269. package/dist/module/types/streaming/StreamingClientOptions.js +2 -0
  270. package/dist/module/types/streaming/StreamingClientOptions.js.map +1 -0
  271. package/dist/module/types/streaming/WebRtcClientToolEvent.d.ts +11 -0
  272. package/dist/module/types/streaming/WebRtcClientToolEvent.d.ts.map +1 -0
  273. package/dist/module/types/streaming/WebRtcClientToolEvent.js +2 -0
  274. package/dist/module/types/streaming/WebRtcClientToolEvent.js.map +1 -0
  275. package/dist/module/types/streaming/WebRtcReasoningTextMessageEvent.d.ts +8 -0
  276. package/dist/module/types/streaming/WebRtcReasoningTextMessageEvent.d.ts.map +1 -0
  277. package/dist/module/types/streaming/WebRtcReasoningTextMessageEvent.js +2 -0
  278. package/dist/module/types/streaming/WebRtcReasoningTextMessageEvent.js.map +1 -0
  279. package/dist/module/types/streaming/WebRtcTextMessageEvent.d.ts +9 -0
  280. package/dist/module/types/streaming/WebRtcTextMessageEvent.d.ts.map +1 -0
  281. package/dist/module/types/streaming/WebRtcTextMessageEvent.js +2 -0
  282. package/dist/module/types/streaming/WebRtcTextMessageEvent.js.map +1 -0
  283. package/dist/module/types/streaming/index.d.ts +8 -0
  284. package/dist/module/types/streaming/index.d.ts.map +1 -0
  285. package/dist/module/types/streaming/index.js +2 -0
  286. package/dist/module/types/streaming/index.js.map +1 -0
  287. package/dist/umd/anam.js +2 -0
  288. package/dist/umd/anam.js.LICENSE.txt +8 -0
  289. package/package.json +1 -1
  290. package/dist/main/modules/ThoughtHistoryClient.d.ts.map +0 -1
  291. package/dist/main/modules/ThoughtHistoryClient.js +0 -34
  292. package/dist/main/modules/ThoughtHistoryClient.js.map +0 -1
  293. package/dist/main/types/messageHistory/Thought.d.ts +0 -5
  294. package/dist/main/types/messageHistory/Thought.d.ts.map +0 -1
  295. package/dist/main/types/messageHistory/Thought.js.map +0 -1
  296. package/dist/main/types/messageHistory/ThoughtStreamEvent.d.ts +0 -6
  297. package/dist/main/types/messageHistory/ThoughtStreamEvent.d.ts.map +0 -1
  298. package/dist/main/types/messageHistory/ThoughtStreamEvent.js.map +0 -1
@@ -0,0 +1,462 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Buffer } from 'buffer';
11
+ import { ClientError, ErrorCode } from './lib/ClientError';
12
+ import { ClientMetricMeasurement, DEFAULT_ANAM_API_VERSION, DEFAULT_ANAM_METRICS_BASE_URL, sendClientMetric, setClientMetricsApiGateway, setClientMetricsBaseUrl, setClientMetricsDisabled, setMetricsContext, } from './lib/ClientMetrics';
13
+ import { generateCorrelationId } from './lib/correlationId';
14
+ import { validateApiGatewayConfig } from './lib/validateApiGatewayConfig';
15
+ import { CoreApiRestClient, InternalEventEmitter, MessageHistoryClient, PublicEventEmitter, StreamingClient, ReasoningHistoryClient, } from './modules';
16
+ import { AnamEvent, AudioPermissionState, ConnectionClosedCode, } from './types';
17
+ export default class AnamClient {
18
+ constructor(sessionToken, personaConfig, options) {
19
+ var _a, _b, _c, _d, _e;
20
+ this.inputAudioState = {
21
+ isMuted: false,
22
+ permissionState: AudioPermissionState.NOT_REQUESTED,
23
+ };
24
+ this.sessionId = null;
25
+ this.organizationId = null;
26
+ this.streamingClient = null;
27
+ this._isStreaming = false;
28
+ const configError = this.validateClientConfig(sessionToken, personaConfig, options);
29
+ if (configError) {
30
+ throw new ClientError(configError, ErrorCode.CLIENT_ERROR_CODE_CONFIGURATION_ERROR, 400);
31
+ }
32
+ this.personaConfig = personaConfig;
33
+ this.clientOptions = options;
34
+ if (((_a = options === null || options === void 0 ? void 0 : options.api) === null || _a === void 0 ? void 0 : _a.baseUrl) || ((_b = options === null || options === void 0 ? void 0 : options.api) === null || _b === void 0 ? void 0 : _b.apiVersion)) {
35
+ setClientMetricsBaseUrl(options.api.baseUrl || DEFAULT_ANAM_METRICS_BASE_URL, options.api.apiVersion || DEFAULT_ANAM_API_VERSION);
36
+ }
37
+ // Pass API Gateway config to metrics module so metrics are routed through the gateway
38
+ if ((_d = (_c = options === null || options === void 0 ? void 0 : options.api) === null || _c === void 0 ? void 0 : _c.apiGateway) === null || _d === void 0 ? void 0 : _d.enabled) {
39
+ setClientMetricsApiGateway(options.api.apiGateway);
40
+ }
41
+ // Allow disabling client metrics telemetry
42
+ if ((_e = options === null || options === void 0 ? void 0 : options.metrics) === null || _e === void 0 ? void 0 : _e.disableClientMetrics) {
43
+ setClientMetricsDisabled(true);
44
+ }
45
+ this.publicEventEmitter = new PublicEventEmitter();
46
+ this.internalEventEmitter = new InternalEventEmitter();
47
+ this.apiClient = new CoreApiRestClient(sessionToken, options === null || options === void 0 ? void 0 : options.apiKey, options === null || options === void 0 ? void 0 : options.api);
48
+ this.messageHistoryClient = new MessageHistoryClient(this.publicEventEmitter, this.internalEventEmitter);
49
+ this.reasoningHistoryClient = new ReasoningHistoryClient(this.publicEventEmitter, this.internalEventEmitter);
50
+ }
51
+ decodeJwt(token) {
52
+ try {
53
+ const base64Payload = token.split('.')[1];
54
+ const payloadString = Buffer.from(base64Payload, 'base64').toString('utf8');
55
+ const payload = JSON.parse(payloadString);
56
+ return payload;
57
+ }
58
+ catch (error) {
59
+ throw new Error('Invalid session token format');
60
+ }
61
+ }
62
+ validateClientConfig(sessionToken, personaConfig, options) {
63
+ var _a, _b;
64
+ // Validate authentication configuration
65
+ if (!sessionToken && !(options === null || options === void 0 ? void 0 : options.apiKey)) {
66
+ return 'Either sessionToken or apiKey must be provided';
67
+ }
68
+ if ((options === null || options === void 0 ? void 0 : options.apiKey) && sessionToken) {
69
+ return 'Only one of sessionToken or apiKey should be used';
70
+ }
71
+ // Validate gateway configuration
72
+ const apiGatewayError = validateApiGatewayConfig((_a = options === null || options === void 0 ? void 0 : options.api) === null || _a === void 0 ? void 0 : _a.apiGateway);
73
+ if (apiGatewayError) {
74
+ return apiGatewayError;
75
+ }
76
+ // Validate persona configuration based on session token
77
+ if (sessionToken) {
78
+ const decodedToken = this.decodeJwt(sessionToken);
79
+ this.organizationId = decodedToken.accountId;
80
+ setMetricsContext({
81
+ organizationId: this.organizationId,
82
+ });
83
+ const tokenType = (_b = decodedToken.type) === null || _b === void 0 ? void 0 : _b.toLowerCase();
84
+ if (tokenType === 'legacy') {
85
+ return 'Legacy session tokens are no longer supported. Please define your persona when creating your session token. See https://docs.anam.ai/resources/migrating-legacy for more information.';
86
+ }
87
+ else if (tokenType === 'ephemeral' || tokenType === 'stateful') {
88
+ if (personaConfig) {
89
+ return 'This session token already contains a persona configuration. Please remove the personaConfig parameter.';
90
+ }
91
+ }
92
+ }
93
+ else {
94
+ // No session token (using apiKey)
95
+ if (!personaConfig) {
96
+ return 'Missing persona config. Persona configuration must be provided when using apiKey';
97
+ }
98
+ }
99
+ // Validate voice detection configuration
100
+ if (options === null || options === void 0 ? void 0 : options.voiceDetection) {
101
+ if (options.disableInputAudio) {
102
+ return 'Voice detection is disabled because input audio is disabled. Please set disableInputAudio to false to enable voice detection.';
103
+ }
104
+ // End of speech sensitivity must be a number between 0 and 1
105
+ if (options.voiceDetection.endOfSpeechSensitivity !== undefined) {
106
+ if (typeof options.voiceDetection.endOfSpeechSensitivity !== 'number') {
107
+ return 'End of speech sensitivity must be a number';
108
+ }
109
+ if (options.voiceDetection.endOfSpeechSensitivity < 0 ||
110
+ options.voiceDetection.endOfSpeechSensitivity > 1) {
111
+ return 'End of speech sensitivity must be between 0 and 1';
112
+ }
113
+ }
114
+ }
115
+ return undefined;
116
+ }
117
+ buildStartSessionOptionsForClient() {
118
+ var _a;
119
+ const sessionOptions = {};
120
+ if ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.voiceDetection) {
121
+ sessionOptions.voiceDetection = this.clientOptions.voiceDetection;
122
+ }
123
+ // return undefined if no options are set
124
+ if (Object.keys(sessionOptions).length === 0) {
125
+ return undefined;
126
+ }
127
+ return sessionOptions;
128
+ }
129
+ startSession(userProvidedAudioStream) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
132
+ const config = this.personaConfig;
133
+ // build session options from client options
134
+ const sessionOptions = this.buildStartSessionOptionsForClient();
135
+ // start a new session
136
+ const response = yield this.apiClient.startSession(config, sessionOptions);
137
+ const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
138
+ const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers: defaultIceServers, } = clientConfig;
139
+ this.sessionId = sessionId;
140
+ setMetricsContext({
141
+ sessionId: this.sessionId,
142
+ });
143
+ // Use custom ICE servers if provided, otherwise use server-provided ICE servers
144
+ const iceServers = ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.iceServers)
145
+ ? this.clientOptions.iceServers
146
+ : defaultIceServers;
147
+ try {
148
+ this.streamingClient = new StreamingClient(sessionId, {
149
+ engine: {
150
+ baseUrl: `${engineProtocol}://${engineHost}`,
151
+ },
152
+ signalling: {
153
+ heartbeatIntervalSeconds,
154
+ maxWsReconnectionAttempts,
155
+ url: {
156
+ baseUrl: engineHost,
157
+ protocol: engineProtocol,
158
+ signallingPath: signallingEndpoint,
159
+ },
160
+ },
161
+ iceServers,
162
+ inputAudio: {
163
+ inputAudioState: this.inputAudioState,
164
+ userProvidedMediaStream: ((_b = this.clientOptions) === null || _b === void 0 ? void 0 : _b.disableInputAudio)
165
+ ? undefined
166
+ : userProvidedAudioStream,
167
+ audioDeviceId: (_c = this.clientOptions) === null || _c === void 0 ? void 0 : _c.audioDeviceId,
168
+ disableInputAudio: (_d = this.clientOptions) === null || _d === void 0 ? void 0 : _d.disableInputAudio,
169
+ },
170
+ apiGateway: (_f = (_e = this.clientOptions) === null || _e === void 0 ? void 0 : _e.api) === null || _f === void 0 ? void 0 : _f.apiGateway,
171
+ metrics: {
172
+ showPeerConnectionStatsReport: (_j = (_h = (_g = this.clientOptions) === null || _g === void 0 ? void 0 : _g.metrics) === null || _h === void 0 ? void 0 : _h.showPeerConnectionStatsReport) !== null && _j !== void 0 ? _j : false,
173
+ peerConnectionStatsReportOutputFormat: (_m = (_l = (_k = this.clientOptions) === null || _k === void 0 ? void 0 : _k.metrics) === null || _l === void 0 ? void 0 : _l.peerConnectionStatsReportOutputFormat) !== null && _m !== void 0 ? _m : 'console',
174
+ },
175
+ }, this.publicEventEmitter, this.internalEventEmitter);
176
+ }
177
+ catch (error) {
178
+ setMetricsContext({
179
+ sessionId: null,
180
+ });
181
+ throw new ClientError('Failed to initialize streaming client', ErrorCode.CLIENT_ERROR_CODE_SERVER_ERROR, 500, {
182
+ cause: error instanceof Error ? error.message : String(error),
183
+ sessionId,
184
+ });
185
+ }
186
+ return sessionId;
187
+ });
188
+ }
189
+ startSessionIfNeeded(userProvidedAudioStream) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ if (!this.sessionId || !this.streamingClient) {
192
+ yield this.startSession(userProvidedAudioStream);
193
+ if (!this.sessionId || !this.streamingClient) {
194
+ throw new ClientError('Session ID or streaming client is not available after starting session', ErrorCode.CLIENT_ERROR_CODE_SERVER_ERROR, 500, {
195
+ cause: 'Failed to initialize session properly',
196
+ });
197
+ }
198
+ }
199
+ });
200
+ }
201
+ stream(userProvidedAudioStream) {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ var _a;
204
+ if (this._isStreaming) {
205
+ throw new Error('Already streaming');
206
+ }
207
+ // generate a new ID here to track the attempt
208
+ const attemptCorrelationId = generateCorrelationId();
209
+ setMetricsContext({
210
+ attemptCorrelationId,
211
+ sessionId: null, // reset sessionId
212
+ });
213
+ sendClientMetric(ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_SESSION_ATTEMPT, '1');
214
+ if (((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) && userProvidedAudioStream) {
215
+ console.warn('AnamClient:Input audio is disabled. User provided audio stream will be ignored.');
216
+ }
217
+ yield this.startSessionIfNeeded(userProvidedAudioStream);
218
+ this._isStreaming = true;
219
+ return new Promise((resolve) => {
220
+ var _a;
221
+ // set stream callbacks to capture the stream
222
+ const streams = [];
223
+ let videoReceived = false;
224
+ let audioReceived = false;
225
+ this.publicEventEmitter.addListener(AnamEvent.VIDEO_STREAM_STARTED, (videoStream) => {
226
+ streams.push(videoStream);
227
+ videoReceived = true;
228
+ if (audioReceived) {
229
+ resolve(streams);
230
+ }
231
+ });
232
+ this.publicEventEmitter.addListener(AnamEvent.AUDIO_STREAM_STARTED, (audioStream) => {
233
+ streams.push(audioStream);
234
+ audioReceived = true;
235
+ if (videoReceived) {
236
+ resolve(streams);
237
+ }
238
+ });
239
+ // start streaming
240
+ (_a = this.streamingClient) === null || _a === void 0 ? void 0 : _a.startConnection();
241
+ });
242
+ });
243
+ }
244
+ /**
245
+ * @deprecated This method is deprecated. Please use streamToVideoElement instead.
246
+ */
247
+ streamToVideoAndAudioElements(videoElementId, audioElementId, userProvidedAudioStream) {
248
+ return __awaiter(this, void 0, void 0, function* () {
249
+ console.warn('AnamClient: streamToVideoAndAudioElements is deprecated. To avoid possible audio issues, please use streamToVideoElement instead.');
250
+ yield this.streamToVideoElement(videoElementId, userProvidedAudioStream);
251
+ });
252
+ }
253
+ streamToVideoElement(videoElementId, userProvidedAudioStream) {
254
+ return __awaiter(this, void 0, void 0, function* () {
255
+ var _a;
256
+ // generate a new ID here to track the attempt
257
+ const attemptCorrelationId = generateCorrelationId();
258
+ setMetricsContext({
259
+ attemptCorrelationId,
260
+ sessionId: null, // reset sessionId
261
+ });
262
+ sendClientMetric(ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_SESSION_ATTEMPT, '1');
263
+ if (((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) && userProvidedAudioStream) {
264
+ console.warn('AnamClient:Input audio is disabled. User provided audio stream will be ignored.');
265
+ }
266
+ try {
267
+ yield this.startSessionIfNeeded(userProvidedAudioStream);
268
+ }
269
+ catch (error) {
270
+ if (error instanceof ClientError) {
271
+ throw error;
272
+ }
273
+ throw new ClientError('Failed to start session', ErrorCode.CLIENT_ERROR_CODE_SERVER_ERROR, 500, {
274
+ cause: error instanceof Error ? error.message : String(error),
275
+ sessionId: this.sessionId,
276
+ });
277
+ }
278
+ if (this._isStreaming) {
279
+ throw new Error('Already streaming');
280
+ }
281
+ this._isStreaming = true;
282
+ if (!this.streamingClient) {
283
+ throw new Error('Failed to stream: streaming client is not available');
284
+ }
285
+ this.streamingClient.setMediaStreamTargetById(videoElementId);
286
+ this.streamingClient.startConnection();
287
+ });
288
+ }
289
+ /**
290
+ * Send a talk command to make the persona speak the provided content.
291
+ * @param content - The text content for the persona to speak
292
+ * @throws Error if session is not started or not currently streaming
293
+ */
294
+ talk(content) {
295
+ return __awaiter(this, void 0, void 0, function* () {
296
+ if (!this.streamingClient) {
297
+ throw new Error('Failed to send talk command: session is not started. Have you called startSession?');
298
+ }
299
+ if (!this._isStreaming) {
300
+ throw new Error('Failed to send talk command: not currently streaming. Have you called stream?');
301
+ }
302
+ yield this.streamingClient.sendTalkCommand(content);
303
+ return;
304
+ });
305
+ }
306
+ /**
307
+ * Send a raw data message through the WebRTC data channel.
308
+ * @param message - The message string to send through the data channel
309
+ * @throws Error if session is not started
310
+ */
311
+ sendDataMessage(message) {
312
+ if (this.streamingClient) {
313
+ this.streamingClient.sendDataMessage(message);
314
+ }
315
+ else {
316
+ throw new Error('Failed to send message: session is not started.');
317
+ }
318
+ }
319
+ /**
320
+ * Send a user text message in the active streaming session.
321
+ * @param content - The text message content to send
322
+ * @throws Error if not currently streaming or session is not started
323
+ */
324
+ sendUserMessage(content) {
325
+ if (!this._isStreaming) {
326
+ console.warn('AnamClient: Not currently streaming. User message will not be sent.');
327
+ throw new Error('Failed to send user message: not currently streaming');
328
+ }
329
+ const sessionId = this.getActiveSessionId();
330
+ if (!sessionId) {
331
+ throw new Error('Failed to send user message: no active session');
332
+ }
333
+ const currentTimestamp = new Date().toISOString().replace('Z', '');
334
+ const body = JSON.stringify({
335
+ content,
336
+ timestamp: currentTimestamp,
337
+ session_id: sessionId,
338
+ message_type: 'speech',
339
+ });
340
+ this.sendDataMessage(body);
341
+ }
342
+ interruptPersona() {
343
+ if (!this._isStreaming) {
344
+ throw new Error('Failed to send interrupt command: not currently streaming');
345
+ }
346
+ const sessionId = this.getActiveSessionId();
347
+ if (!sessionId) {
348
+ throw new Error('Failed to send interrupt command: no active session');
349
+ }
350
+ const body = JSON.stringify({
351
+ message_type: 'interrupt',
352
+ session_id: sessionId,
353
+ timestamp: new Date().toISOString(), // removing Z not needed
354
+ });
355
+ this.sendDataMessage(body);
356
+ }
357
+ stopStreaming() {
358
+ return __awaiter(this, void 0, void 0, function* () {
359
+ if (this.streamingClient) {
360
+ this.publicEventEmitter.emit(AnamEvent.CONNECTION_CLOSED, ConnectionClosedCode.NORMAL);
361
+ yield this.streamingClient.stopConnection();
362
+ this.streamingClient = null;
363
+ this.sessionId = null;
364
+ setMetricsContext({
365
+ attemptCorrelationId: null,
366
+ sessionId: null,
367
+ organizationId: this.organizationId,
368
+ });
369
+ this._isStreaming = false;
370
+ }
371
+ });
372
+ }
373
+ isStreaming() {
374
+ return this._isStreaming;
375
+ }
376
+ setPersonaConfig(personaConfig) {
377
+ this.personaConfig = personaConfig;
378
+ }
379
+ getPersonaConfig() {
380
+ return this.personaConfig;
381
+ }
382
+ getInputAudioState() {
383
+ var _a;
384
+ if ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) {
385
+ console.warn('AnamClient: Audio state will not be used because input audio is disabled.');
386
+ }
387
+ // if streaming client is available, make sure our state is up to date
388
+ if (this.streamingClient) {
389
+ this.inputAudioState = this.streamingClient.getInputAudioState();
390
+ }
391
+ return this.inputAudioState;
392
+ }
393
+ muteInputAudio() {
394
+ var _a, _b;
395
+ if ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) {
396
+ console.warn('AnamClient: Input audio is disabled. Muting input audio will have no effect.');
397
+ }
398
+ if (this.streamingClient && !((_b = this.clientOptions) === null || _b === void 0 ? void 0 : _b.disableInputAudio)) {
399
+ this.inputAudioState = this.streamingClient.muteInputAudio();
400
+ }
401
+ else {
402
+ this.inputAudioState = Object.assign(Object.assign({}, this.inputAudioState), { isMuted: true });
403
+ }
404
+ return this.inputAudioState;
405
+ }
406
+ unmuteInputAudio() {
407
+ var _a, _b;
408
+ if ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) {
409
+ console.warn('AnamClient: Input audio is disabled. Unmuting input audio will have no effect.');
410
+ }
411
+ if (this.streamingClient && !((_b = this.clientOptions) === null || _b === void 0 ? void 0 : _b.disableInputAudio)) {
412
+ this.inputAudioState = this.streamingClient.unmuteInputAudio();
413
+ }
414
+ else {
415
+ this.inputAudioState = Object.assign(Object.assign({}, this.inputAudioState), { isMuted: false });
416
+ }
417
+ return this.inputAudioState;
418
+ }
419
+ changeAudioInputDevice(deviceId) {
420
+ return __awaiter(this, void 0, void 0, function* () {
421
+ var _a;
422
+ if ((_a = this.clientOptions) === null || _a === void 0 ? void 0 : _a.disableInputAudio) {
423
+ throw new Error('AnamClient: Cannot change audio input device because input audio is disabled.');
424
+ }
425
+ if (!this._isStreaming) {
426
+ throw new Error('AnamClient: Cannot change audio input device while not streaming. Start streaming first.');
427
+ }
428
+ if (!this.streamingClient) {
429
+ throw new Error('AnamClient: Cannot change audio input device because streaming client is not available. Start streaming first.');
430
+ }
431
+ yield this.streamingClient.changeAudioInputDevice(deviceId);
432
+ });
433
+ }
434
+ createTalkMessageStream(correlationId) {
435
+ if (!this.streamingClient) {
436
+ throw new Error('Failed to start talk message stream: session is not started.');
437
+ }
438
+ if (correlationId && correlationId.trim() === '') {
439
+ throw new Error('Failed to start talk message stream: correlationId is empty');
440
+ }
441
+ return this.streamingClient.startTalkMessageStream(correlationId);
442
+ }
443
+ createAgentAudioInputStream(config) {
444
+ if (!this.streamingClient) {
445
+ throw new Error('Failed to create agent audio input stream: session is not started.');
446
+ }
447
+ return this.streamingClient.createAgentAudioInputStream(config);
448
+ }
449
+ /**
450
+ * Event handling
451
+ */
452
+ addListener(event, callback) {
453
+ this.publicEventEmitter.addListener(event, callback);
454
+ }
455
+ removeListener(event, callback) {
456
+ this.publicEventEmitter.removeListener(event, callback);
457
+ }
458
+ getActiveSessionId() {
459
+ return this.sessionId;
460
+ }
461
+ }
462
+ //# sourceMappingURL=AnamClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import AnamClient from './AnamClient';
2
+ import { PersonaConfig } from './types';
3
+ import { AnamPublicClientOptions } from './types/AnamPublicClientOptions';
4
+ import { ClientError, ErrorCode } from './lib/ClientError';
5
+ /**
6
+ * Create a new Anam client.
7
+ * @param sessionToken - A session token can be obtained from the Anam API.
8
+ * @param personaConfig - The persona configuration to use.
9
+ * @param options - Additional options.
10
+ * @returns A new Anam client instance.
11
+ */
12
+ declare const createClient: (sessionToken: string, options?: AnamPublicClientOptions) => AnamClient;
13
+ /**
14
+ * Create a new Anam client with an API key instead of a session token.
15
+ * This method is unsafe for production environments because it requires exposing your API key to the client side.
16
+ * Only use this method for local testing.
17
+ * @param apiKey - Your Anam API key.
18
+ * @param personaConfig - The persona configuration to use.
19
+ * @param options - Additional options.
20
+ * @returns A new Anam client instance.
21
+ */
22
+ declare const unsafe_createClientWithApiKey: (apiKey: string, personaConfig: PersonaConfig, options?: AnamPublicClientOptions) => AnamClient;
23
+ export { createClient, unsafe_createClientWithApiKey, ClientError, ErrorCode };
24
+ export type { AnamClient };
25
+ export * from './types';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;GAMG;AACH,QAAA,MAAM,YAAY,iBACF,MAAM,YACV,uBAAuB,KAChC,UAEF,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,6BAA6B,WACzB,MAAM,iBACC,aAAa,YAClB,uBAAuB,KAChC,UAEF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC/E,YAAY,EAAE,UAAU,EAAE,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,27 @@
1
+ import AnamClient from './AnamClient';
2
+ import { ClientError, ErrorCode } from './lib/ClientError';
3
+ /**
4
+ * Create a new Anam client.
5
+ * @param sessionToken - A session token can be obtained from the Anam API.
6
+ * @param personaConfig - The persona configuration to use.
7
+ * @param options - Additional options.
8
+ * @returns A new Anam client instance.
9
+ */
10
+ const createClient = (sessionToken, options) => {
11
+ return new AnamClient(sessionToken, undefined, options);
12
+ };
13
+ /**
14
+ * Create a new Anam client with an API key instead of a session token.
15
+ * This method is unsafe for production environments because it requires exposing your API key to the client side.
16
+ * Only use this method for local testing.
17
+ * @param apiKey - Your Anam API key.
18
+ * @param personaConfig - The persona configuration to use.
19
+ * @param options - Additional options.
20
+ * @returns A new Anam client instance.
21
+ */
22
+ const unsafe_createClientWithApiKey = (apiKey, personaConfig, options) => {
23
+ return new AnamClient(undefined, personaConfig, Object.assign(Object.assign({}, options), { apiKey }));
24
+ };
25
+ export { createClient, unsafe_createClientWithApiKey, ClientError, ErrorCode };
26
+ export * from './types';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,CACnB,YAAoB,EACpB,OAAiC,EACrB,EAAE;IACd,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,6BAA6B,GAAG,CACpC,MAAc,EACd,aAA4B,EAC5B,OAAiC,EACrB,EAAE;IACd,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,aAAa,kCAAO,OAAO,KAAE,MAAM,IAAG,CAAC;AAC1E,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAE/E,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare enum ErrorCode {
2
+ CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED = "CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED",
3
+ CLIENT_ERROR_CODE_SPEND_CAP_REACHED = "CLIENT_ERROR_CODE_SPEND_CAP_REACHED",
4
+ CLIENT_ERROR_CODE_VALIDATION_ERROR = "CLIENT_ERROR_CODE_VALIDATION_ERROR",
5
+ CLIENT_ERROR_CODE_AUTHENTICATION_ERROR = "CLIENT_ERROR_CODE_AUTHENTICATION_ERROR",
6
+ CLIENT_ERROR_CODE_SERVER_ERROR = "CLIENT_ERROR_CODE_SERVER_ERROR",
7
+ CLIENT_ERROR_CODE_MAX_CONCURRENT_SESSIONS_REACHED = "CLIENT_ERROR_CODE_MAX_CONCURRENT_SESSIONS_REACHED",
8
+ CLIENT_ERROR_CODE_SERVICE_BUSY = "CLIENT_ERROR_CODE_SERVICE_BUSY",
9
+ CLIENT_ERROR_CODE_NO_PLAN_FOUND = "CLIENT_ERROR_CODE_NO_PLAN_FOUND",
10
+ CLIENT_ERROR_CODE_UNKNOWN_ERROR = "CLIENT_ERROR_CODE_UNKNOWN_ERROR",
11
+ CLIENT_ERROR_CODE_CONFIGURATION_ERROR = "CLIENT_ERROR_CODE_CONFIGURATION_ERROR"
12
+ }
13
+ export declare class ClientError extends Error {
14
+ code: ErrorCode;
15
+ statusCode: number;
16
+ details?: any;
17
+ constructor(message: string, code: ErrorCode, statusCode?: number, details?: any);
18
+ }
19
+ //# sourceMappingURL=ClientError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.d.ts","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":"AAEA,oBAAY,SAAS;IACnB,qCAAqC,0CAA0C;IAC/E,mCAAmC,wCAAwC;IAC3E,kCAAkC,uCAAuC;IACzE,sCAAsC,2CAA2C;IACjF,8BAA8B,mCAAmC;IACjE,iDAAiD,sDAAsD;IACvG,8BAA8B,mCAAmC;IACjE,+BAA+B,oCAAoC;IACnE,+BAA+B,oCAAoC;IACnE,qCAAqC,0CAA0C;CAChF;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAGZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,GAAG;CAoBhB"}
@@ -0,0 +1,30 @@
1
+ import { ClientMetricMeasurement, sendClientMetric } from './ClientMetrics';
2
+ export var ErrorCode;
3
+ (function (ErrorCode) {
4
+ ErrorCode["CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED"] = "CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED";
5
+ ErrorCode["CLIENT_ERROR_CODE_SPEND_CAP_REACHED"] = "CLIENT_ERROR_CODE_SPEND_CAP_REACHED";
6
+ ErrorCode["CLIENT_ERROR_CODE_VALIDATION_ERROR"] = "CLIENT_ERROR_CODE_VALIDATION_ERROR";
7
+ ErrorCode["CLIENT_ERROR_CODE_AUTHENTICATION_ERROR"] = "CLIENT_ERROR_CODE_AUTHENTICATION_ERROR";
8
+ ErrorCode["CLIENT_ERROR_CODE_SERVER_ERROR"] = "CLIENT_ERROR_CODE_SERVER_ERROR";
9
+ ErrorCode["CLIENT_ERROR_CODE_MAX_CONCURRENT_SESSIONS_REACHED"] = "CLIENT_ERROR_CODE_MAX_CONCURRENT_SESSIONS_REACHED";
10
+ ErrorCode["CLIENT_ERROR_CODE_SERVICE_BUSY"] = "CLIENT_ERROR_CODE_SERVICE_BUSY";
11
+ ErrorCode["CLIENT_ERROR_CODE_NO_PLAN_FOUND"] = "CLIENT_ERROR_CODE_NO_PLAN_FOUND";
12
+ ErrorCode["CLIENT_ERROR_CODE_UNKNOWN_ERROR"] = "CLIENT_ERROR_CODE_UNKNOWN_ERROR";
13
+ ErrorCode["CLIENT_ERROR_CODE_CONFIGURATION_ERROR"] = "CLIENT_ERROR_CODE_CONFIGURATION_ERROR";
14
+ })(ErrorCode || (ErrorCode = {}));
15
+ export class ClientError extends Error {
16
+ constructor(message, code, statusCode = 500, details) {
17
+ super(message);
18
+ this.name = 'ClientError';
19
+ this.code = code;
20
+ this.statusCode = statusCode;
21
+ this.details = details;
22
+ Object.setPrototypeOf(this, ClientError.prototype);
23
+ // Send error metric when error is created
24
+ sendClientMetric(ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_ERROR, code, {
25
+ details,
26
+ statusCode,
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=ClientError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.js","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,4FAA+E,CAAA;IAC/E,wFAA2E,CAAA;IAC3E,sFAAyE,CAAA;IACzE,8FAAiF,CAAA;IACjF,8EAAiE,CAAA;IACjE,oHAAuG,CAAA;IACvG,8EAAiE,CAAA;IACjE,gFAAmE,CAAA;IACnE,gFAAmE,CAAA;IACnE,4FAA+E,CAAA;AACjF,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAKpC,YACE,OAAe,EACf,IAAe,EACf,aAAqB,GAAG,EACxB,OAAa;QAEb,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEnD,0CAA0C;QAC1C,gBAAgB,CACd,uBAAuB,CAAC,+BAA+B,EACvD,IAAI,EACJ;YACE,OAAO;YACP,UAAU;SACX,CACF,CAAC;IACJ,CAAC;CACF"}