@mohamedtebo/convai-platform 1.0.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 (262) hide show
  1. package/README.md +155 -0
  2. package/dist/adapters/index.d.ts +2 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/index.js +6 -0
  5. package/dist/adapters/index.js.map +1 -0
  6. package/dist/adapters/memory-conversation.store.d.ts +12 -0
  7. package/dist/adapters/memory-conversation.store.d.ts.map +1 -0
  8. package/dist/adapters/memory-conversation.store.js +25 -0
  9. package/dist/adapters/memory-conversation.store.js.map +1 -0
  10. package/dist/composed/platform-client.d.ts +29 -0
  11. package/dist/composed/platform-client.d.ts.map +1 -0
  12. package/dist/composed/platform-client.js +16 -0
  13. package/dist/composed/platform-client.js.map +1 -0
  14. package/dist/errors/index.d.ts +4 -0
  15. package/dist/errors/index.d.ts.map +1 -0
  16. package/dist/errors/index.js +11 -0
  17. package/dist/errors/index.js.map +1 -0
  18. package/dist/errors/provider.error.d.ts +16 -0
  19. package/dist/errors/provider.error.d.ts.map +1 -0
  20. package/dist/errors/provider.error.js +15 -0
  21. package/dist/errors/provider.error.js.map +1 -0
  22. package/dist/errors/sdk.error.d.ts +15 -0
  23. package/dist/errors/sdk.error.d.ts.map +1 -0
  24. package/dist/errors/sdk.error.js +16 -0
  25. package/dist/errors/sdk.error.js.map +1 -0
  26. package/dist/errors/tool-loop.error.d.ts +11 -0
  27. package/dist/errors/tool-loop.error.d.ts.map +1 -0
  28. package/dist/errors/tool-loop.error.js +30 -0
  29. package/dist/errors/tool-loop.error.js.map +1 -0
  30. package/dist/factory/index.d.ts +2 -0
  31. package/dist/factory/index.d.ts.map +1 -0
  32. package/dist/factory/index.js +6 -0
  33. package/dist/factory/index.js.map +1 -0
  34. package/dist/factory/provider.factory.d.ts +8 -0
  35. package/dist/factory/provider.factory.d.ts.map +1 -0
  36. package/dist/factory/provider.factory.js +49 -0
  37. package/dist/factory/provider.factory.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +34 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/providers/anthropic/anthropic.provider.d.ts +22 -0
  43. package/dist/providers/anthropic/anthropic.provider.d.ts.map +1 -0
  44. package/dist/providers/anthropic/anthropic.provider.js +34 -0
  45. package/dist/providers/anthropic/anthropic.provider.js.map +1 -0
  46. package/dist/providers/anthropic/loops/claude-tool.loop.d.ts +11 -0
  47. package/dist/providers/anthropic/loops/claude-tool.loop.d.ts.map +1 -0
  48. package/dist/providers/anthropic/loops/claude-tool.loop.js +58 -0
  49. package/dist/providers/anthropic/loops/claude-tool.loop.js.map +1 -0
  50. package/dist/providers/anthropic/utils/error-mapper.d.ts +4 -0
  51. package/dist/providers/anthropic/utils/error-mapper.d.ts.map +1 -0
  52. package/dist/providers/anthropic/utils/error-mapper.js +35 -0
  53. package/dist/providers/anthropic/utils/error-mapper.js.map +1 -0
  54. package/dist/providers/openai/builders/conversation-or-create.builder.d.ts +15 -0
  55. package/dist/providers/openai/builders/conversation-or-create.builder.d.ts.map +1 -0
  56. package/dist/providers/openai/builders/conversation-or-create.builder.js +18 -0
  57. package/dist/providers/openai/builders/conversation-or-create.builder.js.map +1 -0
  58. package/dist/providers/openai/loops/assistants-tool.loop.d.ts +19 -0
  59. package/dist/providers/openai/loops/assistants-tool.loop.d.ts.map +1 -0
  60. package/dist/providers/openai/loops/assistants-tool.loop.js +58 -0
  61. package/dist/providers/openai/loops/assistants-tool.loop.js.map +1 -0
  62. package/dist/providers/openai/loops/responses-tool.loop.d.ts +14 -0
  63. package/dist/providers/openai/loops/responses-tool.loop.d.ts.map +1 -0
  64. package/dist/providers/openai/loops/responses-tool.loop.js +87 -0
  65. package/dist/providers/openai/loops/responses-tool.loop.js.map +1 -0
  66. package/dist/providers/openai/openai-assistants.provider.d.ts +27 -0
  67. package/dist/providers/openai/openai-assistants.provider.d.ts.map +1 -0
  68. package/dist/providers/openai/openai-assistants.provider.js +40 -0
  69. package/dist/providers/openai/openai-assistants.provider.js.map +1 -0
  70. package/dist/providers/openai/openai-responses.provider.d.ts +25 -0
  71. package/dist/providers/openai/openai-responses.provider.d.ts.map +1 -0
  72. package/dist/providers/openai/openai-responses.provider.js +35 -0
  73. package/dist/providers/openai/openai-responses.provider.js.map +1 -0
  74. package/dist/providers/openai/operations/create-conversation.operation.d.ts +7 -0
  75. package/dist/providers/openai/operations/create-conversation.operation.d.ts.map +1 -0
  76. package/dist/providers/openai/operations/create-conversation.operation.js +22 -0
  77. package/dist/providers/openai/operations/create-conversation.operation.js.map +1 -0
  78. package/dist/providers/openai/operations/create-response.operation.d.ts +13 -0
  79. package/dist/providers/openai/operations/create-response.operation.d.ts.map +1 -0
  80. package/dist/providers/openai/operations/create-response.operation.js +27 -0
  81. package/dist/providers/openai/operations/create-response.operation.js.map +1 -0
  82. package/dist/providers/openai/operations/submit-tool-outputs.operation.d.ts +17 -0
  83. package/dist/providers/openai/operations/submit-tool-outputs.operation.d.ts.map +1 -0
  84. package/dist/providers/openai/operations/submit-tool-outputs.operation.js +33 -0
  85. package/dist/providers/openai/operations/submit-tool-outputs.operation.js.map +1 -0
  86. package/dist/providers/openai/utils/error-mapper.d.ts +4 -0
  87. package/dist/providers/openai/utils/error-mapper.d.ts.map +1 -0
  88. package/dist/providers/openai/utils/error-mapper.js +45 -0
  89. package/dist/providers/openai/utils/error-mapper.js.map +1 -0
  90. package/dist/providers/openai/utils/usage-mapper.d.ts +10 -0
  91. package/dist/providers/openai/utils/usage-mapper.d.ts.map +1 -0
  92. package/dist/providers/openai/utils/usage-mapper.js +16 -0
  93. package/dist/providers/openai/utils/usage-mapper.js.map +1 -0
  94. package/dist/safe/index.d.ts +2 -0
  95. package/dist/safe/index.d.ts.map +1 -0
  96. package/dist/safe/index.js +6 -0
  97. package/dist/safe/index.js.map +1 -0
  98. package/dist/safe/safe-platform.client.d.ts +14 -0
  99. package/dist/safe/safe-platform.client.d.ts.map +1 -0
  100. package/dist/safe/safe-platform.client.js +56 -0
  101. package/dist/safe/safe-platform.client.js.map +1 -0
  102. package/dist/src/adapters/index.d.ts +2 -0
  103. package/dist/src/adapters/index.d.ts.map +1 -0
  104. package/dist/src/adapters/index.js +6 -0
  105. package/dist/src/adapters/index.js.map +1 -0
  106. package/dist/src/adapters/memory-conversation.store.d.ts +12 -0
  107. package/dist/src/adapters/memory-conversation.store.d.ts.map +1 -0
  108. package/dist/src/adapters/memory-conversation.store.js +25 -0
  109. package/dist/src/adapters/memory-conversation.store.js.map +1 -0
  110. package/dist/src/composed/platform-client.d.ts +29 -0
  111. package/dist/src/composed/platform-client.d.ts.map +1 -0
  112. package/dist/src/composed/platform-client.js +16 -0
  113. package/dist/src/composed/platform-client.js.map +1 -0
  114. package/dist/src/errors/index.d.ts +4 -0
  115. package/dist/src/errors/index.d.ts.map +1 -0
  116. package/dist/src/errors/index.js +11 -0
  117. package/dist/src/errors/index.js.map +1 -0
  118. package/dist/src/errors/provider.error.d.ts +16 -0
  119. package/dist/src/errors/provider.error.d.ts.map +1 -0
  120. package/dist/src/errors/provider.error.js +15 -0
  121. package/dist/src/errors/provider.error.js.map +1 -0
  122. package/dist/src/errors/sdk.error.d.ts +15 -0
  123. package/dist/src/errors/sdk.error.d.ts.map +1 -0
  124. package/dist/src/errors/sdk.error.js +16 -0
  125. package/dist/src/errors/sdk.error.js.map +1 -0
  126. package/dist/src/errors/tool-loop.error.d.ts +11 -0
  127. package/dist/src/errors/tool-loop.error.d.ts.map +1 -0
  128. package/dist/src/errors/tool-loop.error.js +30 -0
  129. package/dist/src/errors/tool-loop.error.js.map +1 -0
  130. package/dist/src/factory/index.d.ts +2 -0
  131. package/dist/src/factory/index.d.ts.map +1 -0
  132. package/dist/src/factory/index.js +6 -0
  133. package/dist/src/factory/index.js.map +1 -0
  134. package/dist/src/factory/provider.factory.d.ts +8 -0
  135. package/dist/src/factory/provider.factory.d.ts.map +1 -0
  136. package/dist/src/factory/provider.factory.js +49 -0
  137. package/dist/src/factory/provider.factory.js.map +1 -0
  138. package/dist/src/index.d.ts +13 -0
  139. package/dist/src/index.d.ts.map +1 -0
  140. package/dist/src/index.js +34 -0
  141. package/dist/src/index.js.map +1 -0
  142. package/dist/src/providers/anthropic/anthropic.provider.d.ts +22 -0
  143. package/dist/src/providers/anthropic/anthropic.provider.d.ts.map +1 -0
  144. package/dist/src/providers/anthropic/anthropic.provider.js +34 -0
  145. package/dist/src/providers/anthropic/anthropic.provider.js.map +1 -0
  146. package/dist/src/providers/anthropic/loops/claude-tool.loop.d.ts +11 -0
  147. package/dist/src/providers/anthropic/loops/claude-tool.loop.d.ts.map +1 -0
  148. package/dist/src/providers/anthropic/loops/claude-tool.loop.js +58 -0
  149. package/dist/src/providers/anthropic/loops/claude-tool.loop.js.map +1 -0
  150. package/dist/src/providers/anthropic/utils/error-mapper.d.ts +4 -0
  151. package/dist/src/providers/anthropic/utils/error-mapper.d.ts.map +1 -0
  152. package/dist/src/providers/anthropic/utils/error-mapper.js +35 -0
  153. package/dist/src/providers/anthropic/utils/error-mapper.js.map +1 -0
  154. package/dist/src/providers/openai/builders/conversation-or-create.builder.d.ts +15 -0
  155. package/dist/src/providers/openai/builders/conversation-or-create.builder.d.ts.map +1 -0
  156. package/dist/src/providers/openai/builders/conversation-or-create.builder.js +18 -0
  157. package/dist/src/providers/openai/builders/conversation-or-create.builder.js.map +1 -0
  158. package/dist/src/providers/openai/loops/assistants-tool.loop.d.ts +19 -0
  159. package/dist/src/providers/openai/loops/assistants-tool.loop.d.ts.map +1 -0
  160. package/dist/src/providers/openai/loops/assistants-tool.loop.js +58 -0
  161. package/dist/src/providers/openai/loops/assistants-tool.loop.js.map +1 -0
  162. package/dist/src/providers/openai/loops/responses-tool.loop.d.ts +14 -0
  163. package/dist/src/providers/openai/loops/responses-tool.loop.d.ts.map +1 -0
  164. package/dist/src/providers/openai/loops/responses-tool.loop.js +87 -0
  165. package/dist/src/providers/openai/loops/responses-tool.loop.js.map +1 -0
  166. package/dist/src/providers/openai/openai-assistants.provider.d.ts +27 -0
  167. package/dist/src/providers/openai/openai-assistants.provider.d.ts.map +1 -0
  168. package/dist/src/providers/openai/openai-assistants.provider.js +40 -0
  169. package/dist/src/providers/openai/openai-assistants.provider.js.map +1 -0
  170. package/dist/src/providers/openai/openai-responses.provider.d.ts +25 -0
  171. package/dist/src/providers/openai/openai-responses.provider.d.ts.map +1 -0
  172. package/dist/src/providers/openai/openai-responses.provider.js +35 -0
  173. package/dist/src/providers/openai/openai-responses.provider.js.map +1 -0
  174. package/dist/src/providers/openai/operations/create-conversation.operation.d.ts +7 -0
  175. package/dist/src/providers/openai/operations/create-conversation.operation.d.ts.map +1 -0
  176. package/dist/src/providers/openai/operations/create-conversation.operation.js +22 -0
  177. package/dist/src/providers/openai/operations/create-conversation.operation.js.map +1 -0
  178. package/dist/src/providers/openai/operations/create-response.operation.d.ts +13 -0
  179. package/dist/src/providers/openai/operations/create-response.operation.d.ts.map +1 -0
  180. package/dist/src/providers/openai/operations/create-response.operation.js +27 -0
  181. package/dist/src/providers/openai/operations/create-response.operation.js.map +1 -0
  182. package/dist/src/providers/openai/operations/submit-tool-outputs.operation.d.ts +17 -0
  183. package/dist/src/providers/openai/operations/submit-tool-outputs.operation.d.ts.map +1 -0
  184. package/dist/src/providers/openai/operations/submit-tool-outputs.operation.js +33 -0
  185. package/dist/src/providers/openai/operations/submit-tool-outputs.operation.js.map +1 -0
  186. package/dist/src/providers/openai/utils/error-mapper.d.ts +4 -0
  187. package/dist/src/providers/openai/utils/error-mapper.d.ts.map +1 -0
  188. package/dist/src/providers/openai/utils/error-mapper.js +45 -0
  189. package/dist/src/providers/openai/utils/error-mapper.js.map +1 -0
  190. package/dist/src/providers/openai/utils/usage-mapper.d.ts +10 -0
  191. package/dist/src/providers/openai/utils/usage-mapper.d.ts.map +1 -0
  192. package/dist/src/providers/openai/utils/usage-mapper.js +16 -0
  193. package/dist/src/providers/openai/utils/usage-mapper.js.map +1 -0
  194. package/dist/src/safe/index.d.ts +2 -0
  195. package/dist/src/safe/index.d.ts.map +1 -0
  196. package/dist/src/safe/index.js +6 -0
  197. package/dist/src/safe/index.js.map +1 -0
  198. package/dist/src/safe/safe-platform.client.d.ts +14 -0
  199. package/dist/src/safe/safe-platform.client.d.ts.map +1 -0
  200. package/dist/src/safe/safe-platform.client.js +56 -0
  201. package/dist/src/safe/safe-platform.client.js.map +1 -0
  202. package/dist/src/types/ask-with-tools.types.d.ts +48 -0
  203. package/dist/src/types/ask-with-tools.types.d.ts.map +1 -0
  204. package/dist/src/types/ask-with-tools.types.js +3 -0
  205. package/dist/src/types/ask-with-tools.types.js.map +1 -0
  206. package/dist/src/types/client-config.interface.d.ts +33 -0
  207. package/dist/src/types/client-config.interface.d.ts.map +1 -0
  208. package/dist/src/types/client-config.interface.js +3 -0
  209. package/dist/src/types/client-config.interface.js.map +1 -0
  210. package/dist/src/types/conversation-store.interface.d.ts +24 -0
  211. package/dist/src/types/conversation-store.interface.d.ts.map +1 -0
  212. package/dist/src/types/conversation-store.interface.js +3 -0
  213. package/dist/src/types/conversation-store.interface.js.map +1 -0
  214. package/dist/src/types/index.d.ts +8 -0
  215. package/dist/src/types/index.d.ts.map +1 -0
  216. package/dist/src/types/index.js +7 -0
  217. package/dist/src/types/index.js.map +1 -0
  218. package/dist/src/types/provider.interface.d.ts +13 -0
  219. package/dist/src/types/provider.interface.d.ts.map +1 -0
  220. package/dist/src/types/provider.interface.js +3 -0
  221. package/dist/src/types/provider.interface.js.map +1 -0
  222. package/dist/src/types/sdk-result.interface.d.ts +30 -0
  223. package/dist/src/types/sdk-result.interface.d.ts.map +1 -0
  224. package/dist/src/types/sdk-result.interface.js +11 -0
  225. package/dist/src/types/sdk-result.interface.js.map +1 -0
  226. package/dist/src/types/tool-handler.interface.d.ts +45 -0
  227. package/dist/src/types/tool-handler.interface.d.ts.map +1 -0
  228. package/dist/src/types/tool-handler.interface.js +3 -0
  229. package/dist/src/types/tool-handler.interface.js.map +1 -0
  230. package/dist/tests/safe-client.test.d.ts +2 -0
  231. package/dist/tests/safe-client.test.d.ts.map +1 -0
  232. package/dist/tests/safe-client.test.js +66 -0
  233. package/dist/tests/safe-client.test.js.map +1 -0
  234. package/dist/types/ask-with-tools.types.d.ts +48 -0
  235. package/dist/types/ask-with-tools.types.d.ts.map +1 -0
  236. package/dist/types/ask-with-tools.types.js +3 -0
  237. package/dist/types/ask-with-tools.types.js.map +1 -0
  238. package/dist/types/client-config.interface.d.ts +33 -0
  239. package/dist/types/client-config.interface.d.ts.map +1 -0
  240. package/dist/types/client-config.interface.js +3 -0
  241. package/dist/types/client-config.interface.js.map +1 -0
  242. package/dist/types/conversation-store.interface.d.ts +24 -0
  243. package/dist/types/conversation-store.interface.d.ts.map +1 -0
  244. package/dist/types/conversation-store.interface.js +3 -0
  245. package/dist/types/conversation-store.interface.js.map +1 -0
  246. package/dist/types/index.d.ts +8 -0
  247. package/dist/types/index.d.ts.map +1 -0
  248. package/dist/types/index.js +7 -0
  249. package/dist/types/index.js.map +1 -0
  250. package/dist/types/provider.interface.d.ts +13 -0
  251. package/dist/types/provider.interface.d.ts.map +1 -0
  252. package/dist/types/provider.interface.js +3 -0
  253. package/dist/types/provider.interface.js.map +1 -0
  254. package/dist/types/sdk-result.interface.d.ts +30 -0
  255. package/dist/types/sdk-result.interface.d.ts.map +1 -0
  256. package/dist/types/sdk-result.interface.js +11 -0
  257. package/dist/types/sdk-result.interface.js.map +1 -0
  258. package/dist/types/tool-handler.interface.d.ts +45 -0
  259. package/dist/types/tool-handler.interface.d.ts.map +1 -0
  260. package/dist/types/tool-handler.interface.js +3 -0
  261. package/dist/types/tool-handler.interface.js.map +1 -0
  262. package/package.json +38 -0
@@ -0,0 +1,13 @@
1
+ import type OpenAI from 'openai';
2
+ export interface CreateResponseParams {
3
+ conversationId: string;
4
+ previousResponseId?: string;
5
+ model: string;
6
+ instructions: string;
7
+ userQuestion: string;
8
+ tools?: unknown[];
9
+ vectorStoreIds?: string[];
10
+ }
11
+ /** Wraps openai.responses.create — one call in the tool loop or the first turn. */
12
+ export declare function createResponse(openai: OpenAI, params: CreateResponseParams): Promise<unknown>;
13
+ //# sourceMappingURL=create-response.operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-response.operation.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/operations/create-response.operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,OAAO,CAAC,CA8BlB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createResponse = createResponse;
4
+ const error_mapper_1 = require("../utils/error-mapper");
5
+ /** Wraps openai.responses.create — one call in the tool loop or the first turn. */
6
+ async function createResponse(openai, params) {
7
+ const { conversationId, previousResponseId, model, instructions, userQuestion, tools, vectorStoreIds, } = params;
8
+ const body = {
9
+ model,
10
+ conversation_id: conversationId,
11
+ instructions,
12
+ input: userQuestion,
13
+ ...(previousResponseId ? { previous_response_id: previousResponseId } : {}),
14
+ ...(tools?.length ? { tools } : {}),
15
+ };
16
+ if (vectorStoreIds?.length) {
17
+ body['tool_resources'] = { file_search: { vector_store_ids: vectorStoreIds } };
18
+ }
19
+ try {
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ return await openai.responses.create(body);
22
+ }
23
+ catch (err) {
24
+ throw (0, error_mapper_1.mapOpenAIError)(err);
25
+ }
26
+ }
27
+ //# sourceMappingURL=create-response.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-response.operation.js","sourceRoot":"","sources":["../../../../src/providers/openai/operations/create-response.operation.ts"],"names":[],"mappings":";;AAcA,wCAiCC;AA9CD,wDAAuD;AAYvD,mFAAmF;AAC5E,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAA4B;IAE5B,MAAM,EACJ,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,cAAc,GACf,GAAG,MAAM,CAAC;IAEX,MAAM,IAAI,GAA4B;QACpC,KAAK;QACL,eAAe,EAAE,cAAc;QAC/B,YAAY;QACZ,KAAK,EAAE,YAAY;QACnB,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;IAEF,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,CAAC;QACH,8DAA8D;QAC9D,OAAO,MAAO,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,6BAAc,EAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type OpenAI from 'openai';
2
+ import type { ToolOutput } from '../../../types/tool-handler.interface';
3
+ export interface SubmitToolOutputsParams {
4
+ previousResponseId: string;
5
+ conversationId: string;
6
+ model: string;
7
+ instructions: string;
8
+ toolOutputs: ToolOutput[];
9
+ tools?: unknown[];
10
+ }
11
+ /**
12
+ * Resumes the AI response by submitting tool call outputs.
13
+ * In the Responses API this is a new responses.create call with the previous_response_id set
14
+ * and the tool results embedded in the input array.
15
+ */
16
+ export declare function submitToolOutputs(openai: OpenAI, params: SubmitToolOutputsParams): Promise<unknown>;
17
+ //# sourceMappingURL=submit-tool-outputs.operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-tool-outputs.operation.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/operations/submit-tool-outputs.operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAGxE,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.submitToolOutputs = submitToolOutputs;
4
+ const error_mapper_1 = require("../utils/error-mapper");
5
+ /**
6
+ * Resumes the AI response by submitting tool call outputs.
7
+ * In the Responses API this is a new responses.create call with the previous_response_id set
8
+ * and the tool results embedded in the input array.
9
+ */
10
+ async function submitToolOutputs(openai, params) {
11
+ const { previousResponseId, conversationId, model, instructions, toolOutputs, tools } = params;
12
+ const toolResultMessages = toolOutputs.map((o) => ({
13
+ type: 'tool_result',
14
+ tool_use_id: o.call_id,
15
+ content: o.output,
16
+ }));
17
+ const body = {
18
+ model,
19
+ conversation_id: conversationId,
20
+ instructions,
21
+ previous_response_id: previousResponseId,
22
+ input: toolResultMessages,
23
+ ...(tools?.length ? { tools } : {}),
24
+ };
25
+ try {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ return await openai.responses.create(body);
28
+ }
29
+ catch (err) {
30
+ throw (0, error_mapper_1.mapOpenAIError)(err);
31
+ }
32
+ }
33
+ //# sourceMappingURL=submit-tool-outputs.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-tool-outputs.operation.js","sourceRoot":"","sources":["../../../../src/providers/openai/operations/submit-tool-outputs.operation.ts"],"names":[],"mappings":";;AAkBA,8CA2BC;AA3CD,wDAAuD;AAWvD;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE/F,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,CAAC,CAAC,OAAO;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM;KAClB,CAAC,CAAC,CAAC;IAEJ,MAAM,IAAI,GAA4B;QACpC,KAAK;QACL,eAAe,EAAE,cAAc;QAC/B,YAAY;QACZ,oBAAoB,EAAE,kBAAkB;QACxC,KAAK,EAAE,kBAAkB;QACzB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;IAEF,IAAI,CAAC;QACH,8DAA8D;QAC9D,OAAO,MAAO,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,6BAAc,EAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ProviderError } from '../../../errors/provider.error';
2
+ /** Map an OpenAI SDK error to a typed ProviderError. */
3
+ export declare function mapOpenAIError(err: unknown): ProviderError;
4
+ //# sourceMappingURL=error-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/utils/error-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAQ/D,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAmB1D"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapOpenAIError = mapOpenAIError;
4
+ const provider_error_1 = require("../../../errors/provider.error");
5
+ /** Map an OpenAI SDK error to a typed ProviderError. */
6
+ function mapOpenAIError(err) {
7
+ if (isOpenAIAPIError(err)) {
8
+ const retryable = (err.status ?? 0) === 429 || ((err.status ?? 0) >= 500 && (err.status ?? 0) < 600);
9
+ const retryAfterMs = retryable ? parseRetryAfter(err.headers) : undefined;
10
+ return new provider_error_1.ProviderError({
11
+ provider: 'openai',
12
+ code: `OPENAI_${err.status ?? 'UNKNOWN'}`,
13
+ message: err.message ?? 'OpenAI API error',
14
+ statusCode: err.status,
15
+ retryable,
16
+ retryAfterMs,
17
+ requestId: extractRequestId(err.headers),
18
+ });
19
+ }
20
+ return new provider_error_1.ProviderError({
21
+ provider: 'openai',
22
+ code: 'OPENAI_UNEXPECTED',
23
+ message: err instanceof Error ? err.message : 'Unexpected error',
24
+ });
25
+ }
26
+ function isOpenAIAPIError(err) {
27
+ return typeof err === 'object' && err !== null && 'status' in err;
28
+ }
29
+ function parseRetryAfter(headers) {
30
+ if (!headers || typeof headers !== 'object')
31
+ return undefined;
32
+ const h = headers;
33
+ const v = h['retry-after'] ?? h['Retry-After'];
34
+ if (!v)
35
+ return undefined;
36
+ const seconds = parseInt(v, 10);
37
+ return isNaN(seconds) ? undefined : seconds * 1000;
38
+ }
39
+ function extractRequestId(headers) {
40
+ if (!headers || typeof headers !== 'object')
41
+ return undefined;
42
+ const h = headers;
43
+ return h['x-request-id'] ?? undefined;
44
+ }
45
+ //# sourceMappingURL=error-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../../src/providers/openai/utils/error-mapper.ts"],"names":[],"mappings":";;AASA,wCAmBC;AA5BD,mEAA+D;AAQ/D,wDAAwD;AACxD,SAAgB,cAAc,CAAC,GAAY;IACzC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACrG,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,OAAO,IAAI,8BAAa,CAAC;YACvB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,UAAU,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE;YACzC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,kBAAkB;YAC1C,UAAU,EAAE,GAAG,CAAC,MAAM;YACtB,SAAS;YACT,YAAY;YACZ,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,8BAAa,CAAC;QACvB,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;KACjE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,QAAQ,IAAI,GAAG,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,CAAC,GAAG,OAAiC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,CAAC,GAAG,OAAiC,CAAC;IAC5C,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;AACxC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { UsageMetrics } from '../../../types/ask-with-tools.types';
2
+ interface RawUsage {
3
+ input_tokens?: number;
4
+ output_tokens?: number;
5
+ total_tokens?: number;
6
+ }
7
+ /** Normalize provider usage to the shared UsageMetrics shape. */
8
+ export declare function mapUsage(raw: RawUsage | null | undefined): UsageMetrics | null;
9
+ export {};
10
+ //# sourceMappingURL=usage-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-mapper.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/utils/usage-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,UAAU,QAAQ;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAS9E"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapUsage = mapUsage;
4
+ /** Normalize provider usage to the shared UsageMetrics shape. */
5
+ function mapUsage(raw) {
6
+ if (!raw)
7
+ return null;
8
+ const input = raw.input_tokens ?? 0;
9
+ const output = raw.output_tokens ?? 0;
10
+ return {
11
+ inputTokens: input,
12
+ outputTokens: output,
13
+ totalTokens: raw.total_tokens ?? input + output,
14
+ };
15
+ }
16
+ //# sourceMappingURL=usage-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-mapper.js","sourceRoot":"","sources":["../../../../src/providers/openai/utils/usage-mapper.ts"],"names":[],"mappings":";;AASA,4BASC;AAVD,iEAAiE;AACjE,SAAgB,QAAQ,CAAC,GAAgC;IACvD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;IACtC,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK,GAAG,MAAM;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SafePlatformClient } from './safe-platform.client';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafePlatformClient = void 0;
4
+ var safe_platform_client_1 = require("./safe-platform.client");
5
+ Object.defineProperty(exports, "SafePlatformClient", { enumerable: true, get: function () { return safe_platform_client_1.SafePlatformClient; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/safe/index.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,14 @@
1
+ import type { AIProvider } from '../types/provider.interface';
2
+ import type { AskWithToolsParams, AskWithToolsResult } from '../types/ask-with-tools.types';
3
+ import type { SdkResult } from '../types/sdk-result.interface';
4
+ /**
5
+ * Safe-layer wrapper around any AIProvider.
6
+ * All methods return SdkResult<T> — never throw.
7
+ * Use this in telbany controllers / services for clean error handling.
8
+ */
9
+ export declare class SafePlatformClient {
10
+ private readonly provider;
11
+ constructor(provider: AIProvider);
12
+ askWithTools(params: AskWithToolsParams): Promise<SdkResult<AskWithToolsResult>>;
13
+ }
14
+ //# sourceMappingURL=safe-platform.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-platform.client.d.ts","sourceRoot":"","sources":["../../src/safe/safe-platform.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,+BAA+B,CAAC;AAI/E;;;;GAIG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,UAAU;IAE3C,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAQvF"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafePlatformClient = void 0;
4
+ const sdk_result_interface_1 = require("../types/sdk-result.interface");
5
+ const sdk_error_1 = require("../errors/sdk.error");
6
+ /**
7
+ * Safe-layer wrapper around any AIProvider.
8
+ * All methods return SdkResult<T> — never throw.
9
+ * Use this in telbany controllers / services for clean error handling.
10
+ */
11
+ class SafePlatformClient {
12
+ constructor(provider) {
13
+ this.provider = provider;
14
+ }
15
+ async askWithTools(params) {
16
+ try {
17
+ const result = await this.provider.askWithTools(params);
18
+ return (0, sdk_result_interface_1.ok)(result);
19
+ }
20
+ catch (err) {
21
+ return (0, sdk_result_interface_1.fail)(toFormattedError(err));
22
+ }
23
+ }
24
+ }
25
+ exports.SafePlatformClient = SafePlatformClient;
26
+ function toFormattedError(err) {
27
+ if (err instanceof sdk_error_1.SdkError) {
28
+ return {
29
+ code: err.code,
30
+ message: err.message,
31
+ hint: buildHint(err.code),
32
+ retryable: err.retryable,
33
+ retryAfterMs: err.retryAfterMs,
34
+ requestId: err.requestId,
35
+ };
36
+ }
37
+ const message = err instanceof Error ? err.message : String(err);
38
+ return {
39
+ code: 'UNKNOWN_ERROR',
40
+ message,
41
+ hint: 'An unexpected error occurred. Check server logs for details.',
42
+ retryable: false,
43
+ };
44
+ }
45
+ function buildHint(code) {
46
+ const hints = {
47
+ OPENAI_401: 'Check your OpenAI API key.',
48
+ OPENAI_429: 'Rate limited by OpenAI. Retry after the indicated delay.',
49
+ ANTHROPIC_401: 'Check your Anthropic API key.',
50
+ ANTHROPIC_429: 'Rate limited by Anthropic. Retry after the indicated delay.',
51
+ TOOL_LOOP_MAX_TURNS_EXCEEDED: 'The AI tool loop exceeded max turns. Consider reducing tool complexity.',
52
+ NO_TOOL_HANDLER_CONFIGURED: 'The AI requested tool calls but no ToolHandler was configured.',
53
+ };
54
+ return hints[code] ?? 'See error.message for details.';
55
+ }
56
+ //# sourceMappingURL=safe-platform.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-platform.client.js","sourceRoot":"","sources":["../../src/safe/safe-platform.client.ts"],"names":[],"mappings":";;;AAGA,wEAAyD;AACzD,mDAA+C;AAE/C;;;;GAIG;AACH,MAAa,kBAAkB;IAC7B,YAA6B,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IAAG,CAAC;IAErD,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxD,OAAO,IAAA,yBAAE,EAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAA,2BAAI,EAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAXD,gDAWC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,GAAG,YAAY,oBAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO;QACP,IAAI,EAAE,8DAA8D;QACpE,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAA2B;QACpC,UAAU,EAAE,4BAA4B;QACxC,UAAU,EAAE,0DAA0D;QACtE,aAAa,EAAE,+BAA+B;QAC9C,aAAa,EAAE,6DAA6D;QAC5E,4BAA4B,EAAE,yEAAyE;QACvG,0BAA0B,EAAE,gEAAgE;KAC7F,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,gCAAgC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MemoryConversationStore } from './memory-conversation.store';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryConversationStore = void 0;
4
+ var memory_conversation_store_1 = require("./memory-conversation.store");
5
+ Object.defineProperty(exports, "MemoryConversationStore", { enumerable: true, get: function () { return memory_conversation_store_1.MemoryConversationStore; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":";;;AAAA,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA"}
@@ -0,0 +1,12 @@
1
+ import type { ConversationState, ConversationStore } from '../types/conversation-store.interface';
2
+ /**
3
+ * In-memory ConversationStore — useful for tests and lightweight apps.
4
+ * State is lost when the process restarts. Use MongoConversationStore in production.
5
+ */
6
+ export declare class MemoryConversationStore implements ConversationStore {
7
+ private readonly map;
8
+ load(threadKey: string): Promise<ConversationState | null>;
9
+ save(threadKey: string, state: ConversationState): Promise<void>;
10
+ create(threadKey: string, conversationId: string): Promise<ConversationState>;
11
+ }
12
+ //# sourceMappingURL=memory-conversation.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-conversation.store.d.ts","sourceRoot":"","sources":["../../../src/adapters/memory-conversation.store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAElG;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwC;IAEtD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAI1D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAKpF"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryConversationStore = void 0;
4
+ /**
5
+ * In-memory ConversationStore — useful for tests and lightweight apps.
6
+ * State is lost when the process restarts. Use MongoConversationStore in production.
7
+ */
8
+ class MemoryConversationStore {
9
+ constructor() {
10
+ this.map = new Map();
11
+ }
12
+ async load(threadKey) {
13
+ return this.map.get(threadKey) ?? null;
14
+ }
15
+ async save(threadKey, state) {
16
+ this.map.set(threadKey, state);
17
+ }
18
+ async create(threadKey, conversationId) {
19
+ const state = { conversationId };
20
+ this.map.set(threadKey, state);
21
+ return state;
22
+ }
23
+ }
24
+ exports.MemoryConversationStore = MemoryConversationStore;
25
+ //# sourceMappingURL=memory-conversation.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-conversation.store.js","sourceRoot":"","sources":["../../../src/adapters/memory-conversation.store.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,uBAAuB;IAApC;QACmB,QAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;IAe9D,CAAC;IAbC,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,KAAwB;QACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,cAAsB;QACpD,MAAM,KAAK,GAAsB,EAAE,cAAc,EAAE,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhBD,0DAgBC"}
@@ -0,0 +1,29 @@
1
+ import type { ClientConfig } from '../types/client-config.interface';
2
+ import type { AskWithToolsParams, AskWithToolsResult } from '../types/ask-with-tools.types';
3
+ import type { SdkResult } from '../types/sdk-result.interface';
4
+ /**
5
+ * Fully composed SDK client.
6
+ * Exposes both a raw API (throws on error) and a safe API (returns SdkResult).
7
+ *
8
+ * @example
9
+ * const client = createPlatformClient({
10
+ * provider: 'openai-responses',
11
+ * apiKey: process.env.OPENAI_API_KEY!,
12
+ * model: 'gpt-4o',
13
+ * conversationStore: new MongoConversationStore(),
14
+ * toolHandler: new TelbanyToolHandler(),
15
+ * });
16
+ *
17
+ * const result = await client.safe.askWithTools({ ... });
18
+ * if (result.success) console.log(result.data.outputText);
19
+ */
20
+ export interface PlatformClient {
21
+ /** Call askWithTools directly — throws SdkError on failure. */
22
+ askWithTools(params: AskWithToolsParams): Promise<AskWithToolsResult>;
23
+ /** Safe version — never throws, returns SdkResult<T>. */
24
+ safe: {
25
+ askWithTools(params: AskWithToolsParams): Promise<SdkResult<AskWithToolsResult>>;
26
+ };
27
+ }
28
+ export declare function createPlatformClient(config: ClientConfig): PlatformClient;
29
+ //# sourceMappingURL=platform-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../../../src/composed/platform-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,yDAAyD;IACzD,IAAI,EAAE;QACJ,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAClF,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAUzE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPlatformClient = createPlatformClient;
4
+ const provider_factory_1 = require("../factory/provider.factory");
5
+ const safe_platform_client_1 = require("../safe/safe-platform.client");
6
+ function createPlatformClient(config) {
7
+ const provider = (0, provider_factory_1.buildProvider)(config);
8
+ const safeClient = new safe_platform_client_1.SafePlatformClient(provider);
9
+ return {
10
+ askWithTools: (params) => provider.askWithTools(params),
11
+ safe: {
12
+ askWithTools: (params) => safeClient.askWithTools(params),
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=platform-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client.js","sourceRoot":"","sources":["../../../src/composed/platform-client.ts"],"names":[],"mappings":";;AA+BA,oDAUC;AAtCD,kEAA4D;AAC5D,uEAAkE;AA2BlE,SAAgB,oBAAoB,CAAC,MAAoB;IACvD,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,yCAAkB,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO;QACL,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE;YACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;SAC1D;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { SdkError } from './sdk.error';
2
+ export { ProviderError } from './provider.error';
3
+ export { ToolLoopError, NoToolHandlerError } from './tool-loop.error';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoToolHandlerError = exports.ToolLoopError = exports.ProviderError = exports.SdkError = void 0;
4
+ var sdk_error_1 = require("./sdk.error");
5
+ Object.defineProperty(exports, "SdkError", { enumerable: true, get: function () { return sdk_error_1.SdkError; } });
6
+ var provider_error_1 = require("./provider.error");
7
+ Object.defineProperty(exports, "ProviderError", { enumerable: true, get: function () { return provider_error_1.ProviderError; } });
8
+ var tool_loop_error_1 = require("./tool-loop.error");
9
+ Object.defineProperty(exports, "ToolLoopError", { enumerable: true, get: function () { return tool_loop_error_1.ToolLoopError; } });
10
+ Object.defineProperty(exports, "NoToolHandlerError", { enumerable: true, get: function () { return tool_loop_error_1.NoToolHandlerError; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAsE;AAA7D,gHAAA,aAAa,OAAA;AAAE,qHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { SdkError } from './sdk.error';
2
+ /** Error from the AI provider itself (API error, rate limit, auth failure). */
3
+ export declare class ProviderError extends SdkError {
4
+ readonly statusCode?: number;
5
+ readonly provider: string;
6
+ constructor({ provider, code, message, statusCode, retryable, retryAfterMs, requestId, }: {
7
+ provider: string;
8
+ code: string;
9
+ message: string;
10
+ statusCode?: number;
11
+ retryable?: boolean;
12
+ retryAfterMs?: number;
13
+ requestId?: string;
14
+ });
15
+ }
16
+ //# sourceMappingURL=provider.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.error.d.ts","sourceRoot":"","sources":["../../../src/errors/provider.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,+EAA+E;AAC/E,qBAAa,aAAc,SAAQ,QAAQ;IACzC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAiB,EACjB,YAAY,EACZ,SAAS,GACV,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CAMF"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderError = void 0;
4
+ const sdk_error_1 = require("./sdk.error");
5
+ /** Error from the AI provider itself (API error, rate limit, auth failure). */
6
+ class ProviderError extends sdk_error_1.SdkError {
7
+ constructor({ provider, code, message, statusCode, retryable = false, retryAfterMs, requestId, }) {
8
+ super({ code, message, retryable, retryAfterMs, requestId });
9
+ this.name = 'ProviderError';
10
+ this.provider = provider;
11
+ this.statusCode = statusCode;
12
+ }
13
+ }
14
+ exports.ProviderError = ProviderError;
15
+ //# sourceMappingURL=provider.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.error.js","sourceRoot":"","sources":["../../../src/errors/provider.error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC,+EAA+E;AAC/E,MAAa,aAAc,SAAQ,oBAAQ;IAIzC,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,YAAY,EACZ,SAAS,GASV;QACC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AA1BD,sCA0BC"}
@@ -0,0 +1,15 @@
1
+ /** Base SDK error — all thrown errors extend this. */
2
+ export declare class SdkError extends Error {
3
+ readonly code: string;
4
+ readonly retryable: boolean;
5
+ readonly retryAfterMs?: number;
6
+ readonly requestId?: string;
7
+ constructor({ code, message, retryable, retryAfterMs, requestId, }: {
8
+ code: string;
9
+ message: string;
10
+ retryable?: boolean;
11
+ retryAfterMs?: number;
12
+ requestId?: string;
13
+ });
14
+ }
15
+ //# sourceMappingURL=sdk.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.error.d.ts","sourceRoot":"","sources":["../../../src/errors/sdk.error.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,EACV,IAAI,EACJ,OAAO,EACP,SAAiB,EACjB,YAAY,EACZ,SAAS,GACV,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CAQF"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SdkError = void 0;
4
+ /** Base SDK error — all thrown errors extend this. */
5
+ class SdkError extends Error {
6
+ constructor({ code, message, retryable = false, retryAfterMs, requestId, }) {
7
+ super(message);
8
+ this.name = 'SdkError';
9
+ this.code = code;
10
+ this.retryable = retryable;
11
+ this.retryAfterMs = retryAfterMs;
12
+ this.requestId = requestId;
13
+ }
14
+ }
15
+ exports.SdkError = SdkError;
16
+ //# sourceMappingURL=sdk.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.error.js","sourceRoot":"","sources":["../../../src/errors/sdk.error.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,MAAa,QAAS,SAAQ,KAAK;IAMjC,YAAY,EACV,IAAI,EACJ,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,YAAY,EACZ,SAAS,GAOV;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AA1BD,4BA0BC"}
@@ -0,0 +1,11 @@
1
+ import { SdkError } from './sdk.error';
2
+ /** Error thrown when the AI tool loop exceeds the maximum number of turns. */
3
+ export declare class ToolLoopError extends SdkError {
4
+ readonly turnsExceeded: number;
5
+ constructor(turnsExceeded: number);
6
+ }
7
+ /** Error thrown when no tool handler is configured but the AI requests tool calls. */
8
+ export declare class NoToolHandlerError extends SdkError {
9
+ constructor();
10
+ }
11
+ //# sourceMappingURL=tool-loop.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-loop.error.d.ts","sourceRoot":"","sources":["../../../src/errors/tool-loop.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,8EAA8E;AAC9E,qBAAa,aAAc,SAAQ,QAAQ;IACzC,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAE1B,aAAa,EAAE,MAAM;CASlC;AAED,sFAAsF;AACtF,qBAAa,kBAAmB,SAAQ,QAAQ;;CAS/C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoToolHandlerError = exports.ToolLoopError = void 0;
4
+ const sdk_error_1 = require("./sdk.error");
5
+ /** Error thrown when the AI tool loop exceeds the maximum number of turns. */
6
+ class ToolLoopError extends sdk_error_1.SdkError {
7
+ constructor(turnsExceeded) {
8
+ super({
9
+ code: 'TOOL_LOOP_MAX_TURNS_EXCEEDED',
10
+ message: `Tool loop exceeded ${turnsExceeded} turns without a final answer`,
11
+ retryable: false,
12
+ });
13
+ this.name = 'ToolLoopError';
14
+ this.turnsExceeded = turnsExceeded;
15
+ }
16
+ }
17
+ exports.ToolLoopError = ToolLoopError;
18
+ /** Error thrown when no tool handler is configured but the AI requests tool calls. */
19
+ class NoToolHandlerError extends sdk_error_1.SdkError {
20
+ constructor() {
21
+ super({
22
+ code: 'NO_TOOL_HANDLER_CONFIGURED',
23
+ message: 'AI requested tool calls but no ToolHandler was configured in ClientConfig',
24
+ retryable: false,
25
+ });
26
+ this.name = 'NoToolHandlerError';
27
+ }
28
+ }
29
+ exports.NoToolHandlerError = NoToolHandlerError;
30
+ //# sourceMappingURL=tool-loop.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-loop.error.js","sourceRoot":"","sources":["../../../src/errors/tool-loop.error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC,8EAA8E;AAC9E,MAAa,aAAc,SAAQ,oBAAQ;IAGzC,YAAY,aAAqB;QAC/B,KAAK,CAAC;YACJ,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,sBAAsB,aAAa,+BAA+B;YAC3E,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AAZD,sCAYC;AAED,sFAAsF;AACtF,MAAa,kBAAmB,SAAQ,oBAAQ;IAC9C;QACE,KAAK,CAAC;YACJ,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,2EAA2E;YACpF,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AATD,gDASC"}
@@ -0,0 +1,2 @@
1
+ export { buildProvider } from './provider.factory';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildProvider = void 0;
4
+ var provider_factory_1 = require("./provider.factory");
5
+ Object.defineProperty(exports, "buildProvider", { enumerable: true, get: function () { return provider_factory_1.buildProvider; } });
6
+ //# sourceMappingURL=index.js.map