@minded-ai/mindedjs 1.0.136 → 1.0.138-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/browserTask/README.md +419 -0
  2. package/dist/browserTask/browserAgent.py +632 -0
  3. package/dist/browserTask/captcha_isolated.png +0 -0
  4. package/dist/browserTask/executeBrowserTask.ts +79 -0
  5. package/dist/browserTask/requirements.txt +8 -0
  6. package/dist/browserTask/setup.sh +144 -0
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +3 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/internalTools/retell.d.ts +12 -0
  12. package/dist/internalTools/retell.d.ts.map +1 -0
  13. package/dist/internalTools/retell.js +54 -0
  14. package/dist/internalTools/retell.js.map +1 -0
  15. package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
  16. package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
  17. package/dist/internalTools/sendPlaceholderMessage.js +61 -0
  18. package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
  19. package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -1
  20. package/dist/nodes/addBrowserTaskNode.js +50 -2
  21. package/dist/nodes/addBrowserTaskNode.js.map +1 -1
  22. package/dist/platform/mindedConnection.d.ts.map +1 -1
  23. package/dist/platform/mindedConnection.js +1 -0
  24. package/dist/platform/mindedConnection.js.map +1 -1
  25. package/dist/utils/logger.d.ts.map +1 -1
  26. package/dist/utils/logger.js +13 -6
  27. package/dist/utils/logger.js.map +1 -1
  28. package/docs/sdk/debugging.md +2 -0
  29. package/package.json +2 -2
  30. package/src/index.ts +2 -0
  31. package/src/nodes/addBrowserTaskNode.ts +56 -3
  32. package/src/platform/mindedConnection.ts +1 -0
  33. package/src/utils/logger.ts +17 -8
@@ -36,6 +36,8 @@ You can breakpoint and view the final prompt messages after compilation using `L
36
36
 
37
37
  ### Using the LLM Debug Callback Handler
38
38
 
39
+ The `LLMDebugCallbackHandler` can be imported directly from the main package:
40
+
39
41
  ```typescript
40
42
  import { Agent, LLMDebugCallbackHandler } from '@minded-ai/mindedjs';
41
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "1.0.136",
3
+ "version": "1.0.138-beta-1",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -67,4 +67,4 @@
67
67
  "zod": "^3.25.74",
68
68
  "zod-to-json-schema": "^3.24.6"
69
69
  }
70
- }
70
+ }
package/src/index.ts CHANGED
@@ -95,3 +95,5 @@ export type { ExtractionSchema, ExtractionConfig, ExtractionResult } from './too
95
95
  // Export event types
96
96
  export { AgentEvents } from './events/AgentEvents';
97
97
  export type { AgentEventRequestPayloads, AgentEventResponsePayloads } from './events/AgentEvents';
98
+
99
+ export { LLMDebugCallbackHandler } from './debugging';
@@ -54,7 +54,7 @@ export const addBrowserTaskNode = async ({ graph, node, agent, llm }: AddBrowser
54
54
  const zodSchema = z.object(schemaFields);
55
55
 
56
56
  // Create langchain tool
57
- const tool = langchainTool(() => { }, {
57
+ const tool = langchainTool(() => {}, {
58
58
  name: 'browser-task',
59
59
  description: node.prompt,
60
60
  schema: zodSchema,
@@ -95,8 +95,61 @@ ${compiledPrompt}
95
95
 
96
96
  ${Object.keys(inputParams).length > 0 ? `# Input parameters:\n${JSON.stringify(inputParams, null, 2)}\n\n` : ''}`;
97
97
 
98
- // Create browser session using socket
99
- const session = await createBrowserSession(node.proxy, node.onPrem);
98
+ // Create browser session using socket with retry logic
99
+ const maxRetries = 10;
100
+ const retryDelay = 1000; // 1 second delay between retries
101
+ let session;
102
+ let lastError;
103
+
104
+ logger.info({
105
+ msg: '🔄 Starting browser session creation with retries',
106
+ maxRetries,
107
+ retryDelayMs: retryDelay,
108
+ });
109
+
110
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
111
+ try {
112
+ logger.info({
113
+ msg: `🔄 Browser session creation attempt ${attempt + 1}/${maxRetries}`,
114
+ nodeDisplayName: node.displayName,
115
+ });
116
+
117
+ session = await createBrowserSession(node.proxy, node.onPrem);
118
+
119
+ // If successful, break out of the loop
120
+ logger.info({
121
+ msg: `✅ Browser session created successfully on attempt ${attempt + 1}`,
122
+ sessionId: session.sessionId,
123
+ hasLiveUrl: !!session.liveViewUrl,
124
+ });
125
+ break;
126
+ } catch (error: any) {
127
+ lastError = error;
128
+ logger.error({
129
+ msg: `❌ Browser session creation failed on attempt ${attempt + 1}`,
130
+ error: error.message,
131
+ attemptNumber: attempt + 1,
132
+ maxRetries,
133
+ });
134
+
135
+ if (attempt < maxRetries - 1) {
136
+ logger.info({
137
+ msg: `⏰ Waiting ${retryDelay}ms before retry...`,
138
+ nextAttempt: attempt + 2,
139
+ });
140
+ await new Promise((resolve) => setTimeout(resolve, retryDelay));
141
+ }
142
+ }
143
+ }
144
+
145
+ // If all retries failed, throw the last error
146
+ if (!session) {
147
+ logger.error({
148
+ msg: `🚫 All ${maxRetries} browser session creation attempts failed`,
149
+ lastError: lastError?.message,
150
+ });
151
+ throw new Error(`Failed to create browser session after ${maxRetries} attempts: ${lastError?.message || 'Unknown error'}`);
152
+ }
100
153
 
101
154
  if (!session.sessionId || !session.cdpUrl) {
102
155
  throw new Error('Failed to create browser session: missing session details');
@@ -87,6 +87,7 @@ const connect = async (token: string): Promise<void> => {
87
87
  return new Promise<void>((resolve, reject) => {
88
88
  socket = io(baseUrl, {
89
89
  path: '/minded-connect',
90
+ transports: ["websocket"],
90
91
  query: {
91
92
  isDeployedAgent: isDeployed,
92
93
  token,
@@ -2,18 +2,27 @@ import pino from 'pino';
2
2
  import dotenv from 'dotenv';
3
3
  dotenv.config();
4
4
 
5
+ // Determine if we're running on Minded Cloud
6
+ const isMindedCloud = process.env.MINDED_CLOUD === 'true' || process.env.IS_DEPLOYED_AGENT === 'true';
7
+
8
+ // Configure transport based on environment
9
+ // In Minded Cloud, use standard JSON output (no transport) for single-line logs
10
+ const transport = isMindedCloud
11
+ ? undefined
12
+ : {
13
+ target: 'pino-pretty',
14
+ options: {
15
+ colorize: true,
16
+ crlf: true,
17
+ translateTime: 'SYS:standard',
18
+ },
19
+ };
20
+
5
21
  // Create a Pino logger with a custom log format
6
22
  export const logger = pino({
7
23
  level: process.env.LOG_LEVEL || 'trace',
8
24
  base: null,
9
- transport: {
10
- target: 'pino-pretty',
11
- options: {
12
- colorize: true,
13
- crlf: true,
14
- translateTime: 'SYS:standard',
15
- },
16
- },
25
+ transport,
17
26
  formatters: {
18
27
  level(label) {
19
28
  return { level: label };