@bini-bar-labs/atomic-web-agent-core 1.0.0
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/LICENSE +15 -0
- package/README.md +153 -0
- package/dist/AWAgent/AWAgent.d.ts +35 -0
- package/dist/AWAgent/AWAgent.d.ts.map +1 -0
- package/dist/AWAgent/AWAgent.js +115 -0
- package/dist/AWAgent/AWAgent.js.map +1 -0
- package/dist/AWAgent/AWAgent.types.d.ts +3 -0
- package/dist/AWAgent/AWAgent.types.d.ts.map +1 -0
- package/dist/AWAgent/AWAgent.types.js +2 -0
- package/dist/AWAgent/AWAgent.types.js.map +1 -0
- package/dist/AWAgent/middlewares/logging-calls.middleware.d.ts +2 -0
- package/dist/AWAgent/middlewares/logging-calls.middleware.d.ts.map +1 -0
- package/dist/AWAgent/middlewares/logging-calls.middleware.js +17 -0
- package/dist/AWAgent/middlewares/logging-calls.middleware.js.map +1 -0
- package/dist/AWAgent/middlewares/trim-messages-history.middleware.d.ts +2 -0
- package/dist/AWAgent/middlewares/trim-messages-history.middleware.d.ts.map +1 -0
- package/dist/AWAgent/middlewares/trim-messages-history.middleware.js +11 -0
- package/dist/AWAgent/middlewares/trim-messages-history.middleware.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/click-by-element-id.tool.d.ts +14 -0
- package/dist/tools/click-by-element-id.tool.d.ts.map +1 -0
- package/dist/tools/click-by-element-id.tool.js +32 -0
- package/dist/tools/click-by-element-id.tool.js.map +1 -0
- package/dist/tools/click-by-position.tool.d.ts +17 -0
- package/dist/tools/click-by-position.tool.d.ts.map +1 -0
- package/dist/tools/click-by-position.tool.js +18 -0
- package/dist/tools/click-by-position.tool.js.map +1 -0
- package/dist/tools/click-by-selector.tool.d.ts +13 -0
- package/dist/tools/click-by-selector.tool.d.ts.map +1 -0
- package/dist/tools/click-by-selector.tool.js +17 -0
- package/dist/tools/click-by-selector.tool.js.map +1 -0
- package/dist/tools/get-DOM-snapshot.tool.d.ts +4 -0
- package/dist/tools/get-DOM-snapshot.tool.d.ts.map +1 -0
- package/dist/tools/get-DOM-snapshot.tool.js +26 -0
- package/dist/tools/get-DOM-snapshot.tool.js.map +1 -0
- package/dist/tools/get-page-screenshot.tool.d.ts +3 -0
- package/dist/tools/get-page-screenshot.tool.d.ts.map +1 -0
- package/dist/tools/get-page-screenshot.tool.js +13 -0
- package/dist/tools/get-page-screenshot.tool.js.map +1 -0
- package/dist/tools/input-by-element-id.tool.d.ts +18 -0
- package/dist/tools/input-by-element-id.tool.d.ts.map +1 -0
- package/dist/tools/input-by-element-id.tool.js +39 -0
- package/dist/tools/input-by-element-id.tool.js.map +1 -0
- package/dist/tools/input.tool.d.ts +17 -0
- package/dist/tools/input.tool.d.ts.map +1 -0
- package/dist/tools/input.tool.js +21 -0
- package/dist/tools/input.tool.js.map +1 -0
- package/dist/tools/navigate.tool.d.ts +10 -0
- package/dist/tools/navigate.tool.d.ts.map +1 -0
- package/dist/tools/navigate.tool.js +16 -0
- package/dist/tools/navigate.tool.js.map +1 -0
- package/dist/tools/print-to-console.tool.d.ts +12 -0
- package/dist/tools/print-to-console.tool.d.ts.map +1 -0
- package/dist/tools/print-to-console.tool.js +16 -0
- package/dist/tools/print-to-console.tool.js.map +1 -0
- package/dist/tools/utils/accessibility-snapshot.util.d.ts +34 -0
- package/dist/tools/utils/accessibility-snapshot.util.d.ts.map +1 -0
- package/dist/tools/utils/accessibility-snapshot.util.js +244 -0
- package/dist/tools/utils/accessibility-snapshot.util.js.map +1 -0
- package/dist/tools/utils/element-registry.util.d.ts +39 -0
- package/dist/tools/utils/element-registry.util.d.ts.map +1 -0
- package/dist/tools/utils/element-registry.util.js +55 -0
- package/dist/tools/utils/element-registry.util.js.map +1 -0
- package/dist/tools/utils/minimize-snapshot.util.d.ts +2 -0
- package/dist/tools/utils/minimize-snapshot.util.d.ts.map +1 -0
- package/dist/tools/utils/minimize-snapshot.util.js +43 -0
- package/dist/tools/utils/minimize-snapshot.util.js.map +1 -0
- package/dist/tools/wait.tool.d.ts +12 -0
- package/dist/tools/wait.tool.d.ts.map +1 -0
- package/dist/tools/wait.tool.js +16 -0
- package/dist/tools/wait.tool.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Create a DOM-like structure using basic parsing
|
|
2
|
+
export function minimizeSnapshot(htmlContent) {
|
|
3
|
+
let result = htmlContent;
|
|
4
|
+
// 1. Remove inline styles but keep data- attributes
|
|
5
|
+
result = result.replace(/\s+style="[^"]*"/g, "");
|
|
6
|
+
// 2. Simplify SVG elements - replace entire SVG with a marker
|
|
7
|
+
result = result.replace(/<svg[^>]*>[\s\S]*?<\/svg>/g, "<svg/>");
|
|
8
|
+
// 3. Remove multiple consecutive spaces
|
|
9
|
+
result = result.replace(/\s{2,}/g, " ");
|
|
10
|
+
// 4. Remove newlines between tags
|
|
11
|
+
result = result.replace(/>\s+</g, "><");
|
|
12
|
+
// 5. Remove empty class attributes
|
|
13
|
+
result = result.replace(/\s+class=""/g, "");
|
|
14
|
+
// 6. Remove opacity, transform, and animation-delay attributes
|
|
15
|
+
result = result.replace(/\s+opacity="[^"]*"/g, "");
|
|
16
|
+
result = result.replace(/\s+transform="[^"]*"/g, "");
|
|
17
|
+
result = result.replace(/\s+animation-delay="[^"]*"/g, "");
|
|
18
|
+
// 9. Keep only essential data attributes, remove verbose ones
|
|
19
|
+
result = result.replace(/\s+data-with-fill="[^"]*"/g, "");
|
|
20
|
+
result = result.replace(/\s+data-with-stroke="[^"]*"/g, "");
|
|
21
|
+
result = result.replace(/\s+font-size="[^"]*"/g, "");
|
|
22
|
+
result = result.replace(/\s+viewBox="[^"]*"/g, "");
|
|
23
|
+
result = result.replace(/\s+xmlns="[^"]*"/g, "");
|
|
24
|
+
result = result.replace(/\s+width="[^"]*"/g, "");
|
|
25
|
+
result = result.replace(/\s+height="[^"]*"/g, "");
|
|
26
|
+
result = result.replace(/\s+fill="[^"]*"/g, "");
|
|
27
|
+
result = result.replace(/\s+stroke="[^"]*"/g, "");
|
|
28
|
+
result = result.replace(/\s+stroke-width="[^"]*"/g, "");
|
|
29
|
+
result = result.replace(/\s+stroke-linecap="[^"]*"/g, "");
|
|
30
|
+
result = result.replace(/\s+color="[^"]*"/g, "");
|
|
31
|
+
// 10. Remove background-image URLs (can be large)
|
|
32
|
+
result = result.replace(/background-image:\s*url\([^)]*\);?/g, "");
|
|
33
|
+
// 11. Remove transition and opacity from style tags if any remain
|
|
34
|
+
result = result.replace(/transition:\s*[^;]+;?/g, "");
|
|
35
|
+
// 12. Collapse whitespace in text content
|
|
36
|
+
result = result.replace(/>\s+([^<]+)\s+</g, (_, text) => {
|
|
37
|
+
return ">" + text.trim() + "<";
|
|
38
|
+
});
|
|
39
|
+
// 13. Remove empty attributes
|
|
40
|
+
result = result.replace(/\s+[a-z-]+=""\s*/g, " ");
|
|
41
|
+
return result.trim();
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=minimize-snapshot.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimize-snapshot.util.js","sourceRoot":"","sources":["../../../src/tools/utils/minimize-snapshot.util.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,IAAI,MAAM,GAAG,WAAW,CAAC;IAEzB,oDAAoD;IACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEjD,8DAA8D;IAC9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IAEhE,wCAAwC;IACxC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAExC,kCAAkC;IAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAExC,mCAAmC;IACnC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAE3D,8DAA8D;IAC9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEjD,kDAAkD;IAClD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAEnE,kEAAkE;IAClE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAC9D,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export declare const WaitToolSchema: z.ZodObject<{
|
|
3
|
+
waitMs: z.ZodNumber;
|
|
4
|
+
}, z.z.core.$strip>;
|
|
5
|
+
export declare function waitTool(): import("langchain").DynamicStructuredTool<z.ZodObject<{
|
|
6
|
+
waitMs: z.ZodNumber;
|
|
7
|
+
}, z.z.core.$strip>, {
|
|
8
|
+
waitMs: number;
|
|
9
|
+
}, {
|
|
10
|
+
waitMs: number;
|
|
11
|
+
}, unknown>;
|
|
12
|
+
//# sourceMappingURL=wait.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.tool.d.ts","sourceRoot":"","sources":["../../src/tools/wait.tool.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,cAAc;;mBAEzB,CAAC;AAEH,wBAAgB,QAAQ;;;;;;YAYvB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { tool } from "langchain";
|
|
2
|
+
import z from "zod";
|
|
3
|
+
export const WaitToolSchema = z.object({
|
|
4
|
+
waitMs: z.number().int().describe("The number of milliseconds to wait"),
|
|
5
|
+
});
|
|
6
|
+
export function waitTool() {
|
|
7
|
+
return tool(async ({ waitMs }) => {
|
|
8
|
+
console.log(`Waiting for ${waitMs} milliseconds`);
|
|
9
|
+
return new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
10
|
+
}, {
|
|
11
|
+
name: "Wait",
|
|
12
|
+
description: "Wait for a specified number of milliseconds",
|
|
13
|
+
schema: WaitToolSchema,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=wait.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.tool.js","sourceRoot":"","sources":["../../src/tools/wait.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CACT,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,eAAe,CAAC,CAAC;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC,EACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,6CAA6C;QAC1D,MAAM,EAAE,cAAc;KACvB,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bini-bar-labs/atomic-web-agent-core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "The core of the Atomic Web Agent, providing essential functionalities for web interaction.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist/**/*.js",
|
|
16
|
+
"dist/**/*.d.ts",
|
|
17
|
+
"dist/**/*.d.ts.map",
|
|
18
|
+
"dist/**/*.js.map",
|
|
19
|
+
"!dist/**/*.spec.*",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"lint": "eslint 'src/**/*.ts'",
|
|
25
|
+
"build": "tsc -b",
|
|
26
|
+
"prepublishOnly": "pnpm build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"ai",
|
|
30
|
+
"agent",
|
|
31
|
+
"web-automation",
|
|
32
|
+
"playwright",
|
|
33
|
+
"langchain",
|
|
34
|
+
"browser-automation",
|
|
35
|
+
"web-scraping",
|
|
36
|
+
"ai-agent"
|
|
37
|
+
],
|
|
38
|
+
"author": "Bini Barazany <bgt636@gmail.com>",
|
|
39
|
+
"license": "ISC",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/binikingi/atomic-web-agent.git",
|
|
43
|
+
"directory": "packages/agent-core"
|
|
44
|
+
},
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/binikingi/atomic-web-agent/issues"
|
|
47
|
+
},
|
|
48
|
+
"homepage": "https://github.com/binikingi/atomic-web-agent#readme",
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"tsx": "4.20.6"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@langchain/anthropic": "1.1.3",
|
|
57
|
+
"@langchain/core": "1.1.0",
|
|
58
|
+
"@langchain/openai": "1.1.3",
|
|
59
|
+
"dedent": "1.7.0",
|
|
60
|
+
"langchain": "1.1.1",
|
|
61
|
+
"playwright": "1.57.0",
|
|
62
|
+
"zod": "4.1.13"
|
|
63
|
+
}
|
|
64
|
+
}
|