@minded-ai/mindedjs 1.0.0-ec2-beta-2 → 1.0.0-ec2-beta-3
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.
|
@@ -24,8 +24,6 @@ import sys
|
|
|
24
24
|
import logging
|
|
25
25
|
from datetime import datetime
|
|
26
26
|
from pathlib import Path
|
|
27
|
-
import boto3
|
|
28
|
-
from botocore.exceptions import ClientError
|
|
29
27
|
from dotenv import load_dotenv
|
|
30
28
|
|
|
31
29
|
load_dotenv()
|
|
@@ -49,6 +47,19 @@ class ScreenshotCapture:
|
|
|
49
47
|
def __init__(self, config: Optional[Dict[str, Any]] = None):
|
|
50
48
|
self.config = config or {}
|
|
51
49
|
|
|
50
|
+
# Import boto3 only when screenshot capture is needed
|
|
51
|
+
try:
|
|
52
|
+
import boto3
|
|
53
|
+
from botocore.exceptions import ClientError
|
|
54
|
+
self.boto3 = boto3
|
|
55
|
+
self.ClientError = ClientError
|
|
56
|
+
except ImportError:
|
|
57
|
+
raise ImportError(
|
|
58
|
+
"boto3 is required for screenshot capture. "
|
|
59
|
+
"Please install it with: uv pip install boto3 "
|
|
60
|
+
"or run: npx minded setup-local-operator"
|
|
61
|
+
)
|
|
62
|
+
|
|
52
63
|
# S3 configuration with defaults
|
|
53
64
|
self.s3_bucket = self.config.get('s3_bucket', os.getenv('SCREENSHOT_S3_BUCKET', 'global-development-agentsforce'))
|
|
54
65
|
self.s3_prefix = self.config.get('s3_prefix', os.getenv('SCREENSHOT_S3_PREFIX', 'browser-use-runs-screenshots/'))
|
|
@@ -64,7 +75,7 @@ class ScreenshotCapture:
|
|
|
64
75
|
self.session_id = self.config.get('session_id', datetime.now().strftime("%Y%m%d_%H%M%S_%f")[:-3])
|
|
65
76
|
|
|
66
77
|
# Initialize S3 client with region
|
|
67
|
-
self.s3_client = boto3.client('s3', region_name=self.aws_region)
|
|
78
|
+
self.s3_client = self.boto3.client('s3', region_name=self.aws_region)
|
|
68
79
|
|
|
69
80
|
# Track step counter
|
|
70
81
|
self.step_counter = 0
|
|
@@ -110,7 +121,7 @@ class ScreenshotCapture:
|
|
|
110
121
|
s3_url = f"s3://{self.s3_bucket}/{s3_key}"
|
|
111
122
|
logger.info(f"✅ Screenshot uploaded: {s3_url}")
|
|
112
123
|
|
|
113
|
-
except ClientError as e:
|
|
124
|
+
except self.ClientError as e:
|
|
114
125
|
logger.error(f"❌ Failed to upload screenshot to S3: {str(e)}")
|
|
115
126
|
# Continue execution even if screenshot upload fails
|
|
116
127
|
|
|
@@ -58,9 +58,9 @@ const REQUIRED_PACKAGES = [
|
|
|
58
58
|
checkCommand: 'python3.12 --version',
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
name: 'browser-use',
|
|
62
|
-
description: 'Browser automation library',
|
|
63
|
-
command: 'uv pip install browser-use',
|
|
61
|
+
name: 'browser-use & boto3',
|
|
62
|
+
description: 'Browser automation library and AWS S3 SDK for screenshots',
|
|
63
|
+
command: 'uv pip install browser-use boto3',
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
name: 'Playwright Chromium',
|
|
@@ -211,12 +211,12 @@ async function setupLocalOperator(skipPrompt = false) {
|
|
|
211
211
|
console.log('Creating Python virtual environment...');
|
|
212
212
|
(0, child_process_1.execSync)(`uv venv --python 3.12 ${VENV_DIR}`, { stdio: 'inherit' });
|
|
213
213
|
console.log('✓ Virtual environment created');
|
|
214
|
-
// Install browser-use in the venv
|
|
215
|
-
console.log('Installing browser-use
|
|
216
|
-
(0, child_process_1.execSync)(`uv pip install --python ${path.join(process.cwd(), VENV_DIR, 'bin', 'python')} browser-use`, {
|
|
214
|
+
// Install browser-use and boto3 in the venv
|
|
215
|
+
console.log('Installing browser-use and boto3 packages...');
|
|
216
|
+
(0, child_process_1.execSync)(`uv pip install --python ${path.join(process.cwd(), VENV_DIR, 'bin', 'python')} browser-use boto3`, {
|
|
217
217
|
stdio: 'inherit',
|
|
218
218
|
});
|
|
219
|
-
console.log('✓ browser-use installed');
|
|
219
|
+
console.log('✓ browser-use and boto3 installed');
|
|
220
220
|
// Install Playwright Chromium
|
|
221
221
|
console.log('Installing Playwright Chromium browser...');
|
|
222
222
|
(0, child_process_1.execSync)(`uvx playwright install chromium --with-deps`, { stdio: 'inherit' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localOperatorSetup.js","sourceRoot":"","sources":["../../src/cli/localOperatorSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,oDAMC;AA+FD,gDAsJC;AAED,gEAMC;AAED,kCAEC;AAED,wCAEC;AAnTD,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAgD;AAChD,mDAAqC;AAErC,MAAM,QAAQ,GAAG,OAAO,CAAC;AACzB,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AASzD,MAAM,iBAAiB,GAAmB;IACxC;QACE,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,iDAAiD;QAC1D,YAAY,EAAE,cAAc;KAC7B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,sBAAsB;QAC/B,YAAY,EAAE,sBAAsB;KACrC;IACD;QACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"localOperatorSetup.js","sourceRoot":"","sources":["../../src/cli/localOperatorSetup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -24,8 +24,6 @@ import sys
|
|
|
24
24
|
import logging
|
|
25
25
|
from datetime import datetime
|
|
26
26
|
from pathlib import Path
|
|
27
|
-
import boto3
|
|
28
|
-
from botocore.exceptions import ClientError
|
|
29
27
|
from dotenv import load_dotenv
|
|
30
28
|
|
|
31
29
|
load_dotenv()
|
|
@@ -49,6 +47,19 @@ class ScreenshotCapture:
|
|
|
49
47
|
def __init__(self, config: Optional[Dict[str, Any]] = None):
|
|
50
48
|
self.config = config or {}
|
|
51
49
|
|
|
50
|
+
# Import boto3 only when screenshot capture is needed
|
|
51
|
+
try:
|
|
52
|
+
import boto3
|
|
53
|
+
from botocore.exceptions import ClientError
|
|
54
|
+
self.boto3 = boto3
|
|
55
|
+
self.ClientError = ClientError
|
|
56
|
+
except ImportError:
|
|
57
|
+
raise ImportError(
|
|
58
|
+
"boto3 is required for screenshot capture. "
|
|
59
|
+
"Please install it with: uv pip install boto3 "
|
|
60
|
+
"or run: npx minded setup-local-operator"
|
|
61
|
+
)
|
|
62
|
+
|
|
52
63
|
# S3 configuration with defaults
|
|
53
64
|
self.s3_bucket = self.config.get('s3_bucket', os.getenv('SCREENSHOT_S3_BUCKET', 'global-development-agentsforce'))
|
|
54
65
|
self.s3_prefix = self.config.get('s3_prefix', os.getenv('SCREENSHOT_S3_PREFIX', 'browser-use-runs-screenshots/'))
|
|
@@ -64,7 +75,7 @@ class ScreenshotCapture:
|
|
|
64
75
|
self.session_id = self.config.get('session_id', datetime.now().strftime("%Y%m%d_%H%M%S_%f")[:-3])
|
|
65
76
|
|
|
66
77
|
# Initialize S3 client with region
|
|
67
|
-
self.s3_client = boto3.client('s3', region_name=self.aws_region)
|
|
78
|
+
self.s3_client = self.boto3.client('s3', region_name=self.aws_region)
|
|
68
79
|
|
|
69
80
|
# Track step counter
|
|
70
81
|
self.step_counter = 0
|
|
@@ -110,7 +121,7 @@ class ScreenshotCapture:
|
|
|
110
121
|
s3_url = f"s3://{self.s3_bucket}/{s3_key}"
|
|
111
122
|
logger.info(f"✅ Screenshot uploaded: {s3_url}")
|
|
112
123
|
|
|
113
|
-
except ClientError as e:
|
|
124
|
+
except self.ClientError as e:
|
|
114
125
|
logger.error(f"❌ Failed to upload screenshot to S3: {str(e)}")
|
|
115
126
|
# Continue execution even if screenshot upload fails
|
|
116
127
|
|
|
@@ -27,9 +27,9 @@ const REQUIRED_PACKAGES: SetupPackage[] = [
|
|
|
27
27
|
checkCommand: 'python3.12 --version',
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
name: 'browser-use',
|
|
31
|
-
description: 'Browser automation library',
|
|
32
|
-
command: 'uv pip install browser-use',
|
|
30
|
+
name: 'browser-use & boto3',
|
|
31
|
+
description: 'Browser automation library and AWS S3 SDK for screenshots',
|
|
32
|
+
command: 'uv pip install browser-use boto3',
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
name: 'Playwright Chromium',
|
|
@@ -200,12 +200,12 @@ export async function setupLocalOperator(skipPrompt: boolean = false): Promise<v
|
|
|
200
200
|
execSync(`uv venv --python 3.12 ${VENV_DIR}`, { stdio: 'inherit' });
|
|
201
201
|
console.log('✓ Virtual environment created');
|
|
202
202
|
|
|
203
|
-
// Install browser-use in the venv
|
|
204
|
-
console.log('Installing browser-use
|
|
205
|
-
execSync(`uv pip install --python ${path.join(process.cwd(), VENV_DIR, 'bin', 'python')} browser-use`, {
|
|
203
|
+
// Install browser-use and boto3 in the venv
|
|
204
|
+
console.log('Installing browser-use and boto3 packages...');
|
|
205
|
+
execSync(`uv pip install --python ${path.join(process.cwd(), VENV_DIR, 'bin', 'python')} browser-use boto3`, {
|
|
206
206
|
stdio: 'inherit',
|
|
207
207
|
});
|
|
208
|
-
console.log('✓ browser-use installed');
|
|
208
|
+
console.log('✓ browser-use and boto3 installed');
|
|
209
209
|
|
|
210
210
|
// Install Playwright Chromium
|
|
211
211
|
console.log('Installing Playwright Chromium browser...');
|