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,214 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolveMfaChallengeTool = exports.AnnotationBasedSolveMfaChallengeSchema = exports.SelectorBasedSolveMfaChallengeSchema = exports.SolveMfaChallengeCoreSchema = void 0;
4
- const gmail_1 = require("@googleapis/gmail");
5
- const googleapis_common_1 = require("googleapis-common");
6
- const v4_1 = require("zod/v4");
7
- const Logger_1 = require("../utils/Logger");
8
- const MiscUtils_1 = require("../utils/MiscUtils");
9
- const ReplayableInteraction_1 = require("./ReplayableInteraction");
10
- exports.SolveMfaChallengeCoreSchema = v4_1.z.object({
11
- gmailClientId: v4_1.z
12
- .string()
13
- .describe('The Gmail client ID. This should be passed using an environment variable reference like {{$.env.GMAIL_CLIENT_ID}} or similar.'),
14
- gmailClientSecret: v4_1.z
15
- .string()
16
- .describe('The Gmail client secret. This should be passed using an environment variable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.'),
17
- gmailRefreshToken: v4_1.z
18
- .string()
19
- .describe('The Gmail refresh token. This should be passed using an environment variable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.'),
20
- email: v4_1.z
21
- .string()
22
- .describe('The specific email address to filter MFA emails for. This can include variants like someemail+variant@gmail.com to target specific logins.'),
23
- });
24
- exports.SelectorBasedSolveMfaChallengeSchema = v4_1.z.object({
25
- ...ReplayableInteraction_1.SelectorBasedSchema.shape,
26
- ...exports.SolveMfaChallengeCoreSchema.shape,
27
- });
28
- exports.AnnotationBasedSolveMfaChallengeSchema = v4_1.z.object({
29
- ...ReplayableInteraction_1.AnnotationBasedSchema.shape,
30
- ...exports.SolveMfaChallengeCoreSchema.shape,
31
- });
32
- class SolveMfaChallengeTool extends ReplayableInteraction_1.ReplayableInteraction {
33
- constructor() {
34
- super(SolveMfaChallengeTool.NAME, 'Scan Gmail-based emails for MFA verification codes and automatically input them into the specified field.', exports.SolveMfaChallengeCoreSchema, exports.SelectorBasedSolveMfaChallengeSchema, exports.AnnotationBasedSolveMfaChallengeSchema, true);
35
- }
36
- async invoke(context, parameters, handles) {
37
- const waitTimeSeconds = 60;
38
- // Create OAuth client
39
- const oAuth2Client = new googleapis_common_1.OAuth2Client(parameters.gmailClientId, parameters.gmailClientSecret);
40
- oAuth2Client.setCredentials({
41
- refresh_token: parameters.gmailRefreshToken,
42
- });
43
- const gmailClient = (0, gmail_1.gmail)({ version: 'v1', auth: oAuth2Client });
44
- // Extract the MFA code from emails
45
- const mfaCode = await this.getMfaCodeFromEmails(context, gmailClient, waitTimeSeconds, parameters.email);
46
- if (!mfaCode) {
47
- throw new Error(`Could not find MFA code in emails for ${parameters.email} after multiple attempts`);
48
- }
49
- // Input the MFA code into the element.
50
- //
51
- // Note: We focus the element then send raw keyboard events rather than
52
- // doing 'element.press' since some MFA systems automatically progress
53
- // focus across input fields when each character is entered.
54
- await handles.target.focus();
55
- for (const char of mfaCode) {
56
- await context.page.current.keyboard.press(char, {
57
- delay: MiscUtils_1.MiscUtils.generateHumanLikeKeyPressDurationInMs(char),
58
- });
59
- }
60
- // Submit the form if necessary
61
- try {
62
- const char = 'Enter';
63
- await context.page.current.keyboard.press(char, {
64
- delay: MiscUtils_1.MiscUtils.generateHumanLikeKeyPressDurationInMs(char),
65
- });
66
- }
67
- catch (_error) {
68
- // Some MFA systems automatically submit themselves, so if we have
69
- // gotten this far, do not fail if the 'Enter' key fails to land.
70
- }
71
- return `Successfully retrieved and inputted MFA code "${mfaCode}" into field for ${parameters.email}`;
72
- }
73
- async getMfaCodeFromEmails(context, gmail, waitTimeSeconds, targetEmail) {
74
- const seenIds = new Set();
75
- const startTime = Date.now();
76
- const endTime = startTime + waitTimeSeconds * 1000;
77
- let attempt = 0;
78
- let lastEmailBody = null;
79
- while (Date.now() < endTime &&
80
- attempt < SolveMfaChallengeTool.MAX_RETRIES) {
81
- attempt++;
82
- Logger_1.appLogger.info(`Attempt ${attempt} of ${SolveMfaChallengeTool.MAX_RETRIES} to find MFA code in emails for ${targetEmail}`);
83
- // Get the body of the latest email for the user.
84
- const emailBody = await this.fetchLatestMfaEmail(gmail, seenIds, targetEmail);
85
- // Only process if the email body has changed.
86
- if (emailBody && emailBody !== lastEmailBody) {
87
- lastEmailBody = emailBody;
88
- // Use the GPT client to extract the MFA code.
89
- const mfaCode = await this.extractMfaCodeWithGpt(context, emailBody);
90
- if (mfaCode) {
91
- Logger_1.appLogger.info(`Successfully found MFA code: ${mfaCode} for ${targetEmail}`);
92
- return mfaCode;
93
- }
94
- }
95
- // Wait before retrying.
96
- await new Promise((resolve) => {
97
- setTimeout(resolve, SolveMfaChallengeTool.RETRY_DELAY_MS);
98
- });
99
- }
100
- return null;
101
- }
102
- async fetchLatestMfaEmail(gmail, seenIds, targetEmail) {
103
- const lookbackMinutes = 2;
104
- const cutoff = Date.now() - lookbackMinutes * 60_000;
105
- const searchQuery = `to:${targetEmail} subject:(code OR security OR authentication OR verification OR confirm OR verify) is:unread in:inbox`;
106
- const threadRes = await gmail.users.threads.list({
107
- userId: 'me',
108
- q: searchQuery,
109
- maxResults: 25,
110
- fields: 'threads(id)',
111
- });
112
- const candidates = [];
113
- for (const th of threadRes.data.threads ?? []) {
114
- const t = await gmail.users.threads.get({
115
- userId: 'me',
116
- id: th.id,
117
- format: 'metadata',
118
- fields: 'messages(id,internalDate,labelIds,payload)',
119
- });
120
- const m = t.data.messages.at(-1); // newest in that thread
121
- if (!m || seenIds.has(m.id)) {
122
- continue;
123
- }
124
- else if (!m.labelIds?.includes('UNREAD')) {
125
- continue;
126
- }
127
- const ts = Number(m.internalDate);
128
- if (ts >= cutoff) {
129
- candidates.push({ id: m.id, ts });
130
- }
131
- }
132
- if (!candidates.length) {
133
- Logger_1.appLogger.info(`No MFA email candidates found for ${targetEmail}`);
134
- return null;
135
- }
136
- const winner = candidates.sort((a, b) => b.ts - a.ts)[0];
137
- seenIds.add(winner.id);
138
- const full = await gmail.users.messages.get({
139
- userId: 'me',
140
- id: winner.id,
141
- format: 'full',
142
- });
143
- return this.extractBody(full.data);
144
- }
145
- extractBody(email) {
146
- const parts = email.payload?.parts;
147
- let body = '';
148
- if (parts) {
149
- // Try to find plain text part first
150
- const textPart = parts.find((part) => part.mimeType === 'text/plain');
151
- if (textPart?.body?.data) {
152
- body = this.decodeBase64Url(textPart.body.data);
153
- }
154
- else {
155
- // Fall back to HTML part if no plain text
156
- const htmlPart = parts.find((part) => part.mimeType === 'text/html');
157
- if (htmlPart?.body?.data) {
158
- body = this.decodeBase64Url(htmlPart.body.data);
159
- }
160
- }
161
- }
162
- else if (email.payload?.body?.data) {
163
- // Handle case where email has no parts
164
- body = this.decodeBase64Url(email.payload.body.data);
165
- }
166
- if (!body) {
167
- Logger_1.appLogger.warn('Email found but body could not be decoded');
168
- return null;
169
- }
170
- return body;
171
- }
172
- async extractMfaCodeWithGpt(context, emailBody) {
173
- // Use GPT to extract the MFA code from the email body
174
- const systemMessage = {
175
- type: 'system',
176
- text: `You are a tool that extracts MFA (Multi-Factor Authentication) verification codes from emails.
177
- Your task is to identify and extract ONLY the verification code from the email.
178
- If multiple potential codes exist, choose the most likely one based on context (usually near phrases like "verification code", "security code", etc.)
179
- Return ONLY the code with no additional text, punctuation, or explanation.
180
- If no code can be found, respond with "NO_CODE_FOUND".`,
181
- };
182
- const userMessage = {
183
- type: 'user',
184
- items: [
185
- {
186
- type: 'text',
187
- text: `Extract the verification code from this email:
188
- \`\`\`
189
- ${emailBody}
190
- \`\`\``,
191
- },
192
- ],
193
- };
194
- const response = await context.gptClient.getMessage([
195
- systemMessage,
196
- userMessage,
197
- ]);
198
- const extractedCode = response.text.trim();
199
- if (extractedCode === 'NO_CODE_FOUND') {
200
- return null;
201
- }
202
- return extractedCode;
203
- }
204
- decodeBase64Url(data) {
205
- const normalized = data.replace(/-/g, '+').replace(/_/g, '/');
206
- const padded = normalized + '='.repeat((4 - (normalized.length % 4)) % 4);
207
- return Buffer.from(padded, 'base64').toString('utf-8');
208
- }
209
- }
210
- exports.SolveMfaChallengeTool = SolveMfaChallengeTool;
211
- SolveMfaChallengeTool.NAME = 'solveMfaChallenge';
212
- SolveMfaChallengeTool.MAX_RETRIES = 6;
213
- SolveMfaChallengeTool.RETRY_DELAY_MS = 10000;
214
- //# sourceMappingURL=SolveMfaChallenge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolveMfaChallenge.js","sourceRoot":"","sources":["../../../src/tools/SolveMfaChallenge.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { EnvPersistence } from './EnvPersistence';
2
- /**
3
- * A persistence implementation that uses AWS S3.
4
- * Ensure AWS credentials are properly configured in your environment,
5
- * or provide them directly in the constructor.
6
- */
7
- export declare class EnvPersistenceAwsS3 implements EnvPersistence {
8
- private static readonly ENVIRONMENT_DATA_PREFIX;
9
- private readonly s3Client;
10
- private readonly bucketName;
11
- /**
12
- * Creates a new instance of the AWS S3 persistence layer.
13
- *
14
- * @param bucketName The name of the S3 bucket to use for storage
15
- * @param region AWS region (defaults to 'us-east-1')
16
- * @param credentials Optional AWS credentials (if not provided, will use environment variables)
17
- */
18
- constructor(bucketName: string, region: string, credentials?: {
19
- accessKeyId: string;
20
- secretAccessKey: string;
21
- });
22
- setEnvironmentDatum(key: string, value: string): Promise<void>;
23
- deleteEnvironmentDatum(key: string): Promise<void>;
24
- getEnvironmentDatum(key: string): Promise<string | undefined>;
25
- getEnvironmentData(): Promise<Record<string, string>>;
26
- /**
27
- * Utility method to stream S3 object data to a Buffer
28
- */
29
- private streamToBuffer;
30
- }
31
- //# sourceMappingURL=EnvPersistenceAwsS3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvPersistenceAwsS3.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceAwsS3.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAkB;IAEjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;;OAMG;gBAED,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IASnD,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9D,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqB7D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAmDlE;;OAEG;YACW,cAAc;CAQ7B"}
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvPersistenceAwsS3 = void 0;
4
- const client_s3_1 = require("@aws-sdk/client-s3");
5
- const Logger_1 = require("../../utils/Logger");
6
- /**
7
- * A persistence implementation that uses AWS S3.
8
- * Ensure AWS credentials are properly configured in your environment,
9
- * or provide them directly in the constructor.
10
- */
11
- class EnvPersistenceAwsS3 {
12
- /**
13
- * Creates a new instance of the AWS S3 persistence layer.
14
- *
15
- * @param bucketName The name of the S3 bucket to use for storage
16
- * @param region AWS region (defaults to 'us-east-1')
17
- * @param credentials Optional AWS credentials (if not provided, will use environment variables)
18
- */
19
- constructor(bucketName, region, credentials) {
20
- this.bucketName = bucketName;
21
- this.s3Client = new client_s3_1.S3Client({
22
- region,
23
- credentials,
24
- });
25
- }
26
- async setEnvironmentDatum(key, value) {
27
- if (!key) {
28
- throw new Error('Key cannot be empty');
29
- }
30
- const objectKey = `${EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
31
- await this.s3Client.send(new client_s3_1.PutObjectCommand({
32
- Bucket: this.bucketName,
33
- Key: objectKey,
34
- Body: value,
35
- ContentType: 'text/plain',
36
- }));
37
- }
38
- async deleteEnvironmentDatum(key) {
39
- if (!key) {
40
- return; // No-op if key is empty
41
- }
42
- const objectKey = `${EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
43
- try {
44
- await this.s3Client.send(new client_s3_1.DeleteObjectCommand({
45
- Bucket: this.bucketName,
46
- Key: objectKey,
47
- }));
48
- }
49
- catch (error) {
50
- // Ignore errors if the object doesn't exist
51
- Logger_1.appLogger.warn(`Failed to delete environment data for key: ${key}`, error);
52
- }
53
- }
54
- async getEnvironmentDatum(key) {
55
- if (!key) {
56
- return undefined;
57
- }
58
- const objectKey = `${EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
59
- const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
60
- Bucket: this.bucketName,
61
- Key: objectKey,
62
- }));
63
- if (!response.Body) {
64
- return undefined;
65
- }
66
- const data = await this.streamToBuffer(response.Body);
67
- return data.toString('utf-8');
68
- }
69
- async getEnvironmentData() {
70
- const result = {};
71
- // List all objects with the environment prefix
72
- const response = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({
73
- Bucket: this.bucketName,
74
- Prefix: EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX,
75
- }));
76
- if (!response.Contents || response.Contents.length === 0) {
77
- return result;
78
- }
79
- // Process each object
80
- for (const object of response.Contents) {
81
- if (object.Key) {
82
- try {
83
- // Extract the key from the object path
84
- const encodedKey = object.Key.substring(EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX.length);
85
- const key = decodeURIComponent(encodedKey);
86
- // Get the object content
87
- const getResponse = await this.s3Client.send(new client_s3_1.GetObjectCommand({
88
- Bucket: this.bucketName,
89
- Key: object.Key,
90
- }));
91
- if (getResponse.Body) {
92
- const data = await this.streamToBuffer(getResponse.Body);
93
- result[key] = data.toString('utf-8');
94
- }
95
- }
96
- catch (error) {
97
- Logger_1.appLogger.warn(`Failed to get environment data for key: ${object.Key}`, error);
98
- }
99
- }
100
- }
101
- return result;
102
- }
103
- /**
104
- * Utility method to stream S3 object data to a Buffer
105
- */
106
- async streamToBuffer(stream) {
107
- return new Promise((resolve, reject) => {
108
- const chunks = [];
109
- stream.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
110
- stream.on('error', reject);
111
- stream.on('end', () => resolve(Buffer.concat(chunks)));
112
- });
113
- }
114
- }
115
- exports.EnvPersistenceAwsS3 = EnvPersistenceAwsS3;
116
- EnvPersistenceAwsS3.ENVIRONMENT_DATA_PREFIX = 'environment/';
117
- //# sourceMappingURL=EnvPersistenceAwsS3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvPersistenceAwsS3.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceAwsS3.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { EnvPersistence } from './EnvPersistence';
2
- /**
3
- * A persistence implementation that uses Google Cloud Storage.
4
- *
5
- * If you are running locally, be sure to have the Google Cloud CLI installed
6
- * so that you can authenticate using `gcloud auth application-default login`
7
- * before running Donobu.
8
- *
9
- * If Donobu is being run in the Google cloud, be sure that the service account
10
- * in which it is being run has permissions to read and write the Google Cloud
11
- * Storage bucket specified as a constructor argument.
12
- */
13
- export declare class EnvPersistenceGoogleCloudStorage implements EnvPersistence {
14
- private readonly bucket;
15
- private static readonly ENVIRONMENT_DATA_PREFIX;
16
- /**
17
- * Dynamically imports the Google Cloud Storage library.
18
- * This helps to delay loading the library until it's actually needed.
19
- */
20
- private static importGoogleCloudStorage;
21
- static create(bucketName: string): Promise<EnvPersistenceGoogleCloudStorage>;
22
- private constructor();
23
- setEnvironmentDatum(key: string, value: string): Promise<void>;
24
- deleteEnvironmentDatum(key: string): Promise<void>;
25
- getEnvironmentDatum(key: string): Promise<string | undefined>;
26
- getEnvironmentData(): Promise<Record<string, string>>;
27
- private uploadString;
28
- private downloadString;
29
- }
30
- //# sourceMappingURL=EnvPersistenceGoogleCloudStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvPersistenceGoogleCloudStorage.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASvD;;;;;;;;;;GAUG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IA6CjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IA5C3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAkB;IAEjE;;;OAGG;mBACkB,wBAAwB;WAezB,MAAM,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gCAAgC,CAAC;IAqB5C,OAAO;IAEM,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS7D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YA+BpD,YAAY;YAYZ,cAAc;CAW7B"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvPersistenceGoogleCloudStorage = void 0;
4
- const Logger_1 = require("../../utils/Logger");
5
- /**
6
- * A persistence implementation that uses Google Cloud Storage.
7
- *
8
- * If you are running locally, be sure to have the Google Cloud CLI installed
9
- * so that you can authenticate using `gcloud auth application-default login`
10
- * before running Donobu.
11
- *
12
- * If Donobu is being run in the Google cloud, be sure that the service account
13
- * in which it is being run has permissions to read and write the Google Cloud
14
- * Storage bucket specified as a constructor argument.
15
- */
16
- class EnvPersistenceGoogleCloudStorage {
17
- /**
18
- * Dynamically imports the Google Cloud Storage library.
19
- * This helps to delay loading the library until it's actually needed.
20
- */
21
- static async importGoogleCloudStorage() {
22
- try {
23
- // Dynamic import to delay loading until needed
24
- const module = await import('@google-cloud/storage');
25
- return {
26
- Storage: module.Storage,
27
- };
28
- }
29
- catch (error) {
30
- Logger_1.appLogger.error('Failed to import Google Cloud Storage', error);
31
- throw new Error('Failed to import Google Cloud Storage library');
32
- }
33
- }
34
- static async create(bucketName) {
35
- // Only import the Google Cloud Storage library when creating an instance
36
- const { Storage } = await EnvPersistenceGoogleCloudStorage.importGoogleCloudStorage();
37
- const storage = new Storage();
38
- const bucket = storage.bucket(bucketName);
39
- return bucket
40
- .exists()
41
- .then(([exists]) => {
42
- if (!exists) {
43
- throw new Error(`Bucket ${bucketName} does not exist.`);
44
- }
45
- else {
46
- return bucket;
47
- }
48
- })
49
- .then((bucket) => {
50
- return new EnvPersistenceGoogleCloudStorage(bucket);
51
- });
52
- }
53
- constructor(bucket) {
54
- this.bucket = bucket;
55
- }
56
- async setEnvironmentDatum(key, value) {
57
- if (!key) {
58
- throw new Error('Key cannot be empty');
59
- }
60
- const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
61
- await this.uploadString(objectName, value, 'text/plain');
62
- }
63
- async deleteEnvironmentDatum(key) {
64
- if (!key) {
65
- return; // No-op if key is empty
66
- }
67
- const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
68
- const file = this.bucket.file(objectName);
69
- try {
70
- const [exists] = await file.exists();
71
- if (exists) {
72
- await file.delete();
73
- }
74
- }
75
- catch (error) {
76
- // Ignore errors if the object doesn't exist
77
- Logger_1.appLogger.warn(`Failed to delete environment data for key: ${key}`, error);
78
- }
79
- }
80
- async getEnvironmentDatum(key) {
81
- if (!key) {
82
- return undefined;
83
- }
84
- const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
85
- return (await this.downloadString(objectName)) ?? undefined;
86
- }
87
- async getEnvironmentData() {
88
- const result = {};
89
- try {
90
- const prefix = EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX;
91
- const [files] = await this.bucket.getFiles({ prefix });
92
- // Process each file
93
- for (const file of files) {
94
- try {
95
- // Extract the key from the file path
96
- const encodedKey = file.name.substring(prefix.length);
97
- const key = decodeURIComponent(encodedKey);
98
- // Get the file content
99
- const [content] = await file.download();
100
- result[key] = content.toString('utf-8');
101
- }
102
- catch (error) {
103
- Logger_1.appLogger.warn(`Failed to get environment data for key: ${file.name}`, error);
104
- }
105
- }
106
- }
107
- catch (error) {
108
- Logger_1.appLogger.error('Failed to list environment data files', error);
109
- }
110
- return result;
111
- }
112
- async uploadString(objectName, data, contentType) {
113
- const file = this.bucket.file(objectName);
114
- await file.save(data, {
115
- contentType,
116
- metadata: { contentType },
117
- });
118
- }
119
- async downloadString(objectName) {
120
- const file = this.bucket.file(objectName);
121
- const [exists] = await file.exists();
122
- if (!exists) {
123
- return null;
124
- }
125
- const [content] = await file.download();
126
- return content.toString();
127
- }
128
- }
129
- exports.EnvPersistenceGoogleCloudStorage = EnvPersistenceGoogleCloudStorage;
130
- EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX = 'environment/';
131
- //# sourceMappingURL=EnvPersistenceGoogleCloudStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvPersistenceGoogleCloudStorage.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- import { type BrowserStorageState } from '../../models/BrowserStorageState';
2
- import type { FlowMetadata, FlowsQuery } from '../../models/FlowMetadata';
3
- import type { PaginatedResult } from '../../models/PaginatedResult';
4
- import type { ToolCall } from '../../models/ToolCall';
5
- import type { VideoSegment } from '../../models/VideoSegment';
6
- import type { FlowsPersistence } from './FlowsPersistence';
7
- /**
8
- * A persistence implementation that uses AWS S3.
9
- * Ensure AWS credentials are properly configured in your environment,
10
- * or provide them directly in the constructor.
11
- */
12
- export declare class FlowsPersistenceAwsS3 implements FlowsPersistence {
13
- private static readonly NAME_INDEX_PREFIX;
14
- private static readonly RUN_MODE_INDEX_PREFIX;
15
- private static readonly STATE_INDEX_PREFIX;
16
- private static readonly RUN_MODE_STATE_INDEX_PREFIX;
17
- private static readonly METADATA_FILENAME;
18
- private static readonly BROWSER_STATE_FILENAME;
19
- private static readonly TOOL_CALL_FILENAME_SUFFIX;
20
- private static readonly VIDEO_FILENAME;
21
- private readonly s3Client;
22
- private readonly bucketName;
23
- /**
24
- * Creates a new instance of the AWS S3 persistence layer.
25
- *
26
- * @param bucketName The name of the S3 bucket to use for storage
27
- * @param region AWS region (defaults to 'us-east-1')
28
- * @param credentials Optional AWS credentials (if not provided, will use environment variables)
29
- */
30
- constructor(bucketName: string, region: string, credentials?: {
31
- accessKeyId: string;
32
- secretAccessKey: string;
33
- });
34
- setFlowMetadata(flowMetadata: FlowMetadata): Promise<void>;
35
- getFlowMetadataById(flowId: string): Promise<FlowMetadata>;
36
- getFlowMetadataByName(flowName: string): Promise<FlowMetadata>;
37
- getFlowsMetadata(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
38
- saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
39
- getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
40
- setToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
41
- getToolCalls(flowId: string): Promise<ToolCall[]>;
42
- deleteToolCall(flowId: string, toolCallId: string): Promise<void>;
43
- setVideo(flowId: string, bytes: Buffer): Promise<void>;
44
- getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
45
- getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
46
- setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
47
- setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
48
- getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
49
- deleteFlow(flowId: string): Promise<void>;
50
- /**
51
- * Utility method to stream S3 object data to a Buffer
52
- */
53
- private streamToBuffer;
54
- /**
55
- * Update name-to-id index.
56
- */
57
- private updateNameIndex;
58
- /**
59
- * Update runMode-to-id index.
60
- */
61
- private updateRunModeIndex;
62
- /**
63
- * Update state-to-id index.
64
- */
65
- private updateStateIndex;
66
- /**
67
- * Update combined runMode+state-to-id index.
68
- */
69
- private updateRunModeStateIndex;
70
- }
71
- //# sourceMappingURL=FlowsPersistenceAwsS3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowsPersistenceAwsS3.d.ts","sourceRoot":"","sources":["../../../src/persistence/flows/FlowsPersistenceAwsS3.ts"],"names":[],"mappings":"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"}