donobu 3.19.3 → 3.20.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 (161) hide show
  1. package/dist/apis/ToolsApi.d.ts.map +1 -1
  2. package/dist/apis/ToolsApi.js +0 -4
  3. package/dist/apis/ToolsApi.js.map +1 -1
  4. package/dist/cli/install-donobu-plugin.js +1 -1
  5. package/dist/cli/install-donobu-plugin.js.map +1 -1
  6. package/dist/envVars.d.ts +2 -8
  7. package/dist/envVars.d.ts.map +1 -1
  8. package/dist/envVars.js +5 -5
  9. package/dist/envVars.js.map +1 -1
  10. package/dist/esm/apis/ToolsApi.d.ts.map +1 -1
  11. package/dist/esm/apis/ToolsApi.js +0 -4
  12. package/dist/esm/apis/ToolsApi.js.map +1 -1
  13. package/dist/esm/cli/install-donobu-plugin.js +1 -1
  14. package/dist/esm/cli/install-donobu-plugin.js.map +1 -1
  15. package/dist/esm/envVars.d.ts +2 -8
  16. package/dist/esm/envVars.d.ts.map +1 -1
  17. package/dist/esm/envVars.js +5 -5
  18. package/dist/esm/envVars.js.map +1 -1
  19. package/dist/esm/lib/page/extendPage.d.ts.map +1 -1
  20. package/dist/esm/lib/page/extendPage.js +2 -2
  21. package/dist/esm/lib/page/extendPage.js.map +1 -1
  22. package/dist/esm/lib/test/testExtension.js +2 -2
  23. package/dist/esm/lib/test/testExtension.js.map +1 -1
  24. package/dist/esm/lib/test/utils/donobuTestStack.d.ts.map +1 -1
  25. package/dist/esm/lib/test/utils/donobuTestStack.js +1 -1
  26. package/dist/esm/lib/test/utils/donobuTestStack.js.map +1 -1
  27. package/dist/esm/lib/test/utils/selfHealing.d.ts.map +1 -1
  28. package/dist/esm/lib/test/utils/selfHealing.js +0 -2
  29. package/dist/esm/lib/test/utils/selfHealing.js.map +1 -1
  30. package/dist/esm/main.d.ts +9 -1
  31. package/dist/esm/main.d.ts.map +1 -1
  32. package/dist/esm/main.js +14 -4
  33. package/dist/esm/main.js.map +1 -1
  34. package/dist/esm/managers/AdminApiController.d.ts +1 -1
  35. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  36. package/dist/esm/managers/AdminApiController.js.map +1 -1
  37. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  38. package/dist/esm/managers/DonobuFlowsManager.js +2 -2
  39. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  40. package/dist/esm/managers/DonobuStack.d.ts +2 -16
  41. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  42. package/dist/esm/managers/DonobuStack.js +1 -1
  43. package/dist/esm/managers/DonobuStack.js.map +1 -1
  44. package/dist/esm/managers/PluginLoader.d.ts +9 -4
  45. package/dist/esm/managers/PluginLoader.d.ts.map +1 -1
  46. package/dist/esm/managers/PluginLoader.js +24 -9
  47. package/dist/esm/managers/PluginLoader.js.map +1 -1
  48. package/dist/esm/managers/ToolManager.d.ts +5 -0
  49. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  50. package/dist/esm/managers/ToolManager.js +9 -5
  51. package/dist/esm/managers/ToolManager.js.map +1 -1
  52. package/dist/esm/persistence/PersistencePlugin.d.ts +29 -0
  53. package/dist/esm/persistence/PersistencePlugin.d.ts.map +1 -0
  54. package/dist/esm/persistence/PersistencePlugin.js +21 -0
  55. package/dist/esm/persistence/PersistencePlugin.js.map +1 -0
  56. package/dist/esm/persistence/env/EnvPersistenceRegistry.d.ts +1 -1
  57. package/dist/esm/persistence/env/EnvPersistenceRegistry.d.ts.map +1 -1
  58. package/dist/esm/persistence/env/EnvPersistenceRegistry.js +11 -15
  59. package/dist/esm/persistence/env/EnvPersistenceRegistry.js.map +1 -1
  60. package/dist/esm/persistence/flows/FlowsPersistenceRegistry.d.ts +1 -1
  61. package/dist/esm/persistence/flows/FlowsPersistenceRegistry.d.ts.map +1 -1
  62. package/dist/esm/persistence/flows/FlowsPersistenceRegistry.js +11 -15
  63. package/dist/esm/persistence/flows/FlowsPersistenceRegistry.js.map +1 -1
  64. package/dist/esm/utils/MiscUtils.js +2 -2
  65. package/dist/esm/utils/MiscUtils.js.map +1 -1
  66. package/dist/lib/page/extendPage.d.ts.map +1 -1
  67. package/dist/lib/page/extendPage.js +2 -2
  68. package/dist/lib/page/extendPage.js.map +1 -1
  69. package/dist/lib/test/testExtension.js +2 -2
  70. package/dist/lib/test/testExtension.js.map +1 -1
  71. package/dist/lib/test/utils/donobuTestStack.d.ts.map +1 -1
  72. package/dist/lib/test/utils/donobuTestStack.js +1 -1
  73. package/dist/lib/test/utils/donobuTestStack.js.map +1 -1
  74. package/dist/lib/test/utils/selfHealing.d.ts.map +1 -1
  75. package/dist/lib/test/utils/selfHealing.js +0 -2
  76. package/dist/lib/test/utils/selfHealing.js.map +1 -1
  77. package/dist/main.d.ts +9 -1
  78. package/dist/main.d.ts.map +1 -1
  79. package/dist/main.js +14 -4
  80. package/dist/main.js.map +1 -1
  81. package/dist/managers/AdminApiController.d.ts +1 -1
  82. package/dist/managers/AdminApiController.d.ts.map +1 -1
  83. package/dist/managers/AdminApiController.js.map +1 -1
  84. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  85. package/dist/managers/DonobuFlowsManager.js +2 -2
  86. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  87. package/dist/managers/DonobuStack.d.ts +2 -16
  88. package/dist/managers/DonobuStack.d.ts.map +1 -1
  89. package/dist/managers/DonobuStack.js +1 -1
  90. package/dist/managers/DonobuStack.js.map +1 -1
  91. package/dist/managers/PluginLoader.d.ts +9 -4
  92. package/dist/managers/PluginLoader.d.ts.map +1 -1
  93. package/dist/managers/PluginLoader.js +24 -9
  94. package/dist/managers/PluginLoader.js.map +1 -1
  95. package/dist/managers/ToolManager.d.ts +5 -0
  96. package/dist/managers/ToolManager.d.ts.map +1 -1
  97. package/dist/managers/ToolManager.js +9 -5
  98. package/dist/managers/ToolManager.js.map +1 -1
  99. package/dist/persistence/PersistencePlugin.d.ts +29 -0
  100. package/dist/persistence/PersistencePlugin.d.ts.map +1 -0
  101. package/dist/persistence/PersistencePlugin.js +21 -0
  102. package/dist/persistence/PersistencePlugin.js.map +1 -0
  103. package/dist/persistence/env/EnvPersistenceRegistry.d.ts +1 -1
  104. package/dist/persistence/env/EnvPersistenceRegistry.d.ts.map +1 -1
  105. package/dist/persistence/env/EnvPersistenceRegistry.js +11 -15
  106. package/dist/persistence/env/EnvPersistenceRegistry.js.map +1 -1
  107. package/dist/persistence/flows/FlowsPersistenceRegistry.d.ts +1 -1
  108. package/dist/persistence/flows/FlowsPersistenceRegistry.d.ts.map +1 -1
  109. package/dist/persistence/flows/FlowsPersistenceRegistry.js +11 -15
  110. package/dist/persistence/flows/FlowsPersistenceRegistry.js.map +1 -1
  111. package/dist/utils/MiscUtils.js +2 -2
  112. package/dist/utils/MiscUtils.js.map +1 -1
  113. package/package.json +2 -7
  114. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts +0 -31
  115. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts.map +0 -1
  116. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js +0 -117
  117. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js.map +0 -1
  118. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +0 -30
  119. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +0 -1
  120. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js +0 -131
  121. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +0 -1
  122. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +0 -71
  123. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +0 -1
  124. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +0 -487
  125. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +0 -1
  126. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +0 -71
  127. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  128. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +0 -444
  129. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  130. package/dist/esm/tools/SolveCaptcha.d.ts +0 -19
  131. package/dist/esm/tools/SolveCaptcha.d.ts.map +0 -1
  132. package/dist/esm/tools/SolveCaptcha.js +0 -36
  133. package/dist/esm/tools/SolveCaptcha.js.map +0 -1
  134. package/dist/esm/tools/SolveMfaChallenge.d.ts +0 -45
  135. package/dist/esm/tools/SolveMfaChallenge.d.ts.map +0 -1
  136. package/dist/esm/tools/SolveMfaChallenge.js +0 -214
  137. package/dist/esm/tools/SolveMfaChallenge.js.map +0 -1
  138. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts +0 -31
  139. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts.map +0 -1
  140. package/dist/persistence/env/EnvPersistenceAwsS3.js +0 -117
  141. package/dist/persistence/env/EnvPersistenceAwsS3.js.map +0 -1
  142. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +0 -30
  143. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +0 -1
  144. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js +0 -131
  145. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +0 -1
  146. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +0 -71
  147. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +0 -1
  148. package/dist/persistence/flows/FlowsPersistenceAwsS3.js +0 -487
  149. package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +0 -1
  150. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +0 -71
  151. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  152. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +0 -444
  153. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  154. package/dist/tools/SolveCaptcha.d.ts +0 -19
  155. package/dist/tools/SolveCaptcha.d.ts.map +0 -1
  156. package/dist/tools/SolveCaptcha.js +0 -36
  157. package/dist/tools/SolveCaptcha.js.map +0 -1
  158. package/dist/tools/SolveMfaChallenge.d.ts +0 -45
  159. package/dist/tools/SolveMfaChallenge.d.ts.map +0 -1
  160. package/dist/tools/SolveMfaChallenge.js +0 -214
  161. package/dist/tools/SolveMfaChallenge.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceGoogleCloudStorage.d.ts","sourceRoot":"","sources":["../../../../src/persistence/flows/FlowsPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;;;GAUG;AACH,qBAAa,kCAAmC,YAAW,gBAAgB;IAqDrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IApD3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CACxB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAuB;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAqB;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAEtD;;;OAGG;mBACkB,wBAAwB;WAezB,MAAM,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kCAAkC,CAAC;IAqB9C,OAAO;IAEM,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAW1D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6B9D,gBAAgB,CAC3B,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IA4J5B,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS9D,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIZ,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBjD,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAgCH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkClB,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAaZ,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAKV,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC;IAYV,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAe7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAwDxC,YAAY;YAYZ,WAAW;YAYX,cAAc;IAY5B;;OAEG;YACW,eAAe;IAQ7B;;OAEG;YACW,kBAAkB;IAQhC;;OAEG;YACW,gBAAgB;IAK9B;;OAEG;YACW,uBAAuB;CAQtC"}
@@ -1,444 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowsPersistenceGoogleCloudStorage = void 0;
4
- const FlowNotFoundException_1 = require("../../exceptions/FlowNotFoundException");
5
- const BrowserStorageState_1 = require("../../models/BrowserStorageState");
6
- const Logger_1 = require("../../utils/Logger");
7
- const MiscUtils_1 = require("../../utils/MiscUtils");
8
- /**
9
- * A persistence implementation that uses Google Cloud Storage.
10
- *
11
- * If you are running locally, be sure to have the Google Cloud CLI installed
12
- * so that you can authenticate using `gcloud auth application-default login`
13
- * before running Donobu.
14
- *
15
- * If Donobu is being run in the Google cloud, be sure that the service account
16
- * in which it is being run has permissions to read and write the Google Cloud
17
- * Storage bucket specified as a constructor argument.
18
- */
19
- class FlowsPersistenceGoogleCloudStorage {
20
- /**
21
- * Dynamically imports the Google Cloud Storage library.
22
- * This helps to delay loading the library until it's actually needed.
23
- */
24
- static async importGoogleCloudStorage() {
25
- try {
26
- // Dynamic import to delay loading until needed
27
- const module = await import('@google-cloud/storage');
28
- return {
29
- Storage: module.Storage,
30
- };
31
- }
32
- catch (error) {
33
- Logger_1.appLogger.error('Failed to import Google Cloud Storage', error);
34
- throw new Error('Failed to import Google Cloud Storage library');
35
- }
36
- }
37
- static async create(bucketName) {
38
- // Only import the Google Cloud Storage library when creating an instance
39
- const { Storage } = await FlowsPersistenceGoogleCloudStorage.importGoogleCloudStorage();
40
- const storage = new Storage();
41
- const bucket = storage.bucket(bucketName);
42
- return bucket
43
- .exists()
44
- .then(([exists]) => {
45
- if (!exists) {
46
- throw new Error(`Bucket ${bucketName} does not exist.`);
47
- }
48
- else {
49
- return bucket;
50
- }
51
- })
52
- .then((bucket) => {
53
- return new FlowsPersistenceGoogleCloudStorage(bucket);
54
- });
55
- }
56
- constructor(bucket) {
57
- this.bucket = bucket;
58
- }
59
- async setFlowMetadata(flowMetadata) {
60
- const objectName = `${flowMetadata.id}/${FlowsPersistenceGoogleCloudStorage.METADATA_FILENAME}`;
61
- await this.uploadString(objectName, JSON.stringify(flowMetadata), 'application/json');
62
- // Update the name index if a name exists
63
- if (flowMetadata.name) {
64
- await this.updateNameIndex(flowMetadata.id, flowMetadata.name);
65
- }
66
- // Update runMode index
67
- await this.updateRunModeIndex(flowMetadata.id, flowMetadata.runMode);
68
- // Update state index
69
- await this.updateStateIndex(flowMetadata.id, flowMetadata.state);
70
- // Update combined runMode+state index
71
- await this.updateRunModeStateIndex(flowMetadata.id, flowMetadata.runMode, flowMetadata.state);
72
- }
73
- async getFlowMetadataById(flowId) {
74
- const objectName = `${flowId}/${FlowsPersistenceGoogleCloudStorage.METADATA_FILENAME}`;
75
- const jsonData = await this.downloadString(objectName);
76
- if (!jsonData) {
77
- throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
78
- }
79
- return JSON.parse(jsonData);
80
- }
81
- async getFlowMetadataByName(flowName) {
82
- if (!flowName) {
83
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
84
- }
85
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.NAME_INDEX_PREFIX}${encodeURIComponent(flowName)}`;
86
- const flowId = await this.downloadString(indexKey);
87
- if (!flowId) {
88
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
89
- }
90
- try {
91
- return await this.getFlowMetadataById(flowId);
92
- }
93
- catch (error) {
94
- // If the index points to a non-existent flow, clean up the index
95
- Logger_1.appLogger.warn(`Flow referenced in name index not found: ${flowId}`, error);
96
- // Delete the stale index entry
97
- const indexFile = this.bucket.file(indexKey);
98
- await indexFile.delete().catch((e) => {
99
- Logger_1.appLogger.warn(`Failed to delete stale name index: ${indexKey}`, e);
100
- });
101
- throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
102
- }
103
- }
104
- async getFlowsMetadata(query) {
105
- const { limit = 20, pageToken, name, runMode, state, startedAfter, startedBefore, } = query || {};
106
- const validLimit = Math.min(Math.max(1, limit), 100);
107
- // Determine which index to use based on query params
108
- let prefix = '';
109
- let usedIndex = false;
110
- if (name) {
111
- // If querying by name, directly fetch that specific flow
112
- try {
113
- const flow = await this.getFlowMetadataByName(name);
114
- // Apply other filters
115
- let includeFlow = true;
116
- if (runMode && flow.runMode !== runMode) {
117
- includeFlow = false;
118
- }
119
- if (state && flow.state !== state) {
120
- includeFlow = false;
121
- }
122
- // Apply date range filters
123
- if (startedAfter !== undefined &&
124
- (flow.startedAt || 0) < startedAfter) {
125
- includeFlow = false;
126
- }
127
- if (startedBefore !== undefined &&
128
- (flow.startedAt || 0) > startedBefore) {
129
- includeFlow = false;
130
- }
131
- if (includeFlow) {
132
- return { items: [flow], nextPageToken: undefined };
133
- }
134
- else {
135
- return { items: [], nextPageToken: undefined };
136
- }
137
- }
138
- catch (_e) {
139
- return { items: [], nextPageToken: undefined };
140
- }
141
- }
142
- else if (runMode && state) {
143
- // Use combined index if both runMode and state are specified
144
- prefix = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_STATE_INDEX_PREFIX}${runMode}_${state}/`;
145
- usedIndex = true;
146
- }
147
- else if (runMode) {
148
- // Use runMode index
149
- prefix = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_INDEX_PREFIX}${runMode}/`;
150
- usedIndex = true;
151
- }
152
- else if (state) {
153
- // Use state index
154
- prefix = `${FlowsPersistenceGoogleCloudStorage.STATE_INDEX_PREFIX}${state}/`;
155
- usedIndex = true;
156
- }
157
- // Prepare query options
158
- const queryOptions = {
159
- maxResults: validLimit * 2,
160
- pageToken: pageToken,
161
- prefix: usedIndex ? prefix : undefined,
162
- };
163
- // Get files based on query
164
- const [files, nextQueryObj] = await this.bucket.getFiles(queryOptions);
165
- // Extract flow IDs - either from index files or from metadata files
166
- let flowIds = [];
167
- if (usedIndex) {
168
- // If using an index, extract flow IDs from index file names
169
- flowIds = files.map((file) => {
170
- // Extract flowId from the index file path
171
- return file.name.substring(prefix.length);
172
- });
173
- }
174
- else {
175
- // If not using an index, filter to metadata files
176
- const metadataFiles = files.filter((file) => file.name.endsWith(`/${FlowsPersistenceGoogleCloudStorage.METADATA_FILENAME}`));
177
- // Extract flow IDs from metadata file paths
178
- flowIds = metadataFiles.map((file) => {
179
- return file.name.substring(0, file.name.indexOf('/'));
180
- });
181
- }
182
- // Fetch metadata for each flow
183
- let flows = [];
184
- for (const flowId of flowIds) {
185
- try {
186
- const flowMetadata = await this.getFlowMetadataById(flowId);
187
- // Apply remaining filters
188
- let includeFlow = true;
189
- // Apply date range filters
190
- if (startedAfter !== undefined &&
191
- (flowMetadata.startedAt || 0) < startedAfter) {
192
- includeFlow = false;
193
- }
194
- if (startedBefore !== undefined &&
195
- (flowMetadata.startedAt || 0) > startedBefore) {
196
- includeFlow = false;
197
- }
198
- // Double-check the indexed fields (in case index is out of sync)
199
- if (runMode && flowMetadata.runMode !== runMode) {
200
- includeFlow = false;
201
- }
202
- if (state && flowMetadata.state !== state) {
203
- includeFlow = false;
204
- }
205
- if (includeFlow) {
206
- flows.push(flowMetadata);
207
- }
208
- }
209
- catch (e) {
210
- Logger_1.appLogger.warn(`Flow not found: ${flowId}`, e);
211
- }
212
- }
213
- // Sort by creation date (newest first)
214
- flows.sort((a, b) => (b.startedAt || 0) - (a.startedAt || 0));
215
- // Apply limit
216
- const limitedFlows = flows.slice(0, validLimit);
217
- const hasMore = flows.length > validLimit;
218
- return {
219
- items: limitedFlows,
220
- nextPageToken: hasMore ? nextQueryObj?.pageToken : undefined,
221
- };
222
- }
223
- async saveScreenShot(flowId, bytes) {
224
- const imageType = MiscUtils_1.MiscUtils.detectImageType(bytes);
225
- const mimeType = `image/${imageType}`;
226
- const filename = `${new Date().toISOString()}.screenshot.${imageType}`;
227
- const objectName = `${flowId}/${filename}`;
228
- await this.uploadBytes(objectName, bytes, mimeType);
229
- return filename;
230
- }
231
- async getScreenShot(flowId, screenShotId) {
232
- return this.getFlowFile(flowId, screenShotId);
233
- }
234
- async setToolCall(flowId, toolCall) {
235
- const filename = `${toolCall.startedAt}${FlowsPersistenceGoogleCloudStorage.TOOL_CALL_FILENAME_SUFFIX}`;
236
- const objectName = `${flowId}/${filename}`;
237
- await this.uploadString(objectName, JSON.stringify(toolCall), 'application/json');
238
- }
239
- async getToolCalls(flowId) {
240
- const prefix = `${flowId}/`;
241
- const [files] = await this.bucket.getFiles({ prefix });
242
- const toolCalls = [];
243
- for (const file of files) {
244
- if (file.name.endsWith(FlowsPersistenceGoogleCloudStorage.TOOL_CALL_FILENAME_SUFFIX)) {
245
- const [content] = await file.download();
246
- const toolCall = JSON.parse(content.toString());
247
- toolCalls.push(toolCall);
248
- }
249
- }
250
- if (toolCalls.length === 0) {
251
- throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
252
- }
253
- return toolCalls.sort((a, b) => (a.startedAt || 0) - (b.startedAt || 0));
254
- }
255
- async deleteToolCall(flowId, toolCallId) {
256
- // Ensure we throw FlowNotFoundException if the flow is missing.
257
- await this.getFlowMetadataById(flowId);
258
- const prefix = `${flowId}/`;
259
- const [files] = await this.bucket.getFiles({ prefix });
260
- for (const file of files) {
261
- if (!file.name.endsWith(FlowsPersistenceGoogleCloudStorage.TOOL_CALL_FILENAME_SUFFIX)) {
262
- continue;
263
- }
264
- try {
265
- const [content] = await file.download();
266
- const toolCall = JSON.parse(content.toString());
267
- if (toolCall.id === toolCallId) {
268
- await file.delete();
269
- return;
270
- }
271
- }
272
- catch (error) {
273
- Logger_1.appLogger.warn(`Failed to inspect tool call file ${file.name} for deletion`, error);
274
- }
275
- }
276
- }
277
- async setVideo(flowId, bytes) {
278
- const objectName = `${flowId}/${FlowsPersistenceGoogleCloudStorage.VIDEO_FILENAME}`;
279
- await this.uploadBytes(objectName, bytes, 'video/webm');
280
- }
281
- async getVideoSegment(flowId, startOffset, length) {
282
- const objectName = `${flowId}/${FlowsPersistenceGoogleCloudStorage.VIDEO_FILENAME}`;
283
- const file = this.bucket.file(objectName);
284
- const [exists] = await file.exists();
285
- if (!exists) {
286
- return null;
287
- }
288
- const [metadata] = await file.getMetadata();
289
- const totalLength = Number(metadata.size);
290
- const adjustedLength = Math.min(length, totalLength - startOffset);
291
- if (adjustedLength <= 0) {
292
- return null;
293
- }
294
- try {
295
- const [content] = await file.download({
296
- start: startOffset,
297
- end: startOffset + adjustedLength - 1,
298
- });
299
- return {
300
- bytes: content,
301
- totalLength: totalLength,
302
- startOffset: startOffset,
303
- };
304
- }
305
- catch (e) {
306
- Logger_1.appLogger.error(`Error reading video segment for flowId ${flowId}: ${e}`);
307
- return null;
308
- }
309
- }
310
- async getFlowFile(flowId, fileId) {
311
- const objectName = `${flowId}/${fileId}`;
312
- const file = this.bucket.file(objectName);
313
- const [exists] = await file.exists();
314
- if (!exists) {
315
- return null;
316
- }
317
- const [content] = await file.download();
318
- return content;
319
- }
320
- async setFlowFile(flowId, fileId, fileBytes) {
321
- const objectName = `${flowId}/${fileId}`;
322
- await this.uploadBytes(objectName, fileBytes, 'application/octet-stream');
323
- }
324
- async setBrowserState(flowId, browserState) {
325
- const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
326
- await this.setFlowFile(flowId, FlowsPersistenceGoogleCloudStorage.BROWSER_STATE_FILENAME, serializedBrowserState);
327
- }
328
- async getBrowserState(flowId) {
329
- const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceGoogleCloudStorage.BROWSER_STATE_FILENAME);
330
- if (browserStateRaw) {
331
- return BrowserStorageState_1.BrowserStorageStateSchema.parse(JSON.parse(browserStateRaw.toString('utf-8')));
332
- }
333
- else {
334
- return null;
335
- }
336
- }
337
- async deleteFlow(flowId) {
338
- try {
339
- // Get flow metadata to find its fields for index cleanup
340
- const metadata = await this.getFlowMetadataById(flowId);
341
- // Delete the name index entry if name exists
342
- if (metadata.name) {
343
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.NAME_INDEX_PREFIX}${encodeURIComponent(metadata.name)}`;
344
- const indexFile = this.bucket.file(indexKey);
345
- const [exists] = await indexFile.exists();
346
- if (exists) {
347
- await indexFile.delete();
348
- }
349
- }
350
- // Delete runMode index
351
- const runModeIndexKey = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_INDEX_PREFIX}${metadata.runMode}/${flowId}`;
352
- const runModeIndexFile = this.bucket.file(runModeIndexKey);
353
- const [runModeExists] = await runModeIndexFile.exists();
354
- if (runModeExists) {
355
- await runModeIndexFile.delete();
356
- }
357
- // Delete state index
358
- const stateIndexKey = `${FlowsPersistenceGoogleCloudStorage.STATE_INDEX_PREFIX}${metadata.state}/${flowId}`;
359
- const stateIndexFile = this.bucket.file(stateIndexKey);
360
- const [stateExists] = await stateIndexFile.exists();
361
- if (stateExists) {
362
- await stateIndexFile.delete();
363
- }
364
- // Delete combined index
365
- const combinedIndexKey = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_STATE_INDEX_PREFIX}${metadata.runMode}_${metadata.state}/${flowId}`;
366
- const combinedIndexFile = this.bucket.file(combinedIndexKey);
367
- const [combinedExists] = await combinedIndexFile.exists();
368
- if (combinedExists) {
369
- await combinedIndexFile.delete();
370
- }
371
- }
372
- catch (_error) {
373
- // Pass - couldn't load metadata to clean up indexes. This likely means
374
- // the flow has already been deleted.
375
- }
376
- // Delete all flow files
377
- const prefix = `${flowId}/`;
378
- const [files] = await this.bucket.getFiles({ prefix });
379
- if (files.length > 0) {
380
- await Promise.all(files.map((file) => file.delete()));
381
- }
382
- }
383
- async uploadString(objectName, data, contentType) {
384
- const file = this.bucket.file(objectName);
385
- await file.save(data, {
386
- contentType,
387
- metadata: { contentType },
388
- });
389
- }
390
- async uploadBytes(objectName, bytes, contentType) {
391
- const file = this.bucket.file(objectName);
392
- await file.save(bytes, {
393
- contentType,
394
- metadata: { contentType },
395
- });
396
- }
397
- async downloadString(objectName) {
398
- const file = this.bucket.file(objectName);
399
- const [exists] = await file.exists();
400
- if (!exists) {
401
- return null;
402
- }
403
- const [content] = await file.download();
404
- return content.toString();
405
- }
406
- /**
407
- * Update name-to-id index.
408
- */
409
- async updateNameIndex(flowId, flowName) {
410
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.NAME_INDEX_PREFIX}${encodeURIComponent(flowName)}`;
411
- await this.uploadString(indexKey, flowId, 'text/plain');
412
- }
413
- /**
414
- * Update runMode-to-id index.
415
- */
416
- async updateRunModeIndex(flowId, runMode) {
417
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_INDEX_PREFIX}${runMode}/${flowId}`;
418
- await this.uploadString(indexKey, flowId, 'text/plain');
419
- }
420
- /**
421
- * Update state-to-id index.
422
- */
423
- async updateStateIndex(flowId, state) {
424
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.STATE_INDEX_PREFIX}${state}/${flowId}`;
425
- await this.uploadString(indexKey, flowId, 'text/plain');
426
- }
427
- /**
428
- * Update combined runMode+state-to-id index.
429
- */
430
- async updateRunModeStateIndex(flowId, runMode, state) {
431
- const indexKey = `${FlowsPersistenceGoogleCloudStorage.RUN_MODE_STATE_INDEX_PREFIX}${runMode}_${state}/${flowId}`;
432
- await this.uploadString(indexKey, flowId, 'text/plain');
433
- }
434
- }
435
- exports.FlowsPersistenceGoogleCloudStorage = FlowsPersistenceGoogleCloudStorage;
436
- FlowsPersistenceGoogleCloudStorage.NAME_INDEX_PREFIX = '_name-index/';
437
- FlowsPersistenceGoogleCloudStorage.RUN_MODE_INDEX_PREFIX = '_run-mode-index/';
438
- FlowsPersistenceGoogleCloudStorage.STATE_INDEX_PREFIX = '_state-index/';
439
- FlowsPersistenceGoogleCloudStorage.RUN_MODE_STATE_INDEX_PREFIX = '_run-mode-state-index/';
440
- FlowsPersistenceGoogleCloudStorage.METADATA_FILENAME = 'metadata.json';
441
- FlowsPersistenceGoogleCloudStorage.BROWSER_STATE_FILENAME = 'browserstate.json';
442
- FlowsPersistenceGoogleCloudStorage.TOOL_CALL_FILENAME_SUFFIX = '.tool-call.json';
443
- FlowsPersistenceGoogleCloudStorage.VIDEO_FILENAME = 'video.webm';
444
- //# sourceMappingURL=FlowsPersistenceGoogleCloudStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceGoogleCloudStorage.js","sourceRoot":"","sources":["../../../../src/persistence/flows/FlowsPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type { z } from 'zod/v4';
2
- import type { ToolCallContext } from '../models/ToolCallContext';
3
- import type { ToolCallResult } from '../models/ToolCallResult';
4
- import { BaseGptArgsSchema, NoArgsSchema } from '../models/ToolSchema';
5
- import { Tool } from './Tool';
6
- /**
7
- * Work in progress:
8
- *
9
- * For now, this tool automatically fails. It is just meant as a way for a flow
10
- * to acknowledge a captcha so that we can programmatically detect if a flow hit
11
- * a captcha at all. This tool is purposely not enabled by default.
12
- */
13
- export declare class SolveCaptchaTool extends Tool<typeof NoArgsSchema, typeof BaseGptArgsSchema> {
14
- static readonly NAME = "solveCaptcha";
15
- constructor();
16
- call(_context: ToolCallContext, _parameters: z.infer<typeof NoArgsSchema>): Promise<ToolCallResult>;
17
- callFromGpt(context: ToolCallContext, _parameters: z.infer<typeof BaseGptArgsSchema>): Promise<ToolCallResult>;
18
- }
19
- //# sourceMappingURL=SolveCaptcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolveCaptcha.d.ts","sourceRoot":"","sources":["../../../src/tools/SolveCaptcha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,IAAI,CACxC,OAAO,YAAY,EACnB,OAAO,iBAAiB,CACzB;IACC,gBAAuB,IAAI,kBAAkB;;IAWvB,IAAI,CACxB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACxC,OAAO,CAAC,cAAc,CAAC;IAcJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAC7C,OAAO,CAAC,cAAc,CAAC;CAG3B"}
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolveCaptchaTool = void 0;
4
- const ToolSchema_1 = require("../models/ToolSchema");
5
- const Tool_1 = require("./Tool");
6
- /**
7
- * Work in progress:
8
- *
9
- * For now, this tool automatically fails. It is just meant as a way for a flow
10
- * to acknowledge a captcha so that we can programmatically detect if a flow hit
11
- * a captcha at all. This tool is purposely not enabled by default.
12
- */
13
- class SolveCaptchaTool extends Tool_1.Tool {
14
- constructor() {
15
- super(SolveCaptchaTool.NAME, `Solve a captcha or captcha-like challenge for the current webpage.`, ToolSchema_1.NoArgsSchema, ToolSchema_1.BaseGptArgsSchema);
16
- }
17
- async call(_context, _parameters) {
18
- // TODO:
19
- // 1. Classify the captcha type.
20
- // 2. Grab the appropriate page values based on type.
21
- // 3. Call the appropriate API https://github.com/2captcha/2captcha-javascript based on type.
22
- // 4. Apply the result to the current page.
23
- // 5. Return success/failure.
24
- return {
25
- isSuccessful: false,
26
- forLlm: 'Unable to solve the challenge!',
27
- metadata: null,
28
- };
29
- }
30
- async callFromGpt(context, _parameters) {
31
- return this.call(context, {});
32
- }
33
- }
34
- exports.SolveCaptchaTool = SolveCaptchaTool;
35
- SolveCaptchaTool.NAME = 'solveCaptcha';
36
- //# sourceMappingURL=SolveCaptcha.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolveCaptcha.js","sourceRoot":"","sources":["../../../src/tools/SolveCaptcha.ts"],"names":[],"mappings":";;;AAIA,qDAAuE;AACvE,iCAA8B;AAE9B;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,WAGrC;IAGC;QACE,KAAK,CACH,gBAAgB,CAAC,IAAI,EACrB,oEAAoE,EACpE,yBAAY,EACZ,8BAAiB,CAClB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,QAAyB,EACzB,WAAyC;QAEzC,QAAQ;QACR,gCAAgC;QAChC,qDAAqD;QACrD,6FAA6F;QAC7F,2CAA2C;QAC3C,6BAA6B;QAC7B,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,gCAAgC;YACxC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,WAA8C;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;;AArCH,4CAsCC;AAlCwB,qBAAI,GAAG,cAAc,CAAC"}
@@ -1,45 +0,0 @@
1
- import type { ElementHandle } from 'playwright';
2
- import { z } from 'zod/v4';
3
- import type { ToolCallContext } from '../models/ToolCallContext';
4
- import { ReplayableInteraction } from './ReplayableInteraction';
5
- export declare const SolveMfaChallengeCoreSchema: z.ZodObject<{
6
- gmailClientId: z.ZodString;
7
- gmailClientSecret: z.ZodString;
8
- gmailRefreshToken: z.ZodString;
9
- email: z.ZodString;
10
- }, z.core.$strip>;
11
- export declare const SelectorBasedSolveMfaChallengeSchema: z.ZodObject<{
12
- gmailClientId: z.ZodString;
13
- gmailClientSecret: z.ZodString;
14
- gmailRefreshToken: z.ZodString;
15
- email: z.ZodString;
16
- selector: z.ZodObject<{
17
- element: z.ZodArray<z.ZodString>;
18
- frame: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
- }, z.core.$strip>;
20
- }, z.core.$strip>;
21
- export declare const AnnotationBasedSolveMfaChallengeSchema: z.ZodObject<{
22
- gmailClientId: z.ZodString;
23
- gmailClientSecret: z.ZodString;
24
- gmailRefreshToken: z.ZodString;
25
- email: z.ZodString;
26
- whyThisAnnotation: z.ZodString;
27
- annotation: z.ZodString;
28
- rationale: z.ZodString;
29
- }, z.core.$strip>;
30
- export declare class SolveMfaChallengeTool extends ReplayableInteraction<typeof SolveMfaChallengeCoreSchema, typeof SelectorBasedSolveMfaChallengeSchema, typeof AnnotationBasedSolveMfaChallengeSchema> {
31
- static readonly NAME = "solveMfaChallenge";
32
- private static readonly MAX_RETRIES;
33
- private static readonly RETRY_DELAY_MS;
34
- constructor();
35
- invoke(context: ToolCallContext, parameters: z.infer<typeof SolveMfaChallengeCoreSchema>, handles: {
36
- target: ElementHandle<HTMLElement | SVGElement>;
37
- label?: ElementHandle<HTMLElement | SVGElement>;
38
- }): Promise<string>;
39
- private getMfaCodeFromEmails;
40
- private fetchLatestMfaEmail;
41
- private extractBody;
42
- private extractMfaCodeWithGpt;
43
- private decodeBase64Url;
44
- }
45
- //# sourceMappingURL=SolveMfaChallenge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolveMfaChallenge.d.ts","sourceRoot":"","sources":["../../../src/tools/SolveMfaChallenge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAEL,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,2BAA2B;;;;;iBAqBtC,CAAC;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;iBAG/C,CAAC;AACH,eAAO,MAAM,sCAAsC;;;;;;;;iBAGjD,CAAC;AAEH,qBAAa,qBAAsB,SAAQ,qBAAqB,CAC9D,OAAO,2BAA2B,EAClC,OAAO,oCAAoC,EAC3C,OAAO,sCAAsC,CAC9C;IACC,gBAAuB,IAAI,uBAAuB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAS;;IAazC,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,EACvD,OAAO,EAAE;QACP,MAAM,EAAE,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;KACjD,GACA,OAAO,CAAC,MAAM,CAAC;YAqDJ,oBAAoB;YAgDpB,mBAAmB;IAwDjC,OAAO,CAAC,WAAW;YA6BL,qBAAqB;IAwCnC,OAAO,CAAC,eAAe;CAKxB"}