@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.
Files changed (75) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +153 -0
  3. package/dist/AWAgent/AWAgent.d.ts +35 -0
  4. package/dist/AWAgent/AWAgent.d.ts.map +1 -0
  5. package/dist/AWAgent/AWAgent.js +115 -0
  6. package/dist/AWAgent/AWAgent.js.map +1 -0
  7. package/dist/AWAgent/AWAgent.types.d.ts +3 -0
  8. package/dist/AWAgent/AWAgent.types.d.ts.map +1 -0
  9. package/dist/AWAgent/AWAgent.types.js +2 -0
  10. package/dist/AWAgent/AWAgent.types.js.map +1 -0
  11. package/dist/AWAgent/middlewares/logging-calls.middleware.d.ts +2 -0
  12. package/dist/AWAgent/middlewares/logging-calls.middleware.d.ts.map +1 -0
  13. package/dist/AWAgent/middlewares/logging-calls.middleware.js +17 -0
  14. package/dist/AWAgent/middlewares/logging-calls.middleware.js.map +1 -0
  15. package/dist/AWAgent/middlewares/trim-messages-history.middleware.d.ts +2 -0
  16. package/dist/AWAgent/middlewares/trim-messages-history.middleware.d.ts.map +1 -0
  17. package/dist/AWAgent/middlewares/trim-messages-history.middleware.js +11 -0
  18. package/dist/AWAgent/middlewares/trim-messages-history.middleware.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +7 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/tools/click-by-element-id.tool.d.ts +14 -0
  24. package/dist/tools/click-by-element-id.tool.d.ts.map +1 -0
  25. package/dist/tools/click-by-element-id.tool.js +32 -0
  26. package/dist/tools/click-by-element-id.tool.js.map +1 -0
  27. package/dist/tools/click-by-position.tool.d.ts +17 -0
  28. package/dist/tools/click-by-position.tool.d.ts.map +1 -0
  29. package/dist/tools/click-by-position.tool.js +18 -0
  30. package/dist/tools/click-by-position.tool.js.map +1 -0
  31. package/dist/tools/click-by-selector.tool.d.ts +13 -0
  32. package/dist/tools/click-by-selector.tool.d.ts.map +1 -0
  33. package/dist/tools/click-by-selector.tool.js +17 -0
  34. package/dist/tools/click-by-selector.tool.js.map +1 -0
  35. package/dist/tools/get-DOM-snapshot.tool.d.ts +4 -0
  36. package/dist/tools/get-DOM-snapshot.tool.d.ts.map +1 -0
  37. package/dist/tools/get-DOM-snapshot.tool.js +26 -0
  38. package/dist/tools/get-DOM-snapshot.tool.js.map +1 -0
  39. package/dist/tools/get-page-screenshot.tool.d.ts +3 -0
  40. package/dist/tools/get-page-screenshot.tool.d.ts.map +1 -0
  41. package/dist/tools/get-page-screenshot.tool.js +13 -0
  42. package/dist/tools/get-page-screenshot.tool.js.map +1 -0
  43. package/dist/tools/input-by-element-id.tool.d.ts +18 -0
  44. package/dist/tools/input-by-element-id.tool.d.ts.map +1 -0
  45. package/dist/tools/input-by-element-id.tool.js +39 -0
  46. package/dist/tools/input-by-element-id.tool.js.map +1 -0
  47. package/dist/tools/input.tool.d.ts +17 -0
  48. package/dist/tools/input.tool.d.ts.map +1 -0
  49. package/dist/tools/input.tool.js +21 -0
  50. package/dist/tools/input.tool.js.map +1 -0
  51. package/dist/tools/navigate.tool.d.ts +10 -0
  52. package/dist/tools/navigate.tool.d.ts.map +1 -0
  53. package/dist/tools/navigate.tool.js +16 -0
  54. package/dist/tools/navigate.tool.js.map +1 -0
  55. package/dist/tools/print-to-console.tool.d.ts +12 -0
  56. package/dist/tools/print-to-console.tool.d.ts.map +1 -0
  57. package/dist/tools/print-to-console.tool.js +16 -0
  58. package/dist/tools/print-to-console.tool.js.map +1 -0
  59. package/dist/tools/utils/accessibility-snapshot.util.d.ts +34 -0
  60. package/dist/tools/utils/accessibility-snapshot.util.d.ts.map +1 -0
  61. package/dist/tools/utils/accessibility-snapshot.util.js +244 -0
  62. package/dist/tools/utils/accessibility-snapshot.util.js.map +1 -0
  63. package/dist/tools/utils/element-registry.util.d.ts +39 -0
  64. package/dist/tools/utils/element-registry.util.d.ts.map +1 -0
  65. package/dist/tools/utils/element-registry.util.js +55 -0
  66. package/dist/tools/utils/element-registry.util.js.map +1 -0
  67. package/dist/tools/utils/minimize-snapshot.util.d.ts +2 -0
  68. package/dist/tools/utils/minimize-snapshot.util.d.ts.map +1 -0
  69. package/dist/tools/utils/minimize-snapshot.util.js +43 -0
  70. package/dist/tools/utils/minimize-snapshot.util.js.map +1 -0
  71. package/dist/tools/wait.tool.d.ts +12 -0
  72. package/dist/tools/wait.tool.d.ts.map +1 -0
  73. package/dist/tools/wait.tool.js +16 -0
  74. package/dist/tools/wait.tool.js.map +1 -0
  75. 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
+ }