donobu 2.23.0 → 2.23.1

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 (277) hide show
  1. package/package.json +1 -1
  2. package/dist/apis/EnvironmentDataApi.d.ts +0 -26
  3. package/dist/apis/EnvironmentDataApi.d.ts.map +0 -1
  4. package/dist/apis/EnvironmentDataApi.js +0 -59
  5. package/dist/apis/EnvironmentDataApi.js.map +0 -1
  6. package/dist/assets/donobu-virtual-mouse.svg +0 -11
  7. package/dist/assets/donobu.css +0 -62
  8. package/dist/assets/generated/parameter-schemas.json +0 -2241
  9. package/dist/assets/record.umd.min.cjs +0 -10399
  10. package/dist/bindings/FocusPage.d.ts +0 -23
  11. package/dist/bindings/FocusPage.d.ts.map +0 -1
  12. package/dist/bindings/FocusPage.js +0 -20
  13. package/dist/bindings/FocusPage.js.map +0 -1
  14. package/dist/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  15. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  16. package/dist/bindings/ToggleDonobuAnnotations.js +0 -51
  17. package/dist/bindings/ToggleDonobuAnnotations.js.map +0 -1
  18. package/dist/esm/apis/EnvironmentDataApi.d.ts +0 -26
  19. package/dist/esm/apis/EnvironmentDataApi.d.ts.map +0 -1
  20. package/dist/esm/apis/EnvironmentDataApi.js +0 -59
  21. package/dist/esm/apis/EnvironmentDataApi.js.map +0 -1
  22. package/dist/esm/assets/donobu-virtual-mouse.svg +0 -11
  23. package/dist/esm/assets/donobu.css +0 -62
  24. package/dist/esm/assets/generated/parameter-schemas.json +0 -2241
  25. package/dist/esm/assets/record.umd.min.cjs +0 -10399
  26. package/dist/esm/bindings/FocusPage.d.ts +0 -23
  27. package/dist/esm/bindings/FocusPage.d.ts.map +0 -1
  28. package/dist/esm/bindings/FocusPage.js +0 -20
  29. package/dist/esm/bindings/FocusPage.js.map +0 -1
  30. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  31. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  32. package/dist/esm/bindings/ToggleDonobuAnnotations.js +0 -51
  33. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +0 -1
  34. package/dist/esm/lib/constants.d.ts +0 -8
  35. package/dist/esm/lib/constants.d.ts.map +0 -1
  36. package/dist/esm/lib/constants.js +0 -14
  37. package/dist/esm/lib/constants.js.map +0 -1
  38. package/dist/esm/lib/fixtures/testExtension.d.ts +0 -10
  39. package/dist/esm/lib/fixtures/testExtension.d.ts.map +0 -1
  40. package/dist/esm/lib/fixtures/testExtension.js +0 -383
  41. package/dist/esm/lib/fixtures/testExtension.js.map +0 -1
  42. package/dist/esm/lib/types.d.ts +0 -106
  43. package/dist/esm/lib/types.d.ts.map +0 -1
  44. package/dist/esm/lib/types.js +0 -3
  45. package/dist/esm/lib/types.js.map +0 -1
  46. package/dist/esm/managers/EnvironmentDataManager.d.ts +0 -58
  47. package/dist/esm/managers/EnvironmentDataManager.d.ts.map +0 -1
  48. package/dist/esm/managers/EnvironmentDataManager.js +0 -134
  49. package/dist/esm/managers/EnvironmentDataManager.js.map +0 -1
  50. package/dist/esm/managers/ProjectStructureGenerator.d.ts +0 -62
  51. package/dist/esm/managers/ProjectStructureGenerator.d.ts.map +0 -1
  52. package/dist/esm/managers/ProjectStructureGenerator.js +0 -234
  53. package/dist/esm/managers/ProjectStructureGenerator.js.map +0 -1
  54. package/dist/esm/managers/TestFileUpdater.d.ts +0 -56
  55. package/dist/esm/managers/TestFileUpdater.d.ts.map +0 -1
  56. package/dist/esm/managers/TestFileUpdater.js +0 -224
  57. package/dist/esm/managers/TestFileUpdater.js.map +0 -1
  58. package/dist/esm/models/AskAiRequest.d.ts +0 -15
  59. package/dist/esm/models/AskAiRequest.d.ts.map +0 -1
  60. package/dist/esm/models/AskAiRequest.js +0 -3
  61. package/dist/esm/models/AskAiRequest.js.map +0 -1
  62. package/dist/esm/models/BaseToolGptParameters.d.ts +0 -10
  63. package/dist/esm/models/BaseToolGptParameters.d.ts.map +0 -1
  64. package/dist/esm/models/BaseToolGptParameters.js +0 -3
  65. package/dist/esm/models/BaseToolGptParameters.js.map +0 -1
  66. package/dist/esm/models/BrowserFramework.d.ts +0 -61
  67. package/dist/esm/models/BrowserFramework.d.ts.map +0 -1
  68. package/dist/esm/models/BrowserFramework.js +0 -339
  69. package/dist/esm/models/BrowserFramework.js.map +0 -1
  70. package/dist/esm/models/EnvironmentDatum.d.ts +0 -54
  71. package/dist/esm/models/EnvironmentDatum.d.ts.map +0 -1
  72. package/dist/esm/models/EnvironmentDatum.js +0 -57
  73. package/dist/esm/models/EnvironmentDatum.js.map +0 -1
  74. package/dist/esm/models/FlowsQuery.d.ts +0 -12
  75. package/dist/esm/models/FlowsQuery.d.ts.map +0 -1
  76. package/dist/esm/models/FlowsQuery.js +0 -3
  77. package/dist/esm/models/FlowsQuery.js.map +0 -1
  78. package/dist/esm/persistence/AgentsPersistence.d.ts +0 -12
  79. package/dist/esm/persistence/AgentsPersistence.d.ts.map +0 -1
  80. package/dist/esm/persistence/AgentsPersistence.js +0 -3
  81. package/dist/esm/persistence/AgentsPersistence.js.map +0 -1
  82. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  83. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  84. package/dist/esm/persistence/AgentsPersistenceSqlite.js +0 -50
  85. package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +0 -1
  86. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  87. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  88. package/dist/esm/persistence/AgentsPersistenceVolatile.js +0 -26
  89. package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +0 -1
  90. package/dist/esm/persistence/FlowsPersistence.d.ts +0 -104
  91. package/dist/esm/persistence/FlowsPersistence.d.ts.map +0 -1
  92. package/dist/esm/persistence/FlowsPersistence.js +0 -3
  93. package/dist/esm/persistence/FlowsPersistence.js.map +0 -1
  94. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  95. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  96. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +0 -525
  97. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  98. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +0 -10
  99. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  100. package/dist/esm/persistence/FlowsPersistenceFactory.js +0 -3
  101. package/dist/esm/persistence/FlowsPersistenceFactory.js.map +0 -1
  102. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  103. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  104. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  105. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  106. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  107. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  108. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  109. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  110. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  111. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  112. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +0 -381
  113. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  114. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  115. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  116. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  117. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  118. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  119. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  120. package/dist/esm/persistence/FlowsPersistenceSqlite.js +0 -264
  121. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +0 -1
  122. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  123. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  124. package/dist/esm/persistence/FlowsPersistenceSupabase.js +0 -262
  125. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +0 -1
  126. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  127. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  128. package/dist/esm/persistence/FlowsPersistenceVolatile.js +0 -171
  129. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +0 -1
  130. package/dist/esm/persistence/GptConfigsPersistence.d.ts +0 -12
  131. package/dist/esm/persistence/GptConfigsPersistence.d.ts.map +0 -1
  132. package/dist/esm/persistence/GptConfigsPersistence.js +0 -3
  133. package/dist/esm/persistence/GptConfigsPersistence.js.map +0 -1
  134. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  135. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  136. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +0 -35
  137. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  138. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  139. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  140. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +0 -31
  141. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  142. package/dist/esm/playwrightTestExtensions.d.ts +0 -155
  143. package/dist/esm/playwrightTestExtensions.d.ts.map +0 -1
  144. package/dist/esm/playwrightTestExtensions.js +0 -688
  145. package/dist/esm/playwrightTestExtensions.js.map +0 -1
  146. package/dist/esm/utils/ToolsPluginsLoader.d.ts +0 -52
  147. package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +0 -1
  148. package/dist/esm/utils/ToolsPluginsLoader.js +0 -301
  149. package/dist/esm/utils/ToolsPluginsLoader.js.map +0 -1
  150. package/dist/lib/autoTest.d.ts +0 -2
  151. package/dist/lib/autoTest.d.ts.map +0 -1
  152. package/dist/lib/autoTest.js +0 -17
  153. package/dist/lib/autoTest.js.map +0 -1
  154. package/dist/lib/constants.d.ts +0 -8
  155. package/dist/lib/constants.d.ts.map +0 -1
  156. package/dist/lib/constants.js +0 -14
  157. package/dist/lib/constants.js.map +0 -1
  158. package/dist/lib/fixtures/testExtension.d.ts +0 -10
  159. package/dist/lib/fixtures/testExtension.d.ts.map +0 -1
  160. package/dist/lib/fixtures/testExtension.js +0 -383
  161. package/dist/lib/fixtures/testExtension.js.map +0 -1
  162. package/dist/lib/types.d.ts +0 -106
  163. package/dist/lib/types.d.ts.map +0 -1
  164. package/dist/lib/types.js +0 -3
  165. package/dist/lib/types.js.map +0 -1
  166. package/dist/managers/EnvironmentDataManager.d.ts +0 -58
  167. package/dist/managers/EnvironmentDataManager.d.ts.map +0 -1
  168. package/dist/managers/EnvironmentDataManager.js +0 -134
  169. package/dist/managers/EnvironmentDataManager.js.map +0 -1
  170. package/dist/managers/ProjectStructureGenerator.d.ts +0 -62
  171. package/dist/managers/ProjectStructureGenerator.d.ts.map +0 -1
  172. package/dist/managers/ProjectStructureGenerator.js +0 -234
  173. package/dist/managers/ProjectStructureGenerator.js.map +0 -1
  174. package/dist/managers/TestFileUpdater.d.ts +0 -56
  175. package/dist/managers/TestFileUpdater.d.ts.map +0 -1
  176. package/dist/managers/TestFileUpdater.js +0 -224
  177. package/dist/managers/TestFileUpdater.js.map +0 -1
  178. package/dist/models/AskAiRequest.d.ts +0 -15
  179. package/dist/models/AskAiRequest.d.ts.map +0 -1
  180. package/dist/models/AskAiRequest.js +0 -3
  181. package/dist/models/AskAiRequest.js.map +0 -1
  182. package/dist/models/BaseToolGptParameters.d.ts +0 -10
  183. package/dist/models/BaseToolGptParameters.d.ts.map +0 -1
  184. package/dist/models/BaseToolGptParameters.js +0 -3
  185. package/dist/models/BaseToolGptParameters.js.map +0 -1
  186. package/dist/models/BrowserFramework.d.ts +0 -51
  187. package/dist/models/BrowserFramework.d.ts.map +0 -1
  188. package/dist/models/BrowserFramework.js +0 -364
  189. package/dist/models/BrowserFramework.js.map +0 -1
  190. package/dist/models/EnvironmentDatum.d.ts +0 -54
  191. package/dist/models/EnvironmentDatum.d.ts.map +0 -1
  192. package/dist/models/EnvironmentDatum.js +0 -57
  193. package/dist/models/EnvironmentDatum.js.map +0 -1
  194. package/dist/models/FlowsQuery.d.ts +0 -12
  195. package/dist/models/FlowsQuery.d.ts.map +0 -1
  196. package/dist/models/FlowsQuery.js +0 -3
  197. package/dist/models/FlowsQuery.js.map +0 -1
  198. package/dist/persistence/AgentsPersistence.d.ts +0 -12
  199. package/dist/persistence/AgentsPersistence.d.ts.map +0 -1
  200. package/dist/persistence/AgentsPersistence.js +0 -3
  201. package/dist/persistence/AgentsPersistence.js.map +0 -1
  202. package/dist/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  203. package/dist/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  204. package/dist/persistence/AgentsPersistenceSqlite.js +0 -50
  205. package/dist/persistence/AgentsPersistenceSqlite.js.map +0 -1
  206. package/dist/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  207. package/dist/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  208. package/dist/persistence/AgentsPersistenceVolatile.js +0 -26
  209. package/dist/persistence/AgentsPersistenceVolatile.js.map +0 -1
  210. package/dist/persistence/FlowsPersistence.d.ts +0 -104
  211. package/dist/persistence/FlowsPersistence.d.ts.map +0 -1
  212. package/dist/persistence/FlowsPersistence.js +0 -3
  213. package/dist/persistence/FlowsPersistence.js.map +0 -1
  214. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  215. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  216. package/dist/persistence/FlowsPersistenceAwsS3.js +0 -525
  217. package/dist/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  218. package/dist/persistence/FlowsPersistenceFactory.d.ts +0 -10
  219. package/dist/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  220. package/dist/persistence/FlowsPersistenceFactory.js +0 -3
  221. package/dist/persistence/FlowsPersistenceFactory.js.map +0 -1
  222. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  223. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  224. package/dist/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  225. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  226. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  227. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  228. package/dist/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  229. package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  230. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  231. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  232. package/dist/persistence/FlowsPersistenceFilesystem.js +0 -381
  233. package/dist/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  234. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  235. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  236. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  237. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  238. package/dist/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  239. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  240. package/dist/persistence/FlowsPersistenceSqlite.js +0 -264
  241. package/dist/persistence/FlowsPersistenceSqlite.js.map +0 -1
  242. package/dist/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  243. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  244. package/dist/persistence/FlowsPersistenceSupabase.js +0 -262
  245. package/dist/persistence/FlowsPersistenceSupabase.js.map +0 -1
  246. package/dist/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  247. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  248. package/dist/persistence/FlowsPersistenceVolatile.js +0 -171
  249. package/dist/persistence/FlowsPersistenceVolatile.js.map +0 -1
  250. package/dist/persistence/GptConfigsPersistence.d.ts +0 -12
  251. package/dist/persistence/GptConfigsPersistence.d.ts.map +0 -1
  252. package/dist/persistence/GptConfigsPersistence.js +0 -3
  253. package/dist/persistence/GptConfigsPersistence.js.map +0 -1
  254. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  255. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  256. package/dist/persistence/GptConfigsPersistenceSqlite.js +0 -35
  257. package/dist/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  258. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  259. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  260. package/dist/persistence/GptConfigsPersistenceVolatile.js +0 -31
  261. package/dist/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  262. package/dist/playwrightTestExtensions.d.ts +0 -155
  263. package/dist/playwrightTestExtensions.d.ts.map +0 -1
  264. package/dist/playwrightTestExtensions.js +0 -688
  265. package/dist/playwrightTestExtensions.js.map +0 -1
  266. package/dist/tools/CreatePageObjectModel.d.ts +0 -16
  267. package/dist/tools/CreatePageObjectModel.d.ts.map +0 -1
  268. package/dist/tools/CreatePageObjectModel.js +0 -33
  269. package/dist/tools/CreatePageObjectModel.js.map +0 -1
  270. package/dist/utils/ToolsPluginsLoader.d.ts +0 -52
  271. package/dist/utils/ToolsPluginsLoader.d.ts.map +0 -1
  272. package/dist/utils/ToolsPluginsLoader.js +0 -301
  273. package/dist/utils/ToolsPluginsLoader.js.map +0 -1
  274. /package/dist/utils/{jsonSchemaUtils.d.ts → JsonSchemaUtils.d.ts} +0 -0
  275. /package/dist/utils/{jsonSchemaUtils.d.ts.map → JsonSchemaUtils.d.ts.map} +0 -0
  276. /package/dist/utils/{jsonSchemaUtils.js → JsonSchemaUtils.js} +0 -0
  277. /package/dist/utils/{jsonSchemaUtils.js.map → JsonSchemaUtils.js.map} +0 -0
@@ -1,264 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowsPersistenceSqlite = void 0;
4
- const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
5
- const JsonUtils_1 = require("../utils/JsonUtils");
6
- const MiscUtils_1 = require("../utils/MiscUtils");
7
- /**
8
- * A persistence implementation that uses SQLite for all data storage, including binary files.
9
- */
10
- class FlowsPersistenceSqlite {
11
- constructor(db) {
12
- this.db = db;
13
- }
14
- static async create(db) {
15
- return new FlowsPersistenceSqlite(db);
16
- }
17
- async setEnvironmentDatum(key, value) {
18
- if (!key) {
19
- throw new Error('Key cannot be empty');
20
- }
21
- const stmt = this.db.prepare('INSERT OR REPLACE INTO environment_data (name, value) VALUES (?, ?)');
22
- stmt.run(key, value);
23
- }
24
- async deleteEnvironmentDatum(key) {
25
- if (!key) {
26
- return; // No-op if key is empty
27
- }
28
- const stmt = this.db.prepare('DELETE FROM environment_data WHERE name = ?');
29
- stmt.run(key);
30
- }
31
- async getEnvironmentDatum(key) {
32
- if (!key) {
33
- return undefined;
34
- }
35
- const stmt = this.db.prepare('SELECT value FROM environment_data WHERE name = ?');
36
- const row = stmt.get(key);
37
- return row ? row.value : undefined;
38
- }
39
- /**
40
- * Get all environment data.
41
- */
42
- async getEnvironmentData() {
43
- const result = {};
44
- const stmt = this.db.prepare('SELECT name, value FROM environment_data');
45
- const rows = stmt.all();
46
- for (const row of rows) {
47
- result[row.name] = row.value;
48
- }
49
- return result;
50
- }
51
- async setMetadata(flowMetadata) {
52
- // Check if the flow already exists.
53
- const existingFlowStmt = this.db.prepare('SELECT id FROM flow_metadata WHERE id = ?');
54
- const existingFlow = existingFlowStmt.get(flowMetadata.id);
55
- // Start a transaction for data consistency.
56
- const transaction = this.db.transaction(() => {
57
- if (existingFlow) {
58
- // If flow exists, use UPDATE instead of REPLACE to avoid triggering ON DELETE CASCADE.
59
- const updateStmt = this.db.prepare('UPDATE flow_metadata SET name = ?, metadata = ?, created_at = ?, run_mode = ?, state = ? WHERE id = ?');
60
- updateStmt.run(flowMetadata.name, JSON.stringify(flowMetadata), flowMetadata.startedAt || new Date().getTime(), flowMetadata.runMode, flowMetadata.state, flowMetadata.id);
61
- }
62
- else {
63
- // If it is a new flow, use INSERT.
64
- const insertStmt = this.db.prepare('INSERT INTO flow_metadata (id, name, metadata, created_at, run_mode, state) VALUES (?, ?, ?, ?, ?, ?)');
65
- insertStmt.run(flowMetadata.id, flowMetadata.name, JSON.stringify(flowMetadata), flowMetadata.startedAt || new Date().getTime(), flowMetadata.runMode, flowMetadata.state);
66
- }
67
- });
68
- transaction();
69
- }
70
- async getMetadataByFlowId(flowId) {
71
- const stmt = this.db.prepare('SELECT metadata FROM flow_metadata WHERE id = ?');
72
- const row = stmt.get(flowId);
73
- if (!row) {
74
- throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
75
- }
76
- return JSON.parse(row.metadata);
77
- }
78
- async getMetadataByFlowName(flowName) {
79
- const stmt = this.db.prepare('SELECT metadata FROM flow_metadata WHERE name = ? LIMIT 1');
80
- const row = stmt.get(flowName);
81
- if (!row) {
82
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
83
- }
84
- return JSON.parse(row.metadata);
85
- }
86
- async saveScreenShot(flowId, bytes) {
87
- // Ensure flow exists.
88
- await this.getMetadataByFlowId(flowId);
89
- const imageType = MiscUtils_1.MiscUtils.detectImageType(bytes);
90
- const mimeType = `image/${imageType}`;
91
- // Generate a unique filename.
92
- const fileId = `${new Date().toISOString()}.screenshot.${imageType}`;
93
- const binaryId = `${flowId}-${fileId}`;
94
- const stmt = this.db.prepare('INSERT INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
95
- stmt.run(binaryId, flowId, fileId, mimeType, bytes);
96
- return fileId;
97
- }
98
- async getScreenShot(flowId, screenShotId) {
99
- const stmt = this.db.prepare('SELECT mime_type, content FROM binary_files WHERE flow_id = ? AND file_id = ?');
100
- const row = stmt.get(flowId, screenShotId);
101
- if (row && row.mime_type.startsWith('image')) {
102
- return row.content;
103
- }
104
- else {
105
- return null;
106
- }
107
- }
108
- async saveToolCall(flowId, toolCall) {
109
- const stmt = this.db.prepare('INSERT OR REPLACE INTO tool_calls (id, flow_id, created_at, tool_call) VALUES (?, ?, ?, ?)');
110
- stmt.run(toolCall.id, flowId, toolCall.startedAt, JSON.stringify(toolCall));
111
- }
112
- async getToolCalls(flowId) {
113
- // Check if flow exists
114
- await this.getMetadataByFlowId(flowId);
115
- const stmt = this.db.prepare('SELECT tool_call FROM tool_calls WHERE flow_id = ? ORDER BY created_at');
116
- const rows = stmt.all(flowId);
117
- return rows.map((row) => JSON.parse(row.tool_call));
118
- }
119
- async getFlows(query) {
120
- // Sanitize inputs
121
- const validLimit = Math.max(1, Math.min(100, query.limit || 100));
122
- const offset = query.pageToken ? parseInt(query.pageToken, 10) || 0 : 0;
123
- // Build the WHERE clause dynamically based on query parameters
124
- let whereConditions = [];
125
- let params = [];
126
- if (query.name) {
127
- whereConditions.push('name = ?');
128
- params.push(query.name);
129
- }
130
- if (query.runMode) {
131
- whereConditions.push('run_mode = ?');
132
- params.push(query.runMode);
133
- }
134
- if (query.state) {
135
- whereConditions.push('state = ?');
136
- params.push(query.state);
137
- }
138
- // Add startedAfter condition if provided
139
- if (query.startedAfter !== undefined) {
140
- whereConditions.push('created_at >= ?');
141
- params.push(query.startedAfter);
142
- }
143
- // Add startedBefore condition if provided
144
- if (query.startedBefore !== undefined) {
145
- whereConditions.push('created_at <= ?');
146
- params.push(query.startedBefore);
147
- }
148
- // Build the full SQL query
149
- let sql = 'SELECT metadata FROM flow_metadata';
150
- if (whereConditions.length > 0) {
151
- sql += ' WHERE ' + whereConditions.join(' AND ');
152
- }
153
- // Always order by created_at descending
154
- sql += ' ORDER BY created_at DESC LIMIT ? OFFSET ?';
155
- // Add limit and offset to params
156
- params.push(validLimit + 1);
157
- params.push(offset);
158
- // Execute the query with parameters
159
- const stmt = this.db.prepare(sql);
160
- const rows = stmt.all(...params);
161
- // Check if there are more results by fetching one extra
162
- const hasMore = rows.length > validLimit;
163
- const results = hasMore ? rows.slice(0, validLimit) : rows;
164
- // Generate next token if needed
165
- const nextPageToken = hasMore ? `${offset + validLimit}` : undefined;
166
- return {
167
- items: results.map((row) => JSON.parse(row.metadata)),
168
- nextPageToken,
169
- };
170
- }
171
- async setVideo(flowId, bytes) {
172
- // Ensure flow exists.
173
- await this.getMetadataByFlowId(flowId);
174
- const binaryId = `${flowId}-${FlowsPersistenceSqlite.VIDEO_FILE_ID}`;
175
- const stmt = this.db.prepare('INSERT OR REPLACE INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
176
- stmt.run(binaryId, flowId, FlowsPersistenceSqlite.VIDEO_FILE_ID, FlowsPersistenceSqlite.VIDEO_MIME_TYPE, bytes);
177
- }
178
- async getVideoSegment(flowId, startOffset, length) {
179
- const stmt = this.db.prepare('SELECT content FROM binary_files WHERE flow_id = ? AND file_id = ?');
180
- const row = stmt.get(flowId, FlowsPersistenceSqlite.VIDEO_FILE_ID);
181
- if (!row) {
182
- return null;
183
- }
184
- const videoBuffer = row.content;
185
- const totalLength = videoBuffer.length;
186
- if (startOffset >= totalLength) {
187
- return null;
188
- }
189
- const adjustedLength = Math.min(length, totalLength - startOffset);
190
- const segmentBuffer = Buffer.alloc(adjustedLength);
191
- // Copy the segment from the full video buffer.
192
- videoBuffer.copy(segmentBuffer, 0, startOffset, startOffset + adjustedLength);
193
- return {
194
- bytes: segmentBuffer,
195
- totalLength: totalLength,
196
- startOffset: startOffset,
197
- };
198
- }
199
- async getFlowFile(flowId, fileId) {
200
- const stmt = this.db.prepare('SELECT content FROM binary_files WHERE flow_id = ? AND file_id = ?');
201
- const row = stmt.get(flowId, fileId);
202
- return row ? row.content : null;
203
- }
204
- async setFlowFile(flowId, fileId, fileBytes) {
205
- // Ensure flow exists
206
- await this.getMetadataByFlowId(flowId);
207
- const binaryId = `${flowId}-${fileId}`;
208
- const mimeType = this.getMimeTypeFromFileId(fileId);
209
- const stmt = this.db.prepare('INSERT OR REPLACE INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
210
- stmt.run(binaryId, flowId, fileId, mimeType, fileBytes);
211
- }
212
- async setBrowserState(flowId, browserState) {
213
- const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
214
- await this.setFlowFile(flowId, FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID, serializedBrowserState);
215
- }
216
- async getBrowserState(flowId) {
217
- const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID);
218
- if (browserStateRaw) {
219
- const browserState = JsonUtils_1.JsonUtils.jsonStringToJsonObject(browserStateRaw.toString('utf-8'));
220
- if (browserState) {
221
- return browserState;
222
- }
223
- else {
224
- throw new Error(`Cannot load malformed browser state from flow ${flowId}`);
225
- }
226
- }
227
- else {
228
- return null;
229
- }
230
- }
231
- async deleteFlow(flowId) {
232
- // Delete from database with cascading delete to related tables
233
- const stmt = this.db.prepare('DELETE FROM flow_metadata WHERE id = ?');
234
- stmt.run(flowId);
235
- }
236
- // Database management
237
- close() {
238
- this.db.close();
239
- }
240
- // Utility functions
241
- getMimeTypeFromFileId(fileId) {
242
- if (fileId.endsWith('.png'))
243
- return 'image/png';
244
- if (fileId.endsWith('.jpg') || fileId.endsWith('.jpeg'))
245
- return 'image/jpeg';
246
- if (fileId.endsWith('.webm'))
247
- return 'video/webm';
248
- if (fileId.endsWith('.mp4'))
249
- return 'video/mp4';
250
- if (fileId.endsWith('.json'))
251
- return 'application/json';
252
- return 'application/octet-stream';
253
- }
254
- // Adds possibility to vacuum/optimize the database
255
- async optimize() {
256
- this.db.pragma('vacuum');
257
- this.db.pragma('optimize');
258
- }
259
- }
260
- exports.FlowsPersistenceSqlite = FlowsPersistenceSqlite;
261
- FlowsPersistenceSqlite.VIDEO_MIME_TYPE = 'video/webm';
262
- FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID = 'browserstate.json';
263
- FlowsPersistenceSqlite.VIDEO_FILE_ID = 'video.webm';
264
- //# sourceMappingURL=FlowsPersistenceSqlite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceSqlite.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSqlite.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
2
- import { ToolCall } from '../models/ToolCall';
3
- import { VideoSegment } from '../models/VideoSegment';
4
- import { FlowsPersistence } from './FlowsPersistence';
5
- import { SupabaseClient } from '../clients/SupabaseClient';
6
- import { BrowserStorageState } from '../models/BrowserStorageState';
7
- import { PaginatedResult } from '../models/PaginatedResult';
8
- /**
9
- * A persistence implementation that uses Supabase for storage via
10
- * its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
11
- * enforced by Supabase.
12
- */
13
- export declare class FlowsPersistenceSupabase implements FlowsPersistence {
14
- private readonly supabaseHttpClient;
15
- private static readonly ENVIRONMENT_DATA_TABLE;
16
- private static readonly FLOW_METADATA_TABLE;
17
- private static readonly BROWSER_STATE_FILENAME;
18
- private static readonly TOOL_CALLS_TABLE;
19
- private static readonly FLOW_FILES_TABLE;
20
- constructor(supabaseHttpClient: SupabaseClient);
21
- setEnvironmentDatum(key: string, value: string): Promise<void>;
22
- deleteEnvironmentDatum(key: string): Promise<void>;
23
- getEnvironmentDatum(key: string): Promise<string | undefined>;
24
- getEnvironmentData(): Promise<Record<string, string>>;
25
- setMetadata(flowMetadata: FlowMetadata): Promise<void>;
26
- getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
27
- /**
28
- * Get flow metadata by name using the indexed name column
29
- */
30
- getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
31
- saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
32
- getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
33
- saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
34
- getToolCalls(flowId: string): Promise<ToolCall[]>;
35
- getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
36
- setVideo(flowId: string, bytes: Buffer): Promise<void>;
37
- getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
38
- getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
39
- setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
40
- setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
41
- getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
42
- deleteFlow(flowId: string): Promise<void>;
43
- }
44
- //# sourceMappingURL=FlowsPersistenceSupabase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceSupabase.d.ts","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSupabase.ts"],"names":[],"mappings":"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"}
@@ -1,262 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowsPersistenceSupabase = void 0;
4
- const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
5
- const JsonUtils_1 = require("../utils/JsonUtils");
6
- const MiscUtils_1 = require("../utils/MiscUtils");
7
- /**
8
- * A persistence implementation that uses Supabase for storage via
9
- * its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
10
- * enforced by Supabase.
11
- */
12
- class FlowsPersistenceSupabase {
13
- constructor(supabaseHttpClient) {
14
- this.supabaseHttpClient = supabaseHttpClient;
15
- }
16
- async setEnvironmentDatum(key, value) {
17
- if (!key) {
18
- throw new Error('Key cannot be empty');
19
- }
20
- const root = {
21
- name: key,
22
- value: value,
23
- };
24
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?on_conflict=name`, 'POST', JSON.stringify(root));
25
- }
26
- async deleteEnvironmentDatum(key) {
27
- if (!key) {
28
- return; // No-op if key is empty
29
- }
30
- const encodedKey = encodeURIComponent(key);
31
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?name=eq.${encodedKey}`, 'DELETE');
32
- }
33
- async getEnvironmentDatum(key) {
34
- if (!key) {
35
- return undefined;
36
- }
37
- const encodedKey = encodeURIComponent(key);
38
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?name=eq.${encodedKey}&select=value`);
39
- if (!response) {
40
- return undefined;
41
- }
42
- const records = JSON.parse(response);
43
- if (records.length === 0) {
44
- return undefined;
45
- }
46
- return records[0].value;
47
- }
48
- async getEnvironmentData() {
49
- const result = {};
50
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?select=name,value`);
51
- if (!response) {
52
- return result;
53
- }
54
- const records = JSON.parse(response);
55
- for (const record of records) {
56
- result[record.name] = record.value;
57
- }
58
- return result;
59
- }
60
- async setMetadata(flowMetadata) {
61
- const startedAtEpochMs = flowMetadata.startedAt || new Date().getTime();
62
- const root = {
63
- id: flowMetadata.id,
64
- startedat: startedAtEpochMs,
65
- runmode: flowMetadata.runMode,
66
- state: flowMetadata.state,
67
- name: flowMetadata.name,
68
- jsonrecord: flowMetadata,
69
- };
70
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?on_conflict=id`, 'POST', JSON.stringify(root));
71
- }
72
- async getMetadataByFlowId(flowId) {
73
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?id=eq.${flowId}`);
74
- if (!response) {
75
- throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
76
- }
77
- const records = JSON.parse(response);
78
- if (records.length === 0) {
79
- throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
80
- }
81
- return records[0].jsonrecord;
82
- }
83
- /**
84
- * Get flow metadata by name using the indexed name column
85
- */
86
- async getMetadataByFlowName(flowName) {
87
- if (!flowName) {
88
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
89
- }
90
- // Use the indexed name column for direct lookup.
91
- const encodedName = encodeURIComponent(flowName);
92
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?name=eq.${encodedName}`);
93
- if (!response) {
94
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
95
- }
96
- const records = JSON.parse(response);
97
- if (records.length === 0) {
98
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
99
- }
100
- return records[0].jsonrecord;
101
- }
102
- async saveScreenShot(flowId, bytes) {
103
- const imageType = MiscUtils_1.MiscUtils.detectImageType(bytes);
104
- const fileId = `${new Date().toISOString()}.screenshot.${imageType}`;
105
- await this.setFlowFile(flowId, fileId, bytes);
106
- return fileId;
107
- }
108
- async getScreenShot(flowId, screenShotId) {
109
- return this.getFlowFile(flowId, screenShotId);
110
- }
111
- async saveToolCall(flowId, toolCall) {
112
- const root = {
113
- id: toolCall.id,
114
- flowid: flowId,
115
- startedat: toolCall.startedAt,
116
- jsonrecord: toolCall,
117
- };
118
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}`, 'POST', JSON.stringify(root));
119
- }
120
- async getToolCalls(flowId) {
121
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}?flowid=eq.${flowId}`);
122
- if (!response) {
123
- await this.getMetadataByFlowId(flowId); // Verify flow exists
124
- return [];
125
- }
126
- const records = JSON.parse(response);
127
- const toolCalls = records
128
- .map((record) => record.jsonrecord)
129
- .sort((a, b) => a.startedAt - b.startedAt);
130
- return toolCalls;
131
- }
132
- async getFlows(query) {
133
- const { limit = 20, pageToken, name, runMode, state, startedAfter, startedBefore, } = query || {};
134
- // Validate and sanitize inputs.
135
- const validLimit = Math.min(Math.max(1, limit), 100);
136
- // Create query parameters
137
- const queryParams = new URLSearchParams();
138
- // Set ordering by most recent first.
139
- queryParams.append('order', 'startedat.desc');
140
- // Set pagination limit.
141
- queryParams.append('limit', validLimit.toString());
142
- // Apply offset from page token if available.
143
- if (pageToken) {
144
- queryParams.append('offset', pageToken);
145
- }
146
- // Add filters for each query parameter
147
- if (name) {
148
- queryParams.append('name', `eq.${encodeURIComponent(name)}`);
149
- }
150
- if (runMode) {
151
- queryParams.append('runmode', `eq.${encodeURIComponent(runMode)}`);
152
- }
153
- if (state) {
154
- queryParams.append('state', `eq.${encodeURIComponent(state)}`);
155
- }
156
- if (startedAfter !== undefined && startedBefore !== undefined) {
157
- // Range query with both boundaries.
158
- queryParams.append('startedat', `gte.${startedAfter},lte.${startedBefore}`);
159
- }
160
- else if (startedAfter !== undefined) {
161
- // Only lower boundary.
162
- queryParams.append('startedat', `gte.${startedAfter}`);
163
- }
164
- else if (startedBefore !== undefined) {
165
- // Only upper boundary.
166
- queryParams.append('startedat', `lte.${startedBefore}`);
167
- }
168
- // Build the URL with all parameters
169
- const url = `rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?${queryParams.toString()}`;
170
- // Include the total count in headers.
171
- const response = await this.supabaseHttpClient.executeGet(url, {
172
- Prefer: 'count=exact',
173
- });
174
- if (!response) {
175
- return { items: [] };
176
- }
177
- // Parse the response.
178
- const records = JSON.parse(response);
179
- const flows = records.map((record) => record.jsonrecord);
180
- // Check if we have more results.
181
- const hasMore = flows.length === validLimit;
182
- // Calculate next page token (offset).
183
- const nextOffset = pageToken
184
- ? parseInt(pageToken, 10) + validLimit
185
- : validLimit;
186
- return {
187
- items: flows,
188
- nextPageToken: hasMore ? nextOffset.toString() : undefined,
189
- };
190
- }
191
- async setVideo(flowId, bytes) {
192
- await this.setFlowFile(flowId, 'video.webm', bytes);
193
- }
194
- async getVideoSegment(flowId, startOffset, length) {
195
- const video = await this.getFlowFile(flowId, 'video.webm');
196
- if (!video) {
197
- return null;
198
- }
199
- const totalLength = video.length;
200
- const adjustedLength = Math.min(length, totalLength - startOffset);
201
- if (adjustedLength <= 0) {
202
- return null;
203
- }
204
- const segment = video.subarray(startOffset, startOffset + adjustedLength);
205
- return {
206
- bytes: segment,
207
- totalLength: totalLength,
208
- startOffset: startOffset,
209
- };
210
- }
211
- async getFlowFile(flowId, fileId) {
212
- const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?flowid=eq.${flowId}&id=eq.${encodeURIComponent(fileId)}&select=data`);
213
- if (!response) {
214
- await this.getMetadataByFlowId(flowId); // Verify flow exists
215
- return null;
216
- }
217
- const records = JSON.parse(response);
218
- if (records.length === 0) {
219
- return null;
220
- }
221
- return Buffer.from(records[0].data, 'base64');
222
- }
223
- async setFlowFile(flowId, fileId, fileBytes) {
224
- const root = {
225
- id: fileId,
226
- flowid: flowId,
227
- data: fileBytes.toString('base64'),
228
- };
229
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?on_conflict=id`, 'POST', JSON.stringify(root));
230
- }
231
- async setBrowserState(flowId, browserState) {
232
- const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
233
- await this.setFlowFile(flowId, FlowsPersistenceSupabase.BROWSER_STATE_FILENAME, serializedBrowserState);
234
- }
235
- async getBrowserState(flowId) {
236
- const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceSupabase.BROWSER_STATE_FILENAME);
237
- if (browserStateRaw) {
238
- const browserState = JsonUtils_1.JsonUtils.jsonStringToJsonObject(browserStateRaw.toString('utf-8'));
239
- if (browserState) {
240
- return browserState;
241
- }
242
- else {
243
- throw new Error(`Cannot load malformed browser state from flow ${flowId}`);
244
- }
245
- }
246
- else {
247
- return null;
248
- }
249
- }
250
- async deleteFlow(flowId) {
251
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}?flowid=eq.${flowId}`, 'DELETE');
252
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?flowid=eq.${flowId}`, 'DELETE');
253
- await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?id=eq.${flowId}`, 'DELETE');
254
- }
255
- }
256
- exports.FlowsPersistenceSupabase = FlowsPersistenceSupabase;
257
- FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE = 'environment_data_v1';
258
- FlowsPersistenceSupabase.FLOW_METADATA_TABLE = 'flowmetadatav1';
259
- FlowsPersistenceSupabase.BROWSER_STATE_FILENAME = 'browserstate.json';
260
- FlowsPersistenceSupabase.TOOL_CALLS_TABLE = 'toolcallsv1';
261
- FlowsPersistenceSupabase.FLOW_FILES_TABLE = 'flowfilesv1';
262
- //# sourceMappingURL=FlowsPersistenceSupabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceSupabase.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSupabase.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
2
- import { ToolCall } from '../models/ToolCall';
3
- import { VideoSegment } from '../models/VideoSegment';
4
- import { FlowsPersistence } from './FlowsPersistence';
5
- import { BrowserStorageState } from '../models/BrowserStorageState';
6
- import { PaginatedResult } from '../models/PaginatedResult';
7
- /**
8
- * A volatile (in-memory) implementation of FlowsPersistence.
9
- */
10
- export declare class FlowsPersistenceVolatile implements FlowsPersistence {
11
- private readonly environmentData;
12
- private readonly flows;
13
- private readonly screenshots;
14
- private readonly toolCalls;
15
- private readonly videos;
16
- private readonly files;
17
- private readonly browserStates;
18
- setEnvironmentDatum(key: string, value: string): Promise<void>;
19
- deleteEnvironmentDatum(key: string): Promise<void>;
20
- getEnvironmentDatum(key: string): Promise<string | undefined>;
21
- getEnvironmentData(): Promise<Record<string, string>>;
22
- setMetadata(flowMetadata: FlowMetadata): Promise<void>;
23
- getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
24
- getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
25
- saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
26
- getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
27
- saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
28
- getToolCalls(flowId: string): Promise<ToolCall[]>;
29
- /**
30
- * Get flows with pagination and filtering from in-memory storage.
31
- */
32
- getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
33
- setVideo(flowId: string, bytes: Buffer): Promise<void>;
34
- getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
35
- getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
36
- setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
37
- setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
38
- getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
39
- deleteFlow(flowId: string): Promise<void>;
40
- }
41
- //# sourceMappingURL=FlowsPersistenceVolatile.d.ts.map