@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.
- package/dist/browserTask/README.md +419 -0
- package/dist/browserTask/browserAgent.py +632 -0
- package/dist/browserTask/captcha_isolated.png +0 -0
- package/dist/browserTask/executeBrowserTask.ts +79 -0
- package/dist/browserTask/requirements.txt +8 -0
- package/dist/browserTask/setup.sh +144 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internalTools/retell.d.ts +12 -0
- package/dist/internalTools/retell.d.ts.map +1 -0
- package/dist/internalTools/retell.js +54 -0
- package/dist/internalTools/retell.js.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
- package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -1
- package/dist/nodes/addBrowserTaskNode.js +50 -2
- package/dist/nodes/addBrowserTaskNode.js.map +1 -1
- package/dist/platform/mindedConnection.d.ts.map +1 -1
- package/dist/platform/mindedConnection.js +1 -0
- package/dist/platform/mindedConnection.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +13 -6
- package/dist/utils/logger.js.map +1 -1
- package/docs/sdk/debugging.md +2 -0
- package/package.json +2 -2
- package/src/index.ts +2 -0
- package/src/nodes/addBrowserTaskNode.ts +56 -3
- package/src/platform/mindedConnection.ts +1 -0
- package/src/utils/logger.ts +17 -8
package/docs/sdk/debugging.md
CHANGED
|
@@ -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.
|
|
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
|
|
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');
|
package/src/utils/logger.ts
CHANGED
|
@@ -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 };
|