@cogitator-ai/browser 0.1.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.
Files changed (106) hide show
  1. package/README.md +329 -0
  2. package/dist/__tests__/browser-tools.test.d.ts +2 -0
  3. package/dist/__tests__/browser-tools.test.d.ts.map +1 -0
  4. package/dist/__tests__/browser-tools.test.js +120 -0
  5. package/dist/__tests__/browser-tools.test.js.map +1 -0
  6. package/dist/__tests__/extraction.test.d.ts +2 -0
  7. package/dist/__tests__/extraction.test.d.ts.map +1 -0
  8. package/dist/__tests__/extraction.test.js +267 -0
  9. package/dist/__tests__/extraction.test.js.map +1 -0
  10. package/dist/__tests__/interaction.test.d.ts +2 -0
  11. package/dist/__tests__/interaction.test.d.ts.map +1 -0
  12. package/dist/__tests__/interaction.test.js +376 -0
  13. package/dist/__tests__/interaction.test.js.map +1 -0
  14. package/dist/__tests__/navigation.test.d.ts +2 -0
  15. package/dist/__tests__/navigation.test.d.ts.map +1 -0
  16. package/dist/__tests__/navigation.test.js +235 -0
  17. package/dist/__tests__/navigation.test.js.map +1 -0
  18. package/dist/__tests__/network.test.d.ts +2 -0
  19. package/dist/__tests__/network.test.d.ts.map +1 -0
  20. package/dist/__tests__/network.test.js +508 -0
  21. package/dist/__tests__/network.test.js.map +1 -0
  22. package/dist/__tests__/page-helpers.test.d.ts +2 -0
  23. package/dist/__tests__/page-helpers.test.d.ts.map +1 -0
  24. package/dist/__tests__/page-helpers.test.js +321 -0
  25. package/dist/__tests__/page-helpers.test.js.map +1 -0
  26. package/dist/__tests__/schemas.test.d.ts +2 -0
  27. package/dist/__tests__/schemas.test.d.ts.map +1 -0
  28. package/dist/__tests__/schemas.test.js +518 -0
  29. package/dist/__tests__/schemas.test.js.map +1 -0
  30. package/dist/__tests__/selectors.test.d.ts +2 -0
  31. package/dist/__tests__/selectors.test.d.ts.map +1 -0
  32. package/dist/__tests__/selectors.test.js +157 -0
  33. package/dist/__tests__/selectors.test.js.map +1 -0
  34. package/dist/__tests__/session.test.d.ts +2 -0
  35. package/dist/__tests__/session.test.d.ts.map +1 -0
  36. package/dist/__tests__/session.test.js +325 -0
  37. package/dist/__tests__/session.test.js.map +1 -0
  38. package/dist/__tests__/stealth.test.d.ts +2 -0
  39. package/dist/__tests__/stealth.test.d.ts.map +1 -0
  40. package/dist/__tests__/stealth.test.js +353 -0
  41. package/dist/__tests__/stealth.test.js.map +1 -0
  42. package/dist/__tests__/vision.test.d.ts +2 -0
  43. package/dist/__tests__/vision.test.d.ts.map +1 -0
  44. package/dist/__tests__/vision.test.js +226 -0
  45. package/dist/__tests__/vision.test.js.map +1 -0
  46. package/dist/index.d.ts +10 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +8 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/session.d.ts +29 -0
  51. package/dist/session.d.ts.map +1 -0
  52. package/dist/session.js +190 -0
  53. package/dist/session.js.map +1 -0
  54. package/dist/stealth/evasions.d.ts +2 -0
  55. package/dist/stealth/evasions.d.ts.map +1 -0
  56. package/dist/stealth/evasions.js +83 -0
  57. package/dist/stealth/evasions.js.map +1 -0
  58. package/dist/stealth/human-like.d.ts +5 -0
  59. package/dist/stealth/human-like.d.ts.map +1 -0
  60. package/dist/stealth/human-like.js +52 -0
  61. package/dist/stealth/human-like.js.map +1 -0
  62. package/dist/stealth/index.d.ts +8 -0
  63. package/dist/stealth/index.d.ts.map +1 -0
  64. package/dist/stealth/index.js +24 -0
  65. package/dist/stealth/index.js.map +1 -0
  66. package/dist/stealth/user-agents.d.ts +3 -0
  67. package/dist/stealth/user-agents.d.ts.map +1 -0
  68. package/dist/stealth/user-agents.js +55 -0
  69. package/dist/stealth/user-agents.js.map +1 -0
  70. package/dist/tools/extraction.d.ts +96 -0
  71. package/dist/tools/extraction.d.ts.map +1 -0
  72. package/dist/tools/extraction.js +196 -0
  73. package/dist/tools/extraction.js.map +1 -0
  74. package/dist/tools/index.d.ts +15 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +40 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/interaction.d.ts +128 -0
  79. package/dist/tools/interaction.d.ts.map +1 -0
  80. package/dist/tools/interaction.js +229 -0
  81. package/dist/tools/interaction.js.map +1 -0
  82. package/dist/tools/navigation.d.ts +63 -0
  83. package/dist/tools/navigation.d.ts.map +1 -0
  84. package/dist/tools/navigation.js +140 -0
  85. package/dist/tools/navigation.js.map +1 -0
  86. package/dist/tools/network.d.ts +122 -0
  87. package/dist/tools/network.d.ts.map +1 -0
  88. package/dist/tools/network.js +223 -0
  89. package/dist/tools/network.js.map +1 -0
  90. package/dist/tools/vision.d.ts +83 -0
  91. package/dist/tools/vision.d.ts.map +1 -0
  92. package/dist/tools/vision.js +134 -0
  93. package/dist/tools/vision.js.map +1 -0
  94. package/dist/utils/page-helpers.d.ts +11 -0
  95. package/dist/utils/page-helpers.d.ts.map +1 -0
  96. package/dist/utils/page-helpers.js +73 -0
  97. package/dist/utils/page-helpers.js.map +1 -0
  98. package/dist/utils/schemas.d.ts +209 -0
  99. package/dist/utils/schemas.d.ts.map +1 -0
  100. package/dist/utils/schemas.js +156 -0
  101. package/dist/utils/schemas.js.map +1 -0
  102. package/dist/utils/selectors.d.ts +4 -0
  103. package/dist/utils/selectors.d.ts.map +1 -0
  104. package/dist/utils/selectors.js +39 -0
  105. package/dist/utils/selectors.js.map +1 -0
  106. package/package.json +45 -0
@@ -0,0 +1,39 @@
1
+ function escapeCssString(str) {
2
+ return str.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
3
+ }
4
+ export async function smartSelect(page, identifier) {
5
+ const cssLocator = page.locator(identifier);
6
+ if ((await cssLocator.count()) > 0)
7
+ return cssLocator.first();
8
+ if (identifier.startsWith('//') || identifier.startsWith('(')) {
9
+ const xpathLocator = page.locator(`xpath=${identifier}`);
10
+ if ((await xpathLocator.count()) > 0)
11
+ return xpathLocator.first();
12
+ }
13
+ const textLocator = page.getByText(identifier, { exact: false });
14
+ if ((await textLocator.count()) > 0)
15
+ return textLocator.first();
16
+ return null;
17
+ }
18
+ export async function findFormField(page, label) {
19
+ const escaped = escapeCssString(label);
20
+ const strategies = [
21
+ () => page.locator(`input[name="${escaped}"]`),
22
+ () => page.locator(`input[placeholder="${escaped}"]`),
23
+ () => page.locator(`input[aria-label="${escaped}"]`),
24
+ () => page.locator(`textarea[name="${escaped}"]`),
25
+ () => page.locator(`textarea[placeholder="${escaped}"]`),
26
+ () => page.locator(`select[name="${escaped}"]`),
27
+ () => page.locator(`label:has-text("${escaped}") input`),
28
+ () => page.locator(`label:has-text("${escaped}") textarea`),
29
+ () => page.locator(`label:has-text("${escaped}") select`),
30
+ () => page.getByLabel(label),
31
+ ];
32
+ for (const getLocator of strategies) {
33
+ const locator = getLocator();
34
+ if ((await locator.count()) > 0)
35
+ return locator.first();
36
+ }
37
+ return null;
38
+ }
39
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/utils/selectors.ts"],"names":[],"mappings":"AAEA,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,UAAkB;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;IAEhE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAyB;QACvC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,OAAO,IAAI,CAAC;QAC9C,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,OAAO,IAAI,CAAC;QACrD,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,OAAO,IAAI,CAAC;QACpD,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,OAAO,IAAI,CAAC;QACjD,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,OAAO,IAAI,CAAC;QACxD,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,OAAO,IAAI,CAAC;QAC/C,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,OAAO,UAAU,CAAC;QACxD,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,OAAO,aAAa,CAAC;QAC3D,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,OAAO,WAAW,CAAC;QACzD,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC7B,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@cogitator-ai/browser",
3
+ "version": "0.1.2",
4
+ "description": "Browser automation tools for Cogitator AI agents",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "dev": "tsc --watch",
20
+ "clean": "rm -rf dist",
21
+ "typecheck": "tsc --noEmit",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest"
24
+ },
25
+ "dependencies": {
26
+ "@cogitator-ai/core": "workspace:*",
27
+ "@cogitator-ai/types": "workspace:*",
28
+ "playwright": "^1.50.0",
29
+ "zod": "^4.3.6"
30
+ },
31
+ "devDependencies": {
32
+ "typescript": "^5.3.0",
33
+ "vitest": "^4.0.18"
34
+ },
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/cogitator-ai/Cogitator-AI.git",
38
+ "directory": "packages/browser"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public",
42
+ "registry": "https://npm.pkg.github.com"
43
+ },
44
+ "license": "MIT"
45
+ }