camel-ai 0.2.72a10__py3-none-any.whl → 0.2.73__py3-none-any.whl

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.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (52) hide show
  1. camel/__init__.py +1 -1
  2. camel/agents/chat_agent.py +140 -345
  3. camel/memories/agent_memories.py +18 -17
  4. camel/societies/__init__.py +2 -0
  5. camel/societies/workforce/prompts.py +36 -10
  6. camel/societies/workforce/single_agent_worker.py +7 -5
  7. camel/societies/workforce/workforce.py +6 -4
  8. camel/storages/key_value_storages/mem0_cloud.py +48 -47
  9. camel/storages/vectordb_storages/__init__.py +1 -0
  10. camel/storages/vectordb_storages/surreal.py +100 -150
  11. camel/toolkits/__init__.py +6 -1
  12. camel/toolkits/base.py +60 -2
  13. camel/toolkits/excel_toolkit.py +153 -64
  14. camel/toolkits/file_write_toolkit.py +67 -0
  15. camel/toolkits/hybrid_browser_toolkit/config_loader.py +136 -413
  16. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +131 -1966
  17. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +1177 -0
  18. camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +4356 -0
  19. camel/toolkits/hybrid_browser_toolkit/ts/package.json +33 -0
  20. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +125 -0
  21. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +945 -0
  22. camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +226 -0
  23. camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +522 -0
  24. camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +7 -0
  25. camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +110 -0
  26. camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +26 -0
  27. camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +254 -0
  28. camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +582 -0
  29. camel/toolkits/hybrid_browser_toolkit_py/__init__.py +17 -0
  30. camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +447 -0
  31. camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +2077 -0
  32. camel/toolkits/mcp_toolkit.py +341 -46
  33. camel/toolkits/message_integration.py +719 -0
  34. camel/toolkits/notion_mcp_toolkit.py +234 -0
  35. camel/toolkits/screenshot_toolkit.py +116 -31
  36. camel/toolkits/search_toolkit.py +20 -2
  37. camel/toolkits/slack_toolkit.py +43 -48
  38. camel/toolkits/terminal_toolkit.py +288 -46
  39. camel/toolkits/video_analysis_toolkit.py +13 -13
  40. camel/toolkits/video_download_toolkit.py +11 -11
  41. camel/toolkits/web_deploy_toolkit.py +207 -12
  42. camel/types/enums.py +6 -0
  43. {camel_ai-0.2.72a10.dist-info → camel_ai-0.2.73.dist-info}/METADATA +49 -9
  44. {camel_ai-0.2.72a10.dist-info → camel_ai-0.2.73.dist-info}/RECORD +52 -35
  45. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/actions.py +0 -0
  46. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/agent.py +0 -0
  47. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/browser_session.py +0 -0
  48. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/snapshot.py +0 -0
  49. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/stealth_script.js +0 -0
  50. /camel/toolkits/{hybrid_browser_toolkit → hybrid_browser_toolkit_py}/unified_analyzer.js +0 -0
  51. {camel_ai-0.2.72a10.dist-info → camel_ai-0.2.73.dist-info}/WHEEL +0 -0
  52. {camel_ai-0.2.72a10.dist-info → camel_ai-0.2.73.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,226 @@
1
+ export interface StealthConfig {
2
+ enabled: boolean;
3
+ args?: string[];
4
+ userAgent?: string;
5
+ extraHTTPHeaders?: Record<string, string>;
6
+ }
7
+
8
+ export interface BrowserConfig {
9
+ // Browser configuration
10
+ headless: boolean;
11
+ userDataDir?: string;
12
+ stealth: StealthConfig;
13
+
14
+ // Default settings
15
+ defaultStartUrl: string;
16
+
17
+ // Timeout configurations (in milliseconds)
18
+ defaultTimeout?: number;
19
+ shortTimeout?: number;
20
+ navigationTimeout: number;
21
+ networkIdleTimeout: number;
22
+ screenshotTimeout: number;
23
+ pageStabilityTimeout: number;
24
+ domContentLoadedTimeout: number;
25
+
26
+ // Action timeouts
27
+ popupTimeout: number;
28
+ clickTimeout: number;
29
+
30
+ // Tab management
31
+ tabIdPrefix: string;
32
+ tabCounterPadding: number;
33
+
34
+ // Scroll and positioning
35
+ scrollPositionScale: number;
36
+ navigationDelay: number;
37
+
38
+ // Page states and URLs
39
+ blankPageUrls: string[];
40
+ dataUrlPrefix: string;
41
+
42
+ // Wait states
43
+ domContentLoadedState: string;
44
+ networkIdleState: string;
45
+
46
+ // HTML attributes
47
+ targetAttribute: string;
48
+ hrefAttribute: string;
49
+ onclickAttribute: string;
50
+
51
+ // Target and navigation values
52
+ blankTarget: string;
53
+ windowOpenString: string;
54
+ javascriptVoidPrefix: string;
55
+ javascriptVoidEmpty: string;
56
+ anchorOnly: string;
57
+
58
+ // Action options
59
+ forceClick: boolean;
60
+ fullPageScreenshot: boolean;
61
+
62
+ // Keyboard keys
63
+ enterKey: string;
64
+
65
+ // Other options
66
+ useNativePlaywrightMapping: boolean;
67
+ viewport: {
68
+ width: number;
69
+ height: number;
70
+ };
71
+
72
+ // CDP connection options
73
+ connectOverCdp: boolean;
74
+ cdpUrl?: string;
75
+ }
76
+
77
+ export interface WebSocketConfig {
78
+ browser_log_to_file: boolean;
79
+ session_id?: string;
80
+ viewport_limit: boolean;
81
+ }
82
+
83
+ // Default stealth configuration
84
+ function getDefaultStealthConfig(): StealthConfig {
85
+ return {
86
+ enabled: false,
87
+ args: [
88
+ '--disable-blink-features=AutomationControlled',
89
+ '--disable-dev-shm-usage',
90
+ '--disable-features=VizDisplayCompositor',
91
+ '--no-first-run',
92
+ '--no-default-browser-check',
93
+ '--no-sandbox',
94
+ '--disable-setuid-sandbox',
95
+ ],
96
+ userAgent: undefined,
97
+ extraHTTPHeaders: {}
98
+ };
99
+ }
100
+
101
+ // Default configuration helper function
102
+ function getDefaultBrowserConfig(): BrowserConfig {
103
+ return {
104
+ headless: true,
105
+ stealth: getDefaultStealthConfig(),
106
+ defaultStartUrl: 'https://google.com/',
107
+ navigationTimeout: 30000,
108
+ networkIdleTimeout: 5000,
109
+ screenshotTimeout: 15000,
110
+ pageStabilityTimeout: 1500,
111
+ domContentLoadedTimeout: 5000,
112
+ popupTimeout: 5000,
113
+ clickTimeout: 3000,
114
+ tabIdPrefix: 'tab-',
115
+ tabCounterPadding: 3,
116
+ scrollPositionScale: 0.1,
117
+ navigationDelay: 100,
118
+ blankPageUrls: ['about:blank', ''],
119
+ dataUrlPrefix: 'data:',
120
+ domContentLoadedState: 'domcontentloaded',
121
+ networkIdleState: 'networkidle',
122
+ targetAttribute: 'target',
123
+ hrefAttribute: 'href',
124
+ onclickAttribute: 'onclick',
125
+ blankTarget: '_blank',
126
+ windowOpenString: 'window.open',
127
+ javascriptVoidPrefix: 'javascript:void',
128
+ javascriptVoidEmpty: 'javascript:;',
129
+ anchorOnly: '#',
130
+ forceClick: true,
131
+ fullPageScreenshot: false,
132
+ enterKey: 'Enter',
133
+ useNativePlaywrightMapping: true,
134
+ viewport: {
135
+ width: 1280,
136
+ height: 720
137
+ },
138
+ connectOverCdp: false,
139
+ cdpUrl: undefined
140
+ };
141
+ }
142
+
143
+ function getDefaultWebSocketConfig(): WebSocketConfig {
144
+ return {
145
+ browser_log_to_file: false,
146
+ viewport_limit: false
147
+ };
148
+ }
149
+
150
+ export class ConfigLoader {
151
+ private browserConfig: BrowserConfig;
152
+ private wsConfig: WebSocketConfig;
153
+
154
+ constructor(
155
+ browserConfig: Partial<BrowserConfig> = {},
156
+ wsConfig: Partial<WebSocketConfig> = {}
157
+ ) {
158
+ const defaultConfig = getDefaultBrowserConfig();
159
+ this.browserConfig = {
160
+ ...defaultConfig,
161
+ ...browserConfig,
162
+ stealth: {
163
+ ...defaultConfig.stealth,
164
+ ...(browserConfig.stealth || {})
165
+ }
166
+ };
167
+
168
+ this.wsConfig = {
169
+ ...getDefaultWebSocketConfig(),
170
+ ...wsConfig
171
+ };
172
+ }
173
+
174
+ getBrowserConfig(): BrowserConfig {
175
+ return { ...this.browserConfig };
176
+ }
177
+
178
+ getWebSocketConfig(): WebSocketConfig {
179
+ return { ...this.wsConfig };
180
+ }
181
+
182
+
183
+
184
+
185
+ // Merge from Python config format
186
+ static fromPythonConfig(config: any): ConfigLoader {
187
+ const browserConfig: Partial<BrowserConfig> = {};
188
+ const wsConfig: Partial<WebSocketConfig> = {};
189
+
190
+ // Map Python config to TypeScript config
191
+ if (config.headless !== undefined) browserConfig.headless = config.headless;
192
+ if (config.userDataDir !== undefined) browserConfig.userDataDir = config.userDataDir;
193
+ if (config.stealth !== undefined) {
194
+ // Handle both boolean and object formats for backward compatibility
195
+ if (typeof config.stealth === 'boolean') {
196
+ browserConfig.stealth = {
197
+ enabled: config.stealth,
198
+ args: getDefaultStealthConfig().args
199
+ };
200
+ } else {
201
+ browserConfig.stealth = config.stealth;
202
+ }
203
+ }
204
+ if (config.defaultStartUrl !== undefined) browserConfig.defaultStartUrl = config.defaultStartUrl;
205
+ if (config.navigationTimeout !== undefined) browserConfig.navigationTimeout = config.navigationTimeout;
206
+ if (config.networkIdleTimeout !== undefined) browserConfig.networkIdleTimeout = config.networkIdleTimeout;
207
+ if (config.screenshotTimeout !== undefined) browserConfig.screenshotTimeout = config.screenshotTimeout;
208
+ if (config.pageStabilityTimeout !== undefined) browserConfig.pageStabilityTimeout = config.pageStabilityTimeout;
209
+
210
+ if (config.browser_log_to_file !== undefined) wsConfig.browser_log_to_file = config.browser_log_to_file;
211
+ if (config.session_id !== undefined) wsConfig.session_id = config.session_id;
212
+ if (config.viewport_limit !== undefined) wsConfig.viewport_limit = config.viewport_limit;
213
+
214
+ // CDP connection options
215
+ if (config.connectOverCdp !== undefined) browserConfig.connectOverCdp = config.connectOverCdp;
216
+ if (config.cdpUrl !== undefined) browserConfig.cdpUrl = config.cdpUrl;
217
+
218
+ return new ConfigLoader(browserConfig, wsConfig);
219
+ }
220
+
221
+ // Get stealth configuration for browser launch
222
+ getStealthConfig(): StealthConfig {
223
+ return { ...this.browserConfig.stealth };
224
+ }
225
+
226
+ }