{"_id":"@olib-ai/owl-browser-sdk","_rev":"27-d7f2a65296adaa2c955ded16448d1e88","name":"@olib-ai/owl-browser-sdk","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"@olib-ai/owl-browser-sdk","version":"1.0.0","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.0.0","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"bcf88aa72e82ac528ac437dd385898bcb894035d","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.0.0.tgz","fileCount":34,"integrity":"sha512-qIL62YhY2MFg3Oymp/A3vuUuucU9oi1tHgSlSrII+j64aac8XgqE2jOnbAp9Miq+pFM9mrIv8QVSIE2z2hUH3w==","signatures":[{"sig":"MEYCIQCxji8v4pNUCt6lbIlHG3qtIw+0UFquxQroz2dNFrv2OgIhAKUEhL62GYYFvtG3AFtNyNjC3d582RcOA6PP4egD7Q4E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210367},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"601db6bc6fdd17cb547e866ae373f11dd464aabe","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.0.0_1764447790782_0.9396005197277606","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@olib-ai/owl-browser-sdk","version":"1.0.1","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.0.1","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"850e5030d3eca640052303a346c164d00e676183","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.0.1.tgz","fileCount":34,"integrity":"sha512-tj71yLEocmQAd0PFg+RkOwL/9D9Uo4Ami5FsU8j2w7VxSyzDgcsKzHQRc++Nkyiuxyua/AXt1w3herWgCbXAVg==","signatures":[{"sig":"MEYCIQC7Xe9mj4EEtyKM5wDzSZMkUjnk4HAu/GNQuC1f+lHJ4gIhAMYrUdTs2obnY3W8Uk5gN3k/JmkdGVhGEx8PvHL1fsKk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210493},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"601db6bc6fdd17cb547e866ae373f11dd464aabe","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.0.1_1764447942452_0.845375599592264","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@olib-ai/owl-browser-sdk","version":"1.1.0","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.1.0","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"77f388fa931f11eb61d6bcfa755f4818dd74999c","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.1.0.tgz","fileCount":38,"integrity":"sha512-6Ue0UUXgbwzAGNbekRLeB4gU3KVIbuY/bdW5j3paVcVm2jE19RnBuRASVH9Zo2Yey4L5IBq+SPY77SI3f9t/bA==","signatures":[{"sig":"MEUCIQC1aHxm1jW1H4UvM6AVRcEiLWDbtROvwJGaj8YW3TFkXQIgHODeVfviEfyPfb5Uj+clTIpBNDr7W0Z3dyo926MF7dE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252544},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"04deb474d5707510720c563fc58e9bcc3eacfbe8","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.1.0_1764452536741_0.6144743888890538","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.0","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.0","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"2759c32b3571ada6adb70939e080dc8e1cd9984f","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.0.tgz","fileCount":38,"integrity":"sha512-y0gw3alLR2wODKZUb4BZrU12TiIkjXBX/vRZxIL/YvGTNJwwS/nomh5IW3oQF6mxq4U9Db3Ej4uCWjrfd1BgYA==","signatures":[{"sig":"MEUCIE1cmkIXF+PmUDr+AMp7yVhr14ZTRrp6b58mTsGIbiTMAiEA2UMxgZOxJgjhzawyJdejidOTWdcCCYcrq5Yx2Fi9xHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326630},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1bee3edfdcd94ec61ff4931040a2a150a05b9808","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.0_1765125552913_0.48087343076980704","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.1","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.1","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"5908c97d2c99928b5633f99956cd2c1dca4be159","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.1.tgz","fileCount":38,"integrity":"sha512-niJpTMj22MieJ2LZXXc7E2Q1z8fSKSdwPxBmKjwVHrfKNpd3OjW4l/6m0XL9DHadrexlIW5oF+mu7XV2dvTJ5g==","signatures":[{"sig":"MEQCICSZQ/7k7unNbN0aMewib/QtMQWa0UGzs/+sS5CKmu5oAiB0scFa500WohITrX8h4eNOFDMD7JuIrj/bLshu0R4L6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327992},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1bee3edfdcd94ec61ff4931040a2a150a05b9808","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.1_1765126075600_0.4736141806810832","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.2","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.2","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"e782da0118c5f6b505b469e91ac5b09d4e38d5fe","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.2.tgz","fileCount":38,"integrity":"sha512-TTJKt/Nt38exQelh3pgZCbIv0cXpEB7xGiFe29+CP6qbQ5S4CBYgT1pkWSvULFFFkwDzy1bjURKtC2KkoknK8w==","signatures":[{"sig":"MEUCIQDtveKkp7eSLOUQhSxpzPV2ENZ8GUa69qlNRcHy4YLe4wIgTneohj3JrowWU03ccI8oWZcwAmXiVmyXECOsZdWwMJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385441},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3a8d832ccb7e1080ad20aef0f77a39b0ed52eae6","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.2_1765235962697_0.30028713239866667","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.3","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.3","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"832bf1278690897d78e87fb317d1a893d5ad98e0","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.3.tgz","fileCount":38,"integrity":"sha512-bwO46Pdr6Co1xbwXMdJUz4Jo/xyZlvkz6M9cC7Yx9P/Qr8nNSu7xRUw5jF2fjF8scrSvBD2w7/2gd7S/uBDsGQ==","signatures":[{"sig":"MEUCICvs63iDT1cdv2sJgoiH1a3cZNi5MIlgpgzJzdW8hTmXAiEAyfJNBkVWp4MJHg7H8xYsAwT9OyWQEWchCSRJzhKYruU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411309},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af6e71c1cbbff041ae62c6f3b8459a8bbcbed2da","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.3_1765429003743_0.47421325438347695","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.4","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.4","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"b90bea6d447c515342ef20ebfb5f2674bec50729","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.4.tgz","fileCount":42,"integrity":"sha512-dphAbKScuR62iirKrXl+lw/MCM7ddF6QWcghxv6Uosn3LxUUAxO3ajYBYsBql0dtMbGlLL6rde8HZCenCqeIQw==","signatures":[{"sig":"MEQCIEmeeIj7oj6QFszLnY08e34gsCtnWrWNCm/IWeBC8cgZAiACCDjWHCIA7Jy7N736XuprEb+xgvKTeEV1Ecsc4Koujg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":596574},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"18a12a41d1a2613732800788dc637c0bccb4b5fd","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.4_1767483254385_0.8530468377920344","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.5","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.5","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"348b6a52c3f0e0903c0a8e2a96736bea7d9f9546","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.5.tgz","fileCount":42,"integrity":"sha512-P9zL18eaqJWIoSMlUb4YpclrVjeb/UaH6n9Rc01Sjq56U8mZ7m3FVIXiS+3GXAkKP7ON6L1aM+xB8E0V4AY/aQ==","signatures":[{"sig":"MEYCIQD8mjcO+aIf7Q7EVCLK4Q/dfTM7o6jLcHYF0EGJDtaK6QIhAKWfXXT2OCioU4fvVvYC6w52XqsQuUjNswrFB8D7LulQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608381},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9201a381cd6f59c63bf4dcabfd9bc063cd814ce2","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.5_1767669779684_0.30582751737325164","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@olib-ai/owl-browser-sdk","version":"1.2.6","keywords":["browser","automation","ai","selenium","puppeteer","playwright","web-scraping","testing","chromium","owl-browser"],"author":{"name":"Olib AI"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@1.2.6","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/owl-browser/issues"},"dist":{"shasum":"41a0f5d0bd2ec62651b1637b706b138c2c1f6888","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-1.2.6.tgz","fileCount":42,"integrity":"sha512-oEaEiMiPL8I0SlF0oBsGrJ/R/2dHtegFE/8zuchifLTabAUyhsfxt7ZQE7g2RqQzrrikZyZwa8vs3bGFPZtNUQ==","signatures":[{"sig":"MEUCIAurhN1N1VztQqBAPKW2ZoBBuLlvklWBVRMR+q+l/MTIAiEA8JAlLZ6hbsijLWnr2Op0BHY1W6Ym5J+5V8ZTXpToj/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":624158},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d5efc5101fefc33605713317aa4aeadd267199b8","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/owl-browser.git","type":"git","directory":"sdk"},"_npmVersion":"11.6.2","description":"AI-first browser automation SDK for Node.js/TypeScript - Built by Olib AI","directories":{},"_nodeVersion":"25.2.1","dependencies":{"mime-types":"^2.1.35"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0","@types/mime-types":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_1.2.6_1767995238829_0.9534919730254074","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.0","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.0","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"ff6d9f8f5d39258b19d760fee34e43c1f663ca72","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.0.tgz","fileCount":68,"integrity":"sha512-kYd/ECruR7ABQ+K2Wdz/eBU+LfsjqNUsNQT3BFYGRkTGQYJJHjyBniK9iC0sGeENlVHClqpI/U6nGjNeCj2MuQ==","signatures":[{"sig":"MEYCIQDMP/f+Osl8Gh/buBK60Col5jWsAlwZcuPNL/OzQkwdwQIhALLbox0z/hK2Ca2jmYZYb/OqpLDFfXnfk2VmveckX2np","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451690},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"210be1df32e79afc07d6eab4428e5372e3e4a0f4","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.7.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.0_1768807467220_0.24343896310504398","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.1","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.1","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"fb8d5180933477d8750400e9235217fd0c92262e","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.1.tgz","fileCount":68,"integrity":"sha512-mNM3hT29SzCFSpCx8djDimXZFz7iqazW/BKNmtITdcxhbzRkRqEHksqzwAqXDO56GrxE9kbRhW73KfIqoAg/Xg==","signatures":[{"sig":"MEYCIQCk9+hNGD6r9dfROaqiCmP8bcJ8plOagLD6Gd83u9GtNQIhAJ5U0mblIHD03vrDOAr7CAsGpHDCW2qDboeHee8uvJbu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455684},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"c55e7bae5c5ac0485fd84f8415e6e1498b5243e9","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.8.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.0","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.1_1770731173372_0.8791924064842405","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.2","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.2","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"21d29c7af8a068e5f09af27f85d5e8bbe6149992","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.2.tgz","fileCount":68,"integrity":"sha512-7sAguG8ZN1LPYeFthWISH30JDFA9Z8wbrRdPILNGra9Dz/En1kJmBJm3/AkAmFXVwA9VPk5jWyEWqKXrR20NWw==","signatures":[{"sig":"MEUCIEpJ0cWfwHcTMIhTld/UDdWSs3DO3kgiEytwjPIdDvihAiEA2omVGVCMO88NugwtlrUm9FyJjWPQpxEJVsFOCua9LCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456102},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"fc35833a5a6afad1658b929892d2f6a0e0df9045","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.8.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.0","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.2_1770750436265_0.37148999202039423","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.3","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.3","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"d058639ec09cb836fc6fd069ebe7aeba636bbb16","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.3.tgz","fileCount":68,"integrity":"sha512-oB4+bW3egvFDZuLRyvnKF7EybBo1LHdlAGwW96WGwR4cM4TIWt3agB8xpN7Sy5hWxncBzpCFf0Qa+Fd5wkeNOQ==","signatures":[{"sig":"MEQCIFVlov8CyP2TIC27UCa0N/LZ79+EnVWFViW+SzYescCTAiApgJi6FWvrxkgVJQ/JZg/DUo0JXE7SgoHSzEAEDQqnIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":489662},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"c8687f5443ab0445dc31d46c40917b5593205b40","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.3_1770957158598_0.82773742613184","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.4","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.4","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"aae49dc963d28c5653d6969e1e6047dfa51805ba","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.4.tgz","fileCount":68,"integrity":"sha512-M5BZ3I1LrCPXvjCVhTys44ZAmjeeHdqDUtAZjLjwOjtKt1oxaK4w/9Sn85ME0CUSgOqRkXU1AYS1wGeWf+kzTg==","signatures":[{"sig":"MEUCIF4gDWHVdM/qGZCbIMeOr/O49mhLxPRn2ogpmqdTi/LLAiEA0ewkKn6CDBxkFLyweQIVg1C8eKBj7qZIum0nIpswXEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491655},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"40cb600489916546892366240d9e1d38d3352999","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.4_1771005488249_0.779976579509041","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.5","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.5","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"3066073862ccf131f829327804086ba379c4f573","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.5.tgz","fileCount":68,"integrity":"sha512-z06e9CRBjnckSFD1fk7thKI3t6W6HX0LvoBG9UEmE8pXAK3rq8yRkaYsVgsfwnqLKZwScgglINByWyAz7YS/PA==","signatures":[{"sig":"MEUCIFJ+RVjyWN5ZazJW4igaokXGOc3/S2NvU+SS1YQS85ZVAiEAjttkbhYoigSsZv1usn8GgFcLjursSITFa1tCicw3/nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492353},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"gitHead":"9e3e9a6af12ce4a9414b0ad45942786876d7ce52","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.5_1771191414981_0.9835588141472082","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.6","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.6","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"cdbaba49e43ad0c903cf07fabae587a7eeeea59e","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.6.tgz","fileCount":172,"integrity":"sha512-iXDv38FUEkndO6MQvmK/Aa83YyvScPMmujPCPPCjrwKqaYPaUzHj1eKKMvo9tjhxslnz40iRYrbzRsifq/QfUQ==","signatures":[{"sig":"MEQCIHz8hpjvgmtrsBJTbTz2h2+B9ZAzVEjJdIvvLRCcNvy7AiAxOjcj9rQNxJwvrq/991i54T/UuZaNIMgMzIZCLyD8TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1167414},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"b344efd27605a6a6a7371867f45ff0897760206d","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.6_1771456506891_0.962757649005354","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.7","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.7","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"90dfc1e01008c55d71f9a34efa29e7819ef524d5","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.7.tgz","fileCount":172,"integrity":"sha512-Gb6E2dfFSofSoq77y4JSHjq8XkufxeKHdo4n8kz8EaVDo+ObSQQk/3IBwA7u/wBMfmDEE8EsmVmDmMuW1QtkDQ==","signatures":[{"sig":"MEUCIQCNANglrinK3rwU96OP+18nBMEwzfEuJACZZq8tMRLoPgIgarkCcQ8tisSjuDVPCnSFntUkxfnxoXAlxVNla+B96z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1194955},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"50ac54874ad75ca23089cc8d1f5fb732d8fd4890","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.7_1771465876729_0.4370713655301428","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@olib-ai/owl-browser-sdk","version":"2.0.9","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.0.9","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"7e620fa0c4b16a9568168c53f3249d2e1f5b3b46","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.0.9.tgz","fileCount":172,"integrity":"sha512-d3ejxO8jkbGVMxemHY0f63qascLWLPGBOLcah2/BywohWUNGsCWmuLPtsSdxnhBTU1QGmfLJp6VdKRpKSO51Ew==","signatures":[{"sig":"MEYCIQDwtS7Nri5IbsCwoyFHVIdlObLfs2kKfajLLoA030U8OQIhAN0ZLbHqPK28mt1buqJIAnBqW27HFKCgDypePsTHik8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1203482},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"81e05f6cd08880ffae2470ff38dd599aa4e491fb","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.9.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.0.9_1772462671402_0.9638270364557453","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.0","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.0","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"623360351aff309c7277ad463c5076f219725be0","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.0.tgz","fileCount":180,"integrity":"sha512-o0ZinzUBpKFAYZxRA3aP/nTsn3896OZ0B4NXKxa3UTUvPNfOG85SGcqN2eQSwhRgs56kVtWEEGbZBGYdx9rSkg==","signatures":[{"sig":"MEYCIQCvAuxwFwQId+nyrplA032Bla+/+7DdYI7C2unOmi8FEgIhAPza5yloGAJ2pDkz5r5f/GTn4fXV/ZC4wMCViNEbC0tm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1279782},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"4571620f9d5dca7a8555e5ddac04e10bebc80c9e","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.12.1","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.0_1778532316610_0.9854289626176527","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.1","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.1","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"b59cca485f27f2ad84b953d43db3ef55cb37c472","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.1.tgz","fileCount":180,"integrity":"sha512-FZuBlrfHxYc/Lrec/2hRI8Yrz7374+Rmr2grWkASyK75ZLMOsCb021Hpzmgfpin06GLqRSw0KTRX0jooEcyJwQ==","signatures":[{"sig":"MEYCIQDBsDbJEz1t9zK75Ov+ozVur9y9Pt8nAhLVVR15fQxn5AIhAKW9BCNvMQTDAso4UBc0DeeZcjt7brpvMbxNhPxgAqZP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281965},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"afa822d0d48dd8f0fcb1247e1c0f2449756bde77","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.12.1","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.1_1780804419983_0.6693372934554034","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.2","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.2","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"1a1ba3e57ef23b3a4ba1a204cff4f42a22c12c29","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.2.tgz","fileCount":180,"integrity":"sha512-HmDm1ksc/mlDD13FOjQ9GQDPZanxXkNtDIvqpkrSsdjRukj6MhGJx5NPYWsNE1vl7PR5r4Ol+SF9Jc7krWz3hw==","signatures":[{"sig":"MEQCIAbHSAGEYrqM8clRMkbnWN2o1umoVk6Nr74aGaPC6ociAiAfsWh0bbBfaBEL0mF2fRR9K5BGHOXHWMiMMBYF9odnww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1292764},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"dab2a557222419905539a95ad5135d5c603678fd","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.12.1","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.2_1781112338752_0.2157939840773202","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.3","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.3","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"341ab7d55c97082b7428edde82da287b623f3b92","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.3.tgz","fileCount":180,"integrity":"sha512-9huKQuw7BeZqsvqUW59l7YLL4xoAkoYxDxciWpW59yOY6pOtW2K3O6IKd0j3mSNlvkP+uWgU+M96EB2vtK0ztw==","signatures":[{"sig":"MEUCIC5sUjr/+Ac8iOfM6ch8j5TiJFf4N+APDRPkaw1C85fkAiEA2/uq4GQ+fudGukHPddM3M/7tndWWnm6nSoFWl0nehBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1315663},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"a1aaf7b8c0d0117f4a8aad65dc7f5c848b018e89","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.17.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.3_1783698377147_0.5232513427562229","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.4","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.4","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"251c68165c8c1500e7ca7a30089164056f28825d","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.4.tgz","fileCount":180,"integrity":"sha512-aFL8Al13jRQZw8TGxYrnwcNCea/nu3UECBtwdwCRRzNTQSEPL/QV+tpyXYmd8FN+qiMxbaZ1df3RvMLKtbRP+g==","signatures":[{"sig":"MEQCICbfB83sNZWK1L9f11sKLmWRumpoPJIptPLwU4WevD8DAiA2qq1gDdWVN/DB5aQyg2G8UJ9otDyVqdeOBz28lPAHHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1322755},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"9e49191b0b021ee56899ee61cbc3718cfbdd2938","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.17.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.4_1784860036933_0.7428912511462509","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.5","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.5","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"6033f3f72311e4e0f4e2c447ca5c75c3f5152d6f","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.5.tgz","fileCount":180,"integrity":"sha512-+BFoD1y+jOQjKssxS2fFioO9JnRyeXVF4Nuwx58lBe412tezv+uFsFBdjDGl0pJNdFftgmbZZvQi7N4ZT9G1rg==","signatures":[{"sig":"MEUCIQDjCt+sMVhr8ZvgoyixP5u4WcYKUQSg/0OpmAhtvnFJjwIgamBaO6NhYnKHGyWTQpoKVivGYLDjLUp1vhEbBhmLV4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1324709},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"dc24d883d159f94cfa0e070a4d36b651d7ff5fba","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.17.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.5_1785164372557_0.9675947222188939","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@olib-ai/owl-browser-sdk","version":"2.1.6","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","_id":"@olib-ai/owl-browser-sdk@2.1.6","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"homepage":"https://www.owlbrowser.net","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"43cdf0a9a0927f0787beec8df48046c198e60cfe","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.1.6.tgz","fileCount":180,"integrity":"sha512-aGry8J2NabB4piURqFRhyLQcp8usHgRIEQmixjIK+ulS+ldk8dzLk0Rpb559WbQWl+9kStt1y9A5c8d02m0yJg==","signatures":[{"sig":"MEYCIQD4YWdRKJpDm2tmlwKUsoNSBQY5WYCYXhTaFRp3/OvkRQIhAIKIL5U+xK/uHig7uKEkxwDiS6TuQlzr+yXh+Qbx6r8Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339991},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"9856251278738c7156c3e781be4a74c51d290dbb","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.19.0","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"_nodeVersion":"26.7.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/owl-browser-sdk_2.1.6_1786125802977_0.5038535227213119","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"_id":"@olib-ai/owl-browser-sdk@2.2.0","bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"dist":{"shasum":"f07604a71d5877956284e63b7c3cf81112f55260","tarball":"https://registry.npmjs.org/@olib-ai/owl-browser-sdk/-/owl-browser-sdk-2.2.0.tgz","fileCount":184,"integrity":"sha512-gPfetwE8KHuZYTbutgNs66LjJVC/8Nf6St72lEGLj943m73w9lr10zlHvBeJemFtxNCJKM7e5IoOTtMo4Wdpsg==","signatures":[{"sig":"MEUCIQDtL433R6LdU3tSkEs2B3snOJnokPQvOeRdx1fWpecf+QIgJK9+mxD46Q7iN4442YpmsNckcl/5ub+qbqXAYxTzaj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8mxFkqQnic8k5F1V1epLWFoAM1cEs553p+yqccj83qQIhAMq80dvYEM7L4VKJSF9C+tS/SVd8PNA1ciIpVbTu8BG3"}],"unpackedSize":1373685},"main":"dist/index.js","name":"@olib-ai/owl-browser-sdk","type":"module","types":"dist/index.d.ts","author":{"name":"Olib AI","email":"support@olib.ai"},"module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./flow":{"types":"./dist/flow/index.d.ts","import":"./dist/flow/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./extraction":{"types":"./dist/extraction/index.d.ts","import":"./dist/extraction/index.js"},"./playwright":{"types":"./dist/playwright/index.d.ts","import":"./dist/playwright/index.js"}},"gitHead":"a5fab455cea3895987a0875a309710faf54f9b5a","license":"MIT","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"2.2.0","_npmUser":{"name":"ahstanin","email":"ahstanin@gmail.com"},"homepage":"https://www.owlbrowser.net","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"_npmVersion":"11.19.1","description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","directories":{},"maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"_nodeVersion":"26.9.0","dependencies":{"ws":"^8.18.0","cheerio":"^1.2.0","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8","@types/ws":"^8.5.13","typescript":"^5.7.3","@types/node":"^22.10.5","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/owl-browser-sdk_2.2.0_1790355669082_0.6355959007014786"}}},"time":{"created":"2025-11-29T20:23:10.703Z","modified":"2026-09-25T17:01:09.409Z","1.0.0":"2025-11-29T20:23:10.994Z","1.0.1":"2025-11-29T20:25:42.645Z","1.1.0":"2025-11-29T21:42:16.929Z","1.2.0":"2025-12-07T16:39:13.078Z","1.2.1":"2025-12-07T16:47:55.760Z","1.2.2":"2025-12-08T23:19:22.874Z","1.2.3":"2025-12-11T04:56:43.902Z","1.2.4":"2026-01-03T23:34:14.546Z","1.2.5":"2026-01-06T03:22:59.834Z","1.2.6":"2026-01-09T21:47:19.017Z","2.0.0":"2026-01-19T07:24:27.382Z","2.0.1":"2026-02-10T13:46:13.532Z","2.0.2":"2026-02-10T19:07:16.427Z","2.0.3":"2026-02-13T04:32:38.745Z","2.0.4":"2026-02-13T17:58:08.412Z","2.0.5":"2026-02-15T21:36:55.169Z","2.0.6":"2026-02-18T23:15:07.112Z","2.0.7":"2026-02-19T01:51:16.885Z","2.0.9":"2026-03-02T14:44:31.642Z","2.1.0":"2026-05-11T20:45:16.844Z","2.1.1":"2026-06-07T03:53:40.129Z","2.1.2":"2026-06-10T17:25:38.987Z","2.1.3":"2026-07-10T15:46:17.351Z","2.1.4":"2026-07-24T02:27:17.153Z","2.1.5":"2026-07-27T14:59:32.711Z","2.1.6":"2026-08-07T18:03:23.209Z","2.2.0":"2026-09-25T17:01:09.194Z"},"bugs":{"url":"https://github.com/Olib-AI/olib-browser/issues"},"author":{"name":"Olib AI","email":"support@olib.ai"},"license":"MIT","homepage":"https://www.owlbrowser.net","keywords":["owl-browser","browser-automation","antidetect","stealth","scraping","mcp","ai"],"repository":{"url":"git+https://github.com/Olib-AI/olib-browser.git","type":"git","directory":"node-sdk-v2"},"description":"Node.js SDK for Owl Browser automation - Async-first with dynamic OpenAPI method generation","maintainers":[{"name":"ahstanin","email":"ahstanin@gmail.com"}],"readme":"# @olib-ai/owl-browser-sdk\n\nNode.js / TypeScript client for the [Owl Browser](https://www.owlbrowser.net) HTTP server: 185 browser tools, one class, ESM and async throughout.\n\n## Install\n\n```bash\nnpm install @olib-ai/owl-browser-sdk\n```\n\nNode 18 or newer. The package is ESM only (`\"type\": \"module\"`).\n\n## Quick start\n\n```javascript\nimport { OwlBrowser } from '@olib-ai/owl-browser-sdk';\n\nconst browser = new OwlBrowser({\n  url: 'http://127.0.0.1:8080',\n  token: 'your-secret-token',\n  apiPrefix: '',            // '' when talking to the server directly, '/api' behind nginx\n});\n\nawait browser.connect();\n\nconst contextId = await browser.createContext();\nawait browser.navigate({ context_id: contextId, url: 'https://example.com' });\n\nconst markdown = await browser.getMarkdown({ context_id: contextId });\nconsole.log(markdown);\n\nawait browser.closeContext({ context_id: contextId });\nawait browser.close();\n```\n\n`createContext()` returns the context ID as a string. Every other tool takes it as\nthe `context_id` parameter.\n\n## Configuration\n\nThe `OwlBrowser` constructor takes one `RemoteConfig` object.\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `url` | `string` | required | Server base URL. Trailing slashes are stripped. |\n| `token` | `string` | required for token auth | Bearer token. The transport throws if it is missing and JWT auth is not configured. |\n| `authMode` | `AuthMode` | `AuthMode.TOKEN` | `AuthMode.JWT` switches to RS256 JWT auth. `jwt` must also be set, otherwise the client falls back to token auth. |\n| `jwt` | `JWTConfig` | none | See below. |\n| `transport` | `TransportMode` | `TransportMode.HTTP` | `TransportMode.WEBSOCKET` for the WebSocket transport. |\n| `timeout` | `number` | `30` | Request timeout in **seconds**. Long running tools get `max(120s, timeout * 4)` on the HTTP transport. |\n| `maxConcurrent` | `number` | `10` | In-process cap on concurrent HTTP requests. Extra calls queue. |\n| `retry` | `RetryConfig` | see below | HTTP transport only. |\n| `verifySsl` | `boolean` | `true` | Accepted for parity with the Python SDK. The Node transports do not currently act on it. |\n| `apiPrefix` | `string` | `'/api'` | Prefixed to every path. Pass `''` for a direct connection to the browser server. |\n\n`RetryConfig` defaults: `maxRetries: 3` (total attempts, not extra attempts),\n`initialDelayMs: 100`, `maxDelayMs: 10000`, `backoffMultiplier: 2.0`,\n`jitterFactor: 0.1`. Retries apply to connection level failures only. Timeouts,\nauth failures, rate limits and IP blocks are raised immediately.\n\nJWT auth:\n\n```javascript\nimport { OwlBrowser, AuthMode } from '@olib-ai/owl-browser-sdk';\n\nconst browser = new OwlBrowser({\n  url: 'http://127.0.0.1:8080',\n  authMode: AuthMode.JWT,\n  jwt: {\n    privateKeyPath: '/path/to/private.pem',  // path or an inline PEM string\n    expiresIn: 3600,                          // seconds, default 3600\n    refreshThreshold: 300,                    // re-sign this many seconds before expiry\n    issuer: 'my-app',\n    subject: 'automation',\n    audience: 'owl-browser',\n    claims: { team: 'growth' },\n  },\n});\n```\n\n## Calling tools\n\n`execute(toolName, params, options?)` calls any tool by its full name and returns\nthe unwrapped `result` field of the server response.\n\n```javascript\nconst result = await browser.execute('browser_navigate', {\n  context_id: contextId,\n  url: 'https://example.com',\n  wait_until: 'load',\n});\n```\n\n`options.signal` accepts an `AbortSignal` to cancel an in-flight request.\n\nEvery tool in the bundled OpenAPI schema also gets a generated method, under both\nits camelCase and its snake_case name, with the `browser_` prefix removed. These\nare exactly equivalent to `execute()`:\n\n```javascript\nawait browser.getMarkdown({ context_id: contextId });\nawait browser.get_markdown({ context_id: contextId });\nawait browser.execute('browser_get_markdown', { context_id: contextId });\n```\n\nParameters are passed through as the server names them (`context_id`, not\n`contextId`). Fields typed as `integer` in the schema are floored before sending.\n\nIntrospection:\n\n```javascript\nbrowser.listTools();            // 185 full tool names: 'browser_create_context', ...\nbrowser.listMethods();          // 353 generated method names, camelCase and snake_case\nbrowser.hasMethod('getMarkdown');  // true\n\nconst def = browser.getTool('browser_navigate');\ndef.name;             // 'browser_navigate'\ndef.description;\ndef.requiredParams;   // ['context_id', 'url']\ndef.parameters;       // { context_id: {name, type, required, description, enumValues, default}, ... }\n```\n\n`listTools()` and `getTool()` take full tool names (`browser_navigate`).\n`listMethods()` and `hasMethod()` take generated method names (`navigate`).\nBoth read the schema bundled with the package, so they work before `connect()`\nand without a server.\n\nA handful of methods are hand written for better types and behaviour and take\nprecedence over the generated ones: `createContext`, `create_context`,\n`closeContext`, `closeAllContexts`, `navigate`, `click`, `type`, `screenshot`,\n`waitForSelector`, `getHtml`, `getMarkdown`, `evaluate`.\n\n`healthCheck()` returns the server's health JSON. It is HTTP only.\n\n## Long running work\n\nAn agentic run (`browser_nla`) routinely takes minutes. Run synchronously it\nexceeds the server's default 30 second request timeout, the connection is\ndropped, and the result is lost even though the browser finished the work. The\nSDK submits it as a background job and polls instead.\n\n### runTask\n\nThis is the one to use. One call submits the job, polls it, and returns the\nunwrapped answer.\n\n```javascript\nimport { OwlBrowser } from '@olib-ai/owl-browser-sdk';\n\nconst browser = new OwlBrowser({ url: 'http://127.0.0.1:8080', token: 't', apiPrefix: '' });\nawait browser.connect();\n\n// browser_nla needs an LLM on the context: the built-in model, or your own.\nconst contextId = await browser.createContext({\n  render_mode: 'agent',\n  llm_is_third_party: true,\n  llm_use_builtin: false,\n  llm_endpoint: 'http://127.0.0.1:1234',\n  llm_model: 'qwen/qwen3.8-27b',\n  llm_api_key: process.env.LLM_API_KEY,\n});\n\nawait browser.navigate({\n  context_id: contextId,\n  url: 'https://books.toscrape.com/catalogue/category/books/travel_2/index.html',\n});\n\nconst answer = await browser.runTask({\n  contextId,\n  command: \"Open the product page for 'The Great Railway Bazaar' and report how \"\n         + 'many copies are in stock. Answer with just the number.',\n});\n\nconsole.log(answer);   // the tool's own result, envelopes already stripped\n\nawait browser.closeContext({ context_id: contextId });\nawait browser.close();\n```\n\n`runTask({ contextId, command, timeoutMs?, pollIntervalMs?, ...rest })`\n\n- `contextId` and `command` map to the `context_id` and `command` parameters of\n  `browser_nla`.\n- `timeoutMs` defaults to `600000` (10 minutes). It bounds the client's polling,\n  not the server. On expiry `runTask` rejects and the job keeps running server side.\n- `pollIntervalMs` defaults to `2000`.\n- Any other key is passed straight through to the tool.\n- Rejects with `OwlBrowserError` if the job fails or is cancelled.\n\n### The job API\n\nUse these when you need the job ID itself, for example to report progress or to\ncancel from elsewhere.\n\n```javascript\nconst jobId = await browser.submitJob('browser_nla', {\n  context_id: contextId,\n  command: 'How many books are listed on this page? Answer with just the number.',\n});\n\nconst job = await browser.getJob(jobId);\n// { job_id, state, tool, created_ms, updated_ms, result?, error? }\n\nconst progress = await browser.getTaskStatus(contextId);\n// { running, cancel_requested, phase, step, last_event, plan }\n\nconst answer = await browser.waitForJob(jobId, { timeoutMs: 600000, pollIntervalMs: 2000 });\n```\n\n- `submitJob(toolName, params)` returns a job ID string. It works for any tool,\n  not only `browser_nla`.\n- `getJob(jobId)` returns the raw job record. Rejects with `OwlBrowserError` if\n  the ID is unknown.\n- `listJobs()` returns every live job on the server as an array, without result\n  payloads.\n- `cancelJob(jobId)` requests cancellation and returns the job record.\n- `waitForJob(jobId, { timeoutMs, pollIntervalMs })` polls until the job reaches\n  a terminal state and returns the unwrapped result. Same defaults as `runTask`.\n\n`waitForJob` and `runTask` peel the transport envelopes off the stored result,\nso you get the tool's answer rather than `{success, result}` wrapping a JSON\nstring.\n\n### Job states\n\n| State | Meaning |\n|---|---|\n| `queued` | Accepted, not started. |\n| `running` | Executing. |\n| `done` | Finished, `result` is populated. |\n| `failed` | Finished, `error` is populated. |\n| `cancelled` | Stopped before completion. |\n| `cancelling` | Cancel requested on a job that is already inside a browser call. |\n\nA queued job cancels immediately. Cancelling an NLA job also signals the\nbrowser-side loop, which exits between native actions or LLM calls. An\nin-flight network request returns safely first. Keep polling through\n`cancelling`; it is not terminal.\n\nFinished jobs are kept for 30 minutes, then reclaimed.\n\n### Transport requirement\n\nThe job endpoints are plain REST and exist only on the HTTP transport. A client\nconstructed with `transport: TransportMode.WEBSOCKET` rejects with\n`OwlBrowserError` from `getJob`, `listJobs`, `cancelJob`, `waitForJob` and\n`runTask`.\n\n## System One models\n\nA **System One** model — TypeSafe's Jev family is the first — is not a\ngenerative LLM. It is a constrained-decision evaluator: you give it free-form\n`state` plus named typed questions, and it returns **one of the option keys you\nsupplied**, with a probability distribution. It cannot invent a selector, a\ncoordinate, free text, or a tool call.\n\nSo the normal tool surface does not fit it: `browser.click({ selector })`\nassumes the caller can produce a selector. `browser.sys1` translates instead —\nit turns the page into a closed set of *fully-formed* actions, and maps the\nmodel's chosen key back to a real tool call.\n\n**Neither the browser nor this SDK ever contacts a model provider.** You get a\nready-to-POST request body, you call your provider with your own key, you hand\nthe answers back. Your credentials never reach the browser.\n\n### The loop\n\n```ts\nimport { OwlBrowser } from '@olib-ai/owl-browser-sdk';\n\nconst browser = new OwlBrowser({ url: 'http://localhost:8080', token });\nawait browser.connect();\n\nconst ctx = await browser.createContext({ render_mode: 'agent' });\nawait browser.navigate({ context_id: ctx, url: 'https://example.com/signup' });\n\n// 1. Page -> closed option set + a request body your provider accepts\nconst obs = await browser.sys1.observe(ctx, {\n  goal: 'Fill in the email address field',\n  values: [{ id: 'email', text: 'ada@example.com',\n             description: \"the user's email address\" }],\n});\n\n// 2. Your provider call. obs.request is forwarded verbatim.\nconst answers = await myProvider(obs.request);\n\n// 3. Resolve against the snapshot. This NEVER executes.\nconst decision = await browser.sys1.answer(obs.snapshotId, answers);\n\n// 4. Execute only if you want to.\nif (decision.status === 'proposed' && decision.candidateId) {\n  await browser.sys1.execute(obs.snapshotId, decision.candidateId);\n}\n```\n\n`step()` does the same four calls for you — the provider call still happens\nentirely inside your `ask`:\n\n```ts\nconst step = await browser.sys1.step(ctx, {\n  goal: 'Fill in the email address field',\n  values: [{ id: 'email', text: 'ada@example.com',\n             description: \"the user's email address\" }],\n  ask: (request) => myProvider(request),  // sync or async\n  autoExecute: true,                      // false to gate on step.decision\n});\nconsole.log(step.decision.status, step.execution?.description);\n```\n\n### What the model sees\n\n`observe()` returns candidates that are each a complete, executable call:\n\n```\nc0  click   Click link \"Terms of Service\"\nc2  type    Fill textField \"Email Address *\" with supplied value \"email\": the user's email address\nc7  scroll  Scroll to the bottom of the page\n```\n\nPlus a mandatory `none` (\"no listed action is suitable\"), so the model is never\nforced to pick the least-bad option.\n\nA `type` candidate exists only for a **(field, value) pair** — a type is not\nexecutable until it is paired with a specific value, so pass `values` if you\nwant the model to be able to fill anything. Without them the page yields clicks\nonly.\n\n### Things worth knowing\n\n- **Supplied values never reach the model.** Only `{id, description}` goes into\n  `state.suppliedValues`; `text` stays in the browser's binding and is resolved\n  at execute time. A password or token is never sent to the provider.\n- **Bindings never leave the browser.** The model sees `{id, description}`; the\n  tool and its arguments stay server-side. A model cannot name an action that\n  was not offered — that, not response arithmetic, is the safety boundary.\n- **Snapshots are single-use and expire (120 s).** The binding is consumed\n  before the side effect, so a replayed answer cannot fire twice.\n- **Deciding is separate from executing.** Only `status === 'proposed'` is\n  actionable (`isActionable(decision)` is exported); `needs_review`,\n  `no_action`, `goal_reported` and `expired` are inert by default. Tune with\n  `minConfidence` / `goalThreshold`.\n- **Page it when it is big.** A choice question allows 255 options, so the\n  browser caps candidates at 254 + `none`. Use\n  `obs.coverage.nextCandidateOffset` with `candidateOffset`, or narrow with\n  `region` / `detail: 'min'`.\n\n### Answer shape\n\n`answers` is whatever your provider returned. `answer()` also accepts the whole\nresponse body and will pick out `.answers` for you. Expected shape:\n\n```json\n{\n  \"action\":       { \"type\": \"choice\", \"choice\": \"c2\", \"confidence\": 0.93,\n                    \"probabilities\": { \"c2\": 0.93, \"none\": 0.07 } },\n  \"goal_visible\": { \"type\": \"noul\", \"noul\": 0.05 }\n}\n```\n\nParsing is deliberately lenient: only a `choice` that the snapshot offered is\nrequired. A partial distribution, one that does not sum to 1, or a choice that\nis not the argmax are all accepted — with up to 255 options a truncated top-k\nis plausible, and rejecting it would break execution for no safety gain.\n\n## Errors\n\nAll errors extend `OwlBrowserError`, which extends `Error`.\n\n| Error | Raised when |\n|---|---|\n| `OwlBrowserError` | Base class. Also raised directly for job failures, `waitForJob` client timeout, unknown job IDs, job calls on a WebSocket client, and a `browser_create_context` response with no usable ID. |\n| `ConnectionError` | HTTP retries exhausted, a non-tool request failed at the network level, or a WebSocket connection failed or closed with requests pending. Carries `cause`. |\n| `AuthenticationError` | HTTP 401, or a WebSocket handshake error mentioning 401. Carries `reason` and `statusCode = 401`. |\n| `ToolExecutionError` | HTTP 4xx/5xx other than 401/403/429, a JSON body with `success: false`, or a WebSocket error frame. Carries `toolName`, `status`, `result`. |\n| `TimeoutError` | The per-request transport timeout elapsed. Carries `timeoutMs`. |\n| `RateLimitError` | HTTP 429. Carries `retryAfter`, `limit`, `remaining`, `statusCode = 429`. |\n| `IPBlockedError` | HTTP 403. Carries `ipAddress` and `statusCode = 403`. |\n| `OpenAPISchemaError` | The bundled schema is missing or unparseable. Carries `cause`. |\n| `RequestAbortedError` | An `options.signal` you supplied was aborted. Not re-exported from the package root and not reachable through the package's `exports` map, so match on `e.name === 'RequestAbortedError'` or catch it as `OwlBrowserError`. |\n\n```javascript\nimport {\n  OwlBrowserError,\n  ToolExecutionError,\n  TimeoutError,\n  RateLimitError,\n  AuthenticationError,\n} from '@olib-ai/owl-browser-sdk';\n\ntry {\n  await browser.click({ context_id: contextId, selector: '#nonexistent' });\n} catch (e) {\n  if (e instanceof ToolExecutionError) {\n    console.log(e.toolName, e.status, e.message);\n  } else if (e instanceof TimeoutError) {\n    console.log('timed out after', e.timeoutMs, 'ms');\n  } else if (e instanceof RateLimitError) {\n    console.log('retry after', e.retryAfter, 'seconds');\n  } else if (e instanceof AuthenticationError) {\n    console.log(e.message);\n  }\n}\n```\n\nA failing tool surfaces as `ToolExecutionError`. `ElementNotFoundError`,\n`NavigationError`, `ContextLimitError`, `FlowExecutionError` and\n`ExpectationError` are exported but the transports never raise them. To get the\nfirst two, run a result through the exported helper yourself:\n\n```javascript\nimport { raiseForActionResult, ElementNotFoundError } from '@olib-ai/owl-browser-sdk';\n\nconst result = await browser.click({ context_id: contextId, selector: '#maybe' });\ntry {\n  raiseForActionResult(result);   // no-op unless result is a failed ActionResult\n} catch (e) {\n  if (e instanceof ElementNotFoundError) console.log(e.selector);\n}\n```\n\n## Transports\n\nHTTP is the default and the fully featured one. WebSocket keeps a single\nconnection open and multiplexes requests over it by numeric ID.\n\n```javascript\nimport { OwlBrowser, TransportMode } from '@olib-ai/owl-browser-sdk';\n\nconst browser = new OwlBrowser({\n  url: 'http://127.0.0.1:8080',\n  token: 'your-secret-token',\n  apiPrefix: '',\n  transport: TransportMode.WEBSOCKET,   // connects to ws://127.0.0.1:8080/ws\n});\n\nawait browser.connect();\n```\n\n| | HTTP | WebSocket |\n|---|---|---|\n| Endpoint | `POST {url}{apiPrefix}/execute/{tool}` | `ws(s)://{host}{apiPrefix}/ws` |\n| Connection | Per request, `connect()` only marks the client ready | One persistent socket, opened by `connect()` |\n| Timeout | `timeout`, raised to `max(120s, timeout * 4)` for ~30 known long running tools | `timeout` for every call |\n| Retry | Exponential backoff with jitter | None |\n| Concurrency cap | `maxConcurrent` | Unbounded, limited by the server |\n| `healthCheck()` | Supported | Throws `OwlBrowserError` |\n| Async jobs | Supported | Throws `OwlBrowserError` |\n| Error detail | 401 / 403 / 429 mapped to distinct classes | All server errors arrive as `ToolExecutionError` with `toolName: 'unknown'` |\n\nAuth differs too: HTTP sends the bearer token on every request, so a JWT is\nre-signed as it approaches expiry. WebSocket sends it once in the handshake, so\na long lived socket outlives its token unless you reconnect.\n\nPick WebSocket for many short calls where per-request overhead matters. Pick\nHTTP for everything else, and always for long running work.\n\n## Also in the package\n\nThree optional layers ship alongside the tool client. Each is independent, and\nnone of them is needed for the sections above.\n\n| Import | What it is |\n|---|---|\n| `import { FlowExecutor } from '@olib-ai/owl-browser-sdk'` | Runs declarative JSON flows: steps, captured variables, `for_each`, retries, expectations. See [docs/FLOW_EXECUTOR.md](docs/FLOW_EXECUTOR.md). |\n| `import { Extractor } from '@olib-ai/owl-browser-sdk'` | Field specs to pull structured records out of a page. |\n| `import { chromium } from '@olib-ai/owl-browser-sdk/playwright'` | A Playwright-shaped facade (`Browser`, `BrowserContext`, `Page`) over the same client, for porting existing scripts. |\n","readmeFilename":"README.md"}