donobu 2.3.0 → 2.4.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 (317) hide show
  1. package/README.md +14 -0
  2. package/dist/apis/SpecialFlowsApi.d.ts +7 -1
  3. package/dist/apis/SpecialFlowsApi.js +41 -29
  4. package/dist/apis/SpecialFlowsApi.js.map +1 -1
  5. package/dist/apis/ToolsApi.d.ts +1 -1
  6. package/dist/apis/ToolsApi.js +1 -1
  7. package/dist/apis/ToolsApi.js.map +1 -1
  8. package/dist/assets/control-panel.js +3 -3
  9. package/dist/assets/generated/parameter-schemas.json +4 -4
  10. package/dist/assets/generated/version +1 -1
  11. package/dist/clients/AnthropicAwsBedrockGptClient.js +1 -1
  12. package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  13. package/dist/clients/AnthropicGptClient.js +1 -1
  14. package/dist/clients/AnthropicGptClient.js.map +1 -1
  15. package/dist/clients/GoogleGptClient.js +3 -3
  16. package/dist/clients/GoogleGptClient.js.map +1 -1
  17. package/dist/clients/GptClient.d.ts +1 -1
  18. package/dist/clients/OpenAiGptClient.js +1 -1
  19. package/dist/clients/OpenAiGptClient.js.map +1 -1
  20. package/dist/clients/VercelAiGptClient.js +1 -1
  21. package/dist/clients/VercelAiGptClient.js.map +1 -1
  22. package/dist/esm/apis/SpecialFlowsApi.d.ts +7 -1
  23. package/dist/esm/apis/SpecialFlowsApi.js +41 -29
  24. package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
  25. package/dist/esm/apis/ToolsApi.d.ts +1 -1
  26. package/dist/esm/apis/ToolsApi.js +1 -1
  27. package/dist/esm/apis/ToolsApi.js.map +1 -1
  28. package/dist/esm/assets/control-panel.js +3 -3
  29. package/dist/esm/assets/generated/parameter-schemas.json +4 -4
  30. package/dist/esm/assets/generated/version +1 -1
  31. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +1 -1
  32. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  33. package/dist/esm/clients/AnthropicGptClient.js +1 -1
  34. package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
  35. package/dist/esm/clients/GoogleGptClient.js +3 -3
  36. package/dist/esm/clients/GoogleGptClient.js.map +1 -1
  37. package/dist/esm/clients/GptClient.d.ts +1 -1
  38. package/dist/esm/clients/OpenAiGptClient.js +1 -1
  39. package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
  40. package/dist/esm/clients/VercelAiGptClient.js +1 -1
  41. package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
  42. package/dist/esm/main.d.ts +6 -6
  43. package/dist/esm/main.js +50 -39
  44. package/dist/esm/main.js.map +1 -1
  45. package/dist/esm/managers/AdminApiController.js +12 -25
  46. package/dist/esm/managers/AdminApiController.js.map +1 -1
  47. package/dist/esm/managers/CodeGenerator.d.ts +8 -0
  48. package/dist/esm/managers/CodeGenerator.js +25 -9
  49. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  50. package/dist/esm/managers/DonobuFlow.js +4 -2
  51. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  52. package/dist/esm/managers/DonobuFlowsManager.js +16 -7
  53. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  54. package/dist/esm/managers/DonobuMcpServer.d.ts +24 -0
  55. package/dist/esm/managers/DonobuMcpServer.js +146 -0
  56. package/dist/esm/managers/DonobuMcpServer.js.map +1 -0
  57. package/dist/esm/managers/DonobuStack.d.ts +19 -0
  58. package/dist/esm/managers/DonobuStack.js +29 -0
  59. package/dist/esm/managers/DonobuStack.js.map +1 -0
  60. package/dist/esm/managers/ToolManager.d.ts +1 -2
  61. package/dist/esm/managers/ToolManager.js +14 -14
  62. package/dist/esm/managers/ToolManager.js.map +1 -1
  63. package/dist/esm/models/BrowserFramework.d.ts +8 -15
  64. package/dist/esm/models/BrowserFramework.js +74 -96
  65. package/dist/esm/models/BrowserFramework.js.map +1 -1
  66. package/dist/esm/models/CustomTool.d.ts +1 -1
  67. package/dist/esm/persistence/DonobuSqliteDb.js +3 -2
  68. package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
  69. package/dist/esm/test.d.ts +2 -15
  70. package/dist/esm/test.js +37 -54
  71. package/dist/esm/test.js.map +1 -1
  72. package/dist/esm/tools/CustomToolRunnerTool.js +5 -5
  73. package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
  74. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +9 -11
  75. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  76. package/dist/esm/tools/Tool.d.ts +2 -2
  77. package/dist/esm/tools/Tool.js +4 -4
  78. package/dist/esm/tools/Tool.js.map +1 -1
  79. package/dist/esm/utils/PlaywrightUtils.js +0 -2
  80. package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
  81. package/dist/main.d.ts +6 -6
  82. package/dist/main.js +50 -39
  83. package/dist/main.js.map +1 -1
  84. package/dist/managers/AdminApiController.js +12 -25
  85. package/dist/managers/AdminApiController.js.map +1 -1
  86. package/dist/managers/CodeGenerator.d.ts +8 -0
  87. package/dist/managers/CodeGenerator.js +25 -9
  88. package/dist/managers/CodeGenerator.js.map +1 -1
  89. package/dist/managers/DonobuFlow.js +4 -2
  90. package/dist/managers/DonobuFlow.js.map +1 -1
  91. package/dist/managers/DonobuFlowsManager.js +16 -7
  92. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  93. package/dist/managers/DonobuMcpServer.d.ts +24 -0
  94. package/dist/managers/DonobuMcpServer.js +146 -0
  95. package/dist/managers/DonobuMcpServer.js.map +1 -0
  96. package/dist/managers/DonobuStack.d.ts +19 -0
  97. package/dist/managers/DonobuStack.js +29 -0
  98. package/dist/managers/DonobuStack.js.map +1 -0
  99. package/dist/managers/ToolManager.d.ts +1 -2
  100. package/dist/managers/ToolManager.js +14 -14
  101. package/dist/managers/ToolManager.js.map +1 -1
  102. package/dist/models/BrowserFramework.d.ts +8 -15
  103. package/dist/models/BrowserFramework.js +74 -96
  104. package/dist/models/BrowserFramework.js.map +1 -1
  105. package/dist/models/CustomTool.d.ts +1 -1
  106. package/dist/persistence/DonobuSqliteDb.js +3 -2
  107. package/dist/persistence/DonobuSqliteDb.js.map +1 -1
  108. package/dist/test.d.ts +2 -15
  109. package/dist/test.js +37 -54
  110. package/dist/test.js.map +1 -1
  111. package/dist/tools/CustomToolRunnerTool.js +5 -5
  112. package/dist/tools/CustomToolRunnerTool.js.map +1 -1
  113. package/dist/tools/GoToGoogleMapsStreetViewTool.js +9 -11
  114. package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  115. package/dist/tools/Tool.d.ts +2 -2
  116. package/dist/tools/Tool.js +4 -4
  117. package/dist/tools/Tool.js.map +1 -1
  118. package/dist/utils/PlaywrightUtils.js +0 -2
  119. package/dist/utils/PlaywrightUtils.js.map +1 -1
  120. package/package.json +1 -1
  121. package/dist/apis/GptResourcesApi.d.ts +0 -20
  122. package/dist/apis/GptResourcesApi.js +0 -53
  123. package/dist/apis/GptResourcesApi.js.map +0 -1
  124. package/dist/apis/KeysApi.d.ts +0 -25
  125. package/dist/apis/KeysApi.js +0 -64
  126. package/dist/apis/KeysApi.js.map +0 -1
  127. package/dist/assets/Donobu.entitlements.plist +0 -28
  128. package/dist/clients/GoogleGptClient2.d.ts +0 -18
  129. package/dist/clients/GoogleGptClient2.js +0 -237
  130. package/dist/clients/GoogleGptClient2.js.map +0 -1
  131. package/dist/donobu.fixtures.d.ts +0 -57
  132. package/dist/donobu.fixtures.js +0 -167
  133. package/dist/donobu.fixtures.js.map +0 -1
  134. package/dist/esm/apis/GptResourcesApi.d.ts +0 -20
  135. package/dist/esm/apis/GptResourcesApi.js +0 -53
  136. package/dist/esm/apis/GptResourcesApi.js.map +0 -1
  137. package/dist/esm/apis/KeysApi.d.ts +0 -25
  138. package/dist/esm/apis/KeysApi.js +0 -64
  139. package/dist/esm/apis/KeysApi.js.map +0 -1
  140. package/dist/esm/assets/Donobu.entitlements.plist +0 -28
  141. package/dist/esm/donobu.fixtures.d.ts +0 -57
  142. package/dist/esm/donobu.fixtures.js +0 -167
  143. package/dist/esm/donobu.fixtures.js.map +0 -1
  144. package/dist/esm/exceptions/GptResourceNotFoundException.d.ts +0 -8
  145. package/dist/esm/exceptions/GptResourceNotFoundException.js +0 -16
  146. package/dist/esm/exceptions/GptResourceNotFoundException.js.map +0 -1
  147. package/dist/esm/managers/FlowsPersistence.d.ts +0 -79
  148. package/dist/esm/managers/FlowsPersistence.js +0 -3
  149. package/dist/esm/managers/FlowsPersistence.js.map +0 -1
  150. package/dist/esm/managers/FlowsPersistenceAwsS3.d.ts +0 -48
  151. package/dist/esm/managers/FlowsPersistenceAwsS3.js +0 -284
  152. package/dist/esm/managers/FlowsPersistenceAwsS3.js.map +0 -1
  153. package/dist/esm/managers/FlowsPersistenceFactory.d.ts +0 -9
  154. package/dist/esm/managers/FlowsPersistenceFactory.js +0 -3
  155. package/dist/esm/managers/FlowsPersistenceFactory.js.map +0 -1
  156. package/dist/esm/managers/FlowsPersistenceFactoryImpl.d.ts +0 -57
  157. package/dist/esm/managers/FlowsPersistenceFactoryImpl.js +0 -119
  158. package/dist/esm/managers/FlowsPersistenceFactoryImpl.js.map +0 -1
  159. package/dist/esm/managers/FlowsPersistenceFactoryPreset.d.ts +0 -12
  160. package/dist/esm/managers/FlowsPersistenceFactoryPreset.js +0 -25
  161. package/dist/esm/managers/FlowsPersistenceFactoryPreset.js.map +0 -1
  162. package/dist/esm/managers/FlowsPersistenceFilesystem.d.ts +0 -33
  163. package/dist/esm/managers/FlowsPersistenceFilesystem.js +0 -180
  164. package/dist/esm/managers/FlowsPersistenceFilesystem.js.map +0 -1
  165. package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.d.ts +0 -40
  166. package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js +0 -209
  167. package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  168. package/dist/esm/managers/FlowsPersistenceSupabase.d.ts +0 -33
  169. package/dist/esm/managers/FlowsPersistenceSupabase.js +0 -152
  170. package/dist/esm/managers/FlowsPersistenceSupabase.js.map +0 -1
  171. package/dist/esm/managers/FlowsPersistenceVolatile.d.ts +0 -30
  172. package/dist/esm/managers/FlowsPersistenceVolatile.js +0 -103
  173. package/dist/esm/managers/FlowsPersistenceVolatile.js.map +0 -1
  174. package/dist/esm/managers/GptPlatformApiKeysManager.d.ts +0 -36
  175. package/dist/esm/managers/GptPlatformApiKeysManager.js +0 -3
  176. package/dist/esm/managers/GptPlatformApiKeysManager.js.map +0 -1
  177. package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.d.ts +0 -29
  178. package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js +0 -136
  179. package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js.map +0 -1
  180. package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.d.ts +0 -35
  181. package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js +0 -51
  182. package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js.map +0 -1
  183. package/dist/esm/managers/GptResourcesManager.d.ts +0 -39
  184. package/dist/esm/managers/GptResourcesManager.js +0 -130
  185. package/dist/esm/managers/GptResourcesManager.js.map +0 -1
  186. package/dist/esm/managers/SelectorGenerator.d.ts +0 -8
  187. package/dist/esm/managers/SelectorGenerator.js +0 -15
  188. package/dist/esm/managers/SelectorGenerator.js.map +0 -1
  189. package/dist/esm/models/ElementSelectorForReplay.d.ts +0 -14
  190. package/dist/esm/models/ElementSelectorForReplay.js +0 -3
  191. package/dist/esm/models/ElementSelectorForReplay.js.map +0 -1
  192. package/dist/esm/models/GptResource.d.ts +0 -33
  193. package/dist/esm/models/GptResource.js +0 -3
  194. package/dist/esm/models/GptResource.js.map +0 -1
  195. package/dist/esm/persistence/AgentsPersistenceFilesystem.d.ts +0 -15
  196. package/dist/esm/persistence/AgentsPersistenceFilesystem.js +0 -48
  197. package/dist/esm/persistence/AgentsPersistenceFilesystem.js.map +0 -1
  198. package/dist/esm/persistence/GptConfigsPersistenceFilesystem.d.ts +0 -16
  199. package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js +0 -54
  200. package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js.map +0 -1
  201. package/dist/esm/persistence/GptResourcesPersistence.d.ts +0 -11
  202. package/dist/esm/persistence/GptResourcesPersistence.js +0 -3
  203. package/dist/esm/persistence/GptResourcesPersistence.js.map +0 -1
  204. package/dist/esm/persistence/GptResourcesPersistenceFilesystem.d.ts +0 -20
  205. package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js +0 -79
  206. package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js.map +0 -1
  207. package/dist/esm/persistence/GptResourcesPersistenceVolatile.d.ts +0 -14
  208. package/dist/esm/persistence/GptResourcesPersistenceVolatile.js +0 -32
  209. package/dist/esm/persistence/GptResourcesPersistenceVolatile.js.map +0 -1
  210. package/dist/esm/testfixtures.d.ts +0 -66
  211. package/dist/esm/testfixtures.js +0 -288
  212. package/dist/esm/testfixtures.js.map +0 -1
  213. package/dist/esm/tools/AssertTextVisibility.d.ts +0 -19
  214. package/dist/esm/tools/AssertTextVisibility.js +0 -32
  215. package/dist/esm/tools/AssertTextVisibility.js.map +0 -1
  216. package/dist/esm/tools/ClickButtonTool.d.ts +0 -14
  217. package/dist/esm/tools/ClickButtonTool.js +0 -36
  218. package/dist/esm/tools/ClickButtonTool.js.map +0 -1
  219. package/dist/esm/tools/NavigateToWebpageTool.d.ts +0 -20
  220. package/dist/esm/tools/NavigateToWebpageTool.js +0 -40
  221. package/dist/esm/tools/NavigateToWebpageTool.js.map +0 -1
  222. package/dist/esm/utils/DirectoryUtils.d.ts +0 -11
  223. package/dist/esm/utils/DirectoryUtils.js +0 -37
  224. package/dist/esm/utils/DirectoryUtils.js.map +0 -1
  225. package/dist/exceptions/GptResourceNotFoundException.d.ts +0 -8
  226. package/dist/exceptions/GptResourceNotFoundException.js +0 -16
  227. package/dist/exceptions/GptResourceNotFoundException.js.map +0 -1
  228. package/dist/managers/FlowsPersistence.d.ts +0 -79
  229. package/dist/managers/FlowsPersistence.js +0 -3
  230. package/dist/managers/FlowsPersistence.js.map +0 -1
  231. package/dist/managers/FlowsPersistenceAwsS3.d.ts +0 -48
  232. package/dist/managers/FlowsPersistenceAwsS3.js +0 -284
  233. package/dist/managers/FlowsPersistenceAwsS3.js.map +0 -1
  234. package/dist/managers/FlowsPersistenceFactory.d.ts +0 -9
  235. package/dist/managers/FlowsPersistenceFactory.js +0 -3
  236. package/dist/managers/FlowsPersistenceFactory.js.map +0 -1
  237. package/dist/managers/FlowsPersistenceFactoryImpl.d.ts +0 -57
  238. package/dist/managers/FlowsPersistenceFactoryImpl.js +0 -119
  239. package/dist/managers/FlowsPersistenceFactoryImpl.js.map +0 -1
  240. package/dist/managers/FlowsPersistenceFactoryPreset.d.ts +0 -12
  241. package/dist/managers/FlowsPersistenceFactoryPreset.js +0 -25
  242. package/dist/managers/FlowsPersistenceFactoryPreset.js.map +0 -1
  243. package/dist/managers/FlowsPersistenceFilesystem.d.ts +0 -33
  244. package/dist/managers/FlowsPersistenceFilesystem.js +0 -180
  245. package/dist/managers/FlowsPersistenceFilesystem.js.map +0 -1
  246. package/dist/managers/FlowsPersistenceGoogleCloudStorage.d.ts +0 -40
  247. package/dist/managers/FlowsPersistenceGoogleCloudStorage.js +0 -209
  248. package/dist/managers/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  249. package/dist/managers/FlowsPersistenceSupabase.d.ts +0 -33
  250. package/dist/managers/FlowsPersistenceSupabase.js +0 -152
  251. package/dist/managers/FlowsPersistenceSupabase.js.map +0 -1
  252. package/dist/managers/FlowsPersistenceVolatile.d.ts +0 -30
  253. package/dist/managers/FlowsPersistenceVolatile.js +0 -103
  254. package/dist/managers/FlowsPersistenceVolatile.js.map +0 -1
  255. package/dist/managers/GptPlatformApiKeysManager.d.ts +0 -36
  256. package/dist/managers/GptPlatformApiKeysManager.js +0 -3
  257. package/dist/managers/GptPlatformApiKeysManager.js.map +0 -1
  258. package/dist/managers/GptPlatformApiKeysManagerFilesystem.d.ts +0 -29
  259. package/dist/managers/GptPlatformApiKeysManagerFilesystem.js +0 -136
  260. package/dist/managers/GptPlatformApiKeysManagerFilesystem.js.map +0 -1
  261. package/dist/managers/GptPlatformApiKeysManagerVolatile.d.ts +0 -35
  262. package/dist/managers/GptPlatformApiKeysManagerVolatile.js +0 -51
  263. package/dist/managers/GptPlatformApiKeysManagerVolatile.js.map +0 -1
  264. package/dist/managers/GptResourcesManager.d.ts +0 -44
  265. package/dist/managers/GptResourcesManager.js +0 -180
  266. package/dist/managers/GptResourcesManager.js.map +0 -1
  267. package/dist/managers/SelectorGenerator.d.ts +0 -8
  268. package/dist/managers/SelectorGenerator.js +0 -15
  269. package/dist/managers/SelectorGenerator.js.map +0 -1
  270. package/dist/models/BaseToolParam.d.ts +0 -9
  271. package/dist/models/BaseToolParam.js +0 -3
  272. package/dist/models/BaseToolParam.js.map +0 -1
  273. package/dist/models/BaseToolParameters.d.ts +0 -9
  274. package/dist/models/BaseToolParameters.js +0 -3
  275. package/dist/models/BaseToolParameters.js.map +0 -1
  276. package/dist/models/DonobuAnnotated.d.ts +0 -23
  277. package/dist/models/DonobuAnnotated.js +0 -12
  278. package/dist/models/DonobuAnnotated.js.map +0 -1
  279. package/dist/models/ElementSelectorForReplay.d.ts +0 -14
  280. package/dist/models/ElementSelectorForReplay.js +0 -3
  281. package/dist/models/ElementSelectorForReplay.js.map +0 -1
  282. package/dist/models/GptResource.d.ts +0 -33
  283. package/dist/models/GptResource.js +0 -3
  284. package/dist/models/GptResource.js.map +0 -1
  285. package/dist/persistence/AgentsPersistenceFilesystem.d.ts +0 -15
  286. package/dist/persistence/AgentsPersistenceFilesystem.js +0 -48
  287. package/dist/persistence/AgentsPersistenceFilesystem.js.map +0 -1
  288. package/dist/persistence/GptConfigsPersistenceFilesystem.d.ts +0 -16
  289. package/dist/persistence/GptConfigsPersistenceFilesystem.js +0 -54
  290. package/dist/persistence/GptConfigsPersistenceFilesystem.js.map +0 -1
  291. package/dist/persistence/GptResourcesPersistence.d.ts +0 -11
  292. package/dist/persistence/GptResourcesPersistence.js +0 -3
  293. package/dist/persistence/GptResourcesPersistence.js.map +0 -1
  294. package/dist/persistence/GptResourcesPersistenceFilesystem.d.ts +0 -20
  295. package/dist/persistence/GptResourcesPersistenceFilesystem.js +0 -79
  296. package/dist/persistence/GptResourcesPersistenceFilesystem.js.map +0 -1
  297. package/dist/persistence/GptResourcesPersistenceVolatile.d.ts +0 -14
  298. package/dist/persistence/GptResourcesPersistenceVolatile.js +0 -32
  299. package/dist/persistence/GptResourcesPersistenceVolatile.js.map +0 -1
  300. package/dist/testfixtures.d.ts +0 -66
  301. package/dist/testfixtures.js +0 -288
  302. package/dist/testfixtures.js.map +0 -1
  303. package/dist/tools/AssertTextVisibility.d.ts +0 -19
  304. package/dist/tools/AssertTextVisibility.js +0 -32
  305. package/dist/tools/AssertTextVisibility.js.map +0 -1
  306. package/dist/tools/ClickButtonTool.d.ts +0 -14
  307. package/dist/tools/ClickButtonTool.js +0 -36
  308. package/dist/tools/ClickButtonTool.js.map +0 -1
  309. package/dist/tools/NavigateToWebpage.d.ts +0 -19
  310. package/dist/tools/NavigateToWebpage.js +0 -25
  311. package/dist/tools/NavigateToWebpage.js.map +0 -1
  312. package/dist/tools/NavigateToWebpageTool.d.ts +0 -20
  313. package/dist/tools/NavigateToWebpageTool.js +0 -40
  314. package/dist/tools/NavigateToWebpageTool.js.map +0 -1
  315. package/dist/utils/DirectoryUtils.d.ts +0 -11
  316. package/dist/utils/DirectoryUtils.js +0 -37
  317. package/dist/utils/DirectoryUtils.js.map +0 -1
@@ -1,237 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GoogleGptClient = void 0;
4
- const generative_ai_1 = require("@google/generative-ai");
5
- const Logger_1 = require("../utils/Logger");
6
- const JsonUtils_1 = require("../utils/JsonUtils");
7
- const GptClient_1 = require("./GptClient");
8
- const GptModelNotFoundException_1 = require("../exceptions/GptModelNotFoundException");
9
- const GptPlatformAuthenticationFailedException_1 = require("../exceptions/GptPlatformAuthenticationFailedException");
10
- const GptPlatformInternalErrorException_1 = require("../exceptions/GptPlatformInternalErrorException");
11
- const GptPlatformNotReachableException_1 = require("../exceptions/GptPlatformNotReachableException");
12
- const FlowMetadata_1 = require("../models/FlowMetadata");
13
- const DonobuFlow_1 = require("../managers/DonobuFlow");
14
- const server_1 = require("@google/generative-ai/server");
15
- class GoogleGptClient extends GptClient_1.GptClient {
16
- client;
17
- model;
18
- constructor(apiKey, modelName) {
19
- super(FlowMetadata_1.Platform.GOOGLE, modelName);
20
- this.client = new generative_ai_1.GoogleGenerativeAI(apiKey);
21
- this.model = this.client.getGenerativeModel({ model: modelName });
22
- }
23
- async ping() {
24
- try {
25
- // Simple test call to verify credentials and model
26
- await this.model.countTokens('test');
27
- }
28
- catch (error) {
29
- if (error.message?.includes('NOT_FOUND')) {
30
- throw new GptModelNotFoundException_1.GptModelNotFoundException(FlowMetadata_1.Platform.GOOGLE, this.modelName);
31
- }
32
- if (error.message?.includes('INVALID_ARGUMENT') &&
33
- error.message?.includes('API key')) {
34
- throw new GptPlatformAuthenticationFailedException_1.GptPlatformAuthenticationFailedException(FlowMetadata_1.Platform.GOOGLE);
35
- }
36
- if (error.message?.includes('UNAVAILABLE')) {
37
- throw new GptPlatformNotReachableException_1.GptPlatformNotReachableException(FlowMetadata_1.Platform.GOOGLE);
38
- }
39
- Logger_1.Logger.appLogger.error('Unexpected Google error:', error);
40
- throw new GptPlatformInternalErrorException_1.GptPlatformInternalErrorException(`Unexpected Google error: ${error.message}`);
41
- }
42
- }
43
- async getMessage(message) {
44
- try {
45
- const result = await this.model.generateContent(message);
46
- const response = result.response;
47
- return {
48
- type: 'assistant',
49
- text: response.text(),
50
- promptTokensUsed: response.usageMetadata?.promptTokenCount ?? 0,
51
- completionTokensUsed: response.usageMetadata?.candidatesTokenCount ?? 0,
52
- };
53
- }
54
- catch (error) {
55
- Logger_1.Logger.appLogger.error('Failed to get message from Google:', error);
56
- throw error;
57
- }
58
- }
59
- async getStructuredOutputWithSchema(messages, jsonSchema) {
60
- try {
61
- const contents = this.convertMessagesToGoogleFormat(messages);
62
- const result = await this.model.generateContent({
63
- contents,
64
- generationConfig: {
65
- temperature: 0.0,
66
- maxOutputTokens: 8192,
67
- responseMimeType: 'application/json',
68
- responseSchema: jsonSchema,
69
- },
70
- });
71
- const response = result.response;
72
- const text = response.text().trim();
73
- const output = JsonUtils_1.JsonUtils.jsonStringToJsonObject(text);
74
- if (!output) {
75
- throw new Error('Failed to parse response as JSON object');
76
- }
77
- return {
78
- type: 'structured_output',
79
- output,
80
- promptTokensUsed: response.usageMetadata?.promptTokenCount ?? 0,
81
- completionTokensUsed: response.usageMetadata?.candidatesTokenCount ?? 0,
82
- };
83
- }
84
- catch (error) {
85
- Logger_1.Logger.appLogger.error('Failed to get structured output from Google:', error);
86
- throw error;
87
- }
88
- }
89
- async getToolCalls(messages, tools) {
90
- try {
91
- const contents = this.convertMessagesToGoogleFormat(messages);
92
- const result = await this.model.generateContent({
93
- contents,
94
- tools: [
95
- {
96
- functionDeclarations: tools.map((tool) => this.convertToolToGoogleFormat(tool)),
97
- },
98
- ],
99
- generationConfig: {
100
- temperature: 0.0,
101
- maxOutputTokens: 8192,
102
- },
103
- toolConfig: {
104
- functionCallingConfig: {
105
- mode: server_1.FunctionCallingMode.ANY,
106
- },
107
- },
108
- });
109
- const response = result.response;
110
- const functionCalls = response.functionCalls() || [];
111
- const proposedCalls = await Promise.all(functionCalls.map(async (fc) => {
112
- const tool = tools.find((t) => t.name === fc.name);
113
- if (!tool) {
114
- throw new Error(`Tool not found: ${fc.name}`);
115
- }
116
- return tool.proposeCall(fc.args, (0, DonobuFlow_1.createAdHocToolCallId)());
117
- }));
118
- return {
119
- type: 'proposed_tool_calls',
120
- proposedToolCalls: proposedCalls,
121
- promptTokensUsed: response.usageMetadata?.promptTokenCount ?? 0,
122
- completionTokensUsed: response.usageMetadata?.candidatesTokenCount ?? 0,
123
- };
124
- }
125
- catch (error) {
126
- Logger_1.Logger.appLogger.error('Failed to get tool calls from Google:', error);
127
- throw error;
128
- }
129
- }
130
- convertMessagesToGoogleFormat(messages) {
131
- // Find any system message to use as systemInstruction
132
- const systemMessage = messages.find((msg) => msg.type === 'system');
133
- // Filter out system message since it will be handled separately
134
- const nonSystemMessages = messages.filter((msg) => msg.type !== 'system');
135
- const contents = nonSystemMessages.map((msg) => {
136
- switch (msg.type) {
137
- case 'assistant':
138
- return {
139
- role: 'model',
140
- parts: [{ text: msg.text }],
141
- };
142
- case 'user':
143
- return {
144
- role: 'user',
145
- parts: msg.items.map((item) => {
146
- if (item.type === 'text') {
147
- return { text: item.text };
148
- }
149
- return {
150
- inlineData: {
151
- mimeType: 'image/png',
152
- data: Buffer.from(item.bytes).toString('base64'),
153
- },
154
- };
155
- }),
156
- };
157
- case 'structured_output':
158
- return {
159
- role: 'model',
160
- parts: [{ text: JSON.stringify(msg.output, null, 2) }],
161
- };
162
- case 'proposed_tool_calls':
163
- return {
164
- role: 'model',
165
- parts: msg.proposedToolCalls.map((tc) => ({
166
- functionCall: {
167
- name: tc.name,
168
- args: tc.parameters,
169
- },
170
- })),
171
- };
172
- case 'tool_call_result':
173
- return {
174
- role: 'function',
175
- parts: [
176
- {
177
- functionResponse: {
178
- name: msg.toolName,
179
- response: { value: msg.data },
180
- },
181
- },
182
- ],
183
- };
184
- default:
185
- throw new Error(`Unsupported message type: ${JsonUtils_1.JsonUtils.objectToJson(msg)}`);
186
- }
187
- });
188
- // If there's a system message, add it at the beginning
189
- if (systemMessage) {
190
- contents.unshift({
191
- role: 'system',
192
- parts: [{ text: systemMessage.text }],
193
- });
194
- }
195
- return contents;
196
- }
197
- convertToolToGoogleFormat(tool) {
198
- return {
199
- name: tool.name,
200
- description: tool.description,
201
- parameters: this.normalizeJsonSchema(tool.jsonSchema),
202
- };
203
- }
204
- normalizeJsonSchema(schema) {
205
- // Remove additionalProperties and normalize type fields for Google
206
- const normalized = JSON.parse(JSON.stringify(schema));
207
- this.removeAdditionalProperties(normalized);
208
- this.normalizeTypeFields(normalized);
209
- return normalized;
210
- }
211
- removeAdditionalProperties(obj) {
212
- if (!obj || typeof obj !== 'object')
213
- return;
214
- delete obj.additionalProperties;
215
- Object.values(obj).forEach((value) => {
216
- if (value && typeof value === 'object') {
217
- this.removeAdditionalProperties(value);
218
- }
219
- });
220
- }
221
- normalizeTypeFields(obj) {
222
- if (!obj || typeof obj !== 'object')
223
- return;
224
- if (Array.isArray(obj.type)) {
225
- const nonNullType = obj.type.find((t) => t !== 'null');
226
- if (nonNullType)
227
- obj.type = nonNullType;
228
- }
229
- Object.values(obj).forEach((value) => {
230
- if (value && typeof value === 'object') {
231
- this.normalizeTypeFields(value);
232
- }
233
- });
234
- }
235
- }
236
- exports.GoogleGptClient = GoogleGptClient;
237
- //# sourceMappingURL=GoogleGptClient2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoogleGptClient2.js","sourceRoot":"","sources":["../../src/clients/GoogleGptClient2.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import type { Page } from '@playwright/test';
2
- import { DonobuFlowsManager } from './managers/DonobuFlowsManager';
3
- import { FlowsPersistenceFactory } from './managers/FlowsPersistenceFactory';
4
- import { ToolManager } from './managers/ToolManager';
5
- import { GptPlatformApiKeysManagerFilesystem } from './managers/GptPlatformApiKeysManagerFilesystem';
6
- import { FlowMetadata, Platform } from './models/FlowMetadata';
7
- import { BrowserStorageState } from './models/BrowserState';
8
- import { FlowsPersistence } from './managers/FlowsPersistence';
9
- import { DonobuDeploymentEnvironment } from './models/DonobuDeploymentEnvironment';
10
- import { BrowserStateFlowReference } from './models/BrowserStateFlowReference';
11
- import { ToolCallResult } from './models/ToolCallResult';
12
- import { AnalyzePageTextToolCoreParameters } from './tools/AnalyzePageTextTool';
13
- import { AssertToolCoreParameters } from './tools/AssertTool';
14
- import { GptClient } from './clients/GptClient';
15
- import { SelectorBasedClickButtonToolParameters } from './tools/ChooseSelectOptionTool';
16
- import { InputRandomizedEmailAddressToolCoreParameters } from './tools/InputRandomizedEmailAddressTool';
17
- import { SelectorBasedInputTextToolParameters } from './tools/InputTextTool';
18
- import { SelectorBasedPressKeyToolParameters } from './tools/PressKeyTool';
19
- import { ScrollPageToolCoreParameters } from './tools/ScrollPageTool';
20
- import { SelectorBasedHoverOverElementToolParameters } from './tools/HoverOverElementTool';
21
- /**
22
- * Extends the Page object with additional test-related methods.
23
- */
24
- interface DonobuExtendedPage extends Page {
25
- run(toolName: string, toolParams?: any): Promise<ToolCallResult>;
26
- analyzePageText(params: AnalyzePageTextToolCoreParameters): Promise<ToolCallResult>;
27
- chooseSelectOption(params: SelectorBasedClickButtonToolParameters): Promise<ToolCallResult>;
28
- clickElement(params: SelectorBasedClickButtonToolParameters): Promise<ToolCallResult>;
29
- createCookieReport(): Promise<ToolCallResult>;
30
- detectBrokenLinks(): Promise<ToolCallResult>;
31
- hoverOverElement(params: SelectorBasedHoverOverElementToolParameters): Promise<ToolCallResult>;
32
- inputRandomizedEmailAddress(params: InputRandomizedEmailAddressToolCoreParameters): Promise<ToolCallResult>;
33
- inputText(params: SelectorBasedInputTextToolParameters): Promise<ToolCallResult>;
34
- pressKey(params: SelectorBasedPressKeyToolParameters): Promise<ToolCallResult>;
35
- runAccessibilityTest(): Promise<ToolCallResult>;
36
- scroll(params: ScrollPageToolCoreParameters): Promise<ToolCallResult>;
37
- visuallyAssert(params: AssertToolCoreParameters): Promise<ToolCallResult>;
38
- _donobu: DonobuParams;
39
- _donobuFlowMetadata: FlowMetadata;
40
- _gptClient: GptClient | null;
41
- }
42
- type DonobuParams = {
43
- workingDir: string;
44
- donobuVersion: string;
45
- deploymentEnvironment: DonobuDeploymentEnvironment;
46
- gptPlatformApiKeysManager: GptPlatformApiKeysManagerFilesystem;
47
- enabledGptPlatforms: Platform[];
48
- flowsPersistenceFactory: FlowsPersistenceFactory;
49
- toolManager: ToolManager;
50
- flowsManager: DonobuFlowsManager;
51
- persistenceLayer: FlowsPersistence;
52
- };
53
- export declare function getBrowserStorageState(flowIdOrName: BrowserStateFlowReference): Promise<BrowserStorageState>;
54
- export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
55
- page: DonobuExtendedPage;
56
- }, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
57
- export {};
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.test = void 0;
4
- exports.getBrowserStorageState = getBrowserStorageState;
5
- //
6
- // TODO:
7
- // - Add bindings (i.e. FocusPage) to the page object. This one may be impossible.
8
- //
9
- const test_1 = require("@playwright/test");
10
- const DonobuFlowsManager_1 = require("./managers/DonobuFlowsManager");
11
- const FlowsPersistenceFactoryImpl_1 = require("./managers/FlowsPersistenceFactoryImpl");
12
- const RequestContextHolder_1 = require("./managers/RequestContextHolder");
13
- const DirectoryUtils_1 = require("./utils/DirectoryUtils");
14
- const ToolManager_1 = require("./managers/ToolManager");
15
- const GptPlatformApiKeysManagerFilesystem_1 = require("./managers/GptPlatformApiKeysManagerFilesystem");
16
- const ToolTipper_1 = require("./managers/ToolTipper");
17
- const FlowMetadata_1 = require("./models/FlowMetadata");
18
- const PlaywrightUtils_1 = require("./utils/PlaywrightUtils");
19
- const MiscUtils_1 = require("./utils/MiscUtils");
20
- const DonobuDeploymentEnvironment_1 = require("./models/DonobuDeploymentEnvironment");
21
- async function setupDonobu() {
22
- const workingDir = (0, DirectoryUtils_1.baseWorkingDirectory)();
23
- const donobuVersion = MiscUtils_1.MiscUtils.DONOBU_VERSION;
24
- const deploymentEnvironment = DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL;
25
- const gptPlatformApiKeysManager = await GptPlatformApiKeysManagerFilesystem_1.GptPlatformApiKeysManagerFilesystem.create(workingDir);
26
- const enabledGptPlatforms = await gptPlatformApiKeysManager.getGptPlatformsWithKeys();
27
- const flowsPersistenceFactory = FlowsPersistenceFactoryImpl_1.FlowsPersistenceFactoryImpl.fromEnvironment(DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL, workingDir, new RequestContextHolder_1.RequestContextHolder());
28
- const toolManager = new ToolManager_1.ToolManager(ToolManager_1.ToolManager.ALL_TOOLS);
29
- const flowsManager = new DonobuFlowsManager_1.DonobuFlowsManager(deploymentEnvironment, gptPlatformApiKeysManager, flowsPersistenceFactory, toolManager.tools);
30
- const persistenceLayer = await flowsPersistenceFactory.createPersistenceLayer();
31
- return {
32
- workingDir,
33
- donobuVersion,
34
- deploymentEnvironment,
35
- gptPlatformApiKeysManager,
36
- enabledGptPlatforms,
37
- flowsPersistenceFactory,
38
- toolManager,
39
- flowsManager,
40
- persistenceLayer,
41
- };
42
- }
43
- async function getBrowserStorageState(flowIdOrName) {
44
- return (await setupDonobu()).flowsManager.getBrowserStorageState(flowIdOrName);
45
- }
46
- exports.test = test_1.test.extend({
47
- // Override the default page fixture
48
- page: async ({ page }, use) => {
49
- // Patch the page with "run", but do it lazily
50
- const donobu = await setupDonobu();
51
- await page
52
- .context()
53
- .addInitScript(PlaywrightUtils_1.PlaywrightUtils.accessibilityTestInitScript());
54
- let isInitialized = false;
55
- async function maybeInitDonobu() {
56
- if (isInitialized) {
57
- return;
58
- }
59
- const donobuTestFlowMetadata = {
60
- id: crypto.randomUUID(),
61
- name: null,
62
- createdWithDonobuVersion: donobu.donobuVersion,
63
- initialBrowserState: null,
64
- persistBrowserState: null,
65
- gptPlatform: donobu.enabledGptPlatforms[0] ?? null,
66
- gptModel: null,
67
- customTools: null,
68
- defaultToolTipDurationMilliseconds: 0,
69
- runMode: FlowMetadata_1.RunMode.DETERMINISTIC,
70
- isControlPanelEnabled: false,
71
- deviceName: null,
72
- remoteBrowserInstanceUrl: null,
73
- callbackUrl: null,
74
- headless: true,
75
- targetWebsite: 'https://example.com',
76
- overallObjective: null,
77
- allowedTools: [],
78
- resultJsonSchema: null,
79
- result: null,
80
- inputTokensUsed: 0,
81
- completionTokensUsed: 0,
82
- iterations: 0,
83
- maxIterations: 0,
84
- startedAt: new Date().toISOString(),
85
- completedAt: null,
86
- state: FlowMetadata_1.State.RUNNING_ACTION,
87
- nextState: null,
88
- };
89
- const gptClient = await donobu.flowsManager.createGptClient(donobuTestFlowMetadata.gptPlatform?.toString() ?? null, donobuTestFlowMetadata.gptModel);
90
- await donobu.persistenceLayer.saveMetadata(donobuTestFlowMetadata);
91
- page._donobu = donobu;
92
- page._donobuFlowMetadata = donobuTestFlowMetadata;
93
- page._gptClient = gptClient;
94
- isInitialized = true;
95
- }
96
- page.run = async (toolName, toolParams) => {
97
- await maybeInitDonobu();
98
- const clonedParams = toolParams
99
- ? JSON.parse(JSON.stringify(toolParams))
100
- : {};
101
- clonedParams.rationale ||= '';
102
- const toolCallContext = {
103
- flowsManager: page._donobu.flowsManager,
104
- persistence: page._donobu.persistenceLayer,
105
- gptClient: page._gptClient,
106
- toolTipper: new ToolTipper_1.ToolTipper(0),
107
- proposedToolCalls: [],
108
- invokedToolCalls: [],
109
- page: page,
110
- metadata: page._donobuFlowMetadata,
111
- toolCallId: clonedParams.toolCallId ?? (0, MiscUtils_1.createAdHocToolCallId)(),
112
- };
113
- const proposedToolCall = {
114
- name: toolName,
115
- parameters: clonedParams,
116
- toolCallId: null,
117
- };
118
- return page._donobu.toolManager
119
- .invokeTool(toolCallContext, proposedToolCall, false)
120
- .then(async (result) => {
121
- await page._donobu.persistenceLayer.saveMetadata(page._donobuFlowMetadata);
122
- await page._donobu.persistenceLayer.saveToolCall(page._donobuFlowMetadata.id, result);
123
- return result;
124
- })
125
- .then((result) => result.outcome);
126
- };
127
- page.analyzePageText = async (params) => {
128
- return page.run('analyzePageText', params);
129
- };
130
- page.chooseSelectOption = async (params) => {
131
- return page.run('chooseSelectOption', params);
132
- };
133
- page.clickElement = async (params) => {
134
- return page.run('clickButton', params);
135
- };
136
- page.createCookieReport = async () => {
137
- return page.run('createCookieReport');
138
- };
139
- page.detectBrokenLinks = async () => {
140
- return page.run('detectBrokenLinks');
141
- };
142
- page.hoverOverElement = async (params) => {
143
- return page.run('hover', params);
144
- };
145
- page.inputRandomizedEmailAddress = async (params) => {
146
- return page.run('inputRandomizedEmailAddress', params);
147
- };
148
- page.inputText = async (params) => {
149
- return page.run('inputText', params);
150
- };
151
- page.pressKey = async (params) => {
152
- return page.run('pressKey', params);
153
- };
154
- page.runAccessibilityTest = async () => {
155
- return page.run('runAccessibilityTest');
156
- };
157
- page.scroll = async (params) => {
158
- return page.run('scrollPage', params);
159
- };
160
- page.visuallyAssert = async (params) => {
161
- return page.run('assert', params);
162
- };
163
- // Let Playwright continue and give tests the patched page
164
- await use(page);
165
- },
166
- });
167
- //# sourceMappingURL=donobu.fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donobu.fixtures.js","sourceRoot":"","sources":["../src/donobu.fixtures.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import { GptResourcesManager } from '../managers/GptResourcesManager';
3
- import { GptResource } from '../models/GptResource';
4
- /**
5
- * This API manages the GPT resources available to the Donobu runtime.
6
- */
7
- export declare class GptResourcesApi {
8
- private readonly gptResourcesManager;
9
- private static readonly REDACTED_FIELD_NAME;
10
- constructor(gptResourcesManager: GptResourcesManager);
11
- set(req: Request, res: Response): Promise<void>;
12
- get(req: Request, res: Response): Promise<void>;
13
- getAll(_req: Request, res: Response): Promise<void>;
14
- delete(req: Request, res: Response): Promise<void>;
15
- /**
16
- * Redacts sensative data from the given GPT resource so that the record can
17
- * be safely returned through the API.
18
- */
19
- static redactSensativeData(gptResource: GptResource): GptResource;
20
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GptResourcesApi = void 0;
4
- const GptResourceNotFoundException_1 = require("../exceptions/GptResourceNotFoundException");
5
- /**
6
- * This API manages the GPT resources available to the Donobu runtime.
7
- */
8
- class GptResourcesApi {
9
- gptResourcesManager;
10
- static REDACTED_FIELD_NAME = 'apiKey';
11
- constructor(gptResourcesManager) {
12
- this.gptResourcesManager = gptResourcesManager;
13
- }
14
- async set(req, res) {
15
- const gptResource = req.body;
16
- const gptResourceName = req.params.name;
17
- if (!gptResourceName) {
18
- throw new GptResourceNotFoundException_1.GptResourceNotFoundException(gptResourceName);
19
- }
20
- await this.gptResourcesManager.set(gptResourceName, gptResource);
21
- res.status(200);
22
- }
23
- async get(req, res) {
24
- const gptResourceName = req.params.name;
25
- const gptResource = GptResourcesApi.redactSensativeData(await this.gptResourcesManager.get(gptResourceName));
26
- res.json(gptResource);
27
- }
28
- async getAll(_req, res) {
29
- const gptResources = await this.gptResourcesManager.getAll();
30
- const redactedGptResources = new Map(Array.from(gptResources.entries()).map(([key, value]) => [
31
- key,
32
- GptResourcesApi.redactSensativeData(value),
33
- ]));
34
- res.json(Object.fromEntries(redactedGptResources));
35
- }
36
- async delete(req, res) {
37
- const gptResourceName = req.params.name;
38
- await this.gptResourcesManager.delete(gptResourceName);
39
- res.status(200);
40
- }
41
- /**
42
- * Redacts sensative data from the given GPT resource so that the record can
43
- * be safely returned through the API.
44
- */
45
- static redactSensativeData(gptResource) {
46
- if (GptResourcesApi.REDACTED_FIELD_NAME in gptResource) {
47
- gptResource[GptResourcesApi.REDACTED_FIELD_NAME] = '****************';
48
- }
49
- return gptResource;
50
- }
51
- }
52
- exports.GptResourcesApi = GptResourcesApi;
53
- //# sourceMappingURL=GptResourcesApi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GptResourcesApi.js","sourceRoot":"","sources":["../../../src/apis/GptResourcesApi.ts"],"names":[],"mappings":";;;AAEA,6FAA0F;AAG1F;;GAEG;AACH,MAAa,eAAe;IAIP;IAHX,MAAM,CAAU,mBAAmB,GAAG,QAAQ,CAAC;IAEvD,YACmB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEG,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa;QAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAmB,CAAC;QAC5C,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAExC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,2DAA4B,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa;QAC1C,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACxC,MAAM,WAAW,GAAG,eAAe,CAAC,mBAAmB,CACrD,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CACpD,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,GAAa;QAC9C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACvD,GAAG;YACH,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC;SAC3C,CAAC,CACH,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,GAAa;QAC7C,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,WAAwB;QACjD,IAAI,eAAe,CAAC,mBAAmB,IAAI,WAAW,EAAE,CAAC;YACvD,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,kBAAkB,CAAC;QACxE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;;AAtDH,0CAuDC"}
@@ -1,25 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import { GptPlatformApiKeysManager } from '../managers/GptPlatformApiKeysManager';
3
- export declare class KeysApi {
4
- private readonly gptPlatformApiKeysManager;
5
- constructor(gptPlatformApiKeysManager: GptPlatformApiKeysManager);
6
- /**
7
- * NOTE: This does not actually return the API key itself, but rather, flags if it exists or not.
8
- */
9
- getApiKey(req: Request, res: Response): Promise<void>;
10
- /**
11
- * NOTE: This does not actually return the API keys themselves, but rather, the map of Platforms
12
- * that have API keys available. Example response:
13
- *
14
- * <pre>
15
- * {
16
- * "OPENAI": true,
17
- * "ANTHROPIC": false,
18
- * "GOOGLE": false
19
- * }
20
- * </pre>
21
- */
22
- getApiKeys(_req: Request, res: Response): Promise<void>;
23
- setApiKey(req: Request, res: Response): Promise<void>;
24
- deleteApiKey(req: Request, res: Response): Promise<void>;
25
- }
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KeysApi = void 0;
4
- const FlowMetadata_1 = require("../models/FlowMetadata");
5
- const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
6
- class KeysApi {
7
- gptPlatformApiKeysManager;
8
- constructor(gptPlatformApiKeysManager) {
9
- this.gptPlatformApiKeysManager = gptPlatformApiKeysManager;
10
- }
11
- /**
12
- * NOTE: This does not actually return the API key itself, but rather, flags if it exists or not.
13
- */
14
- async getApiKey(req, res) {
15
- const platformName = req.params.platform.toUpperCase();
16
- const platform = FlowMetadata_1.Platform[platformName];
17
- if (!platform) {
18
- throw new InvalidParamValueException_1.InvalidParamValueException('/api-keys/{platform}', platformName);
19
- }
20
- await this.gptPlatformApiKeysManager.getKey(platform);
21
- res.sendStatus(200);
22
- }
23
- /**
24
- * NOTE: This does not actually return the API keys themselves, but rather, the map of Platforms
25
- * that have API keys available. Example response:
26
- *
27
- * <pre>
28
- * {
29
- * "OPENAI": true,
30
- * "ANTHROPIC": false,
31
- * "GOOGLE": false
32
- * }
33
- * </pre>
34
- */
35
- async getApiKeys(_req, res) {
36
- const platformsWithKeys = await this.gptPlatformApiKeysManager.getGptPlatformsWithKeys();
37
- const response = {};
38
- for (const platform of Object.values(FlowMetadata_1.Platform)) {
39
- response[platform] = platformsWithKeys.includes(platform);
40
- }
41
- res.json(response);
42
- }
43
- async setApiKey(req, res) {
44
- const body = req.body;
45
- const platformName = req.params.platform.toUpperCase();
46
- const platform = FlowMetadata_1.Platform[platformName];
47
- if (!platform) {
48
- throw new InvalidParamValueException_1.InvalidParamValueException('/api-keys/{platform}', platformName);
49
- }
50
- await this.gptPlatformApiKeysManager.setKey(platform, body.key);
51
- res.sendStatus(200);
52
- }
53
- async deleteApiKey(req, res) {
54
- const platformName = req.params.platform.toUpperCase();
55
- const platform = FlowMetadata_1.Platform[platformName];
56
- if (!platform) {
57
- throw new InvalidParamValueException_1.InvalidParamValueException('/api-keys/{platform}', platformName);
58
- }
59
- await this.gptPlatformApiKeysManager.deleteKey(platform);
60
- res.sendStatus(200);
61
- }
62
- }
63
- exports.KeysApi = KeysApi;
64
- //# sourceMappingURL=KeysApi.js.map