{"_id":"@codemonkcompany/llm-dom-selector","_rev":"15-53ea81deb1a3577075e352ee22ba1276","name":"@codemonkcompany/llm-dom-selector","dist-tags":{"latest":"1.7.0"},"versions":{"1.0.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.0.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.0.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"94555bddd796065dc80cf0bd568aec5c60bd7279","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.0.0.tgz","fileCount":31,"integrity":"sha512-vV6tXI/FgDe78XXGaEEe0+tKHarjdo5KgPp3a7AZOwF/P/LVnq+j3N0J2O9/MxJup1sTNhU5Z8ujAbrJjvm/8g==","signatures":[{"sig":"MEUCIQC5tGrWgBpalHovOGQUsduebfSSA3NPX/GAy6PNWIOw3wIgbwKK1jUJwmJQDakVADT0ScB6PReBfbmCgFgbysb04fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105913},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"2e6160c17cc3bf2ff8d2f4aae32d93591eb14401","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.0.0_1759322215840_0.6671066068779368","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"2a31296f54ff4dabb21e4ebc4222d88f710a7e7e","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.0.tgz","fileCount":31,"integrity":"sha512-JqcXneBZukT5TQIVdy+f0bCs2mSG1URDnvSN7di8twZpTazZ01QBdHfToYDGBgCh3vrZJpBdQJA2zTxgQYVctQ==","signatures":[{"sig":"MEUCIQDg0uB1yJy1XxMAzPThHRjEHRi+kVRVZYpNLJlgqnjxXgIgFcqHM/UsM8yoRy+y4wG9PjjdR3IHfP8oZ+tVSX9XPyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105913},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"b1f4026c986605e39dde692f426482a6b384a2be","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.0_1759392131069_0.6693831461947444","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.1","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.1","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"321bb60f5e3c839bd0a65076ba3363d247e5dc55","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.1.tgz","fileCount":31,"integrity":"sha512-aREmVjqbeJyV30aEqCkYPHnvC83+A9J5XQ3TXqn/Z4/NHNuKqTjxatIqfXYdY4mBXR3yZGg21CQp/OssBd6IoA==","signatures":[{"sig":"MEYCIQDOSjLh+/dbFpnDm1bdLMpXu7sOFZWpH9K8SzvGwvVVkQIhANYcDTPTDn+43mNO4KBMF/8w06moO+LB8ZI2uBEla1BJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105913},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"74a999bd8dd49ae63e8652d61429a9a6aa24c25e","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.1_1759392760461_0.324900510524027","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.2","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.2","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"aabf620b315768f0ab5c0d2eff4c88e5495c5655","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.2.tgz","fileCount":31,"integrity":"sha512-BwN6qYF7RNX9ea/m1hXBlE7M0S/Q4zJLDfruq2qF1coskODnFtO+D3fPslMTNRhBz+s0WFny4IIG9TCm1rBB2w==","signatures":[{"sig":"MEUCIQDSmPrhOj2OgGz3+gCc40Yt194UZCJj6etdzG9WlYsVYQIgXMsv6fuKOd3ZCDBLD01RpubtXwpAvukhRSJ62UPQef0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105913},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"f1f774ac76253f7abb3963894efc4030215dc4ed","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.2_1759393852276_0.5749110463363933","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.3","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.3","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"f42f19d35035d899b7a0b6235634f67912e4a697","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.3.tgz","fileCount":31,"integrity":"sha512-BNslxEbNItnC+n0g/qO4iCMsymj0nd7Hbr6PZGioEsAbUm+r+sn/pdtUI8okdFHqirW5d9XQ8qyL2Emt0khzWw==","signatures":[{"sig":"MEYCIQCxFuWOb0cehQctAhTeqqf824+LWL6lwIWh61ZXAKU6xwIhAKKioZGicziMtE+W7xr1cmWD63R9hd6Mt7/m9xCOexFu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126343},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"3d8d17117262b6a9f4bfc03f103fd9f9c8865a19","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.3_1759643914130_0.03301541949281539","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.4","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.4","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"45cb8e2d8d2090d6308fc2ac576ad7930e35c687","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.4.tgz","fileCount":31,"integrity":"sha512-JvHvIrpC5NMV5rzToeuUvcv6m+Co4tsnoJ+qPXbS3xEymT8JbolJo4CbjlERCLVgkud5v0yIcqU2rmDhGB/i4Q==","signatures":[{"sig":"MEUCIQCix/ZXNBeACwm/bwEex/2wRQp2hCmYMDU1Jqx20CaRlQIgFdB0QSZboCML/FYkVUGgS1OaTej+N8BeN9+3vuO2nHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128934},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"8b6ddc576e0d2219d8abec032c7b86fc6dfe1e59","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^0.3.68"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19","@langchain/openai":"^0.6.14"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.4_1759645543221_0.46848778178708583","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@codemonkcompany/llm-dom-selector","version":"1.1.5","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.1.5","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"7b82b82d8d9c61b51651507fb791b0c6c98e5137","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.1.5.tgz","fileCount":31,"integrity":"sha512-d36BvTd9VvRSAyTwT2hTkTobQobyCf5KgdQjGZomnx+xGlz0TBsg+GkojU4bUKEuq0PEyP+ZdgSevVjIPDcTHQ==","signatures":[{"sig":"MEUCIQDKjwatP3fZAybgrqjnvjmx7FqSjvEAQBf6g8rdQamW0AIgNMxOgY2aLcXNEo3WM3Gmik/JJwAUHiojZh/BE71VgRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128932},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"387a11ad091cd9a5aeda510f24a940348e54a7a6","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.1.5_1761446006422_0.7218232852745321","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.2.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.2.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"3e60a06816bda06a71fc01821b16ba7d6e4929ea","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.2.0.tgz","fileCount":31,"integrity":"sha512-qo5UqELK1X7PnngFpBy0sXU8tag6KcqpAA12aR1d4PLtkTSiU7trmbNPdC4t6xQ1cQHTCteF7xjyn9Op+H4S+A==","signatures":[{"sig":"MEYCIQDGWhchV9SlMUHypNF4+SwDAYAuIU7hqhKxr4oqU4A2mwIhAJJfNfdckm3W4O3RQWFQ+z3FvhHFM6IR2W6Ybil/kmue","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134229},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"62f2171caa406217928d57751696e0ecc7cb682d","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.2.0_1785332613803_0.3568928983635047","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@codemonkcompany/llm-dom-selector","version":"1.2.1","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.2.1","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"a13cd01468a4f2890b72f867db8d2ef47ddd044f","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.2.1.tgz","fileCount":31,"integrity":"sha512-8JQXeDNnrFCvkARj+hL6T2FaOWZUQpTXfZdpmc+8eb4oyd3C1dG/ANV59tR9M0Jp142sQvageAXtNBZxVIT6kg==","signatures":[{"sig":"MEUCIQDfGljUEB36Qe00cKU6pJf6B7z049u5zHyPgYC9iYPeuwIgJ+QRH8qUyHSsf5EhEtwTXmOa1QoE9FA/rTVLNp6gJY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135196},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"de821f68e30fe44a20567d84a05a78d99a9e44d9","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.2.1_1785413784349_0.5321634433780829","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.3.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.3.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"fe0771a081d341595feb0cd4406e124a68487aa8","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.3.0.tgz","fileCount":35,"integrity":"sha512-vDVUJfOS0mtPu8x3ASOTkK8Uap/DY3P2KozQGlPeA1okAVmGTH2AHWaQliyrqvZ7juYtJH51Qxj7LmfZ+gFD5Q==","signatures":[{"sig":"MEUCIQDc8xv7J50SSlLp/kVSUi2BpbbqF4aHzjSzAH65U7+xQgIge3wZ6j8v1RhxlyXUtZW7Bvs5iQ//wgA1lAOdV3HZn+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152605},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"a294325109e4b779c7a630f27b94846cdfb59a76","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.3.0_1785437653223_0.2897796326164557","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@codemonkcompany/llm-dom-selector","version":"1.3.1","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.3.1","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"6b72508e0a142d23ddbc4bd465503cb463619abe","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.3.1.tgz","fileCount":35,"integrity":"sha512-EvkniIVR9WxUOQ7nxOTWfcw84UIb0N4YjmzEs2C8JCVrxBd7Ia58F4FNebjgia1+pACEiTDXECM/JoyLMkFl6g==","signatures":[{"sig":"MEYCIQD+0jwlzcZdTfkufampTG4BpjaW1e8fc7VMao+RDp7gywIhAP7g/5D/D6hzSV83tyg9E4qQdjCrOJqqo1+nQ3Tj/Yry","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154555},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"3d043e16f4118dbb238ee794f62bb913a1b88e54","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.3.1_1785440945093_0.342265572134127","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.4.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.4.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"26a3da8f3cb3167f8705bf664b7e48fbe6ac9d05","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.4.0.tgz","fileCount":35,"integrity":"sha512-r+mXvtNHogkEb/WbBlKvB8KYdO98I1yY9qTQSZoCT0xZviY4j2lPu+MUHLtZRQeo2EYz8263WKO6matJoAbKLQ==","signatures":[{"sig":"MEYCIQDK1aTO97TO4hdpdfYuU9pGobcWqBaxpCAIxK1HuX5xagIhAPMCNmOz44/OR1qmZ3VbSEDRgg6osprxiTOgZeIWetz9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156415},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"9c809907ecc343ec03bdf5619f90a302e8836c2a","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.4.0_1785489513859_0.7513588679705612","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.5.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.5.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"51925b1f7c82fcaf69a7ec7dd16ee4b4772891dc","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.5.0.tgz","fileCount":35,"integrity":"sha512-MW50ueMSfSQAb7xbKum9a+HASnRoORjP00fKBqOGOI75CnMFjELln8joZ/pagj8chm6de7zbglSN0uuOMsgaag==","signatures":[{"sig":"MEQCIFlX56U3o4O6LuAXugYHU0+ZMp4xO4Tk2cxdJNNLvwjYAiBu0wh/lSRdbEoM92vVOQLNXhnIl4YZ45sQrMH1NqHVlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163599},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"8dc6e0dc941da77df1ea1bc95b5d5455b3ca73ed","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.5.0_1785494744664_0.9003363327351757","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.6.0","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"author":{"name":"Your Name"},"license":"MIT","_id":"@codemonkcompany/llm-dom-selector@1.6.0","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"dist":{"shasum":"61b92d85910bce521bf12822dd6ca4ddc2b2eef3","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.6.0.tgz","fileCount":39,"integrity":"sha512-eltyrZ2CboCEpKpodM2/uZB9yTvfDY8SazBPnfLdSAeuo+PC2WGehTBXUdClgGcMSiArR57wbRb1l+E4RpO5Tw==","signatures":[{"sig":"MEUCIEO/MPs2kBqWL+V0DovGsM5K/PImJCeg9qn9HIoI0/F/AiEA8jzwYrzMAqQ1PINZHcw+9bVlxM4dFCY/8dBKdfF8in0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173315},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"9b2153798f1ee12ec0667f357469d8c3c30c3e60","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","example":"cd example && npm run start","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"repository":{"url":"git+https://github.com/codemonkcompany/llm-dom-selector.git","type":"git"},"_npmVersion":"11.4.2","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","directories":{"example":"example"},"_nodeVersion":"24.3.0","dependencies":{"playwright":"^1.40.0","@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.19.19"},"_npmOperationalInternal":{"tmp":"tmp/llm-dom-selector_1.6.0_1785521479222_0.4517836867561882","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@codemonkcompany/llm-dom-selector","version":"1.7.0","description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"repository":{"type":"git","url":"git+https://github.com/codemonkcompany/llm-dom-selector.git"},"license":"MIT","author":{"name":"Your Name"},"type":"commonjs","main":"dist/index.js","types":"dist/index.d.ts","directories":{"example":"example"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","example":"cd example && npm run start","prepublishOnly":"npm run build","clean":"rm -rf dist"},"dependencies":{"@langchain/core":"^1.0.1","@langchain/openai":"^1.0.0","playwright":"^1.40.0"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.19.19","jest":"^29.0.0","ts-jest":"^29.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"engines":{"node":">=16.0.0"},"_id":"@codemonkcompany/llm-dom-selector@1.7.0","gitHead":"8e55a37a7c02ef5c0808dc96f77accf88de4e63f","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-gaievj6CUyrI63JgMKQqXlTTTfG9bv6+9K9yw7z2S5mzsIYvQieFRXkBe/pnX8PaH034MyvY2lQozlQ7DNqqBA==","shasum":"ce2f652407e518a31cc1e95664c1097faa5d02ff","tarball":"https://registry.npmjs.org/@codemonkcompany/llm-dom-selector/-/llm-dom-selector-1.7.0.tgz","fileCount":39,"unpackedSize":180588,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBpNU71rdth2m9La1vLOrWWGlfVxFGgYZNDEiZYZ7LpHAiEAtwI48k29ReimAN5kYl87XMix9/J5eIMxrWQ3ihhC9BQ="}]},"_npmUser":{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"},"maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-dom-selector_1.7.0_1786308572250_0.3230563009399625"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-01T12:36:55.695Z","modified":"2026-08-09T20:49:32.598Z","1.0.0":"2025-10-01T12:36:56.010Z","1.1.0":"2025-10-02T08:02:11.260Z","1.1.1":"2025-10-02T08:12:40.646Z","1.1.2":"2025-10-02T08:30:52.486Z","1.1.3":"2025-10-05T05:58:34.321Z","1.1.4":"2025-10-05T06:25:43.412Z","1.1.5":"2025-10-26T02:33:26.640Z","1.2.0":"2026-07-29T13:43:33.942Z","1.2.1":"2026-07-30T12:16:24.556Z","1.3.0":"2026-07-30T18:54:13.359Z","1.3.1":"2026-07-30T19:49:05.274Z","1.4.0":"2026-07-31T09:18:34.014Z","1.5.0":"2026-07-31T10:45:44.795Z","1.6.0":"2026-07-31T18:11:19.370Z","1.7.0":"2026-08-09T20:49:32.394Z"},"bugs":{"url":"https://github.com/codemonkcompany/llm-dom-selector/issues"},"author":{"name":"Your Name"},"license":"MIT","homepage":"https://github.com/codemonkcompany/llm-dom-selector#readme","keywords":["llm","dom","selector","playwright","automation","ai","typescript"],"repository":{"type":"git","url":"git+https://github.com/codemonkcompany/llm-dom-selector.git"},"description":"A TypeScript library that uses LLM to intelligently select DOM elements from web pages using Playwright","maintainers":[{"name":"ajaykumar0","email":"ajayrajput712@gmail.com"}],"readme":"# LLM DOM Selector\n\nA powerful TypeScript library that uses Large Language Models (LLMs) to intelligently select DOM elements from web pages using Playwright. This library extracts the core functionality from the browser-use-typescript project, focusing specifically on LLM-based element selection and interaction.\n\n## Features\n\n- **🤖 LLM-Powered Selection**: Use natural language descriptions to select DOM elements\n- **🎯 Smart Element Detection**: Automatically identifies interactive elements on web pages\n- **👁️ Visual Context**: Supports both text and visual (screenshot) context for better selection\n- **🔍 Advanced Element Location**: Handles iframes, shadow DOM, and complex page structures\n- **⚡ TypeScript Support**: Full type safety and IntelliSense support\n- **🎨 Element Highlighting**: Visual highlighting of selectable elements\n- **🔄 Flexible Configuration**: Customizable attributes, retry logic, and selection criteria\n- **✅ Original Implementation**: All methods and interfaces exactly match the browser-use-typescript project\n\n## Installation\n\n```bash\nnpm install llm-dom-selector\n```\n\n## Quick Start\n\n```typescript\nimport { LLMDOMSelector } from \"llm-dom-selector\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { chromium } from \"playwright\";\n\nasync function example() {\n  // Initialize Playwright browser\n  const browser = await chromium.launch();\n  const page = await browser.newPage();\n  await page.goto(\"https://example.com\");\n\n  // Initialize LLM\n  const llm = new ChatOpenAI({\n    modelName: \"gpt-4o-mini\",\n    temperature: 0,\n    openAIApiKey: \"your-api-key\",\n  });\n\n  // Create the selector\n  const selector = new LLMDOMSelector(page, llm);\n\n  // Select an element using natural language\n  const result = await selector.selectElement(\"the submit button\");\n\n  if (result.selectedElement) {\n    console.log(\"Selected element:\", result.reasoning);\n    console.log(\"Confidence:\", result.confidence);\n\n    // Click the selected element\n    await selector.clickElementByIndex(result.selectedIndex!);\n  }\n\n  await browser.close();\n}\n```\n\n## Core Concepts\n\n### 1. DOM Element Extraction\n\nThe library automatically extracts all interactive elements from a web page and assigns them numeric indices for easy reference.\n\n```typescript\n// Get all interactive elements\nconst elements = await selector.getInteractiveElements();\nconsole.log(`Found ${elements.length} interactive elements`);\n\n// Get a specific element by index\nconst element = await selector.getElementByIndex(5);\nconsole.log(\"Element:\", element?.toString());\n```\n\n### 2. LLM-Based Selection\n\nUse natural language descriptions to select elements:\n\n```typescript\n// Select by description\nconst result = await selector.selectElement(\"the login button\");\nconst result2 = await selector.selectElement(\"input field for email address\");\nconst result3 = await selector.selectElement(\n  \"the first link in the navigation menu\"\n);\n```\n\n### 3. Element Interaction\n\nOnce you have selected an element, you can interact with it:\n\n```typescript\n// Click an element\nawait selector.clickElementByIndex(selectedIndex);\n\n// Input text to an element\nawait selector.inputTextToElementByIndex(selectedIndex, \"hello@example.com\");\n\n// Or use the combined methods\nawait selector.selectAndClick(\"the submit button\");\nawait selector.selectAndInputText(\"email input\", \"user@example.com\");\n```\n\n## API Reference\n\n### LLMDOMSelector\n\nMain class that combines all functionality.\n\n#### Constructor\n\n```typescript\nconstructor(\n  page: Page,\n  llm: BaseChatModel,\n  config?: LLMDOMSelectorConfig\n)\n```\n\n#### Methods\n\n##### `getBrowserState(): Promise<BrowserState>`\n\nGet the current browser state with all interactive elements.\n\n##### `selectElement(prompt: string): Promise<ElementSelectionResult>`\n\nSelect an element using LLM based on a text description.\n\n##### `getElementByIndex(index: number): Promise<DOMElementNode | null>`\n\nGet a specific element by its index.\n\n##### `getInteractiveElements(): Promise<DOMElementNode[]>`\n\nGet all available interactive elements.\n\n##### `clickElementByIndex(index: number): Promise<void>`\n\nClick an element by its index. Uses the original `_click_element_node()` method.\n\n##### `inputTextToElementByIndex(index: number, text: string): Promise<void>`\n\nInput text to an element by its index. Uses the original `_input_text_element_node()` method.\n\n##### `selectAndClick(prompt: string): Promise<ElementSelectionResult>`\n\nSelect and click an element using LLM.\n\n##### `selectAndInputText(prompt: string, text: string): Promise<ElementSelectionResult>`\n\nSelect and input text to an element using LLM.\n\n##### `refreshState(): Promise<BrowserState>`\n\nRefresh the browser state (useful after page changes).\n\n##### `removeHighlights(): Promise<void>`\n\nRemove element highlights from the page.\n\n### Configuration\n\n#### LLMDOMSelectorConfig\n\n```typescript\ninterface LLMDOMSelectorConfig {\n  browserContext?: Partial<BrowserState>;\n  llmSelector?: Partial<{\n    includeAttributes: string[];\n    useVision: boolean;\n    maxRetries: number;\n  }>;\n}\n```\n\n#### BrowserContextConfig\n\n```typescript\ninterface BrowserContextConfig {\n  highlightElements: boolean; // Enable visual highlighting\n  viewportExpansion: number; // Pixels to expand viewport\n  includeDynamicAttributes: boolean; // Include dynamic attributes\n  waitBetweenActions: number; // Wait time between actions\n}\n```\n\n## Advanced Usage\n\n### Custom LLM Configuration\n\n```typescript\nimport { ChatOpenAI } from \"@langchain/openai\";\n\nconst llm = new ChatOpenAI({\n  modelName: \"gpt-4o-mini\",\n  temperature: 0.1,\n  openAIApiKey: process.env.OPENAI_API_KEY,\n});\n\nconst selector = new LLMDOMSelector(page, llm, {\n  llmSelector: {\n    includeAttributes: [\"title\", \"aria-label\", \"data-testid\"],\n    useVision: true,\n    maxRetries: 5,\n  },\n});\n```\n\n### Custom Browser Configuration\n\n```typescript\nconst selector = new LLMDOMSelector(page, llm, {\n  browserContext: {\n    highlightElements: true,\n    viewportExpansion: 1000,\n    includeDynamicAttributes: true,\n    waitBetweenActions: 1.0,\n  },\n});\n```\n\n### Working with Complex Pages\n\n```typescript\n// Handle dynamic content\nawait page.waitForLoadState(\"networkidle\");\nawait selector.refreshState();\n\n// Select elements in specific contexts\nconst result = await selector.selectElement(\n  \"the submit button in the login form\"\n);\nconst result2 = await selector.selectElement(\n  \"the first item in the dropdown menu\"\n);\n\n// Handle multiple selections\nconst loginButton = await selector.selectElement(\"login button\");\nconst passwordField = await selector.selectElement(\"password input\");\n\nif (loginButton.selectedElement && passwordField.selectedElement) {\n  await selector.inputTextToElementByIndex(\n    passwordField.selectedIndex!,\n    \"password123\"\n  );\n  await selector.clickElementByIndex(loginButton.selectedIndex!);\n}\n```\n\n### Error Handling\n\n```typescript\ntry {\n  const result = await selector.selectElement(\"the submit button\");\n\n  if (!result.selectedElement) {\n    console.log(\"No element found:\", result.reasoning);\n    return;\n  }\n\n  if (result.confidence < 0.7) {\n    console.warn(\"Low confidence selection:\", result.reasoning);\n  }\n\n  await selector.clickElementByIndex(result.selectedIndex!);\n} catch (error) {\n  console.error(\"Selection failed:\", error);\n}\n```\n\n## Element Selection Examples\n\nThe library can understand various types of element descriptions:\n\n```typescript\n// By text content\nawait selector.selectElement(\"Submit\");\nawait selector.selectElement(\"Login\");\nawait selector.selectElement(\"Cancel\");\n\n// By element type and context\nawait selector.selectElement(\"the submit button\");\nawait selector.selectElement(\"the email input field\");\nawait selector.selectElement(\"the first link in the navigation\");\n\n// By attributes\nawait selector.selectElement('button with id \"submit-btn\"');\nawait selector.selectElement('input with placeholder \"Enter email\"');\nawait selector.selectElement('link with href \"/login\"');\n\n// By position\nawait selector.selectElement(\"the first button\");\nawait selector.selectElement(\"the last input field\");\nawait selector.selectElement(\"the second link\");\n\n// By visual context (when useVision is enabled)\nawait selector.selectElement(\"the red button at the top\");\nawait selector.selectElement(\"the large blue submit button\");\n```\n\n## Supported LLM Providers\n\nThe library works with any LLM that implements the `BaseChatModel` interface from LangChain:\n\n- OpenAI (GPT-3.5, GPT-4, GPT-4o)\n- Anthropic (Claude)\n- Google (Gemini)\n- Azure OpenAI\n- Local models via Ollama\n- And many more...\n\n## Browser Support\n\n- Chromium (recommended)\n- Firefox\n- WebKit\n\n## TypeScript Support\n\nThe library is written in TypeScript and provides full type definitions:\n\n```typescript\nimport {\n  LLMDOMSelector,\n  ElementSelectionResult,\n  BrowserState,\n  DOMElementNode,\n} from \"llm-dom-selector\";\n```\n\n## Implementation Details\n\nThis library is extracted from the [browser-use-typescript](https://github.com/browser-use/browser-use-typescript) project and includes only the functionality up to point 8 (element location). All method names, interfaces, and implementations exactly match the original project:\n\n- **BrowserContext**: Uses original `get_locate_element()`, `_click_element_node()`, `_input_text_element_node()` methods\n- **DOM Service**: Extracts DOM using the original `buildDomTreeOverlay()` function\n- **System Prompt**: Uses the original system prompt format from `system_prompt.md`\n- **Message Formatting**: Matches the original `AgentMessagePrompt` structure\n- **Element Selection**: Implements the same LLM-based selection logic\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\nThis project is based on the excellent work done in the [browser-use-typescript](https://github.com/yourusername/browser-use-typescript) project, specifically extracting the DOM selection and LLM integration functionality.\n\n## Changelog\n\n### 1.0.0\n\n- Initial release\n- LLM-based element selection\n- Playwright integration\n- TypeScript support\n- Visual element highlighting\n- Comprehensive API\n\n## Support\n\n- [GitHub Issues](https://github.com/yourusername/llm-dom-selector/issues)\n- [Documentation](https://github.com/yourusername/llm-dom-selector#readme)\n- [Discussions](https://github.com/yourusername/llm-dom-selector/discussions)\n","readmeFilename":"README.md"}