{"_id":"@openhands/agent-canvas","_rev":"63-98a8bcaa4b72a833df7130f0ab8dda55","name":"@openhands/agent-canvas","dist-tags":{"alpha":"1.0.0-alpha.4","beta":"1.0.0-beta.1","latest":"1.20.0"},"versions":{"1.0.0-alpha.1":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.1","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"msw":{"workerDirectory":["public"]},"dist":{"shasum":"2e16da1aef74e0196f078661982c54ff8b2b9215","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.1.tgz","fileCount":3,"integrity":"sha512-34ptgoy5blAuvMAhbcts7bgpbjo1syDkgPB/IrZ3sno1BU5vjluYq0oBYo9ZO6v6Ian/ajifMGJKsLnuuigeVw==","signatures":[{"sig":"MEUCIQCxPRyqQkWsD6eFtyshzWJJ2qjNbFJRuwFkHNr+0opuUQIgYwTbOgb58yZ2irvycTw9kIckaibkCrocm7yo2Y20L9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13567},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"3a9796ad0ebd77bcd22141a24aa702f8ea83d5d8","private":false,"scripts":{"dev":"npm run dev:docker","lint":"npm run typecheck && eslint src --ext .ts,.tsx,.js && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"cd .. && husky frontend/.husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","dev:safe":"node --env-file-if-exists=.env scripts/dev-safe.mjs","lint:fix":"eslint src --ext .ts,.tsx,.js --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:docker":"node --env-file-if-exists=.env scripts/dev-docker.mjs","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","dev:automation":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","dev:dangerously-dockerless":"npm run dev:automation","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"malhotra5","email":"rohit@openhands.dev"},"overrides":{"dompurify":"3.3.2","eslint-config-airbnb":{"eslint-plugin-react-hooks":"$eslint-plugin-react-hooks"}},"_npmVersion":"11.6.2","description":"> [!WARNING] > This project is in sandbox phase. It may be vibecoded, untested, or out of date. OpenHands takes no responsibility for the code or its support. [Learn more](https://github.com/OpenHands/incubator-program).","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"25.2.1","dependencies":{"clsx":"2.1.1","uuid":"^14.0.0","vite":"8.0.10","axios":"1.15.2","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.5","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"3.0.6","@tanstack/react-query":"5.100.6","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.19","@openhands/typescript-client":"github:OpenHands/typescript-client#ef62e82fc3dfb03991a1c8025429caf354427263","eslint-config-airbnb-typescript":"18.0.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"8.57.1","vitest":"4.1.5","prettier":"3.8.3","cross-env":"10.1.0","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/react":"19.2.14","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.2.6","eslint-config-airbnb":"19.0.4","eslint-plugin-import":"2.32.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"7.18.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.6","@types/react-syntax-highlighter":"15.5.13","eslint-config-airbnb-typescript":"18.0.0","@typescript-eslint/eslint-plugin":"7.18.0"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.1_1778537277945_0.4884536777892563","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.2":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.2","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.2","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"56aff801ced4a26766158065053abd5076de2e65","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.2.tgz","fileCount":8042,"integrity":"sha512-ljh4fjgIz9nZg5tveANJzLc6TRwXVlCULRBeHmt8soouCflQmdSfJ9cbetsnMyobm5yKg47KbKuajlZPBqI9QQ==","signatures":[{"sig":"MEUCIAKENUR5+h6EC+VpnLEx5+TRz/8He5UfIHmIXbfP/sHVAiEAkb8FZOvHHb5K4fxXnyuw+9ATy0OMXwyzEktTwLy5iN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58286953},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"aad7aa6f6b4474ac62341e9117f94258d14508f0","private":false,"scripts":{"dev":"npm run dev:docker","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"[ -d '../.git' ] && cd .. && husky frontend/.husky || true","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","dev:safe":"node --env-file-if-exists=.env scripts/dev-safe.mjs","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:docker":"node --env-file-if-exists=.env scripts/dev-docker.mjs","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","dev:automation":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","dev:dangerously-dockerless":"npm run dev:automation","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.11.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"github:OpenHands/typescript-client#ef62e82fc3dfb03991a1c8025429caf354427263","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","readmeFilename":"README.md","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.2_1778565033438_0.4818245188887207","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.3":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.3","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.3","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"915193dae6b24ca32101f53e8f6170d5aef77d5e","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.3.tgz","fileCount":8042,"integrity":"sha512-pCyLIM6NmEGqxL3QXLxLaWsQ/ZP273coDvKcr/5YL+e6HCtyAddG56Rt4mjWT9eyvT3BVdWFdkY9FWZsD/9XBA==","signatures":[{"sig":"MEUCICzpaOMOtmuYTn3k2YZcxm++RwO1r01f0UDKrGgaRkD/AiEA930TJig7xrO6PEDTCSa6d3apB2XjutUJvzjjie+4Tcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58287043},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"1db39b0b23f88c9ff1539077c29c350650b4843b","private":false,"scripts":{"dev":"npm run dev:docker","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"[ -d '../.git' ] && cd .. && husky frontend/.husky || true","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","dev:safe":"node --env-file-if-exists=.env scripts/dev-safe.mjs","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:docker":"node --env-file-if-exists=.env scripts/dev-docker.mjs","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","dev:automation":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","dev:dangerously-dockerless":"npm run dev:automation","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.11.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"github:OpenHands/typescript-client#ef62e82fc3dfb03991a1c8025429caf354427263","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","readmeFilename":"README.md","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.3_1778566491624_0.3130779814283069","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.4":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.4","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.4","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"447c8ad4ad23bfaedddb218ddd3ce4c04f6caec6","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.4.tgz","fileCount":8737,"integrity":"sha512-rQHto5Xdur4yonZvx6ye03WAxIa9K3IpGKQfLRiAz+pVJapLjnK4xR6yepFIFwLmsqbp1umi7MgCv0xHJtQLbQ==","signatures":[{"sig":"MEYCIQDsD6hF2vNVLP8+o0S5jQ8a3czCFEeTOzWKG+bJ1lmbBQIhAOH3fEuZTS1S6ofvPQz2tWf5nL68MKS3hRsItYz4A7To","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61369367},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"b26e327c2ed92cd2495df054384b8eb19d851611","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.12.1","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.15.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#7b33f64ffccf95f7ccd2ec640aeae84ab1cc2c75","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"git+https://github.com/OpenHands/typescript-client.git#v1.23.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","readmeFilename":"README.md","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.4_1779814316997_0.8189639391279393","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.5":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.5","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.5","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"3d1260544b47f0f7c2e980fea0540516b209dfcf","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.5.tgz","fileCount":8744,"integrity":"sha512-lSk1/IuPh1HIomwrj/MwxZT5ZUeddNcHPi1zjixG5m1M3rsoMkZL4xiAE6c/fVrDynb0qvM6yqpFao0w3oGtqw==","signatures":[{"sig":"MEQCIDqDUZ2tJKA+DR32QpCYOHtTmIq1bVAy9XgI4wK5GRbFAiAXO25/jG0ifuAn7Pp8Egjg7u3OJOh44oWq/e2OKw/N+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61362000},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"8d52787de4ff0b09f3d963f6331e655f7a09ce8a","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#b8c1869ec9dea4467bb27d5754dc695d14e27889","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.23.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.5_1779831737692_0.796450333328752","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.6":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.6","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.6","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"b08ee38cc3ec2e16745df8d78cdc242df7d7fb8f","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.6.tgz","fileCount":8745,"integrity":"sha512-VGPlwbsJ1QvobCiSuyOMW4lP+tUKwdEipsVSgfjF08BmMjmwiCYfW0HDR6/QUn7juZCBDUMATbb9Gfjpj3sksg==","signatures":[{"sig":"MEQCIB4YmXdxJUmUv+7psXj6i54JeYKdRkSXDecuSbcihnIMAiA3XCXOT24E9js6VmS/qyjoIrmcNOSt9dN3XhaYQPzG7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61361934},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"77facb314ee10b8a9e8eeb6379ff937a48a3c60b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#b8c1869ec9dea4467bb27d5754dc695d14e27889","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.23.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.6_1779835016558_0.846079899442675","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.7":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.7","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.7","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"ab86a15745ca2339c055e111dc6fc56d578ea460","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.7.tgz","fileCount":8745,"integrity":"sha512-M6HNEnS9Vx+1lssE7Uor2rcblIxTCrbZVpuasEfSdBtN/QhwoEOkc1I3trWCgzmjH6zcCw10/9vZ90CtlWjXKg==","signatures":[{"sig":"MEUCIQCUmhkzomx/0rkjmK9NzzLnexuqW56WpE7K4kodqH+XrAIgYEYDwsH/WXR02eyh4VP/DdBoStCITbM21pKOKWoOvqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61370412},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"3a41dafb529342fe75e421861445587057bb05c9","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.12.1","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.15.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#b8c1869ec9dea4467bb27d5754dc695d14e27889","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.23.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.7_1779902103046_0.13898764742839687","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.8":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.8","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.8","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"23b13902c57f2fabafd62859cd3e69d029690e1d","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.8.tgz","fileCount":8780,"integrity":"sha512-TX9VV0yjZF24OrdXcV7uAU6OY7kKAbIiG0/oxDj9nmSHlgZmPtqOsLlDGsBjF9WHeJVzA+Alab4+m1Hwn5D6uw==","signatures":[{"sig":"MEUCIDVvTHCFM0zc7aCg26s7OBVg+kjCSSMIs6OIlWGxneZXAiEAkLPk1roJYcYLbm+JDpC/+6tMYBKgMCVCpAB7OVZGrNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61814873},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"dd39af3b7293ad71d9783dbf338f3bc252123698","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#39711065f53166c52608462f60a4c8507253ce56","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.8_1780014936002_0.7432562896905404","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.9":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.9","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.9","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f78d6bc5821a5132604f76f8c543ef2be7c5239f","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.9.tgz","fileCount":8785,"integrity":"sha512-H673QdiL3zV+uni1rObNUxsBay0veSz699tgaETrJS8uf2VlVS8SFCUOsMp0PZZFDwZd4MIuENp2Me/67jjXkQ==","signatures":[{"sig":"MEYCIQC0xBrMZugMX/wymiiyttb3d95HygEBdSme2FsFyG4BbAIhAKKZwzCIYGkafpsdzRZ/rx4WiBX3k+L6YBh08tB0lEW1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61835049},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"ff152b3a8c43ed9f6d0412bee50e85d5ebde8e3f","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.9_1780093498245_0.8715181554753979","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.10":{"name":"@openhands/agent-canvas","version":"1.0.0-alpha.10","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-alpha.10","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"471dfd45e06d08029b96e792fbe2c121e5d2146c","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-alpha.10.tgz","fileCount":8787,"integrity":"sha512-a+95Vv5TWNJ/5P3dzXY5p8ZhaTh3cb+DX1QPCLuJWapOSbBZV2Vdhgyowg+mafoUpOSS5TRl7kA54mQJB4IsYQ==","signatures":[{"sig":"MEQCIGXvwKx0TQoZkas5WNy6LFUfeAofuJFRLB4KZMQUIdMFAiAjtjNXEHxZiCbLYpUs4GwRM+ZBdZMqSI6TfFs0vKPrKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-alpha.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61913133},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"96927a40baabd98273ba22a5a393fcc382790e4e","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-alpha.10_1780330574224_0.3865928778793344","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.1":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.1","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"b0c853825f942e96a5a2b59d1c8c53acd9ce85b6","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.1.tgz","fileCount":8789,"integrity":"sha512-luSrOhaIXdNw59I0cauZa5kTtkUfMrHVhg7uFF7LKM+6zjGfM6ppWtqbXFDywoOQhygkA1A94QjlVCXqZscDLQ==","signatures":[{"sig":"MEQCIF04pVr7/9SCo/CvHW+h6cXUVU2UUW7ypr4egoioAyQFAiAAqEojH/AWyIDWGjVwvutrE5kYUpiObrtg0+yAgbBxGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61954322},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"3a61aea09139f58669e9fdb688678ff00e317c45","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","readmeFilename":"README.md","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.1_1780340883148_0.0016428790731928267","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.2","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.2","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"6df343da2d62d54134c9eb71d725e9b442a8fc47","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.2.tgz","fileCount":8789,"integrity":"sha512-k90AeVhen2HFWemf672CryPqN80+hCus41WJSz5DonMb65Av/ev48jqMWtA5OTGfRAMgtcFYTlQT06YTf8lTjA==","signatures":[{"sig":"MEUCID6gRvPaJXn33/QZkf0bQhhWG0OL0GbJ4BVzDRKSXjflAiEAwZ/c2cmvVfOZ3Hq8dpsio7QQOT5ycFztBkNn/lTYmnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61954322},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"660efffe7f6c675cb09d23cfaf2d0b07dd00b2ed","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.2_1780342479648_0.31405946024339415","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.4","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.4","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"e0a805abf092cef1896872b29d785de55e7d2d70","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.4.tgz","fileCount":8789,"integrity":"sha512-62EJn0TNymmY8jSsuXj/IEqbimb6AffS1fjPCwiAKLIhxGHJHYiuNfjnEAlvb1UTSVneE4E7brtNFbHVKeaLwg==","signatures":[{"sig":"MEYCIQDaI6jtm/jTXp9e+grYi0qrG988eUQ4X8ng+eWZb07qMQIhALF1Es84tqkrHrYtQSnYj62fSdZM+j454jqnza1BTS62","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61955252},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"81e151722fce7bdcca3fe04b1af97135dd7c0c50","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.4_1780415004902_0.8994761726774907","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.5","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.5","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"bf72d3f6283d47d00760adc2b6b3b676e097600e","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.5.tgz","fileCount":8789,"integrity":"sha512-TDWC6S8LR7UyOi56Odi2dgnaej55/1YAI0iHR5f8IpAtHmDKvux+ExEwC9/ynNnL+eY4Y4j829qPjHWBFMGbsQ==","signatures":[{"sig":"MEUCIQCTY+YcPWazNOq/8FxqewYFpb6nBr9WZhrj2cPnszu/owIgL5buQe+ixN+cbhwhzqw/ysHRF2qBG+/Ziv5e7lj8ZlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61955252},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"55e57430d9c44994dbe7582e102b299a50696787","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#e14f740c59b4bfd7369d4bb6aea5eeb33dd05909","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.5_1780417598217_0.7880603450778474","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.6":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.6","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.6","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"7a2084a0ece53a899f9ae8ed83716ed6a2a4a037","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.6.tgz","fileCount":8789,"integrity":"sha512-oQtM7owh1tMmvZpxwMBbASqQTJTH+37XzfmAbHJzgEKJMptLgeNVCmAVDwsbZfCMxO/rhBjm2ifXGqcn/gu84w==","signatures":[{"sig":"MEUCIDbFkejVbdPNvw6JaB/pAl62wyOHZ/XaItb6kwmMfw5PAiEA/eUR7uncOCgJbt8/qcO+O0G0ipzm6AQzBzzrketbrrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61973082},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"b559c975b95764bf4cfa946e8c7a8cf9fc6a9b73","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.6_1780493340470_0.6361814149996892","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.7":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.7","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.7","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"87a792a9a35f3a7f5f5bd9e83257228b55ccd6b6","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.7.tgz","fileCount":8846,"integrity":"sha512-r1rYaayeFMRfsRHh0GkkvOyT++uQUANsw4GR+QI3qFl6GiKYxTyYg978qidchsLF8Waw8/yivCsndk+/oobVUA==","signatures":[{"sig":"MEQCH1OA5hDhyfoy3+H+eUIF5XhRncCezWrkd6aDyJHGnYMCIQC8/V8Rz+zJWCZSdto5sr7/bLhx28nL9J/1tHCsJEI/JQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62288728},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"66cc58384aaafb8055650a3fd20488a477098b99","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.7_1780505167107_0.779549177655896","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.8":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.8","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.8","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"8a3b681cb2e83cda08a112456bca46bc94120b15","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.8.tgz","fileCount":8846,"integrity":"sha512-Q4KE2uN9KC4/BFV4EnjtV5Z6SRsHRuWgdXDPWIO+pDkX9P8R7SsroeXn7A+/ez/rhJ/Lqs031gzuQ2A2vPZ/Dw==","signatures":[{"sig":"MEUCIDmZYfP9OXrTwBrER2/CjpyIXlJcwhvue5WVd+ZxQGlaAiEAyth4HmCPF0/rB2cJTd8FlZ3vJ1AGP3PXivrybyv1Fuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62293500},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"1406a6379c93c3109c090f6b705d89e60cc34f2f","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.8_1780510380986_0.8942479293118326","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.9":{"name":"@openhands/agent-canvas","version":"1.0.0-beta.9","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-beta.9","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"82703e6561d64179b12ea521732761af234026c4","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-beta.9.tgz","fileCount":8851,"integrity":"sha512-mOvix/mGy/7unn8/Zn92fd8EdP5bNFTA0Pf7B02IqGnYTKlAUVZDOVlirPbafWeTefZ5a2dzpmtqhESQHg1mfw==","signatures":[{"sig":"MEQCICGDXfAEcRoAfEPu7ZgoYE0aZyDLsA4wvrPhfQUd9rceAiANQrYARYSX40W43oXvBtfd9GRM6Q+H9JrEnG1W/hH8Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62366393},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"dc13ff0d34998719b607cda7a57b2322fa457f17","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-beta.9_1780524727891_0.8209611779838113","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.1","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"9e9fcca8c1982a68245fcb720dfd49659b7cbb12","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.1.tgz","fileCount":8851,"integrity":"sha512-LhiDiRqSyML0aQyhXpDSrqdNL0D+FHu3uwWCcz500cB5YVYHvV/mJUEXLjxr777Tv2YSg9vNiyk++PxkEJzSYw==","signatures":[{"sig":"MEUCIQDiCBrz6xpA8f3FXTXhOG0DhTLF2gk957n949o9otUdbAIgKkPCGfroFQYt1GIw9e97TR0Dmg+KjYqUPFcUAeiUjNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62376514},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"9977c1c6365ea4fb7972cc3ab2aab682b978fc37","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.1_1780533660434_0.030737252604309928","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.2":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.2","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.2","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"stephan.psaras","email":"stephan@all-hands.dev"},{"name":"raymyers-all-hands","email":"ray@all-hands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"9db5849a0f5160000335462146facb04a019d75f","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.2.tgz","fileCount":8847,"integrity":"sha512-uQGL22TWanHW6lcQDz/P9m8QiAZIS/jvw9dLdxp8kZbuOQGbXXf6VKg4mo3mI5fLr6c4Hw6gUgnBS7swOiooNA==","signatures":[{"sig":"MEQCIFozafWo/YwKdq8hKUbFt68HGht6PmXSFnnSD1nuDxr9AiA7KuCK7HdyZbKrlPpc/AA+r5O06ULqvJ3Kes0KxFenVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62379188},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"bee8268746146d84b1ea3eab3d2098a55edd1e5b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"git+https://github.com/OpenHands/extensions.git#62594156a187722344736bc2ff5edfb12c0cc75c","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.2_1780590898761_0.8044079787446998","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.3":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.3","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.3","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"29cdab2d76ea7c0e5c137a5dafbcd369ca182612","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.3.tgz","fileCount":8847,"integrity":"sha512-WSh0FM8WWJvnFdcf7iDR1E9gVgOqfWqsQ8aaUUGDVPsl4zPAoscWw3hJpsI+E2Bc6Cco1x9Y2FygehhXBBhYvQ==","signatures":[{"sig":"MEUCIBLoocd6tL0FN+Sptic+QFgAT/56iT7g9A/OidyiNI3UAiEAhZDHpScC8mkQpqFW7L73wnlDQdoo/3FVVJwkzpGByXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62429656},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"e5171a6c117209bc71b4215f2f7eff7405202b59","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"github:OpenHands/extensions#8a6690071e0e9229ae70b30ff0352aff9e6fca21","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.3_1780675131645_0.6498843870271358","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.4":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.4","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.4","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f8fa0830d0bd8bc4060abe2042e13019764e9e68","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.4.tgz","fileCount":8848,"integrity":"sha512-rUllmeCPQQ7XriF8kG9ERaZgKEeR+QJQAH73orZ1dkj/8wcvYSNbTdfvkzNNy+K7CjObfO4kGH1VQOg2PY0d/Q==","signatures":[{"sig":"MEQCIG+JjznccCH8nAmWFqtDWK3FP0wCmezc3YxRydGgfl8JAiAoRXZiP10oywaXT2VzIk2VyJaaB5BCZ4M0b3G1Q+uHBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62438381},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"baef3dfff39f4e4ca77cc1890e225f7366ab58ae","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"github:OpenHands/extensions#8a6690071e0e9229ae70b30ff0352aff9e6fca21","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","winston":"^3.19.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","winston-daily-rotate-file":"^5.0.0","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.4_1780683619288_0.824971549954973","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.5":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.5","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.5","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"e2ac94676c3803d6b0a0d71bb088a8c494a79665","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.5.tgz","fileCount":8848,"integrity":"sha512-LNTGd8KZC3FqTjK73iww+jLjzyYhoUsGHBbBolvSF+qCBNaJtvVY9kKM8xQMLiV33Pl4fQwam0kVAzuERoHCAQ==","signatures":[{"sig":"MEYCIQDCuUncfPJN8X1RQMAxE8ZochIfdXQjaEh7VH1gzgjL9AIhALEfrRXfm0KL+MhvF1tEPEyBYHePS+5WHC2lKM4e57k7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62438381},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"9fb13810e613a7cf00e55d183bb52d941dbb776c","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.3.2"},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.14.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.14.2","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.14.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"github:OpenHands/extensions#8a6690071e0e9229ae70b30ff0352aff9e6fca21","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.14.2","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.14.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.5_1780767028496_0.003041065095694906","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.6":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.6","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.6","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"7f374e710ef174760741361da2996a8f3282e5f4","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.6.tgz","fileCount":8974,"integrity":"sha512-VL5SZfDpevdkNIIyvn+5bVGCLFQ0MyxDJrzA82qi32UNffgekyjRgGF54gLPEiYFS7GFGxanU9EFzPLYQ8CC+w==","signatures":[{"sig":"MEUCIQCA3rLAKnrbea6exeRD9ZW67H5UkHWBVeZ0cQGtUoe1jgIgGbPp0B1paHGSVwUt2nu8cjQuZSX5JTKo9M0fLdQCcOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64878063},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"84aac3293f975b3b3206717dc0f16b24f68d8186","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.6_1781118766076_0.6761524175241509","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.7":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.7","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.7","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"c1d72cef9161870134ed1791656591c22d63a1bb","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.7.tgz","fileCount":8974,"integrity":"sha512-88C54Xe9LmSBKJF8XzVGSjZ+WUD0sufAOf6XDXE/OIqpAYAnpIkAe+YLci8wgeN3s3h5BCS2A0cVGp4MDLYojg==","signatures":[{"sig":"MEUCIQCEQmrWhVNa6hOPXrW1hGWUQPLQUxM1bc50jceQM2DyXgIgB8y2v2MKIygrI1CY+fizUKvb72NHAIGoRc9GgtTe640=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64878063},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"acd45fd49ae56e722c045583c7854fb85a2674e8","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.7_1781193794500_0.39357300443782073","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.8":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.8","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.8","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"d8e85906766d295893c23a3079da23ff554bea0f","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.8.tgz","fileCount":8974,"integrity":"sha512-NG8lu5WVNSma+thPhsx9comjxAks9myA7Ppj3TdVwjEFLP2vHWEfV77EhlD83Tl6MTFJJCR+NMLEPU8Sf3Dehg==","signatures":[{"sig":"MEUCIEklG2YP+3ui/FHJ3mVDj1H6gu6DLvXl+JacrfYyuMBHAiEAgCxqr15F7dAYvLV1lB1fAGeaV0K8M+kGOJ6/tdLqRUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64986432},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"bed3cb5b1deaf5e23fdbd286bc3fcb65c2e610eb","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.1","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.8_1781221198530_0.7700794593734375","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.9":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.9","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.9","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f993286e948b190f7e67fbd8d22f95d3b91f5fbb","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.9.tgz","fileCount":8974,"integrity":"sha512-Nm0c2OL83QQDgPu3ReGvfbMfgg088rAJJKPhcpJOizId5ZyvYTvd+JZqpYf7Ga2gy6pbz0ti15qjTw/q9OM6Rg==","signatures":[{"sig":"MEUCIErH17DIla/1TaxD2XtNAkfq62uecJwND5a/wxaBUfrLAiEAtLv5uGlGCj6oiNcFOSk1cjVbs9EcX4rfwBTM3h65uRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64986898},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"2891a3c7ec9e07233b89cb7394c0074d4bde253c","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.1","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.9_1781222245034_0.40788136684463017","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.10":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.10","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.10","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"327f5c8097bf407707abc9acefce098a9dba35da","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.10.tgz","fileCount":8974,"integrity":"sha512-QUIOWUJdZXnl4EOdOpvpvXy4BSmdgpsKrTMivrgYkCP5V8Cwf7MAppKWDuZSK2mzSMZZ9V+24jumNwMmePUdcw==","signatures":[{"sig":"MEUCIQCfXf7F38F04GDgI1c8cogudVXF2r/Gi+pCb53ZhsFIugIgfNI3cVl72vcQ8vlFDZ0UiK+1kQbvTQqy23seigrgNB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64987890},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"2c75e0d06bfb577ebba86d0ea4fce4872821085b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.2","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.10_1781231398243_0.02494805557477675","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.11":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.11","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.11","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"a5f307ad887decfec06401d7b3ed05b9b10cb549","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.11.tgz","fileCount":8974,"integrity":"sha512-n21yXmK3LKXJ1RJIhnq2mlgAeMtLOfO+2YRWKHRXWAzm0F+IgvJzPKUkMUu1CmcpcsVaC+WDoPq8UepcdKx8RA==","signatures":[{"sig":"MEUCIGuvWwlRbvxHPk9fdugAaLM6aG/vDEBrV4QeZI9ZBvCfAiEA8IZe7iA2WVN76swDlY9Eulc3YozDkfreW12TGVhCKBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64989720},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"a12cf5d3bec8fd641fea9cdd2f9d9d3ef40a1f48","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:snapshots":"playwright test tests/e2e/snapshots --project=chromium --retries=0","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:e2e:snapshots:update":"playwright test tests/e2e/snapshots --project=chromium --update-snapshots","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["bash -c 'npm run typecheck:staged'"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.4.2","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.11_1781272932906_0.018423220837840537","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.12":{"name":"@openhands/agent-canvas","version":"1.0.0-rc.12","license":"MIT","_id":"@openhands/agent-canvas@1.0.0-rc.12","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"db6a98e39ece6c1d6e4248663a257ecfa6dd9063","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0-rc.12.tgz","fileCount":8999,"integrity":"sha512-pjJ6ueOoEU6+pCl3gDNlMcCP2PM4nlyQdmKRNnE0Iy9SwYjjw1rjDL2KUGdY1+SJz2FPAQVtdREGbqYM8UDfEQ==","signatures":[{"sig":"MEYCIQDiJ5TiJfwoEaI8HV05CcaLw4zuLkPyXu8/bY5GjQEEAwIhAOw4IHS8m0aqO+exTrx1WMeWtZfJu5PD3Gn0+eSpOlwr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0-rc.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65301307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"be702c5478d27da376c5b40ddd150f7ce2010b96","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.5.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0-rc.12_1781544231009_0.26342455460809244","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@openhands/agent-canvas","version":"1.0.0","license":"MIT","_id":"@openhands/agent-canvas@1.0.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"8b3d047b64c4b79c5c4e2cce98118a8bfb9f9b9f","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.0.0.tgz","fileCount":8999,"integrity":"sha512-GWDXuIEaAc7OMNKBE5oIDcbsVHrnuvgTmaaGVixbWX3PcDHdC9lrHWGcdMD8XzA90/r3lvN5/BR85AvEaXP98Q==","signatures":[{"sig":"MEUCIQCWb9g3Dkq5uSv1MPKSjfZgGEbrqcUS75spLdUKSHIYvAIgNTbc+CyH27ZmLrbk+b4QB4RpkYYBc5Tfdtg5mqrUn/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65301217},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"7b9c17e35a09b35701eb53ac6563fee143ec0522","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.16.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"^3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"^1.8.3","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"^1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.5.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"^5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.24.3","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.0.0_1781554242582_0.1638525114631404","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@openhands/agent-canvas","version":"1.1.0","license":"MIT","_id":"@openhands/agent-canvas@1.1.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"1b6ed526d9df526481c229a5a35286e79239c1ee","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.1.0.tgz","fileCount":9285,"integrity":"sha512-v+x8u+KrWHX+cIijQRHcpZNKuZv5m/Wn7U5kxio/lQHP6Rwb2/JTECXmYWE6o9+WC1YV5EUaEy4QO4UKYuJS1w==","signatures":[{"sig":"MEQCIAUZO3FLu3iWsgkTCKYQ2+vX7OfdNXX5b4z/2g2lOfIzAiBWklioE0Ravs0gkRh/q3F2+h5TtUW9jBlR0yalR0umAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55517474},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"7fff6665c74b57789f29f938fe13c7e11d23ef34","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.13.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.17.0","dependencies":{"clsx":"2.1.1","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.6.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.27.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.1.0_1782496148094_0.47802352407609194","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@openhands/agent-canvas","version":"1.2.0","license":"MIT","_id":"@openhands/agent-canvas@1.2.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"e99df28ce2fa469610959808c3f6d877ac1aa17c","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.2.0.tgz","fileCount":9435,"integrity":"sha512-sXgYPnZpZbmq2y44XmnoH760XRJyQo8XNDUpnZ1lblcn1zhmpuipWRhNh1HYpNatoZr4HP7P+6yHBkZYDt2UYA==","signatures":[{"sig":"MEQCIFYyT7Jgz02ZkUhwegTrKDQhss+A9s8Ooer2fyE3WTzXAiBKtxcEJp8GE0d+gWxGZZFq+XSoMvsBBWsGOfzGzrjCdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56960996},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"d811aa5239ec96863ebb22bac16fdb0fdddc6165","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.8.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.32.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.2.0_1783618836846_0.4353494008878418","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@openhands/agent-canvas","version":"1.2.1","license":"MIT","_id":"@openhands/agent-canvas@1.2.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"dc890f00a113c30b7b4b87bd7282e80f01c9381b","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.2.1.tgz","fileCount":9439,"integrity":"sha512-aXGKR1wigTwiaUU9MBMU1+l3/3mOJ0JAB3b7XZCOqh0iLbt8D2zeuW12B0aP0GzSiXaE98D0U2Ye6TMHL5CBEg==","signatures":[{"sig":"MEYCIQDdwGo3QPpPg0GZ5/JZ1tqxlExjGzDesnvi7+cwtpIT5gIhAJuWrEHOYDgMRAZz4keO/Sg2x4nVe2jddufZvB1V0Iu2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57069730},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"56d51c0767fb6fedc51c466f5138fdfc116a2707","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.32.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.2.1_1783681822043_0.32122735279127945","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@openhands/agent-canvas","version":"1.3.0","license":"MIT","_id":"@openhands/agent-canvas@1.3.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"33ed918bf2fd3e1ea7f47306e96581e1b61a45bb","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.3.0.tgz","fileCount":9455,"integrity":"sha512-wqeeXk9DzBAvctWSncWaXIswZaXquLp+nXz2S+cVuSUgYKhWEqTCqAJwstbi9lr/cdZNyC7qcgg5MrokyKzeuw==","signatures":[{"sig":"MEYCIQC6ykY5YI5ilNSj8HPvaQD6pp1xRmIOIDccEk73TaHQlAIhAMyoMh4HLlQJhk2mWUC/p1jqI2Jbtem2cdc2p7f75tSU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57386313},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"87369b7ae891aac4f961c33ac484eee1bc880a66","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.32.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.3.0_1783962219262_0.34278861273015626","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@openhands/agent-canvas","version":"1.4.0","license":"MIT","_id":"@openhands/agent-canvas@1.4.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"8e38e09bd82ef74a3a3d17256bf97e23a1e2a180","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.4.0.tgz","fileCount":9455,"integrity":"sha512-9veu8JDGzQ7BwgNi0ogTXjuJE9G0WJ+OOfUJKh2UZgvhrSgtpJB7iDgTSmh7VoiA1FjiRHzbdMQQ2r+YExK//w==","signatures":[{"sig":"MEUCICNkK71FLykmuijrPHTPl+UDG+sVadtVDpYnRgl9/lLKAiEAgKmOuUQrEXLGeIggv2bj4s8Yk2fkBvnnp8bNRMg8Igs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57388626},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"9ac2105c7efed85aaa021db2cbe8401189513418","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.32.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.4.0_1784049479419_0.6034964025162315","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@openhands/agent-canvas","version":"1.5.0","license":"MIT","_id":"@openhands/agent-canvas@1.5.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"fdea754a563b9ca107dfbfcb73fdefaf2b68efb6","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.5.0.tgz","fileCount":9530,"integrity":"sha512-UEjZVhLP3j4LcqAXLWIpHmoEmhbbi71BfjCXQ1MQx2sUW1Tdq08BQ/MrgnUFxzgdJlqoLXXJtkfM56VOBHAIfA==","signatures":[{"sig":"MEUCIQDlWuSv1e52KrCtRDpfT0KeHQQrYcm/597oNFjY7anejwIgIFuYgAWkpC2pM78c3jMrfaLde2mei0yZ8f6mdlT4Tto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57738241},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"c20a51a99a51801f9cc69720ba7426951f37d3e7","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.5.0_1784333178659_0.6264898570747843","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@openhands/agent-canvas","version":"1.5.1","license":"MIT","_id":"@openhands/agent-canvas@1.5.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"46e97c9dfefbae7d5508b90b6ac137d0b453978e","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.5.1.tgz","fileCount":9517,"integrity":"sha512-spCJcqPihP70RXZBYlIKH7U9ZciYWN6BX7+gvM7qH9s/hoEK/I9tmyfC6lDZwrT1f53xbJz089zfFz32XX2J1w==","signatures":[{"sig":"MEUCIA0yzV0ZQzyIi5aqRdNmlwjslxD06CkaXPCJ15tjh6l3AiEA9GDyIwlPANL20IC6BzYtHHNCGIYFpooHUbH2e63c410=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57697078},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"3cd7a8930647bdf28fb3fe222392cd95e25811c5","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.5.1_1784490520197_0.4545857660304544","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@openhands/agent-canvas","version":"1.5.2","license":"MIT","_id":"@openhands/agent-canvas@1.5.2","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"0ffcbd694c95a45ea211d3b439ce6a3d4ecb27e4","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.5.2.tgz","fileCount":9517,"integrity":"sha512-81vCDpc9ymfYH91tGmxpgofeK+fSTt7ik5BVK22iE3ocj2KpIScN0Asbp0qylkXGKEg/LmjR8UCwoHgcWGwN+g==","signatures":[{"sig":"MEUCICx23wRUB0IlgQldtnC2bCtgresKSU/XUfbkyvUkFXBkAiEA7DWO0bTR4gFyBsYlHGEp8aTqckL4flZIUQ7CNCLAdrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57698383},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"0cb0e293984605038b747ff138e149b136a0fe7b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.9.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.5.2_1784530960462_0.010976487985309813","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@openhands/agent-canvas","version":"1.6.1","license":"MIT","_id":"@openhands/agent-canvas@1.6.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/agent-canvas#readme","bugs":{"url":"https://github.com/OpenHands/agent-canvas/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"6406a8e09aa66a636524f199a04f5e912e2a3635","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.6.1.tgz","fileCount":9632,"integrity":"sha512-YNr8xzPGEK0OEU6ISTE5Mzk3MffUxqfzwmd5qu6CCGTwXW+PQpT17/vSlyQkeMh83UPYJTFCEqyelptKDFnIvg==","signatures":[{"sig":"MEYCIQD/KIltHMSoWfFmmF7y9PFA/jqJ7LOiGLdExHdF/PQCYAIhAIt40ZMm6HTo5MjPh5mIfbv1M1pdAoqqDrdjEQjmX/7n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58352302},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"43f091baf135142ed6c146f888f44a957141193f","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b6a9dc7-8817-49e8-9ab5-fa3e1ac12883"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/agent-canvas.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.10","axios":"1.16.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.8.4","@xterm/xterm":"6.0.0","lucide-react":"1.14.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.11.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","electron":"42.3.2","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","electron-builder":"26.8.1","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.6.1_1784922013365_0.8606023664849933","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@openhands/agent-canvas","version":"1.7.1","license":"MIT","_id":"@openhands/agent-canvas@1.7.1","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"ce044957ba3fa72d9487cfd75deedeec1241e9c6","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.7.1.tgz","fileCount":9633,"integrity":"sha512-/knBiOCzrgJN08ImbV+5DPHY1B+eiuqTJk8m0sPr4UrcQq/8tVaejLUZmtE3AAT4CTh2IhARhJt7oIagWPdwrw==","signatures":[{"sig":"MEUCICXsa4iX/DrVeBxUsPKFgTmotBEBGYPfzf23Ctqy4hxAAiEAlPjrHJ6y7PEood96AFJkNygP5IcT6wQBGTpi+O67j68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58683296},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"daedd91b1021cfbdc04988c8b65154d28c44e21a","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.11.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","electron-builder":"26.8.1","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.7.1_1785383760405_0.9812945946604166","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@openhands/agent-canvas","version":"1.7.2","license":"MIT","_id":"@openhands/agent-canvas@1.7.2","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f88bb5d95895ff108817bb71a494e19d5ebdcd75","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.7.2.tgz","fileCount":9634,"integrity":"sha512-vvSuiaouKkqpPz+pJYCEVR+nhDCh9urYwjQmit1fp5LbTKJ9RbjlDAgEvhwcCCuAcso8SjTor+RUdZGjPrGn0w==","signatures":[{"sig":"MEUCIClEtOz68slOhUNupmhUJbnsLuCVMV3M+h/bY6HTyjFEAiEAu5rv83F661w0U2Dinl4q3uvNVLu3ohuypt3xKzWmMFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58689015},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"bab763e4d44a553a05f5c797cd8a609e5e1caddb","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.11.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.34.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","electron-builder":"26.8.1","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.7.2_1785408827533_0.8142551402431033","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@openhands/agent-canvas","version":"1.8.0","license":"MIT","_id":"@openhands/agent-canvas@1.8.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"6c95e82b3b843176c9fe3b7d84dbd8356dd24304","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.8.0.tgz","fileCount":9632,"integrity":"sha512-G3Xv8oTGWukcAZjWTftY67wYX94v7gyL1PuFKO0iLtsL39k38fqfRwNBgFlU2865NlI+mpC7r62K57b1dvGfPw==","signatures":[{"sig":"MEYCIQDj9ZfNE3k7g9T3G/cJcizRWeUmwUAnlgEiPTiIkJTeqgIhAJO1FgNGdcn+znRW3fyHl6n4WueM3I5/C0emv5Y8Zh7C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58715053},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"c7a765d900df294cbbf0f405ae26c9cbbd0fcc29","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.11.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.36.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","electron-builder":"26.8.1","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.8.0_1785431703129_0.4865141163146758","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@openhands/agent-canvas","version":"1.9.0","license":"MIT","_id":"@openhands/agent-canvas@1.9.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"158c607fa1999e9ff21ffea57b1cfeba799f9b25","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.9.0.tgz","fileCount":9753,"integrity":"sha512-n76KZ9rYvYtGqZfO22tGQgXiJfufGvL8ELZB0TqczwHSAVzQ7EVJXL8XMFfRO3IpuFPuh3ECsqVMmGshuQzjgg==","signatures":[{"sig":"MEUCIQCLLCe5QC2uVRbRdeN/2N4IFs2fNqoeix7rQbFw4UfI7gIgHWhlf2l+FjzRoe8AkFPKEztq5egg9vcJoT0hoJgVS1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59456829},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"6790df06ea689f4bbc612213671d61d3ac2c6fbe","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.7","@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.5","httpxy":"0.5.3","i18next":"26.0.8","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.5","posthog-js":"1.372.6","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.17.0","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.55.1","react-i18next":"17.0.6","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.5.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.2.4","@react-router/node":"7.17.0","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.17.0","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.13.0","@tanstack/react-query":"5.100.9","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.36.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.14.2","husky":"9.1.7","jsdom":"29.1.1","eslint":"9.39.4","vitest":"4.1.5","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"25.6.0","lint-staged":"16.4.0","tailwindcss":"4.2.4","@types/mdast":"4.0.4","@types/react":"19.2.14","@eslint/eslintrc":"3.3.1","@playwright/test":"1.59.1","@types/react-dom":"19.2.3","electron-builder":"26.8.1","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.17.0","@vitest/coverage-v8":"4.1.5","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.4","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.19","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"6.9.1","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.100.9","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.4"},"peerDependencies":{"react":"19.2.5","react-dom":"19.2.5","react-router":"7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.9.0_1785783519101_0.5915143403947756","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@openhands/agent-canvas","version":"1.10.0","license":"MIT","_id":"@openhands/agent-canvas@1.10.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"cdb5a1c745c5133fca069747e8b0c2e4339c5376","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.10.0.tgz","fileCount":9807,"integrity":"sha512-AO+W1SP+Ut8YyYtKv/G6hOfqrlGY9W/l+Lm0P9GgGnNOZjtCiTj8Pr7Bv68Z8dYJYOhov6PwTHzAWNtGyVL70w==","signatures":[{"sig":"MEQCIAPIF3StdH8ovaOnX7qLVMwr2OaF9wtLAGAvTOVGS+KkAiB16XnyK/jvXlogdSzpVr14caX095VJ5CSWD5/BWe6WAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60132078},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"56638693908b8ac83a2fa3bde6eb6c33aae37f4b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron/main.mjs","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.16.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.36.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.0","eslint":"9.39.4","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"16.4.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.17","@eslint/eslintrc":"3.3.1","@playwright/test":"1.62.0","@types/react-dom":"19.2.3","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.10.0_1785945866491_0.1124877622004039","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@openhands/agent-canvas","version":"1.11.0","license":"MIT","_id":"@openhands/agent-canvas@1.11.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"84ab219cb362052165261c94eb13af62662d3494","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.11.0.tgz","fileCount":9965,"integrity":"sha512-s0BlpC0AZmO5Br8hOA/7FW3SUihHrNq+5jhwKNe4f/zUJA3nYk56qnWh6RNAvw6i+NKgTpxDzo9KdqIq+dSboA==","signatures":[{"sig":"MEYCIQD9m3T2Gc8PuOLN5LHmzfOIrOrad0lwxlwI4OvGkqvNIwIhAIyIYISoG+8w70w3BBoVJc09GVmbVGvbwwgWsZ3Ye1LH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60807791},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"3c562fa694e54741f41ad7acf7210430079495fe","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.16.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.36.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.0","eslint":"9.39.4","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"16.4.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.17","@eslint/eslintrc":"3.3.1","@playwright/test":"1.62.0","@types/react-dom":"19.2.3","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.11.0_1786126156865_0.8128457793351656","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@openhands/agent-canvas","version":"1.12.0","license":"MIT","_id":"@openhands/agent-canvas@1.12.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"8060968d801175b5b58e12781241aa0bd5981c40","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.12.0.tgz","fileCount":9967,"integrity":"sha512-hkxf4i/c0P7Qs1CBAigYBPYreKN6M5le4aYU+abnxuO6U75Y87Or+ABre0Nrn8yzc0haAlpytF2TCNh4M0YGlQ==","signatures":[{"sig":"MEUCIHgdRqPMTGd6vi5EtLPQ1iPkm46xBy3NjsjfGS7RHsZPAiEAgZA4ewsp3gN8dm1bC5PzGWHKy44roeOH1OySxw/LStM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60835409},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"4d0fe4983b6b8e52c104c7ffa4b7be8c7ab5a364","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.12","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.0","@openhands/extensions":"0.16.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.20","@openhands/typescript-client":"1.36.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.0","eslint":"9.39.4","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"16.4.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.17","@eslint/eslintrc":"3.3.1","@playwright/test":"1.62.0","@types/react-dom":"19.2.3","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.16.2","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.5","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.59.2","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.59.2","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.12.0_1786131715724_0.8015625933599202","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@openhands/agent-canvas","version":"1.13.0","license":"MIT","_id":"@openhands/agent-canvas@1.13.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"821b1ac6f88cdbfdded6a5dd112cdf6e0bd41ed7","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.13.0.tgz","fileCount":10083,"integrity":"sha512-u8arXzGFfdtwHxRixKEtBJMEi4nfxmxCZ8kzlF1Bd/fROX3xJC7+2fZb1Py7z+EaVK3O85+rhu1CmHE3MoRkSA==","signatures":[{"sig":"MEQCID0YqOnSC7TDYQCxEZuKB1RCIckJOlYH6Q65gb70XPhlAiBwAp76r9WcntS4rlXpfMK8fw8axN9lKlh7n1uFO7Na0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61418093},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"4f465f3ccada5271a3bbe4a0148941b0c40d243b","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.19.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.16.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.38.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.13.0_1786985623839_0.9407882443097888","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@openhands/agent-canvas","version":"1.14.0","license":"MIT","_id":"@openhands/agent-canvas@1.14.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"cc4c258d7329cfa9fbf659dc5a01433d514b2397","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.14.0.tgz","fileCount":10076,"integrity":"sha512-EUVo7XRLb2Jw9AOxUlX+JbBB9wRBu5E8W0M1cXntRtmjFFY3J/XX7hC5EBMp1gY42HIQgTFnXPPSomlR3thD+g==","signatures":[{"sig":"MEQCIAD6bTTAQ/0yVUqoso3NeaLYc+3dYwltL1677IBOH5cRAiAdjlgNV+eD8WkguaFC83eA+JI1ginvTwUScV5O6WgouA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61875490},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"c0ba9e6d2b73dca07fe1127b91c1eff719853846","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.19.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.16.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.38.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.14.0_1787003354624_0.5396591283188878","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@openhands/agent-canvas","version":"1.15.0","license":"MIT","_id":"@openhands/agent-canvas@1.15.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"3d494dbca0a92bff2d116dd9466aef921eb5e9e9","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.15.0.tgz","fileCount":10711,"integrity":"sha512-orq6B82YMqWXIKQZL0OB5tJEGaql2vxQdZ/uNQiOdKM6xbYb636ONNwK2e5npONrE+2+fD/QjJdYHejEETlIBw==","signatures":[{"sig":"MEYCIQDVEChcRZybNW09mx6tMT5BHz7N4lPR26NZ9BEaaw236QIhAJTVofq+qdPgcmhKzcS83og/0REmRF9qc7mIVfJAe8Az","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65685484},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"ab23be62ad724fe83483036a0900bed7b7859166","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.19.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.18.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.38.1","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.15.0_1787321510481_0.14337542694610428","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@openhands/agent-canvas","version":"1.16.0","license":"MIT","_id":"@openhands/agent-canvas@1.16.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"ef809658f3d7debf9668140b3a85ec3f2cf1df74","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.16.0.tgz","fileCount":10804,"integrity":"sha512-YO866M+XRRblne3ok8y4ck3HdMYG28tssOjKT6DNUVwc2BFzaYVJ7E19x0o8M5v/yYg94AXUOEoBZoxDwBjmRQ==","signatures":[{"sig":"MEUCIQD36oSAZBVPnQfdMGCIFa4B2HUe6FDYT3gCOk3QyvjHaQIgGIOLOdNmpZl30N9xzjx+OWaocbx7HeEnzRmp7j8syhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66164859},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"64c1269655012698bc66538967989996191beb6c","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.12","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.19.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.19.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.39.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.16.0_1787855355827_0.7232723010716144","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@openhands/agent-canvas","version":"1.17.0","license":"MIT","_id":"@openhands/agent-canvas@1.17.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f09bd2209f93b0bfefe9cc5821c73e3cfbbc247e","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.17.0.tgz","fileCount":10882,"integrity":"sha512-OYYgq2FCXOhXcObBiOA61ypP1u7egj+myPfNhk+yOHFJ8lkp1nTQ0HAClB77BGB/GQYgBSsHEUQq1l7MZBKH6w==","signatures":[{"sig":"MEUCIHy5wRGrpl98z8AACnhyyCv7XQ9O6LOnqmHL/fcppAg5AiEAnM1+ekL0/pS974p+GxwXjzGNpLUIfAS45OBsdmtiJpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67096196},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"8a6f624eb3cbe3db159e24783d9159fdba3d5427","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.14","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.20.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.20.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.39.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.17.0_1788982712958_0.10272177214181011","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@openhands/agent-canvas","version":"1.18.0","license":"MIT","_id":"@openhands/agent-canvas@1.18.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"f4c3d8c1937b0e6c4015571d614391f7440cbf2d","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.18.0.tgz","fileCount":10906,"integrity":"sha512-JPLLNZcSglbAC7yrcw3SMDFQkiHPFY86Kld+QkRNHTVh1Yt5GMLS7f8ZMbrZ20xPfoKkJfpG3vu15CI2A01tPA==","signatures":[{"sig":"MEUCIQDWpEPV49SZN6QJl+RKSiE2ii7zlsjV8lhxI+03LIkOHQIgdrRaZilk5ECeJmJXf1wdF2eyxpf1Hbpl+tT2Y8WvicA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67192715},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"9120ff6cbbe23640f0e475661e5a9c9729cdbf1f","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.14","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.20.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.20.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.39.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.18.0_1789151942307_0.3846748878653512","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@openhands/agent-canvas","version":"1.19.0","license":"MIT","_id":"@openhands/agent-canvas@1.19.0","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"msw":{"workerDirectory":["public"]},"dist":{"shasum":"96783748d8f5b0fbbd233e1547a2c135fbfac386","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.19.0.tgz","fileCount":10919,"integrity":"sha512-tg3EJsdSl1SeZlmTBhDjyxKmHfSrf5OlNyUvTEHsM6mOXS+V3rtwjC96CGOkhYRbBaWNeGoujQLDn02Vo1eUQA==","signatures":[{"sig":"MEQCIDOU5HZdflsoDqJM+7Y2mZifiESr3HPJ33DbkF8Pl5xDAiB1HX/Olj7d0pqhd9tfW3soOQupAsF1TSaziKjO+DnPDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67331570},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.12.0"},"module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./package.json":"./package.json"},"gitHead":"f2b0aacda17fc60ea2ea45cfdd2323c12b034b7d","private":false,"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","test":"npm run make-i18n && vitest run","build":"npm run build:app","start":"npx sirv-cli build/ --single","desktop":"npm run build:app && electron electron","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","prelint":"npm run make-i18n","prepare":"husky","preview":"vite preview","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","test:e2e":"playwright test --pass-with-no-tests","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","make-i18n":"node scripts/make-i18n-translations.cjs","typecheck":"react-router typegen && tsc","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","predesktop":"node scripts/brand-dev-electron.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","download-uv":"node scripts/download-uv.mjs","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","build:docker":"node scripts/docker-build.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","download-node":"node scripts/download-node.mjs","test:coverage":"npm run make-i18n && vitest run --coverage","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:mutation":"npm run make-i18n && stryker run","generate-icons":"node scripts/generate-icons.mjs","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","check-translation-completeness":"node scripts/check-translation-completeness.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"overrides":{"dompurify":"3.4.14","typed-rest-client":{"qs":"6.15.3"},"@vercel/static-config":{"ajv":"8.20.0"}},"repository":{"url":"git+https://github.com/OpenHands/OpenHands.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","directories":{},"lint-staged":{"src/**/*":["npm run check-translation-completeness"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"]},"_nodeVersion":"24.20.0","dependencies":{"clsx":"2.1.1","sirv":"3.0.2","uuid":"14.0.0","vite":"8.0.16","axios":"1.18.0","isbot":"5.1.39","react":"19.2.8","httpxy":"0.5.3","i18next":"26.3.6","winston":"3.19.0","zustand":"5.0.14","sirv-cli":"3.0.1","downshift":"9.3.2","react-dom":"19.2.8","posthog-js":"1.380.0","rehype-raw":"7.0.0","remark-gfm":"4.0.1","react-icons":"5.6.0","shell-quote":"1.9.0","@xterm/xterm":"6.0.0","lucide-react":"1.25.0","react-router":"7.18.2","@heroui/react":"2.8.10","framer-motion":"12.38.0","monaco-editor":"0.56.0","react-i18next":"17.0.11","remark-breaks":"4.0.0","react-markdown":"10.1.0","tailwind-merge":"3.6.0","react-hot-toast":"2.6.0","rehype-sanitize":"6.0.0","@xterm/addon-fit":"0.11.0","socket.io-client":"4.8.3","unist-util-visit":"5.1.0","@tailwindcss/vite":"4.3.3","@react-router/node":"7.18.2","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","tailwind-scrollbar":"4.0.2","@react-router/serve":"7.18.2","@monaco-editor/react":"4.7.0","i18next-http-backend":"4.0.1","@openhands/extensions":"0.20.0","@tanstack/react-query":"5.101.4","class-variance-authority":"0.7.1","react-syntax-highlighter":"16.1.1","winston-daily-rotate-file":"5.0.0","@microlink/react-json-view":"1.31.25","@openhands/typescript-client":"1.48.0","i18next-browser-languagedetector":"8.2.1"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.0","devDependencies":{"msw":"2.15.0","husky":"9.1.7","jsdom":"30.0.1","eslint":"9.39.5","vitest":"4.1.10","globals":"16.5.0","electron":"42.3.3","prettier":"3.8.3","cross-env":"10.1.0","png2icons":"2.0.1","@eslint/js":"9.39.4","typescript":"6.0.3","@types/node":"26.1.2","lint-staged":"17.3.0","tailwindcss":"4.3.3","@types/mdast":"4.0.4","@types/react":"19.2.18","@eslint/eslintrc":"3.3.6","@playwright/test":"1.62.1","@types/react-dom":"19.2.4","electron-builder":"26.15.3","vite-plugin-svgr":"5.2.0","@react-router/dev":"7.18.2","@vitest/coverage-v8":"4.1.10","eslint-plugin-react":"7.37.5","@testing-library/dom":"10.4.1","@vercel/react-router":"1.3.0","@stryker-mutator/core":"9.6.1","eslint-plugin-i18next":"6.1.5","@testing-library/react":"16.3.2","eslint-config-prettier":"10.1.8","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","@tailwindcss/typography":"0.5.20","postcss-prefix-selector":"2.1.1","@mswjs/socket.io-binding":"0.2.0","@testing-library/jest-dom":"7.0.0","@typescript-eslint/parser":"8.65.0","eslint-plugin-react-hooks":"7.1.1","@testing-library/user-event":"14.6.1","eslint-plugin-unused-imports":"4.4.1","@tanstack/eslint-plugin-query":"5.101.4","@stryker-mutator/vitest-runner":"9.6.1","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","eslint-import-resolver-typescript":"4.4.5"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"_npmOperationalInternal":{"tmp":"tmp/agent-canvas_1.19.0_1789587353748_0.8291280221663386","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@openhands/agent-canvas","version":"1.20.0","description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","license":"MIT","private":false,"type":"module","repository":{"type":"git","url":"git+https://github.com/OpenHands/OpenHands.git"},"homepage":"https://github.com/OpenHands/OpenHands#readme","bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"bin":{"agent-canvas":"bin/agent-canvas.mjs"},"engines":{"node":">=24"},"dependencies":{"@heroui/react":"2.8.10","@microlink/react-json-view":"1.31.25","@monaco-editor/react":"4.7.0","@openhands/extensions":"0.22.1","@openhands/typescript-client":"1.49.1","@react-router/node":"7.18.2","@react-router/serve":"7.18.2","@tailwindcss/vite":"4.3.3","@tanstack/react-query":"5.101.4","@types/shell-quote":"1.7.5","@uidotdev/usehooks":"2.4.1","@xterm/addon-fit":"0.11.0","@xterm/xterm":"6.0.0","axios":"1.18.0","class-variance-authority":"0.7.1","clsx":"2.1.1","downshift":"9.3.2","framer-motion":"12.38.0","httpxy":"0.5.3","i18next":"26.3.6","i18next-browser-languagedetector":"8.2.1","i18next-http-backend":"4.0.1","isbot":"5.1.39","lucide-react":"1.25.0","monaco-editor":"0.56.0","posthog-js":"1.380.0","react":"19.2.8","react-dom":"19.2.8","react-hot-toast":"2.6.0","react-i18next":"17.0.11","react-icons":"5.6.0","react-markdown":"10.1.0","react-router":"7.18.2","react-syntax-highlighter":"16.1.1","rehype-raw":"7.0.0","rehype-sanitize":"6.0.0","remark-breaks":"4.0.0","remark-gfm":"4.0.1","shell-quote":"1.9.0","sirv":"3.0.2","sirv-cli":"3.0.1","socket.io-client":"4.8.3","tailwind-merge":"3.6.0","tailwind-scrollbar":"4.0.2","unist-util-visit":"5.1.0","uuid":"14.0.0","vite":"8.0.16","winston":"3.19.0","winston-daily-rotate-file":"5.0.0","zustand":"5.0.14"},"scripts":{"dev":"node --env-file-if-exists=.env scripts/dev-with-automation.mjs","dev:static":"node --env-file-if-exists=.env scripts/dev-static.mjs","dev:extra-backend":"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs","dev:minimal":"node --env-file-if-exists=.env scripts/dev-safe.mjs","dev:frontend":"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev","dev:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev","build":"npm run build:app","build:mock":"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build","start":"npx sirv-cli build/ --single","test":"npm run make-i18n && vitest run","test:e2e":"playwright test --pass-with-no-tests","test:e2e:live":"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs","test:e2e:mock-llm":"playwright test --config=playwright.mock-llm.config.ts","test:e2e:mock-llm:docker":"playwright test --config=playwright.mock-llm-docker.config.ts","test:coverage":"npm run make-i18n && vitest run --coverage","test:mutation":"npm run make-i18n && stryker run","test:mutation:diff":"npm run make-i18n && node scripts/stryker-diff.mjs","test:mutation:incremental":"npm run make-i18n && stryker run --incremental","dev_wsl":"VITE_WATCH_USE_POLLING=true vite","preview":"vite preview","make-i18n":"node scripts/make-i18n-translations.cjs","prelint":"npm run make-i18n","lint":"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}","lint:fix":"eslint src --fix && prettier --write src/**/*.{ts,tsx}","postinstall":"node -e \"if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n  \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }\"","prepare":"husky","typecheck":"react-router typegen && tsc","typecheck:staged":"react-router typegen && npx tsc --noEmit --skipLibCheck","check-translation-completeness":"node scripts/check-translation-completeness.cjs","build:app":"npm run make-i18n && react-router build","build:lib":"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","build:docker":"node scripts/docker-build.mjs","example:acp-docker:env":"node scripts/gen-acp-docker-env.mjs","predesktop":"node scripts/brand-dev-electron.mjs","desktop":"npm run build:app && electron electron","build:desktop":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never","build:desktop:universal":"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never","download-uv":"node scripts/download-uv.mjs","download-node":"node scripts/download-node.mjs","generate-icons":"node scripts/generate-icons.mjs"},"lint-staged":{"src/**/*.{ts,tsx,js}":["eslint --fix","prettier --write"],"src/**/*.{ts,tsx}":["node scripts/run-staged-typecheck.mjs"],"src/**/*":["npm run check-translation-completeness"]},"devDependencies":{"@eslint/eslintrc":"3.3.6","@eslint/js":"9.39.4","@mswjs/socket.io-binding":"0.2.0","@playwright/test":"1.62.1","@react-router/dev":"7.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1","@tailwindcss/typography":"0.5.20","@tanstack/eslint-plugin-query":"5.101.4","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"7.0.0","@testing-library/react":"16.3.2","@testing-library/user-event":"14.6.1","@types/mdast":"4.0.4","@types/node":"26.1.2","@types/react":"19.2.18","@types/react-dom":"19.2.4","@types/react-syntax-highlighter":"15.5.13","@typescript-eslint/eslint-plugin":"8.65.0","@typescript-eslint/parser":"8.65.0","@vercel/react-router":"1.3.0","@vitest/coverage-v8":"4.1.10","cross-env":"10.1.0","electron":"42.3.3","electron-builder":"26.15.3","eslint":"9.39.5","eslint-config-prettier":"10.1.8","eslint-import-resolver-typescript":"4.4.5","eslint-plugin-i18next":"6.1.5","eslint-plugin-import-x":"4.17.1","eslint-plugin-jsx-a11y":"6.10.2","eslint-plugin-prettier":"5.5.6","eslint-plugin-react":"7.37.5","eslint-plugin-react-hooks":"7.1.1","eslint-plugin-unused-imports":"4.4.1","globals":"16.5.0","husky":"9.1.7","jsdom":"30.0.1","lint-staged":"17.3.0","msw":"2.15.0","png2icons":"2.0.1","postcss-prefix-selector":"2.1.1","prettier":"3.8.3","tailwindcss":"4.3.3","typescript":"6.0.3","vite-plugin-svgr":"5.2.0","vitest":"4.1.10"},"packageManager":"npm@10.5.0","volta":{"node":"22.12.0"},"msw":{"workerDirectory":["public"]},"overrides":{"@vercel/static-config":{"ajv":"8.20.0"},"dompurify":"3.4.14","typed-rest-client":{"qs":"6.15.3"}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./browser":{"types":"./dist/components/browser/index.d.ts","import":"./dist/components/browser/index.js","require":"./dist/components/browser/index.cjs"},"./conversation":{"types":"./dist/components/conversation/index.d.ts","import":"./dist/components/conversation/index.js","require":"./dist/components/conversation/index.cjs"},"./files":{"types":"./dist/components/files/index.d.ts","import":"./dist/components/files/index.js","require":"./dist/components/files/index.cjs"},"./settings":{"types":"./dist/components/settings/index.d.ts","import":"./dist/components/settings/index.js","require":"./dist/components/settings/index.cjs"},"./sidebar":{"types":"./dist/components/sidebar/index.d.ts","import":"./dist/components/sidebar/index.js","require":"./dist/components/sidebar/index.cjs"},"./terminal":{"types":"./dist/components/terminal/index.d.ts","import":"./dist/components/terminal/index.js","require":"./dist/components/terminal/index.cjs"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.js","require":"./dist/i18n/index.cjs"},"./package.json":"./package.json"},"peerDependencies":{"react":"19.2.8","react-dom":"19.2.8","react-router":"7.18.2"},"gitHead":"9737f713616a1e452f822c2967f0e2c8bf2dc308","_id":"@openhands/agent-canvas@1.20.0","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-uq28bmdMapsDN0ltp5ZHYm9xfuk7cHktNkd0NY38w/UTq25wJTqSKSPya+2+ky0+HpGX2vmn0uF3mHuNCoOb2w==","shasum":"fecc8a7b148d634be7e3e5f31f43fe2b1e1a3b0b","tarball":"https://registry.npmjs.org/@openhands/agent-canvas/-/agent-canvas-1.20.0.tgz","fileCount":10932,"unpackedSize":68358407,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openhands%2fagent-canvas@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCmqhlfJ5g000onjgdIbwuRX1AwexBSCKWayCIpWYoPHQIgP38Ul6ruRwRRunKUEf/hMMyyyVMevN9Yom++5zlwuVk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67cc364b-9d3e-44b3-85d4-67a13aed8459"}},"directories":{},"maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-canvas_1.20.0_1789630037605_0.1449380710260364"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T22:04:31.473Z","modified":"2026-09-17T07:27:18.444Z","1.6.0":"2026-05-11T22:04:31.707Z","1.0.0-alpha.1":"2026-05-11T22:07:58.127Z","1.0.0-alpha.2":"2026-05-12T05:50:34.058Z","1.0.0-alpha.3":"2026-05-12T06:14:52.177Z","1.0.0-alpha.4":"2026-05-26T16:51:57.414Z","1.0.0-alpha.5":"2026-05-26T21:42:18.306Z","1.0.0-alpha.6":"2026-05-26T22:36:57.115Z","1.0.0-alpha.7":"2026-05-27T17:15:03.858Z","1.0.0-alpha.8":"2026-05-29T00:35:36.557Z","1.0.0-alpha.9":"2026-05-29T22:24:58.820Z","1.0.0-alpha.10":"2026-06-01T16:16:14.738Z","1.0.0-beta.1":"2026-06-01T19:08:03.814Z","1.0.0-beta.2":"2026-06-01T19:34:40.183Z","1.0.0-beta.4":"2026-06-02T15:43:25.369Z","1.0.0-beta.5":"2026-06-02T16:26:38.838Z","1.0.0-beta.6":"2026-06-03T13:29:00.905Z","1.0.0-beta.7":"2026-06-03T16:46:07.724Z","1.0.0-beta.8":"2026-06-03T18:13:01.400Z","1.0.0-beta.9":"2026-06-03T22:12:08.295Z","1.0.0-rc.1":"2026-06-04T00:41:00.899Z","1.0.0-rc.2":"2026-06-04T16:34:59.422Z","1.0.0-rc.3":"2026-06-05T15:58:52.228Z","1.0.0-rc.4":"2026-06-05T18:20:19.771Z","1.0.0-rc.5":"2026-06-06T17:30:28.887Z","1.0.0-rc.6":"2026-06-10T19:12:46.564Z","1.0.0-rc.7":"2026-06-11T16:03:14.956Z","1.0.0-rc.8":"2026-06-11T23:39:59.002Z","1.0.0-rc.9":"2026-06-11T23:57:25.458Z","1.0.0-rc.10":"2026-06-12T02:29:58.843Z","1.0.0-rc.11":"2026-06-12T14:02:13.360Z","1.0.0-rc.12":"2026-06-15T17:23:51.446Z","1.0.0":"2026-06-15T20:10:43.131Z","1.1.0":"2026-06-26T17:49:08.435Z","1.2.0":"2026-07-09T17:40:37.181Z","1.2.1":"2026-07-10T11:10:22.500Z","1.3.0":"2026-07-13T17:03:39.696Z","1.4.0":"2026-07-14T17:17:59.860Z","1.5.0":"2026-07-18T00:06:19.030Z","1.5.1":"2026-07-19T19:48:40.609Z","1.5.2":"2026-07-20T07:02:40.841Z","1.6.1":"2026-07-24T19:40:13.739Z","1.7.1":"2026-07-30T03:56:00.767Z","1.7.2":"2026-07-30T10:53:47.962Z","1.8.0":"2026-07-30T17:15:03.522Z","1.9.0":"2026-08-03T18:58:39.587Z","1.10.0":"2026-08-05T16:04:26.908Z","1.11.0":"2026-08-07T18:09:17.276Z","1.12.0":"2026-08-07T19:41:56.110Z","1.13.0":"2026-08-17T16:53:44.291Z","1.14.0":"2026-08-17T21:49:14.973Z","1.15.0":"2026-08-21T14:11:50.875Z","1.16.0":"2026-08-27T18:29:16.267Z","1.17.0":"2026-09-09T19:38:33.348Z","1.18.0":"2026-09-11T18:39:02.820Z","1.19.0":"2026-09-16T19:35:54.178Z","1.20.0":"2026-09-17T07:27:18.024Z"},"bugs":{"url":"https://github.com/OpenHands/OpenHands/issues"},"license":"MIT","homepage":"https://github.com/OpenHands/OpenHands#readme","repository":{"type":"git","url":"git+https://github.com/OpenHands/OpenHands.git"},"description":"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface","maintainers":[{"name":"malhotra5","email":"rohit@openhands.dev"},{"name":"jlav","email":"joe.laverty@openhands.dev"},{"name":"rbren","email":"robert@all-hands.dev"}],"readme":"# Windows quickstart (PowerShell)\n\nThis doc contains **Windows-specific** command syntax for running Agent Canvas with the **Docker sandbox**.\n\nFor the main install options and overall context, see [README.md](./README.md).\n\n## Option 2: With a Docker Sandbox (Windows)\n\n**Prerequisites**:\n\n- Docker Desktop for Windows\n- A host directory for `PROJECTS_PATH` containing the project folders you want the agent to access (create it before starting the container)\n\n```powershell\ndocker pull ghcr.io/openhands/agent-canvas:1.20.0 # x-release-please-version\n\n$env:PROJECTS_PATH = Join-Path $HOME \"projects\"  # directory containing your project folders\nNew-Item -ItemType Directory -Force -Path $env:PROJECTS_PATH, (Join-Path $env:USERPROFILE \".openhands\") | Out-Null\n\ndocker run -it --rm `\n  -p 8000:8000 `\n  -v \"$($env:USERPROFILE)\\.openhands:/home/openhands/.openhands\" `\n  -v \"$($env:PROJECTS_PATH):/projects\" `\n  ghcr.io/openhands/agent-canvas:1.20.0 # x-release-please-version\n```\n\nOpen [http://localhost:8000/canvas](http://localhost:8000/canvas) in your browser.\n\nThe agent will be able to access any project under `PROJECTS_PATH`.\n","readmeFilename":"README.windows.md"}