@minded-ai/mindedjs 2.0.8-beta-1 → 2.0.8-beta-2
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/nodes/addRpaNode.d.ts +3 -1
- package/dist/nodes/addRpaNode.d.ts.map +1 -1
- package/dist/nodes/addRpaNode.js +85 -11
- package/dist/nodes/addRpaNode.js.map +1 -1
- package/dist/nodes/nodeFactory.js +1 -1
- package/dist/nodes/nodeFactory.js.map +1 -1
- package/dist/types/Flows.types.d.ts +13 -2
- package/dist/types/Flows.types.d.ts.map +1 -1
- package/dist/types/Flows.types.js +1 -1
- package/dist/types/Flows.types.js.map +1 -1
- package/package.json +1 -1
- package/src/nodes/addRpaNode.ts +95 -11
- package/src/nodes/nodeFactory.ts +1 -1
- package/src/types/Flows.types.ts +12 -1
|
@@ -4,13 +4,15 @@ import { Tool } from '../types/Tools.types';
|
|
|
4
4
|
import { AgentEventRequestPayloads } from '../events/AgentEvents';
|
|
5
5
|
import { EmitSignature } from '../types/Agent.types';
|
|
6
6
|
import { Agent } from '../agent';
|
|
7
|
+
import { LLMProviders } from '../types/LLM.types';
|
|
7
8
|
type AddRpaNodeParams = {
|
|
8
9
|
graph: PreCompiledGraph;
|
|
9
10
|
node: RpaNode;
|
|
10
11
|
tools: Tool<any, any>[];
|
|
11
12
|
emit: EmitSignature<any, keyof AgentEventRequestPayloads<any>>;
|
|
12
13
|
agent: Agent;
|
|
14
|
+
llm: (typeof LLMProviders)[keyof typeof LLMProviders];
|
|
13
15
|
};
|
|
14
|
-
export declare const addRpaNode: ({ graph, node, tools, emit, agent }: AddRpaNodeParams) => Promise<void>;
|
|
16
|
+
export declare const addRpaNode: ({ graph, node, tools, emit, agent, llm }: AddRpaNodeParams) => Promise<void>;
|
|
15
17
|
export {};
|
|
16
18
|
//# sourceMappingURL=addRpaNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addRpaNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addRpaNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"addRpaNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addRpaNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,UAAU,6CAAoD,gBAAgB,kBAqH1F,CAAC"}
|
package/dist/nodes/addRpaNode.js
CHANGED
|
@@ -5,7 +5,7 @@ const Flows_types_1 = require("../types/Flows.types");
|
|
|
5
5
|
const logger_1 = require("../utils/logger");
|
|
6
6
|
const history_1 = require("../utils/history");
|
|
7
7
|
const playwright_1 = require("playwright");
|
|
8
|
-
const addRpaNode = async ({ graph, node, tools, emit, agent }) => {
|
|
8
|
+
const addRpaNode = async ({ graph, node, tools, emit, agent, llm }) => {
|
|
9
9
|
const callback = async (state) => {
|
|
10
10
|
await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
|
|
11
11
|
logger_1.logger.info({ msg: `[Node] Executing RPA node`, node: node.displayName, sessionId: state.sessionId });
|
|
@@ -47,7 +47,7 @@ const addRpaNode = async ({ graph, node, tools, emit, agent }) => {
|
|
|
47
47
|
node: node.displayName,
|
|
48
48
|
});
|
|
49
49
|
try {
|
|
50
|
-
const result = await executeRpaStep(page, step);
|
|
50
|
+
const result = await executeRpaStep(page, step, llm);
|
|
51
51
|
results.push({
|
|
52
52
|
stepIndex: index + 1,
|
|
53
53
|
type: step.type,
|
|
@@ -110,7 +110,8 @@ const addRpaNode = async ({ graph, node, tools, emit, agent }) => {
|
|
|
110
110
|
};
|
|
111
111
|
exports.addRpaNode = addRpaNode;
|
|
112
112
|
// Helper function to execute individual RPA steps
|
|
113
|
-
async function executeRpaStep(page, step) {
|
|
113
|
+
async function executeRpaStep(page, step, llm) {
|
|
114
|
+
var _a, _b;
|
|
114
115
|
switch (step.type) {
|
|
115
116
|
case Flows_types_1.RpaActionType.CLICK:
|
|
116
117
|
if (step.xpath) {
|
|
@@ -155,14 +156,6 @@ async function executeRpaStep(page, step) {
|
|
|
155
156
|
await page.selectOption(step.selector, step.value || '');
|
|
156
157
|
}
|
|
157
158
|
return { action: 'selected', value: step.value };
|
|
158
|
-
case Flows_types_1.RpaActionType.HOVER:
|
|
159
|
-
if (step.xpath) {
|
|
160
|
-
await page.locator(`xpath=${step.xpath}`).hover();
|
|
161
|
-
}
|
|
162
|
-
else if (step.selector) {
|
|
163
|
-
await page.hover(step.selector);
|
|
164
|
-
}
|
|
165
|
-
return { action: 'hovered' };
|
|
166
159
|
case Flows_types_1.RpaActionType.SCREENSHOT:
|
|
167
160
|
const screenshot = await page.screenshot({ type: 'png' });
|
|
168
161
|
return {
|
|
@@ -170,6 +163,87 @@ async function executeRpaStep(page, step) {
|
|
|
170
163
|
description: step.description,
|
|
171
164
|
data: screenshot.toString('base64'),
|
|
172
165
|
};
|
|
166
|
+
case Flows_types_1.RpaActionType.EXTRACT_DATA: {
|
|
167
|
+
if (!llm) {
|
|
168
|
+
throw new Error('LLM is required for EXTRACT_DATA action');
|
|
169
|
+
}
|
|
170
|
+
// Get the page content for extraction
|
|
171
|
+
const pageContent = await page.content();
|
|
172
|
+
const url = page.url();
|
|
173
|
+
// Prepare the output schema description for the LLM
|
|
174
|
+
const schemaDescription = (_a = step.outputSchema) === null || _a === void 0 ? void 0 : _a.map((field) => {
|
|
175
|
+
let desc = `- ${field.name} (${field.type})`;
|
|
176
|
+
if (field.description)
|
|
177
|
+
desc += `: ${field.description}`;
|
|
178
|
+
if (field.required)
|
|
179
|
+
desc += ' [REQUIRED]';
|
|
180
|
+
return desc;
|
|
181
|
+
}).join('\n');
|
|
182
|
+
// Create a JSON schema for structured output
|
|
183
|
+
const jsonSchema = {
|
|
184
|
+
type: 'object',
|
|
185
|
+
properties: {},
|
|
186
|
+
required: [],
|
|
187
|
+
};
|
|
188
|
+
(_b = step.outputSchema) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
|
|
189
|
+
const fieldSchema = { type: field.type };
|
|
190
|
+
if (field.description)
|
|
191
|
+
fieldSchema.description = field.description;
|
|
192
|
+
if (field.type === 'array' && field.items) {
|
|
193
|
+
fieldSchema.items = field.items;
|
|
194
|
+
}
|
|
195
|
+
else if (field.type === 'object' && field.properties) {
|
|
196
|
+
fieldSchema.properties = field.properties;
|
|
197
|
+
}
|
|
198
|
+
jsonSchema.properties[field.name] = fieldSchema;
|
|
199
|
+
if (field.required) {
|
|
200
|
+
jsonSchema.required.push(field.name);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
const prompt = `Extract data from the following web page according to the specified schema.
|
|
204
|
+
|
|
205
|
+
URL: ${url}
|
|
206
|
+
|
|
207
|
+
OUTPUT SCHEMA:
|
|
208
|
+
${schemaDescription}
|
|
209
|
+
|
|
210
|
+
WEB PAGE CONTENT:
|
|
211
|
+
${pageContent}
|
|
212
|
+
|
|
213
|
+
Extract the requested data and return it as a JSON object matching the schema. If a field cannot be found or extracted, use null for optional fields or provide a reasonable default for required fields.`;
|
|
214
|
+
try {
|
|
215
|
+
// Use the LLM to extract data with structured output
|
|
216
|
+
const messages = [
|
|
217
|
+
{
|
|
218
|
+
role: 'user',
|
|
219
|
+
content: prompt,
|
|
220
|
+
},
|
|
221
|
+
];
|
|
222
|
+
const response = await llm.invoke(messages, {
|
|
223
|
+
response_format: {
|
|
224
|
+
type: 'json_object',
|
|
225
|
+
schema: jsonSchema,
|
|
226
|
+
},
|
|
227
|
+
temperature: 0.1,
|
|
228
|
+
model: 'gpt-4o-mini',
|
|
229
|
+
});
|
|
230
|
+
// Parse the response content
|
|
231
|
+
const extractedData = typeof response.content === 'string' ? JSON.parse(response.content) : response.content;
|
|
232
|
+
return {
|
|
233
|
+
action: 'extract_data',
|
|
234
|
+
url,
|
|
235
|
+
data: extractedData,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
logger_1.logger.error({
|
|
240
|
+
msg: '[RPA] Failed to extract data',
|
|
241
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
242
|
+
url,
|
|
243
|
+
});
|
|
244
|
+
throw error;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
173
247
|
default:
|
|
174
248
|
throw new Error(`Unknown RPA action type: ${step.type}`);
|
|
175
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addRpaNode.js","sourceRoot":"","sources":["../../src/nodes/addRpaNode.ts"],"names":[],"mappings":";;;AACA,sDAAwE;AAMxE,4CAAyC;AACzC,8CAAqD;AACrD,2CAAqD;
|
|
1
|
+
{"version":3,"file":"addRpaNode.js","sourceRoot":"","sources":["../../src/nodes/addRpaNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const nodeFactory = ({ graph, node, tools, llm, emit, agent, }) => {
|
|
|
35
35
|
(0, addBrowserTaskNode_1.addBrowserTaskNode)({ graph, node, agent, llm });
|
|
36
36
|
break;
|
|
37
37
|
case Flows_types_1.NodeType.RPA:
|
|
38
|
-
(0, addRpaNode_1.addRpaNode)({ graph, node, tools, emit, agent });
|
|
38
|
+
(0, addRpaNode_1.addRpaNode)({ graph, node, tools, emit, agent, llm });
|
|
39
39
|
break;
|
|
40
40
|
default:
|
|
41
41
|
throw new Error(`Unsupported node type: ${nodeType}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeFactory.js","sourceRoot":"","sources":["../../src/nodes/nodeFactory.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAGtD,+CAA4C;AAC5C,mDAAgD;AAGhD,qDAAkD;AAClD,qDAAkD;AAGlD,mDAAgD;AAChD,uDAAoD;AACpD,6DAA0D;AAC1D,6CAA0C;AAEnC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,GAQN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,sBAAQ,CAAC,OAAO;YACnB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,sBAAQ,CAAC,IAAI;YAChB,IAAA,yBAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,iCAAe,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,sBAAQ,CAAC,WAAW;YACvB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,uCAAkB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,GAAG;YACf,IAAA,uBAAU,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"nodeFactory.js","sourceRoot":"","sources":["../../src/nodes/nodeFactory.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAGtD,+CAA4C;AAC5C,mDAAgD;AAGhD,qDAAkD;AAClD,qDAAkD;AAGlD,mDAAgD;AAChD,uDAAoD;AACpD,6DAA0D;AAC1D,6CAA0C;AAEnC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,GAQN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,sBAAQ,CAAC,OAAO;YACnB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,sBAAQ,CAAC,IAAI;YAChB,IAAA,yBAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,iCAAe,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,sBAAQ,CAAC,WAAW;YACvB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,uCAAkB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,GAAG;YACf,IAAA,uBAAU,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AA5CW,QAAA,WAAW,eA4CtB"}
|
|
@@ -118,9 +118,9 @@ export declare enum RpaActionType {
|
|
|
118
118
|
WAIT = "wait",
|
|
119
119
|
SCREENSHOT = "screenshot",
|
|
120
120
|
SELECT = "select",
|
|
121
|
-
HOVER = "hover",
|
|
122
121
|
PRESS = "press",
|
|
123
|
-
GOTO = "goto"
|
|
122
|
+
GOTO = "goto",
|
|
123
|
+
EXTRACT_DATA = "extract_data"
|
|
124
124
|
}
|
|
125
125
|
export interface RpaStep {
|
|
126
126
|
id: string;
|
|
@@ -134,6 +134,17 @@ export interface RpaStep {
|
|
|
134
134
|
shouldReplaceExistingText?: boolean;
|
|
135
135
|
waitTime?: number;
|
|
136
136
|
description?: string;
|
|
137
|
+
outputSchema?: {
|
|
138
|
+
name: string;
|
|
139
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
140
|
+
description?: string;
|
|
141
|
+
required?: boolean;
|
|
142
|
+
items?: {
|
|
143
|
+
type: 'string' | 'number' | 'boolean' | 'object';
|
|
144
|
+
properties?: any;
|
|
145
|
+
};
|
|
146
|
+
properties?: any;
|
|
147
|
+
}[];
|
|
137
148
|
}
|
|
138
149
|
export interface RpaNode extends BaseNode {
|
|
139
150
|
type: NodeType.RPA;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flows.types.d.ts","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Flows.types.d.ts","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,9 @@ var RpaActionType;
|
|
|
33
33
|
RpaActionType["WAIT"] = "wait";
|
|
34
34
|
RpaActionType["SCREENSHOT"] = "screenshot";
|
|
35
35
|
RpaActionType["SELECT"] = "select";
|
|
36
|
-
RpaActionType["HOVER"] = "hover";
|
|
37
36
|
RpaActionType["PRESS"] = "press";
|
|
38
37
|
RpaActionType["GOTO"] = "goto";
|
|
38
|
+
RpaActionType["EXTRACT_DATA"] = "extract_data";
|
|
39
39
|
})(RpaActionType || (exports.RpaActionType = RpaActionType = {}));
|
|
40
40
|
var AppNodeMetadataType;
|
|
41
41
|
(function (AppNodeMetadataType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flows.types.js","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,gCAAoB,CAAA;IACpB,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,wCAA4B,CAAA;IAC5B,uBAAW,CAAA;AACb,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,kDAAsC,CAAA;IACtC,gDAAoC,CAAA;IACpC,wCAA4B,CAAA;AAC9B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAWD,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,sCAAuB,CAAA;AACzB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAyFD,IAAY,aASX;AATD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,
|
|
1
|
+
{"version":3,"file":"Flows.types.js","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,gCAAoB,CAAA;IACpB,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,wCAA4B,CAAA;IAC5B,uBAAW,CAAA;AACb,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,kDAAsC,CAAA;IACtC,gDAAoC,CAAA;IACpC,wCAA4B,CAAA;AAC9B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAWD,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,sCAAuB,CAAA;AACzB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAyFD,IAAY,aASX;AATD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,8CAA6B,CAAA;AAC/B,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAmFD,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,2CAAoB,CAAA;AACtB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAsBD,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,uCAAe,CAAA;IACf,yCAAiB,CAAA;IACjB,mCAAW,CAAA;AACb,CAAC,EAPW,oBAAoB,oCAApB,oBAAoB,QAO/B;AAQD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;IACvC,oDAA+B,CAAA;AACjC,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,4DAAqC,CAAA;IACrC,4CAAqB,CAAA;IACrB,2DAAoC,CAAA;AACtC,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
|
package/package.json
CHANGED
package/src/nodes/addRpaNode.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { Agent } from '../agent';
|
|
|
8
8
|
import { logger } from '../utils/logger';
|
|
9
9
|
import { createHistoryStep } from '../utils/history';
|
|
10
10
|
import { chromium, Browser, Page } from 'playwright';
|
|
11
|
+
import { LLMProviders } from '../types/LLM.types';
|
|
11
12
|
|
|
12
13
|
type AddRpaNodeParams = {
|
|
13
14
|
graph: PreCompiledGraph;
|
|
@@ -15,9 +16,10 @@ type AddRpaNodeParams = {
|
|
|
15
16
|
tools: Tool<any, any>[];
|
|
16
17
|
emit: EmitSignature<any, keyof AgentEventRequestPayloads<any>>;
|
|
17
18
|
agent: Agent;
|
|
19
|
+
llm: (typeof LLMProviders)[keyof typeof LLMProviders];
|
|
18
20
|
};
|
|
19
21
|
|
|
20
|
-
export const addRpaNode = async ({ graph, node, tools, emit, agent }: AddRpaNodeParams) => {
|
|
22
|
+
export const addRpaNode = async ({ graph, node, tools, emit, agent, llm }: AddRpaNodeParams) => {
|
|
21
23
|
const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
|
|
22
24
|
await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
|
|
23
25
|
logger.info({ msg: `[Node] Executing RPA node`, node: node.displayName, sessionId: state.sessionId });
|
|
@@ -67,7 +69,7 @@ export const addRpaNode = async ({ graph, node, tools, emit, agent }: AddRpaNode
|
|
|
67
69
|
});
|
|
68
70
|
|
|
69
71
|
try {
|
|
70
|
-
const result = await executeRpaStep(page, step);
|
|
72
|
+
const result = await executeRpaStep(page, step, llm);
|
|
71
73
|
results.push({
|
|
72
74
|
stepIndex: index + 1,
|
|
73
75
|
type: step.type,
|
|
@@ -137,7 +139,7 @@ export const addRpaNode = async ({ graph, node, tools, emit, agent }: AddRpaNode
|
|
|
137
139
|
};
|
|
138
140
|
|
|
139
141
|
// Helper function to execute individual RPA steps
|
|
140
|
-
async function executeRpaStep(page: Page, step: any): Promise<any> {
|
|
142
|
+
async function executeRpaStep(page: Page, step: any, llm?: (typeof LLMProviders)[keyof typeof LLMProviders]): Promise<any> {
|
|
141
143
|
switch (step.type) {
|
|
142
144
|
case RpaActionType.CLICK:
|
|
143
145
|
if (step.xpath) {
|
|
@@ -183,14 +185,6 @@ async function executeRpaStep(page: Page, step: any): Promise<any> {
|
|
|
183
185
|
}
|
|
184
186
|
return { action: 'selected', value: step.value };
|
|
185
187
|
|
|
186
|
-
case RpaActionType.HOVER:
|
|
187
|
-
if (step.xpath) {
|
|
188
|
-
await page.locator(`xpath=${step.xpath}`).hover();
|
|
189
|
-
} else if (step.selector) {
|
|
190
|
-
await page.hover(step.selector);
|
|
191
|
-
}
|
|
192
|
-
return { action: 'hovered' };
|
|
193
|
-
|
|
194
188
|
case RpaActionType.SCREENSHOT:
|
|
195
189
|
const screenshot = await page.screenshot({ type: 'png' });
|
|
196
190
|
return {
|
|
@@ -199,6 +193,96 @@ async function executeRpaStep(page: Page, step: any): Promise<any> {
|
|
|
199
193
|
data: screenshot.toString('base64'),
|
|
200
194
|
};
|
|
201
195
|
|
|
196
|
+
case RpaActionType.EXTRACT_DATA: {
|
|
197
|
+
if (!llm) {
|
|
198
|
+
throw new Error('LLM is required for EXTRACT_DATA action');
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Get the page content for extraction
|
|
202
|
+
const pageContent = await page.content();
|
|
203
|
+
const url = page.url();
|
|
204
|
+
|
|
205
|
+
// Prepare the output schema description for the LLM
|
|
206
|
+
const schemaDescription = step.outputSchema
|
|
207
|
+
?.map((field: any) => {
|
|
208
|
+
let desc = `- ${field.name} (${field.type})`;
|
|
209
|
+
if (field.description) desc += `: ${field.description}`;
|
|
210
|
+
if (field.required) desc += ' [REQUIRED]';
|
|
211
|
+
return desc;
|
|
212
|
+
})
|
|
213
|
+
.join('\n');
|
|
214
|
+
|
|
215
|
+
// Create a JSON schema for structured output
|
|
216
|
+
const jsonSchema: any = {
|
|
217
|
+
type: 'object',
|
|
218
|
+
properties: {},
|
|
219
|
+
required: [],
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
step.outputSchema?.forEach((field: any) => {
|
|
223
|
+
const fieldSchema: any = { type: field.type };
|
|
224
|
+
if (field.description) fieldSchema.description = field.description;
|
|
225
|
+
|
|
226
|
+
if (field.type === 'array' && field.items) {
|
|
227
|
+
fieldSchema.items = field.items;
|
|
228
|
+
} else if (field.type === 'object' && field.properties) {
|
|
229
|
+
fieldSchema.properties = field.properties;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
jsonSchema.properties[field.name] = fieldSchema;
|
|
233
|
+
if (field.required) {
|
|
234
|
+
jsonSchema.required.push(field.name);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
const prompt = `Extract data from the following web page according to the specified schema.
|
|
239
|
+
|
|
240
|
+
URL: ${url}
|
|
241
|
+
|
|
242
|
+
OUTPUT SCHEMA:
|
|
243
|
+
${schemaDescription}
|
|
244
|
+
|
|
245
|
+
WEB PAGE CONTENT:
|
|
246
|
+
${pageContent}
|
|
247
|
+
|
|
248
|
+
Extract the requested data and return it as a JSON object matching the schema. If a field cannot be found or extracted, use null for optional fields or provide a reasonable default for required fields.`;
|
|
249
|
+
|
|
250
|
+
try {
|
|
251
|
+
// Use the LLM to extract data with structured output
|
|
252
|
+
const messages = [
|
|
253
|
+
{
|
|
254
|
+
role: 'user' as const,
|
|
255
|
+
content: prompt,
|
|
256
|
+
},
|
|
257
|
+
];
|
|
258
|
+
|
|
259
|
+
const response = await llm.invoke(messages, {
|
|
260
|
+
response_format: {
|
|
261
|
+
type: 'json_object' as const,
|
|
262
|
+
schema: jsonSchema,
|
|
263
|
+
},
|
|
264
|
+
temperature: 0.1,
|
|
265
|
+
model: 'gpt-4o-mini',
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// Parse the response content
|
|
269
|
+
const extractedData = typeof response.content === 'string' ? JSON.parse(response.content) : response.content;
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
action: 'extract_data',
|
|
273
|
+
url,
|
|
274
|
+
data: extractedData,
|
|
275
|
+
};
|
|
276
|
+
} catch (error) {
|
|
277
|
+
logger.error({
|
|
278
|
+
msg: '[RPA] Failed to extract data',
|
|
279
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
280
|
+
url,
|
|
281
|
+
});
|
|
282
|
+
throw error;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
202
286
|
default:
|
|
203
287
|
throw new Error(`Unknown RPA action type: ${step.type}`);
|
|
204
288
|
}
|
package/src/nodes/nodeFactory.ts
CHANGED
|
@@ -53,7 +53,7 @@ export const nodeFactory = ({
|
|
|
53
53
|
addBrowserTaskNode({ graph, node, agent, llm });
|
|
54
54
|
break;
|
|
55
55
|
case NodeType.RPA:
|
|
56
|
-
addRpaNode({ graph, node, tools, emit, agent });
|
|
56
|
+
addRpaNode({ graph, node, tools, emit, agent, llm });
|
|
57
57
|
break;
|
|
58
58
|
default:
|
|
59
59
|
throw new Error(`Unsupported node type: ${nodeType}`);
|
package/src/types/Flows.types.ts
CHANGED
|
@@ -131,9 +131,9 @@ export enum RpaActionType {
|
|
|
131
131
|
WAIT = 'wait',
|
|
132
132
|
SCREENSHOT = 'screenshot',
|
|
133
133
|
SELECT = 'select',
|
|
134
|
-
HOVER = 'hover',
|
|
135
134
|
PRESS = 'press',
|
|
136
135
|
GOTO = 'goto',
|
|
136
|
+
EXTRACT_DATA = 'extract_data',
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
export interface RpaStep {
|
|
@@ -148,6 +148,17 @@ export interface RpaStep {
|
|
|
148
148
|
shouldReplaceExistingText?: boolean;
|
|
149
149
|
waitTime?: number;
|
|
150
150
|
description?: string;
|
|
151
|
+
outputSchema?: {
|
|
152
|
+
name: string;
|
|
153
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
154
|
+
description?: string;
|
|
155
|
+
required?: boolean;
|
|
156
|
+
items?: {
|
|
157
|
+
type: 'string' | 'number' | 'boolean' | 'object';
|
|
158
|
+
properties?: any;
|
|
159
|
+
};
|
|
160
|
+
properties?: any;
|
|
161
|
+
}[];
|
|
151
162
|
}
|
|
152
163
|
|
|
153
164
|
export interface RpaNode extends BaseNode {
|