{"_id":"glassbox","_rev":"129-d6b3610d6933c088fa108e9e2f9291be","name":"glassbox","dist-tags":{"latest":"1.2.3","beta":"1.2.3-rc.1"},"versions":{"0.1.0":{"name":"glassbox","version":"0.1.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.1.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/westphal/glassbox#readme","bugs":{"url":"https://github.com/westphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"a703ecaedf0b5a89826152c01670303b6cc1a687","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.1.0.tgz","fileCount":4,"integrity":"sha512-IV6OxQoJSKuSFgbthu+KvKzoTG937qe/0bfBSJRKyy3bWPPg/vAFZXws8Ka6GParrUM5ei3UCR1/caG7vX/Pog==","signatures":[{"sig":"MEUCIQCoWkRQEkRl50YJOmmbeMdaPUL3UvUb3cUeV1t8HhPCdwIgZlr5toFhcGTIuZ7BZQKIaSZi8m1f47futh4lx368m5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133398},"type":"module","engines":{"node":">=20"},"gitHead":"0bd90b46ff5bdab5f5a01ebfbe39423cbff0cb43","scripts":{"dev":"tsx --tsconfig tsconfig.json src/cli.ts","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/westphal/glassbox.git","type":"git"},"_npmVersion":"10.9.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","esbuild":"^0.27.3","typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.1.0_1772693576945_0.3654133727827511","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"glassbox","version":"0.1.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.1.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"50e53db8ec6de3bccba58a2dae54e40e69368447","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.1.1.tgz","fileCount":4,"integrity":"sha512-vBnJmd4iDDZM1O2FtVxeaXkyf5YxuAK2xMcYk16hlEld0CaVEIn+3vnL5dS7U5ONmEanh+LDtlBFcVSBVLKjZA==","signatures":[{"sig":"MEUCIQCetviLICl4cE20WhrPJJpwu7IVQjbzKZInqi1vAxg4KAIgXvVItH5xjpjYkbKYFU8x4X5sKnkWFrKhGj2/xGDSTb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133403},"type":"module","engines":{"node":">=20"},"gitHead":"e7a056988b7dcad23c3845ffdac4f5b550d989f2","scripts":{"dev":"tsx --tsconfig tsconfig.json src/cli.ts","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.9.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","esbuild":"^0.27.3","typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.1.1_1772693875878_0.49162802642717485","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"glassbox","version":"0.1.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.1.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"6a898fbbacd7181091212890f2fc4a9a87a963bf","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.1.2.tgz","fileCount":6,"integrity":"sha512-HhwnwQGppowea9C+Nfzbq9a1kcKPRcU7eaOi5t7zXA9deNMVrHEgr1vglcgfV5MfiVuSo513hlPdB/3A7TGGhA==","signatures":[{"sig":"MEMCIC/L2KZ+G5+v4Js654xvaZSfeBm83OVjtdlMinAxpw9tAh8/PylyTS8RWsloeya2usE6Q+QiKtkYafTJZje9i8YU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222920},"type":"module","engines":{"node":">=20"},"gitHead":"59121d6ce267586724ebfc7f32eda75aa11374d6","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.9.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","esbuild":"^0.27.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.1.2_1772761106915_0.3349147082798718","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"glassbox","version":"0.1.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.1.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"7f4229e64370a05514e5797cafde376852110637","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.1.3.tgz","fileCount":6,"integrity":"sha512-wnclUZUpneWmR+5fq1eKJBrZ0Y+70tNP2kFDhCZFDlkn42WK4FXTul08tz2UpYWPZPnuON8MAqyd3bbnyMuBPw==","signatures":[{"sig":"MEUCIQDLfQks4dIIL9O4TTmmbRMSBQVoRplCAIV15kxJnsakgAIgPyL5Z3yvO/gOl7ZhVV3vTdMTiRFKB2bg1cIWyEufMcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1224903},"type":"module","engines":{"node":">=20"},"gitHead":"40bc43708b629b6e41baeb8e38f90b429fb87f05","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.1.3_1772774604971_0.6980495207234665","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"glassbox","version":"0.1.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.1.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"57bcb2c6e9629abe5e64edaab3f63bd892e97645","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.1.4.tgz","fileCount":6,"integrity":"sha512-4xjh7n+8LTJYTY6T3ts3IfBBX6sAJIzKDx7xCn9hx43yUDlc1ZjdRi4vzA69uLKeO8I/+pw9tahf26yn8odi3g==","signatures":[{"sig":"MEQCIAF5crSVEJZ96I28SICd/AU4hIypwntND+hizSZ7yC93AiBJYc08frsRA1V/E6tWetQbEMMnFoq4DI3NrPQ087LD2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1226482},"type":"module","engines":{"node":">=20"},"gitHead":"57be1fd842ffd5355127938bb624cce403228652","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.1.4_1772837024804_0.8878513139584443","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"glassbox","version":"0.2.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"921337a200f1f27afdfb0f6e58b7418ddd88055c","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.0.tgz","fileCount":6,"integrity":"sha512-vCWt6GahHH9H3uWH2wWi0gWLn7n3GCXEt27a2YTsbdqjVuVEMxB+e8L6zNiCj0bDJ/aFQUM9h4LkPIOZLFPqZw==","signatures":[{"sig":"MEQCIAOcApVLb6y7AM4AuqJ2seVyXyea9BcLF5hQypSkRkF9AiBVIFpJy7CS1gdJ3t1GYPdsp/c/4BagnMaq6VQuTbNz2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1368599},"type":"module","engines":{"node":">=20"},"gitHead":"c7ec24537fafc5901df6dccf7fd78daf853ec382","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","release":"bash scripts/release.sh","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.0_1773124789285_0.4202744489056589","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"glassbox","version":"0.2.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"c3afb36f9765cfb43848b097dce8ff80ef8b9bb7","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.1.tgz","fileCount":6,"integrity":"sha512-quJMILzXaOgWmG5I8w4yAHyMlwvwuLxabFNZNpiW+AfcHtl0V35WXKq3HdSin098bt8miLKfBzlgaEaB7hHrIw==","signatures":[{"sig":"MEQCIHunvNtHUSkqVqOg/wmMKJjXsStgMZxfXh9XXPBEdYUSAiAfTdH4qxtdFPle8PBEgMdE5UAHDjMnGWyAACIIgY7VTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372900},"type":"module","engines":{"node":">=20"},"gitHead":"6bf3fd00af7e8cf199a7c272e41182f3f1462ed8","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","tauri:build":"bash scripts/build-sidecar.sh && tauri build","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.1_1773389625136_0.7865085825138274","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"glassbox","version":"0.2.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"1affadca518d84453431b8e395c84f9fc6844214","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.2.tgz","fileCount":6,"integrity":"sha512-iZqpHQjOfUy+3zy7CiSOgt+0hReUML26MqY6SWk/DDQb6bfoglAuQ6gqKbzSW3oJ1H9qc9IpCgKNy+rScr74uQ==","signatures":[{"sig":"MEUCIFGGCZpiH+0epzkscN6x7b/hiUuD+q45GwnTrwHJgz7JAiEAl5zfg7YztAOm/0/5bo/7WdraBIq5mlDw+D8aeAVcqcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372900},"type":"module","engines":{"node":">=20"},"gitHead":"c92005d1c207acf0039f4e79fef5793133ff9830","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","tauri:build":"bash scripts/build-sidecar.sh && tauri build","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.2_1773389871804_0.16929316196510213","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"glassbox","version":"0.2.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"ed004983ceb6f79430802fbeb1be969757301eb5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.3.tgz","fileCount":6,"integrity":"sha512-HvHKitE/km7VxlyTxmdoblBfYGI3tfM/MYvsOrujgUoxKv/rVBeLUUKAdjG4MlTa/zfCda04OBs+2u3PjPuPWA==","signatures":[{"sig":"MEYCIQDYAi4FhVWXfGR9TIHcQlKjhHRAgVJq3ct7Y8M3bO4ooQIhAPkr9nu92/5ZVFUTBSx38q2Jo4hKL5ke2ltaqcv0v3dN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372900},"type":"module","engines":{"node":">=20"},"gitHead":"6e48679f72ff735f87536a482b2311f11dff3415","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","tauri:build":"bash scripts/build-sidecar.sh && tauri build","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.3_1773390845989_0.6164278049475267","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"glassbox","version":"0.2.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"44ed2b1dd50aa75722189043a10b9d0cc4f1ffa4","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.4.tgz","fileCount":6,"integrity":"sha512-pIxxAnh0sJgGIhfRMqArKAZc2SqL+aM30N25evpxUG89xZRpkZG43tjmJTN3MS7ZsjE4u5IEnp6cpPxAQiJ0mQ==","signatures":[{"sig":"MEUCIQCJAgyV9VTSdtQS/cYHcjjo+76TZ8StSMTMxUdNFzt2tAIgItUODmWtz1tvpuBm0ZZLgmnBg2sa6xDrzGjoQ+H+DV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1379057},"type":"module","engines":{"node":">=20"},"gitHead":"c7ab78d25365b7f32a9f1d90d41f4cadc5a23093","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.4_1773414548567_0.09724224917669422","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"glassbox","version":"0.2.5","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.5","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"0b790edd1738dcfba2fb7608faa59e0ebf65731e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.5.tgz","fileCount":6,"integrity":"sha512-tM5ZbYR6Z9gXxw8yzBg4cOjVVvGbvrv2I97vthMxY5GERfoxkGFD5gDrOXGsVFNpMp1OSq5R6nof61QcboFH/g==","signatures":[{"sig":"MEUCIDrSuwXLRsp5rmvsgn3MQcHrxRPuKW5nIyVN5gRDiBXEAiEA8fvDqWhIXPjLJmNJI5UccpSjP9fhVZAHwGmphSIP+D4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1380034},"type":"module","engines":{"node":">=20"},"gitHead":"6913cf44a012e9db14ba3859acf8536b96c1c0d9","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.5_1773446500050_0.8218662044608049","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"glassbox","version":"0.2.6","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.6","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"2b3a4d457eb24320d66902b1bb9c4236d712a4eb","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.6.tgz","fileCount":6,"integrity":"sha512-qqsT24SlJ9VBs6o7mvWZ+VioReI+TbK6yJ1iPL2wz+yzRagmCLxjxC4enhAuW1QzcoWEXOMvdgScmdj9w00o/g==","signatures":[{"sig":"MEUCIQDbEpBM2l2DbgjNTNrj0jPIYz0EGMBCl2Qy9ErkOZm78wIgT2GKyA5nLpv2KOpPyTGEVT/qeA8QEdEtEJn3uLQ4k40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1391169},"type":"module","engines":{"node":">=20"},"gitHead":"04295ea1e2de642f6fa510045b7fab0c848e7df8","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.6_1773616636824_0.807756528668669","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"glassbox","version":"0.2.7","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.7","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"99f81f5e023028ef23ed6056f7d0349021cc0a33","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.7.tgz","fileCount":6,"integrity":"sha512-AXkFWAXXPdttuRvBVs1iIo2n76ZxtiajyDL9Z+8664tELC6Fyb7DGfYcCIVO28At/oT7lWdlf7bvhoriR1Rd+Q==","signatures":[{"sig":"MEUCIQCuYfWpKscouMeQ+jnzN/NxUMFviiXdkjDUpALA9ZGKBwIgXCgzrOTtFE/57YiJzUde8ykOn8AGMklra2ZgtHtBRts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1391893},"type":"module","engines":{"node":">=20"},"gitHead":"b935cac3d1d81c3bb3d9c629da427c085bc34ec3","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.7_1773630903648_0.8703444418056627","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"glassbox","version":"0.2.8","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.2.8","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"439dfdb8b578c5898d958040be7c4e178fd6e231","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.2.8.tgz","fileCount":6,"integrity":"sha512-tpVzX9aQpH543mh58stkSkLeEbMDjIUd3q7ExfaHPCpdtFK9VdabStgRiWOwPyxhiRv2d2wPLjhLTreEuwXfTw==","signatures":[{"sig":"MEUCIQD2WJF8qEEYhet+jHkBbxRTncnaRitwn9d18oNHLzbp2gIgaEUbu+eXwaayA6ZxbAfMVUgSYe9AVKyHCnIac/2xtX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1391891},"type":"module","engines":{"node":">=20"},"gitHead":"1da917fad4e0ba6289940e193cbb8b976b141d03","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.2.8_1773632401369_0.47281996086320355","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"glassbox","version":"0.3.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"80388c354928cfde65bf8c90e94aa0e417814b21","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.0.tgz","fileCount":6,"integrity":"sha512-gQ4c4Vvx9RqMj/cBkHnL3Q6Tl2bLg/MuMJ3NzVKmcnm5dO779gWVAeSp9Fa6BdO8IwbJaYWTlyr2+Ad0AgpZHQ==","signatures":[{"sig":"MEUCIC5B+YtPdfGD4VV5T9Tg4a9ARo41sKwzuAEfNdUPvYDeAiEA5tFn4pUUUs2jkDT0vyEJgnf/suUdRlhJSMfHb7jSziI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1420474},"type":"module","engines":{"node":">=20"},"gitHead":"34e7cb8900185fe97094088182d04b82ee9d28a1","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/ensure-sidecar-stub.sh && tauri dev","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","sharp":"^0.34.5","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.0_1773647081111_0.3649063833812296","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"glassbox","version":"0.3.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"3db1774336ec9e296091d8651370724d51f91917","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.1.tgz","fileCount":6,"integrity":"sha512-4RCscEAknSBYYImSyZ8IH6RhEJBdpp76e6Cxdoq+b/G7m0Kw/JdDoub6WDeR79ed8FLQMGcRmeHQnzz/FUUN0A==","signatures":[{"sig":"MEUCICjcdIXWITPRmFHgJ0uxe6DnljCUtyeHgKe9v3kd9h2aAiEA6HNlvsREtJ9bqiI7q+VbNVnA/cEoi7cgAj24RkJnySg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1422010},"type":"module","engines":{"node":">=20"},"gitHead":"1bd655bdc231b5d402da5b3179aa7ecd2fae67a4","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","sharp":"^0.34.5","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.1_1773652958380_0.4038433219801001","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"glassbox","version":"0.3.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"9bb953ea31bbaab20598d4ae4429dae3e0180bae","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.2.tgz","fileCount":6,"integrity":"sha512-CRNguzTmW/WwMqjFDVXWGXYAuUp7qZPJvYNe7PmlZlQ6HEyc5wITta69yMLIiEL1auGseZyV4DwNzOJPYUgAoA==","signatures":[{"sig":"MEYCIQCejPWPWsx6sFoUS5sp98LiaB3GyzcX0/jbgatN+5q1LQIhAOJugeGXEDWjaxdbCPpqLtrLklQCWmU7YSR5oDdCwYFV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1425704},"type":"module","engines":{"node":">=20"},"gitHead":"a1ffab38a70079b29d9110398c8a37b1885d9a0c","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.2_1773654623858_0.20204094170773446","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"glassbox","version":"0.3.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"0c01885f899d382119501461250023877ef287ba","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.3.tgz","fileCount":6,"integrity":"sha512-sY8amysS9KyJympkrs1tEopjArwpVfgieKtwM8Gtxiaexs2DbOlQVibp9QPL4o34jKWNKku5qrnG7ETmqqDSAA==","signatures":[{"sig":"MEYCIQDcob1nUZZoDs22aLEdp+xq3Hfkq6U9Jfawo+1wgLK6FAIhAKs+t9aEPXrCtPPDbw+wkG4iWmmiTCZip2sYDsIZY3zn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426041},"type":"module","engines":{"node":">=20"},"gitHead":"089ac145f4159c02da18821657deaf9c4885baf7","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.3_1773699350243_0.4364901844433273","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"glassbox","version":"0.3.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"7c876f32a21d6ef493aadffaff2ea1e3e0f6e315","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.4.tgz","fileCount":6,"integrity":"sha512-hdQIvW/O2QVPNLiPkEn1U/Nvz9qr2NSeOKh/21wQt35b90W3Z8nHr2+23FnfbOAWBCkKOzZCbm03xdBEGAxa2g==","signatures":[{"sig":"MEQCIBPX5kHnO2LpZrG+RuE728X8ZK9Wd/EZ2zA4ahvXbRbhAiAjZaEAvtADoamJpHinBKXKuicXhTfhzZeZ3owD4qIfFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426041},"type":"module","engines":{"node":">=20"},"gitHead":"c6c28d0213056ff7cda1b120af33fa6f69abffe4","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.4_1773699894530_0.657555624219202","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"glassbox","version":"0.3.5","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.5","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"0708582a0da5803286b6ee237767c3b2b7f2591e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.5.tgz","fileCount":6,"integrity":"sha512-0AY2DUQTP+A+1IOeul8e1sUVNJjsf62t6bs/ZeArOVuwUwYkcqhzW4kawLuhVNMaHojabK3HdJiRQGaC+3JtlA==","signatures":[{"sig":"MEYCIQCXzWYnlwNP32qeMabNMXYZc5bTHEXnlFfEwyXk6PTO7AIhAMARSjdtk3XpQsPXDfysCicwbQIMKR8IrXe+CFBpilId","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426041},"type":"module","engines":{"node":">=20"},"gitHead":"54ab7f6e5f4a4ad03329388678250f0719258dca","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.5_1773700737477_0.02176577273834379","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"glassbox","version":"0.3.6","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.3.6","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"984c459df785273485ac914fd6ea082316175335","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.3.6.tgz","fileCount":6,"integrity":"sha512-2acqQ+dYLYnKhDc/jNU/nlMP725+tyQOeOkG97Fffup+xPEl06NgBDSiFNtYvz8Pf4Li5ht+PrXeSbQrJ5eb4g==","signatures":[{"sig":"MEQCIClK9Gvzox8uNs1xB3JaanGnJmH3mKbUOb+TzMlVl4OdAiBV9PIblIYCFIXGy8OgvTxKfYmTAwExFWd+0H8Yw16qxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1429719},"type":"module","engines":{"node":">=20"},"gitHead":"2a4ef13acae8f0a604e41e36e4f7568b9a1beea1","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.3.6_1773733552407_0.18093194879061292","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"glassbox","version":"0.4.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.4.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"68b25fcd227c92c5bf168137a594b307c741d812","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.4.0.tgz","fileCount":6,"integrity":"sha512-265Psce9YISVvmIFy5PWkeummsyV9zuh0LEvLtN8H8ZHKjGRvhK3LYiPdf6bgn3/KWBInrztpxisRdY338VZAQ==","signatures":[{"sig":"MEUCIA2HbH2vc3GLXRQHS5kfhl1/79DAVIxDDiJZbFjqWSpSAiEArMrToTt6kxELPJVRgXdi3rLCCw1uAEG7oYyph/lw7YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1441370},"type":"module","engines":{"node":">=20"},"gitHead":"08eb4120159375449fdd4a18d396211119c1427f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.4.0_1773891122148_0.024677833211381506","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"glassbox","version":"0.4.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.4.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b3006cfe551da4eba5cf882997f9086560bb8b3f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.4.1.tgz","fileCount":6,"integrity":"sha512-3hwkOGsWQAOeM4QVs62gTlgF0msniGkTHxVKBRoxWvQQu+gcXqkYPUWYEQvpR9AkvFUU+IG0tCuBOWZn6pE+rw==","signatures":[{"sig":"MEQCIBuKk1Vx5McLwhRs/cat6hsGAOJRSFjXDu5v87zeOt/wAiAtFiUFU4h9ArlOyu2mCVwme5WXX9eY7Us3GTNJgRcnzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1442117},"type":"module","engines":{"node":">=20"},"gitHead":"801836870d4d253f56aba05a2e67dde1c73f93e5","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.4.1_1773893117121_0.09463806914002171","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"glassbox","version":"0.4.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.4.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"21837621eb292426f554b71c1891babaa402d355","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.4.2.tgz","fileCount":6,"integrity":"sha512-1y7SM12wAwP9m0zpIm4vttLqCkw7WMxMnrxsvsmVnkYBbLIepj4x/n7+DGyrsKBPQDEEEtzXg/uLIunAWTzmXg==","signatures":[{"sig":"MEYCIQCR7Z1kccBXZ96b3GgSfsqQQNZRlH0BDrTbSvDC49774gIhAIHT1DVNwGxoxEtsJV9zveOdbSbj1fM3wnpCh4K+Kha7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1442152},"type":"module","engines":{"node":">=20"},"gitHead":"2bee2d1a8f6ddce75377ffee8d20961cee614c08","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.ts --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.4.2_1773970399789_0.08786878459898517","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"glassbox","version":"0.4.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.4.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"5f2716999571bf5609802a4e5a797ba6d4c7bab7","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.4.3.tgz","fileCount":7,"integrity":"sha512-CZ4+uVELrRpmNt5jEDAM2grRiyf/QXUfSkDrxEJSyejgu217p2cve1280H0hSYV3KvZ9vxQMbg1wX1F2sK+C6w==","signatures":[{"sig":"MEUCIE6NJcwOp76GBe86w1thyNFI6qi0mYkaV+fzW2qXwD6lAiEAodNWKOuH/dv7XhMeL1s1kshzWVecm5QsKTjLQ+L/ykE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1451773},"type":"module","engines":{"node":">=20"},"gitHead":"8aacd2439bdd91221b3b60de0a89f2e5f83c20a7","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.4.3_1774064583057_0.5832429916904089","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"glassbox","version":"0.4.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.4.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"bb55f92d41001765115f9f3ec21efea9fd262939","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.4.4.tgz","fileCount":7,"integrity":"sha512-QEtiCm2pfFIK8k7AiqS32msAGqjmAap2jntnHHKm94SdEfrdhzoXJgox+5IhEAYAQgdKxThNpsNwU5kJr+7DZg==","signatures":[{"sig":"MEUCIEF9M8sgBGgxXhu1O9a+we6SIdXID0y22TfEj6MKY2gAAiEAvPgVjWBMhl29QYwBdYgM8k9rviJAI4PnzFlMcE2SNmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1456654},"type":"module","engines":{"node":">=20"},"gitHead":"ca03a4dce6b47f030f6051a56de5e0a5d9918ce2","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.4.4_1774135043542_0.2193742889623136","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"glassbox","version":"0.5.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.5.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"52f2984c2ed449b3f7aa474ead2ac827033e566d","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.5.0.tgz","fileCount":7,"integrity":"sha512-SPek431Nu6365SUgnoCNYSIE+OJCEL+sK8hgceQWE1fLVzcMQ0N3EF9DNotKlXiA9uqlblFvurWb4qgM5N9s1g==","signatures":[{"sig":"MEQCIAgZ2b+1oeG9cmDxVhS59gqnkjN+Dd0vx7s08Oo5xapAAiAjFrX2z4vL6NeCkgPrU2QQ2PDpEHSgc93qneMivFTdPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1470125},"type":"module","engines":{"node":">=20"},"gitHead":"04ea374556dec58d2893dc584fbf682098300f25","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.5.0_1774238426066_0.6625077533392689","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"glassbox","version":"0.5.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.5.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"28f4d152eb3242afb8664b4019d619f5e72fb7d7","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.5.1.tgz","fileCount":7,"integrity":"sha512-GNv0bWBhYxBORHRi5DhBiTyuAtEJfEqt/cPRrQzWpiztUDOpEn5vv8rzS2pJPfq0KKCefPVQQYE/4uXPek3zhA==","signatures":[{"sig":"MEUCIQDW4zMOmDblktDUpu1U2iB7uf/sD4BsRYOxSgNBBtrIzwIgFJrlgVRd8rSfPsnW+DFAW6bZx4dfv3Meirx6VKuzS08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1474012},"type":"module","engines":{"node":">=20"},"gitHead":"09b64adbec8bc3b40702e70f034c650fd8a4cb36","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.5.1_1774569080739_0.3738027808526434","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"glassbox","version":"0.6.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.6.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"000d42172676fda8e5d7a476876b8c307061807f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.6.0.tgz","fileCount":7,"integrity":"sha512-QY2GORDDAC2evc1cJJDeF9J+IYGN5BaO1YGmVlbZWRSIYfZ4eQE9kbuZo2wtM2qgflbt8512eevho0UkE/Hljg==","signatures":[{"sig":"MEUCIQDybbYfSv4JS9RHtSi3lEXg/8W9JKYXEkbB8e6FtyfHugIgbdLu8EQ+pLq8RYaTISSpZBskh7VjrXyxg+W16VULJoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1474445},"type":"module","engines":{"node":">=20"},"gitHead":"6654058a077aa26a7796258502bc2a8e26556502","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.6.0_1774582804360_0.9498652999107735","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"glassbox","version":"0.7.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"2f0298f6c27f41497c8e84fb4e7c181b59e694d4","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.0.tgz","fileCount":7,"integrity":"sha512-ymekDx9FZRLymiZqL/xQmb+OygvHVCAwXIIzJb2hc+gV/hyBST8n2i2v59VMNzAFzc9UA5ECaic1QGC7rKtZWA==","signatures":[{"sig":"MEUCIQCXno/pA0rVc0blOk0VSVh0qvPkz1/HzKCQd0uTRQL2bAIgR5XOf/vg6H37rhNnwl3L8tefERjfBfbdNsnyv8Truhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1511559},"type":"module","engines":{"node":">=20"},"gitHead":"97b2a861a43eeab8ed42e0a59494be5598fbf32f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.0_1775117229658_0.14847972751507443","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"glassbox","version":"0.7.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"2f5fa7c986e3c9d82b9f21e8b367f5f96d1dba43","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.1.tgz","fileCount":7,"integrity":"sha512-+MVeSGDzTRtHsH1hBeIqN8mHKQXu7cOTrSLf3qpu4fv8glv4wUl+yNi/TWaT1sv27aY+cu1AOmC75G+7cRfrGw==","signatures":[{"sig":"MEYCIQC8GqgeycjrbFoVQ601konyJ3nFGjaZZa8JxBywl0huZQIhAPjfDZjzvbkOlfCA/hkMMnOb0dZLxFRsDfWGgJrnOv03","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518425},"type":"module","engines":{"node":">=20"},"gitHead":"aa601a99866cc58d717d84bc5304c7e565d9510b","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.11.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.1_1775129690804_0.5788177464164483","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"glassbox","version":"0.7.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"0481e7529f0ab322c0b7f877bc176f00148e82eb","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.2.tgz","fileCount":7,"integrity":"sha512-Fk4H+IR+OoCdOchNfIkhc2+Nyehv3GCDdJEIyPX8uQfmM07vtNOLbkTcUVObutY4l6mlusUcKbd5sMmoQokagg==","signatures":[{"sig":"MEQCIGkX9ZJwNbRW/ypeOzslq4xjnwU2cp6KHTKV2/dcLHExAiAsckOH+BP3p2xrkSP293SDZb9qaZmJI2JGsf4W+vA5bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518445},"type":"module","engines":{"node":">=20"},"gitHead":"ec1c54726e70a4de8002e9524a4ada4ee8b2e894","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.2_1775175218944_0.06132194940322666","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"glassbox","version":"0.7.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"dfae00869a9cc5bd91ba42031f19ccf1b22f1d39","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.3.tgz","fileCount":7,"integrity":"sha512-M1wTNDL02SRjyQ2P5GKAe4c3xxRRHxyN64TVmK0da4E2ZAtPB582U955lBjTh9bwM8SYt1vCcU4begP2q7yqpQ==","signatures":[{"sig":"MEQCICUlXItN0aTJ2vVVA9RUeMXHOJ7bQQ3WJoKKgsG2aMugAiBWRQh7sHfLdoaXO1FqbPWXRff+1R8wBsShidZgvKlIhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518445},"type":"module","engines":{"node":">=20"},"gitHead":"401d1b2767421304a5e1404b9c0dac7903bc31ec","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.3_1775179392561_0.37221543746541297","host":"s3://npm-registry-packages-npm-production"}},"0.7.4-rc.1":{"name":"glassbox","version":"0.7.4-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.4-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"1a974693dacfb08f7c07036bb144770b3caab4eb","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.4-rc.1.tgz","fileCount":7,"integrity":"sha512-JSg8rrWxWWekxiD6ncjbcbbKQ0ElXBECjoyn8Vv60cdtc3TdWvG4XwG0AEMVFVaPBZ+9tm7WSGFdmMmlnqGxQg==","signatures":[{"sig":"MEQCIB220OVxERRqNhPkAWlg7+UErqIsNYBdJXYmuGhuewXiAiBn4x6cBOmRTRsxCvvd11D0pwllRsYGt/RACBiM+mftPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.4-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518450},"type":"module","engines":{"node":">=20"},"gitHead":"67667a536b3064e4077f81bc8756e853ab251a28","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.4-rc.1_1775183604633_0.18496705285984816","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"glassbox","version":"0.7.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"5a476a5842f7a33cae0e5082ecf0f6181d2db772","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.4.tgz","fileCount":7,"integrity":"sha512-ch+it7JHZr7XxzJHPA+7za75LKr625RMLv8jMswBYEm0jkAibYCIWTVTgXxfYCVSZUdBwdDpjCWI/TlhkHrppQ==","signatures":[{"sig":"MEUCIGV2++MHNgy3gv5PKd7T6oBNQJeGplEGM38pRRKSQwJvAiEA+mnObRcuD0JXbDy73GzER1HEUJRphWJgsFo3H+tbQMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518445},"type":"module","engines":{"node":">=20"},"gitHead":"67667a536b3064e4077f81bc8756e853ab251a28","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.4_1775183652684_0.4520988946771338","host":"s3://npm-registry-packages-npm-production"}},"0.7.6-rc.1":{"name":"glassbox","version":"0.7.6-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.6-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b9f18aa994e38fe564dd63f7547be7dd47f7a34c","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.6-rc.1.tgz","fileCount":7,"integrity":"sha512-33+dDjCY9Ce2uDRxhRqClCsqFUSYt4mInhlsIf/fB6MyBQS1M/9CWnJcjfGmF40CguTdReOS39lNBXCEHEG0bQ==","signatures":[{"sig":"MEUCIQD3khkc8ftwgrrlLpClXSHDrebZc6GWtqKTpDidQxcpGgIgDW11bwIfpNrbXsiU8yYhM01REbfD8y3bLKQefINd00U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.6-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518450},"type":"module","engines":{"node":">=20"},"gitHead":"20d7c83316f07315ecdc780c7f2692738723ba6f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.6-rc.1_1775187419779_0.8407300639103936","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"glassbox","version":"0.7.6","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.6","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b7e22d9f8c864186a0caf83f959f1a584f1123ca","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.6.tgz","fileCount":7,"integrity":"sha512-M5l+OrqE9OJUIShAOBnKeoqu7Vjr1czULRdHl77ZG7MspTafF3veRmCjvXFOK54fac00HByEAddGg5jqf/dzBg==","signatures":[{"sig":"MEQCIDLmv7FBbBuSN0lE9/7N7dl1HXmxgzXfy/vrqOZcVYd7AiBLM8D5KKlDMpEuiJV8I5iZVt/tpVv85NfKNXZV1mqulg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518445},"type":"module","engines":{"node":">=20"},"gitHead":"20d7c83316f07315ecdc780c7f2692738723ba6f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.6_1775187460802_0.8297772372486534","host":"s3://npm-registry-packages-npm-production"}},"0.7.7-rc.1":{"name":"glassbox","version":"0.7.7-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.7-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"ad91b9bd503d10a49c315c0d99fe70702f826ad9","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.7-rc.1.tgz","fileCount":7,"integrity":"sha512-El/gehrgkQYCSI5mhLvB4CPAOCBRN6MNySeBbqORcZ9a0ipkzqY9UrgkFG3dje1DCdsfFpd0iYbkbYq7sHRU7g==","signatures":[{"sig":"MEQCIBgdv5h4dQKwHqjMcUFHqr00ciRwiP24cPeeNU9CDqV2AiArfvyPqEuCSX6Tt9cfO+69lzOh/EanPuSZE/rtuUz/Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.7-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518450},"type":"module","engines":{"node":">=20"},"gitHead":"5b9866cdf17782f4e80e09ed9a7065f6b91ad887","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.7-rc.1_1775188475438_0.7337341327057325","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"glassbox","version":"0.7.7","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.7","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"62d76d7de817ff029e7994fada77477452a2b1bf","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.7.tgz","fileCount":7,"integrity":"sha512-dzXEjppxEMTFgaviLdciu5i8IdvhSVIX44sMiFqSrT+Pb1WieipQ458wi47JFeBeCG9PCYDtkop6Bdu716204g==","signatures":[{"sig":"MEQCIE30zr6mPTKe+zi4aUSY3bLFtYwEhBe+HSLUAbzdePUBAiBqNiN5ExbMyFni2709f2YIm9zWkhoRkBCnZUF1hjxzVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518445},"type":"module","engines":{"node":">=20"},"gitHead":"5b9866cdf17782f4e80e09ed9a7065f6b91ad887","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.7_1775188658138_0.4741784018307842","host":"s3://npm-registry-packages-npm-production"}},"0.7.8-rc.1":{"name":"glassbox","version":"0.7.8-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.8-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"c46fc3579eb49ece4296835b1ab9ddbfe54e53a8","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.8-rc.1.tgz","fileCount":7,"integrity":"sha512-ZKMVD+nHGGTJ1m63M6dNL0RTpqf5kCFq/zRe8y0+bupQ5cWXNnv9gMyMaK1GcBp3oOPyrnEheBrhHjTVOulshg==","signatures":[{"sig":"MEUCIQCvbmy7uT5wwiABO3GQLe2/HIFtR2mf/5bH3eOmDnhAtAIgJWfPN98Jc+rbsRo0DPrx9tlege/LvjAhtxA7Vo8aS+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.8-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518766},"type":"module","engines":{"node":">=20"},"gitHead":"06616dddbcd520c537dcdcf8afabb5fa6a081b49","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.8-rc.1_1775552589556_0.33586819929871004","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"glassbox","version":"0.7.8","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.8","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"4be676d8b1d6b0fa159d09376356ba3741bb5a30","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.8.tgz","fileCount":7,"integrity":"sha512-DhJkVU51RvLPU8bp8/ZodSQi8t01I351+r8PU547xf+EwaYM1FTarDJRcBZ/V8cWh0m1yizz7Ay0muEXmBzn3A==","signatures":[{"sig":"MEQCID71vuyqtazlk6mQqO4LW6v5zMitJU8Y7pPHtAQHnYPMAiAVAV6WVElVRboGvWTsQ2yIbeImS/+x+0/rYB1DWaQkCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1518761},"type":"module","engines":{"node":">=20"},"gitHead":"06616dddbcd520c537dcdcf8afabb5fa6a081b49","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.8_1775552633210_0.2575335430954435","host":"s3://npm-registry-packages-npm-production"}},"0.7.9-rc.1":{"name":"glassbox","version":"0.7.9-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.9-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"58b6c4106ca8a544a4d9e8a509e04bb85e3cf448","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.9-rc.1.tgz","fileCount":7,"integrity":"sha512-RbXc/sGRrsGG1TvIldE0Ewtf6U8ubu08hm0yNWnMWP0HkeFLkZEM2q7Te3V3QrZXG85LA4XGRmaQ+p5qBHNORw==","signatures":[{"sig":"MEUCIE3W6R3PQz0FmotCogF0r3jtEvlyDTYq3vmxrWD2vBCaAiEAjhiTsVRk/KlD49eehmt7xAb5nJwyYl6+jW3eDOF4NIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.9-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1524896},"type":"module","engines":{"node":">=20"},"gitHead":"2deb849d8d060bf22073cdd8cf59c48d6492e3ab","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.9-rc.1_1775606112828_0.34113746040666837","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"name":"glassbox","version":"0.7.9","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.7.9","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"62f0bdf130cedfd5a0242bc52054158d71af92ba","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.7.9.tgz","fileCount":7,"integrity":"sha512-xtMNZLxScSMv8z9M7s46Ec+HBRN9LLooAH3EAmlqzq9YJUSZlzj0tYzIKEMezxl8YJo0NpBQ6D97bvny7Ignug==","signatures":[{"sig":"MEQCICPCY9DkUjZBN8IaLioJxv3qNpsD0O6KIlhh0bauq3nQAiA/9HIoQkGC8U0R2msmYqjREge1vSPCVGsvsX6MuoVCgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.7.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1524891},"type":"module","engines":{"node":">=20"},"gitHead":"2deb849d8d060bf22073cdd8cf59c48d6492e3ab","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.7.9_1775606153124_0.8774547283400247","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-rc.1":{"name":"glassbox","version":"0.8.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"8ae167e7b2b052b2412ed14d89d2a6d90dc9007b","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.0-rc.1.tgz","fileCount":8,"integrity":"sha512-SlJFKNWKTYxCYSSPhC4lUpzaB19vuaXUS0D2dkNzr8YIwdYOlQZZta60yjRCrreyo7/DBNJf3knZDYVnCN0LVg==","signatures":[{"sig":"MEUCIQCXE7JiK/Fd6sDXObgoZRevmYmU0qj07XE0/1RGZbmxZAIgH913xEi+r0Zb85qAjfUosHaA9J+y+Widjl8TEDyhTsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1537146},"type":"module","engines":{"node":">=20"},"gitHead":"e60159a57f795070c32f824f7b0d1932fe2de3ab","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.0-rc.1_1775608671959_0.838166790988174","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"glassbox","version":"0.8.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"92d15d1e8a42b6a7199d8a7132b91c4b631b934e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.0.tgz","fileCount":8,"integrity":"sha512-4gVMFWymQw9tMj1yfN1Ud6StjwF9F4zPCMcsFbXp+7cnxLQUgPOowSGjqGBIWzm2T1vnOtcVY2VROD84U1pm8w==","signatures":[{"sig":"MEUCIQCnbLC56vnqwXM+yR7DpcfC0J77ynhKd5et5WukqnDX5gIgLon4kbwG8MOhXwRcVGs7ZrFtFYNubMLIBxsDnYtUHHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1537141},"type":"module","engines":{"node":">=20"},"gitHead":"e60159a57f795070c32f824f7b0d1932fe2de3ab","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.0_1775608724091_0.8240239399303266","host":"s3://npm-registry-packages-npm-production"}},"0.8.1-rc.1":{"name":"glassbox","version":"0.8.1-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.1-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"83c76adc66ddcb4918148aa374181b85608e55d2","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.1-rc.1.tgz","fileCount":8,"integrity":"sha512-FekVN+jfW5vglcY2mIQYn7xqyxyMC4vf/w16xNlPtQ8iRrahdSIzVhEui7ggrqnP+sOPD7alj67U6YnuvUrsMQ==","signatures":[{"sig":"MEUCIEmPOjVkXBTKCE/Jo+CY6FLENzNmUGL9uc4kSEHnnmMNAiEAjzjqfQ3RkcLKTnlDbghLEcT97JQUkC48lslAIBg6eGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.1-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538259},"type":"module","engines":{"node":">=20"},"gitHead":"8123e293020e7fff9a15b3ef72ef45b6b46e14ca","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.1-rc.1_1775623559534_0.7466586408634812","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"glassbox","version":"0.8.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b8f49fa80050ea72e85bda7d86fac7a65c34f003","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.1.tgz","fileCount":8,"integrity":"sha512-O7Qmv1HESfrYv+mh5AxLaG3QFmLtrEtJWwBg0+ushRij71itxXtId5cD0MKKqj6+3JkiVP/ayPY+xjvpO5XVsg==","signatures":[{"sig":"MEUCIQC41Fp8Fol89CPSuVR0s8qaMTJrQShHuaI/pJMeyrI1sAIgamUHV833oBoj/X8HBSEKQ2r/727fIoBWD4hPSKmaoL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538254},"type":"module","engines":{"node":">=20"},"gitHead":"8123e293020e7fff9a15b3ef72ef45b6b46e14ca","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.1_1775623607582_0.14395908104968447","host":"s3://npm-registry-packages-npm-production"}},"0.8.2-rc.1":{"name":"glassbox","version":"0.8.2-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.2-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"5d71571a1022efbd6f58c8173e010734dc4bb4f1","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.2-rc.1.tgz","fileCount":8,"integrity":"sha512-fdvIlsXeQxlGKx6f+gvx0cZJvBOg2cjG2X+c3TmLbtKbIzGohbbUgwZ2Q3+8SNJM26DVfYYVw+DtVr9MTwcMnw==","signatures":[{"sig":"MEYCIQCBphjBQYPyK2ypAf2HyYkXY76ykp9e/FnV7r4U8oTqTAIhAL2f1UFXvTmNHGV1l+p59NEbFSRfwUtTgASqUKH7D/j4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.2-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1530827},"type":"module","engines":{"node":">=20"},"gitHead":"e23e58e9c77888e6a87d8f86c2a037c2ebf54c70","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.2-rc.1_1777766328242_0.6800735129626789","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"glassbox","version":"0.8.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"0c5647828e24636bbd5f31a606ed4b97ff710efb","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.2.tgz","fileCount":8,"integrity":"sha512-3F8p4h7S8U3Czi8kqJOmKAjyJCnTMZ1jQ588he+tvtxYfPaaLIw9NtH1I8QERKlyHp95LkMDTq53ZdfamEO5XA==","signatures":[{"sig":"MEUCIDnIVnnSz0DCtf0muVB6UT23qdHuiSys8FmdAhDcPRD/AiEAvZE5FwiGHzN1TrNdFw4IVsJSHaw6kCe1qDLXfOLxKKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1530822},"type":"module","engines":{"node":">=20"},"gitHead":"e23e58e9c77888e6a87d8f86c2a037c2ebf54c70","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=#jsx --alias:#jsx/jsx-runtime=./src/jsx-runtime.ts && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.2_1777776462629_0.58554697989936","host":"s3://npm-registry-packages-npm-production"}},"0.9.0-beta.1":{"name":"glassbox","version":"0.9.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"3056f2fc1f430d249da63d7a39c9258a980d11bf","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.0-beta.1.tgz","fileCount":8,"integrity":"sha512-IaeIsQVt29xi9J44KKkVrxfrDKNn3z0XLP1/LIUOuA1cin5y1NYfCmeJCn28qDr8j8ydCGTVxT5zvLuLvDG9SQ==","signatures":[{"sig":"MEUCIQC8RVDbJsTbVStPzlFxh40qEvqOOtmioe0y6vj0mQ68zAIgMET4auoXwNon+BLNmeidJ5oF3huUQX4xJhSisnvVTHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555762},"type":"module","engines":{"node":">=20"},"gitHead":"c9e3a4072d1f39c22f839e36ee5107c70d7af696","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.6.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.0-beta.1_1778650042223_0.19343606859803342","host":"s3://npm-registry-packages-npm-production"}},"0.8.3-beta.1":{"name":"glassbox","version":"0.8.3-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.8.3-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"411bcbc688fcc9a3da9b3a9b3cc859136dae8507","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.8.3-beta.1.tgz","fileCount":8,"integrity":"sha512-IRm0n2bgLE0A+opXWgUdVASvH5mdH46r1+ZcJ6DT/VD4k29CByHYG4Fd9B5thnuDwqA8Ol0kxnwxeOreBg4quw==","signatures":[{"sig":"MEUCIDmzLUantNnyU4kaofRdHktFnxVy6IBzxSouiU+t4Mb4AiEA/0uJLaZWN94yhze/QTCOSe1t92fzY9B9mOBmEd9wrV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.8.3-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555762},"type":"module","engines":{"node":">=20"},"gitHead":"6b7e0f06f00e34762a5f70e1445af4b575efe482","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.6.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.8.3-beta.1_1778655329711_0.5244289918125276","host":"s3://npm-registry-packages-npm-production"}},"0.9.0-rc.1":{"name":"glassbox","version":"0.9.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"59fcc3de3e1b29b7b3e103fdb67287f7d7427dc3","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.0-rc.1.tgz","fileCount":8,"integrity":"sha512-8flLnf21YKDXVMefgKsWxmDv8R3rn8R/ygsJXhXziMHfDLGB9pJY8khndophK7AUJHUQkq7fTla4Tijmsd7Kzw==","signatures":[{"sig":"MEQCIQDNnD9C0SYgBLVBaaWQb8oVBglWXl6UsDOSg0LNWBKZSQIfbWC9dd/vzkjJsou7um5Oum/uN6XgHlBWd2en47qQ/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555760},"type":"module","engines":{"node":">=20"},"gitHead":"b7cf84adc9976b1fb7d90a52343aad0abc536ec7","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.6.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.0-rc.1_1778714217455_0.37548239875939693","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"glassbox","version":"0.9.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"1cf9ccaa86fa67d16db751da135ebad38482b3c5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.0.tgz","fileCount":8,"integrity":"sha512-hXpxBlA+pGB5mF77kaVvSXxcQWYebTH31BfIG03PWlMtHZoOSgs74xW2oaJcDMo4VWaPXXIfA77H5yKRQso8DA==","signatures":[{"sig":"MEYCIQC7LMyhyqp+rgXvxdvZiae6RNYjqhkwJEpsYhveLWESIAIhAJtphy2CtVosLKU+kNh9GCz1kfakCTyHqbnEbhXeO/Rm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555755},"type":"module","engines":{"node":">=20"},"gitHead":"b7cf84adc9976b1fb7d90a52343aad0abc536ec7","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.6.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.0_1778714264906_0.7435029526638637","host":"s3://npm-registry-packages-npm-production"}},"0.9.1-rc.1":{"name":"glassbox","version":"0.9.1-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.1-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b95cba28ad9f2e5e12c173de449a9f1084a0dea5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.1-rc.1.tgz","fileCount":8,"integrity":"sha512-Og9GHRlcn2989pDvxDM884AKl/5B0SHHlgcsOciMtr43MzLlYS/2NjrH5GYUzmr3AGcxlioQ6SHa578xZQe79w==","signatures":[{"sig":"MEQCICmJkYx1Pbt1n99YMvf4lqU0DAiOszoSmmAbjHiRBL5TAiAx7hovT2yUhX6+6PSP8A/bNriwKPc+PAtDO4umEswCtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.1-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564901},"type":"module","engines":{"node":">=20"},"gitHead":"af3c432642c97a680973baac9a4985ba46202b0f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.1-rc.1_1779113863077_0.34034296601475833","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"glassbox","version":"0.9.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"dbb0b1efbe2ac5d5a98fc384d3b2e857048e79f5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.1.tgz","fileCount":8,"integrity":"sha512-k1lNggcDPnjlt0n4fcMsiv0fvNXzqfOAh8VAUcXT+TNx2neT5EUuRa4umdarWqaCZpYSaNviHsjIEJWpTEWZrg==","signatures":[{"sig":"MEUCIQC2HsVyojqfxZGKwxaYM5J0KUmPBk9FrR2yvznEjcUXWgIgIaN2nMLM5nEaz0Oay3q6rbNr5v0TBCaEfK7sInsTOrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564896},"type":"module","engines":{"node":">=20"},"gitHead":"af3c432642c97a680973baac9a4985ba46202b0f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.1_1779113913583_0.7421054514530325","host":"s3://npm-registry-packages-npm-production"}},"0.9.2-rc.1":{"name":"glassbox","version":"0.9.2-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.2-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"9a8e6fb6bff436a7d3c08b3a9dcba9a2650afc15","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.2-rc.1.tgz","fileCount":8,"integrity":"sha512-hEF2DJpD4pnoUbPF0MdtvR2QakPgTMR+94lN8DV0MIdeEMEI34RoHUDLRKa0n6ryig6RQtCbPIuVVgJPkNPfdQ==","signatures":[{"sig":"MEUCIQDpzVKnzUCmi2EL3RgnSmXf0zDo50VwI1YfKaPKrRdy1gIgcezqAOt3IamfvQAiA56xUuZQgziBPpEXQdg7DeFkCGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.2-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564939},"type":"module","engines":{"node":">=20"},"gitHead":"4c2d54997fa53a407e50570e1baf4710cd1b9f5b","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.8.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.2-rc.1_1779167619611_0.032290958375235546","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"glassbox","version":"0.9.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"7e70a608c4b9531effe03bfb16028b4df06c6ebd","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.2.tgz","fileCount":8,"integrity":"sha512-ywpSjgXzd3VGycgKOhodvKyDnv+gmYnYDBgGWGwePb6T6ZfqSIZ4wiId1jiKYEmflhGH8tJYdqXgpbWoc5V+hg==","signatures":[{"sig":"MEUCIGwpJkDAZRrFmqZop9mSX2emYbD9xNLVm8zY1pvaY+UdAiEAw79dh4Yy+qbVElHddCHsW7xp2U3SBfR8BRo00vfBk2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564934},"type":"module","engines":{"node":">=20"},"gitHead":"4c2d54997fa53a407e50570e1baf4710cd1b9f5b","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"bwestphal","email":"brian.westphal@bleugris.com"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"10.8.2","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.8.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.2_1779167665490_0.24295106949761003","host":"s3://npm-registry-packages-npm-production"}},"0.9.99-beta.1":{"name":"glassbox","version":"0.9.99-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.99-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"9342342ffb1bb72c0560f37dfd0ccce7a79159cf","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.99-beta.1.tgz","fileCount":8,"integrity":"sha512-ocihgzDn09i3BkthCRSmoS+kNtMuA5exRtG1FRRM0mBgZXNkZuT9PUU9MTY6bnoEJLNMyIpRxQzHC8h+AuCJLw==","signatures":[{"sig":"MEUCIQDxbTw08/sn932vFtdbiUA8K/JlJeUQk63vcVDmzPYXKgIgQi38i3Hy31O8KjjSusfuRxYgPqa9+Me3wgZ8Kz3DZow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.99-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564942},"type":"module","engines":{"node":">=20"},"gitHead":"9bc90cc5a21d693b56275e40fcac4360d022acb5","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.14.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.8.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.99-beta.1_1779247015079_0.3609157438827568","host":"s3://npm-registry-packages-npm-production"}},"0.9.3-rc.1":{"name":"glassbox","version":"0.9.3-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.3-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"7a571151fb2fef4292b3de1a2285f560bb9bfc0e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.3-rc.1.tgz","fileCount":8,"integrity":"sha512-TTtYt93QD1tDQ30KTtAyZty21PCBtUVAOysGNEDXCtIX++pVQ0mKQdhiMnWKF79/n9vdRFGqjiAGWCz3w1cQeA==","signatures":[{"sig":"MEUCIGZYXs4iCCj78iZTOecpjUZETkZtp09MZvBWl0te8VGEAiEAy9mDp+nIZJltVwS8lfnCVOYeHMHHVUMtaqqw1oNQpSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.3-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564939},"type":"module","engines":{"node":">=20"},"gitHead":"4efd412ce79afb9709bbf25a726c65469cb9f278","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.14.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.8.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.3-rc.1_1779257083380_0.8829288266675377","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"glassbox","version":"0.9.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"58ccc49a347b65668c4ea10360bdbe79e92525b5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.3.tgz","fileCount":8,"integrity":"sha512-K9GDsu0ARq2JwyOmV4ZYLoFzHcDYzKrSF6U1f9OsKCCkeiWJWbyOR60+EYQQtdEQ+Z2CSaUZ24FLFsGJUDzqdQ==","signatures":[{"sig":"MEYCIQCAPTjT4pVA374UJhnOnjXKjoCeXWeHDUWNp+6v4DHQFAIhAKnM+gBuay07U+1IhvwFRZwzazs5IuXOPOtnKPZm0Khq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564934},"type":"module","engines":{"node":">=20"},"gitHead":"4efd412ce79afb9709bbf25a726c65469cb9f278","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.14.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.8.2","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.8.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.3_1779257134210_0.34134890098451653","host":"s3://npm-registry-packages-npm-production"}},"0.9.4-rc.1":{"name":"glassbox","version":"0.9.4-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.4-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"37d9bb65ae350ee5994a74f560c16fadb4e00e5e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.4-rc.1.tgz","fileCount":8,"integrity":"sha512-6XdGwSAkuTl8FrD1EMxTkp9ZT3VJmwM6NkzEVsRPP7ZkPTe2ga29sM0ucO6FVm7fr/nlY3QV/9ThVmjETNQ2fQ==","signatures":[{"sig":"MEUCIQCHqFOW0UcNluYUSCiD0k+5F1r/qOO6j1WSoySLpP1mXAIgVSgHwf2THjVJJqgp/YjgfolZlyJSPcQ787rEbnW5P3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.4-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562497},"type":"module","engines":{"node":">=20"},"gitHead":"aebb90403dc9ece7222a3efda6d22386fb47ca91","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.14.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.10.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.10.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.4-rc.1_1779268848908_0.8238294936876278","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"glassbox","version":"0.9.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"3108e7048812e1f1b505cfc4d182f860a560c04d","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.4.tgz","fileCount":8,"integrity":"sha512-sYX1b3EbmrucUKPEVL9d7c81izgsv6ZQ/JyT8/FktP5cc3r0tXoVvAUMZhumMWv7FoSapPBCsjCgSDPEU1FjEw==","signatures":[{"sig":"MEYCIQC5YeJL9Fj39l+fa3xBZNaQqI/+vWq1poujeSXiYfIzPQIhAOmLpaViN730KW8lIKwx4q1xWfKGtb6m90mcoXbMZ3po","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562492},"type":"module","engines":{"node":">=20"},"gitHead":"aebb90403dc9ece7222a3efda6d22386fb47ca91","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.14.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.10.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.10.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.4_1779268905674_0.7351756430511853","host":"s3://npm-registry-packages-npm-production"}},"0.9.5-rc.1":{"name":"glassbox","version":"0.9.5-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.5-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"5066d231ad7487059f9737bdd966181ff0a2e5b3","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.5-rc.1.tgz","fileCount":8,"integrity":"sha512-0aDyQ2FW+8zifsFzv9ZD7yWU6B6rk7Y7OJo/WydUpcFyubaJruG9bUbm3iZgn+RjbAbFhFkM18atDirKeQOXcQ==","signatures":[{"sig":"MEUCIQCBCpSyswbp+QolcIJdRTK8UOYuOUtpnwP6JzfATWY2lQIgH0QphOc1nW1QD1gjDhe8gu12ocmSpCZMLJXm1GFtJoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.5-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562661},"type":"module","engines":{"node":">=20"},"gitHead":"13a3d6a5b666eef748f2441f6f7b66a0a02bfd60","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.5-rc.1_1779347752778_0.19454952948038584","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"glassbox","version":"0.9.5","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.5","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"e45d991f12d3619b095b5bc6863f3896c9d4085c","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.5.tgz","fileCount":8,"integrity":"sha512-ubhpT7M6sJ2SwScQndd65OFaBBD/0/iB6lMO0iC3J0pEhxvg2LEpdwZER3n9NfcG2m9GaXyAwEJ8V5sGuljeLw==","signatures":[{"sig":"MEUCIG69b5strc2P1eXiQkKbx3Ft6XqxVmvzS05UlTjpT1m+AiEArbGzqbgNwBrst7gbC1zqYliClA+3FsIIOjmAeVHElDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1562656},"type":"module","engines":{"node":">=20"},"gitHead":"13a3d6a5b666eef748f2441f6f7b66a0a02bfd60","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.5_1779347796886_0.8375018376289616","host":"s3://npm-registry-packages-npm-production"}},"0.9.6-rc.1":{"name":"glassbox","version":"0.9.6-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.6-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"24553bbbc8b36613c583d492f78a1328772da398","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.6-rc.1.tgz","fileCount":8,"integrity":"sha512-CfBP2jDIzTtNvswLz0Xa2k/2XIitc23r1ybYWQysg2IxwEEg3AWCN4KPRRC1llf+sP1MxfvBuoGNE528dHy4qQ==","signatures":[{"sig":"MEUCIB9P1H3jeobNZogFF4NPQ+gyETGm41QLRbx2e+kOOxPDAiEApMB39sq/fscF+Dqi6NwiIOfpvJEcQ0tiMOUJuWN9cIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.6-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564124},"type":"module","engines":{"node":">=20"},"gitHead":"1bf644521891613fa2335595aa0a25a6f3d7f0b8","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.6-rc.1_1779351690616_0.1419314037142414","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"glassbox","version":"0.9.6","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.6","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b6ace4ed3ca88e64f19116aac5e3c521b1e189c6","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.6.tgz","fileCount":8,"integrity":"sha512-cdKIDF4UDmapp7h0rdSRZLui54uh4GnwTvo6we2UacZcsDIjZW4AIt0e+9WOZA2xkIKffEsalS9tYkiBvEoltg==","signatures":[{"sig":"MEYCIQCwUibKyJlheNxEbVrzMfBBXmoA4ClGK71C18naoro2JAIhAOCPhtd/nnDdn12EIG4KP7AMNsZRghl5TXzlzYzz9Nsx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564119},"type":"module","engines":{"node":">=20"},"gitHead":"1bf644521891613fa2335595aa0a25a6f3d7f0b8","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.6_1779351744949_0.051177328129364597","host":"s3://npm-registry-packages-npm-production"}},"0.9.7-rc.1":{"name":"glassbox","version":"0.9.7-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.7-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"a7865f6f0add624b5a29d4ba3e1b4862c423fdfb","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.7-rc.1.tgz","fileCount":8,"integrity":"sha512-tBYEMdYPx3VGj0BnX8kQCLLIsfqGJrFBs55gsxMSC5EB4ZJtBKODz29rxTz/EqQbwWPn/VeF/sNE4nB4t7ob+g==","signatures":[{"sig":"MEYCIQCqg3xJmx7SDEC7YX7LNWEDaZvM7HUy4WdF8WszwCtbJwIhAL2ZBEX3h4pn3LcUwUWJxEh0CNkiwbn/B9yQ08Q9aUg7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.7-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564223},"type":"module","engines":{"node":">=20"},"gitHead":"77472cf6bf4f1220e76833c6b6e1ba728bf8b76e","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.7-rc.1_1779404189196_0.9866804051815392","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"glassbox","version":"0.9.7","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.7","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"70786cce1f6680a50f34cdac3d4f52178317b15e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.7.tgz","fileCount":8,"integrity":"sha512-iHJ3Lk0xnnsCdscYVZT6FfRzCeMKVr4iOnzprKFMgMzyl3CYESFuqkh7Z9zj6bCwBJxXq4ZB15dHC8cw4wN2TA==","signatures":[{"sig":"MEYCIQDvHLC9P73DEqPPAF8NKlZD5MVl5T2BQ5OI+ZiaeQJ1rwIhAPkPdqUy+XV86sdpyjrKwzXYHUKNCIP2/sZK/XeWgUdy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564218},"type":"module","engines":{"node":">=20"},"gitHead":"77472cf6bf4f1220e76833c6b6e1ba728bf8b76e","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.7_1779404242576_0.42435960108870563","host":"s3://npm-registry-packages-npm-production"}},"0.9.9-rc.1":{"name":"glassbox","version":"0.9.9-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.9-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"d0c091ea6d367f3176ec824f13f74ae00c79db69","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.9-rc.1.tgz","fileCount":8,"integrity":"sha512-E/fWLwqDp+wyledzsx7HSTee4O9YRtqXDsvrVaWa1tx8mApopaWLBMaPqbufSW9pgIMXaJD6yB7H2IBVYVCLOA==","signatures":[{"sig":"MEUCIQCloYiKx6IQmALmWA9hWrEyxRQQP7UgsnKCdSdbno6w2QIgYI7IDCa6aflvYiWO8l2EUJNX+HNXi3oDAgne+isLqvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.9-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564863},"type":"module","engines":{"node":">=20"},"gitHead":"8a46ce2e037f425829861976a21a4d269e5cd51e","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.9-rc.1_1779421984201_0.034767164560280284","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"glassbox","version":"0.9.9","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.9","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"6ac84e7765573d908b14080f88c023d7d46476c9","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.9.tgz","fileCount":8,"integrity":"sha512-RJDVnYWO1MlmEf81/4sQZmcZpimop/cTsJd48dFU+jjDOUWrPhZTnOaiqSC3i0lHFwyMis0pzd89P2FDL9HOtw==","signatures":[{"sig":"MEYCIQCQt9VGcS98PtmWq0MLHIAgTjYFWCYjdXDMpB+u+Me1LwIhAOlooSWdzPJJCHB2jsgcW+K1N1ghQvga1c9hqoWGb/sO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1564858},"type":"module","engines":{"node":">=20"},"gitHead":"8a46ce2e037f425829861976a21a4d269e5cd51e","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.9_1779422038937_0.2991127104417779","host":"s3://npm-registry-packages-npm-production"}},"0.9.10-rc.1":{"name":"glassbox","version":"0.9.10-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.10-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"5b0668051abe17481bca6f14ac00f17489cb318e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.10-rc.1.tgz","fileCount":8,"integrity":"sha512-SwgnwKmgqkKt499qAMq+DkRfMNeTiltJ+UpOlG1pI0PU5EcY49RAxLmZPQ+eOdt1dPqpH72x6WcUfexV9IUpuQ==","signatures":[{"sig":"MEQCIEgJuwITnwSiJOfvp6SaptNHr52RGG8IZnj+oWaNqalSAiAY1PaCrKFL/ABnC2eLYlqRkcCwEp1hBlvFGgWTqVXxAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.10-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1569241},"type":"module","engines":{"node":">=20"},"gitHead":"bd5d5748a217e6fe4c72fd433d0aa09b0b2a512c","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.10-rc.1_1779432353169_0.6559618591818452","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"glassbox","version":"0.9.10","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.10","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"2136514e719ed530ba6d238116ad10352923828f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.10.tgz","fileCount":8,"integrity":"sha512-ZZrJjgetR2oKMxBFdYXUMb4dPXjt+TR2+qZCOFMsY1GVGTZKJKocdpUnOVrYZ70YKmCTnSKH+QuQT4QZ1dcKWg==","signatures":[{"sig":"MEQCIHgGWLZ1RNGjOY1KI03cFWCWz4GxqyO8714LZ9gsCsCfAiAV4ZVOBZSvpCqH639WehiKWZ/YmIJkK+lsFEJnrW8QOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1569236},"type":"module","engines":{"node":">=20"},"gitHead":"bd5d5748a217e6fe4c72fd433d0aa09b0b2a512c","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.11.1","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.11.1","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.10_1779432408067_0.8761344926027512","host":"s3://npm-registry-packages-npm-production"}},"0.9.11-rc.1":{"name":"glassbox","version":"0.9.11-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.11-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"989f46ec76ca3c90a26ab9e0ac02a8d4aa95d2b9","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.11-rc.1.tgz","fileCount":8,"integrity":"sha512-YP0mekM86PhYRzCitNl+zimB7TNybd4pnYkaRxbaaJqoIhbh93dqtsIlo+DLcc6khvrMW8E86BsqZ954DMlahw==","signatures":[{"sig":"MEYCIQCYiw3/rzqB973rOyLD4N/++cgWMYFOTWyXMf19YwNvfwIhAP0Nzxvl0wZ2lr2pKHC/yOAg0aICpRX2R57a6c4A0XDV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.11-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1571291},"type":"module","engines":{"node":">=20"},"gitHead":"4ab737e5cf55965d7d2be4cb215d02f9c4c68307","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.12.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.12.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.11-rc.1_1779436544228_0.37711210133006756","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"glassbox","version":"0.9.11","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.9.11","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"3e41adf3eab3bd1b149bf110bce16d6fd201564f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.9.11.tgz","fileCount":8,"integrity":"sha512-CZRFH7dJPo9BS396W/L5lVooEJyKhFbrmtEB/cHUjy8nDmxMSJ8VmuH6rWTwQdUWv7uI1lcScj6jWYe006dCaA==","signatures":[{"sig":"MEUCIF/GZv2xyL8pWucfnN1NxtvD8AOIRdeG8DZaO+T/PaPtAiEAsDqxwydGdiJnPbi4a7OVjp05YVbM/PmLBC4DM/pDgis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1571286},"type":"module","engines":{"node":">=20"},"gitHead":"4ab737e5cf55965d7d2be4cb215d02f9c4c68307","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"hono":"^4.12.2","kerfjs":"^0.12.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.3.15","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.12.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.9.11_1779436594315_0.006513201603952412","host":"s3://npm-registry-packages-npm-production"}},"0.10.1-rc.1":{"name":"glassbox","version":"0.10.1-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.10.1-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"ff17ab3482d883381c2becc7dd33263b89adef76","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.10.1-rc.1.tgz","fileCount":8,"integrity":"sha512-OK09XOvbQ45/k7EKq04X+bASgqn2TKFQnHzIIySlF3pK4n0x3ByewKDRnhpODdxZAgZ6QbJ0q+WzHvwHXWknVg==","signatures":[{"sig":"MEQCIGjdqFw/IJuFOMvzBguQnspnaT8BzixmNriJeN4LpjgkAiB+kVaq65l8tABx5caKOsnVwjuYcdtZRQYSZuq/XsT4QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.10.1-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2559798},"type":"module","engines":{"node":">=20"},"gitHead":"37b63ea8ecd6172a46ec94caf5dfc4ee00c5eb80","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.13.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.13.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.10.1-rc.1_1779671074512_0.7433945825616894","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"glassbox","version":"0.10.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.10.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"7dd34d45133f49ddad14d59bda4285a20383b298","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.10.1.tgz","fileCount":8,"integrity":"sha512-sQY1sYAKlSTmSDvXD+7iyqKj+2uEpZwa/56wbbqL64pNQTylLkvczDpDA/1ksMpdUlf2AM9z3wvWDmvLjDGgjw==","signatures":[{"sig":"MEQCIFCD36lBydXkU9ckAFinaj3P1Qi1nCQ2DeqYPXuMT+IyAiAY/kDQFaryRA08OB7kamcQ3QhbXCLrorOdYkbX15BoFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2559793},"type":"module","engines":{"node":">=20"},"gitHead":"37b63ea8ecd6172a46ec94caf5dfc4ee00c5eb80","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.13.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.13.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.10.1_1779671127945_0.9170218985035103","host":"s3://npm-registry-packages-npm-production"}},"0.10.2-beta.1":{"name":"glassbox","version":"0.10.2-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.10.2-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"fe961afabdc19cd69bf7f58d7b8fbd25586c2fa7","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.10.2-beta.1.tgz","fileCount":8,"integrity":"sha512-osqc/SiLpe44ZBb/EQQM6ZOa8ruLtAqp47iLjTJSlOH0+A/PKIAeUFcPm5SEGaMXaoLED1lvDOvwkrEEpdi+oQ==","signatures":[{"sig":"MEQCIBVj+zeKkze7cab05Ylv3epIoOGOLvP4dWhCI102R+7MAiARrNGXT/rMxftXoiHrLwUzoB1hV9RGH10haLQRopjF2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.10.2-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2559949},"type":"module","engines":{"node":">=20"},"gitHead":"1464480ba8f7699e5f6015add5b66de9ae599a19","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.13.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.5.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.13.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.10.2-beta.1_1779698190617_0.8385869082161987","host":"s3://npm-registry-packages-npm-production"}},"0.11.0-rc.1":{"name":"glassbox","version":"0.11.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.11.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"b34e558062714e1ed7dbcca637a2307464ef74e4","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.11.0-rc.1.tgz","fileCount":9,"integrity":"sha512-AfpBK6s/rt1lmyPIP8udVnMQqNZSStF9IdhlDWYCAMHCOj89wh2NKpP9+yDQ5zf+ohZnIs7rpoOd6WNaaN4b1g==","signatures":[{"sig":"MEQCIB2YbY8JfICsj21h8q4jmn6hj+S12A14WEm3tsP0AylqAiBsIRM5sfUa8U/GHkEDIaHBwp+/HmpFkhElQHoPrQ4fZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.11.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2575792},"type":"module","engines":{"node":">=20"},"gitHead":"2646e338e3631b1637d7fcd8d328feedb5ab976f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.5.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.11.0-rc.1_1779868392665_0.40458009560827746","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"glassbox","version":"0.11.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.11.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js"},"dist":{"shasum":"3ca6a717cfa2a8bb19e28a42ae25c5c7d84b09c1","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.11.0.tgz","fileCount":9,"integrity":"sha512-omZqNUhO3OMV573z51/ultM1FrcfeUkLnfZX7Rieim+M9HXJtSAKe8oiAOX3pu0KEs44TF2v2A8Whf6vph+Gtw==","signatures":[{"sig":"MEYCIQDHMfYVZ3J6MsPvibpTcmYjzEFm6gnL6wXZQme3ekcBbAIhAK/xilocZG1OQr7+oFzQ/8ECWCAQezuJzDVmqLEFpyzE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2575787},"type":"module","engines":{"node":">=20"},"gitHead":"2646e338e3631b1637d7fcd8d328feedb5ab976f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.15.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.5.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.11.0_1779868455706_0.6000864211392682","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-beta.1":{"name":"glassbox","version":"0.12.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"efe01e114f37b95fd7518eab78628cea60a4a810","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.0-beta.1.tgz","fileCount":10,"integrity":"sha512-BDrBXet8bBhWXRIx75NZqa1taJgXqs+GutsIdFMsHUyARn8teQcjr6GTvIl7mMpM6IyAmACDcp0heYWrBqDlQA==","signatures":[{"sig":"MEUCIQCGpcWU8GybnzRnPSoETLfsbBUrzorNxQmwd+dHjjT/2AIgUpXVsze/+b9bAQNuhYDZ2t2ai7dSLFgpwYd4rexeYAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2597413},"type":"module","engines":{"node":">=20"},"gitHead":"0b22c45c6fef4d0e9418a3bd47450d03d2e11400","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.0-beta.1_1780289012504_0.6840723075370427","host":"s3://npm-registry-packages-npm-production"}},"0.11.1-beta.1":{"name":"glassbox","version":"0.11.1-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.11.1-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"ac683b54940b9624ea5653c5e7dbe73d4bd2bfce","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.11.1-beta.1.tgz","fileCount":10,"integrity":"sha512-OPC3ybFJ9VM/KMTUSB6k5uwRHEG8htUS+r6F4FkEbgo9sIQ5sK5510wCZbyMfeFUxvO/aIBJaiTB/z2vHaHySw==","signatures":[{"sig":"MEUCIQCrvb1IcIhMr7Q/NjWVTQ5xIsKmDssXTvVa5M+xW+ixGgIgfuI2O/wk0YSENTeprCDqCiEi8Hkhlb86tz6Fvs/jag8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.11.1-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2597787},"type":"module","engines":{"node":">=20"},"gitHead":"a284a15e2438d91d50831f0831ed6ca323d7550a","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"mkdir -p dist/client && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.11.1-beta.1_1780293184357_0.7892879632883394","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-beta.2":{"name":"glassbox","version":"0.12.0-beta.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.0-beta.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"404f8c6919637779c288ddca61c035082dc4a089","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.0-beta.2.tgz","fileCount":10,"integrity":"sha512-jjm7Xzb3O+Eu+mcn8l2v4xntH2l22eYN7kMTJGJEkCZf5yFX5ne6c5n3ohOknSLvL61NYMfZndFbfu1KKIPgzA==","signatures":[{"sig":"MEUCIAYRGo7zok+hoN74APu3Iwu5QhInLpknBTWZKTPiNhWGAiEAxPYyanO6CQtgjhqNEJG1+CaRvuplm84CtLg8eJJMsnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3164107},"type":"module","engines":{"node":">=20"},"gitHead":"d6481cf935a7c80fd0c36da169d49c375c1be380","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.0-beta.2_1780531570342_0.7131926178903245","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-beta.3":{"name":"glassbox","version":"0.12.0-beta.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.0-beta.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"045ed35ec4ee74de37d8b7d1cb9a5eeb4189f93f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.0-beta.3.tgz","fileCount":10,"integrity":"sha512-kyIEddq7wp7M5sq3r66610EEfOdzJZ9qG5Lfm4EsIyjuQSC8Dcz/i2xha6+QSLZ6FlChVpopNnEE64/RlMrh/A==","signatures":[{"sig":"MEQCIHt5wgSE8TH1PCpOc4mynkc7IBnCKTw9fkGrpaZZ8nBfAiALE9J36sL8HGaTF/wg3WfwNeeUTYnZXDAUYLX6kGYE1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165285},"type":"module","engines":{"node":">=20"},"gitHead":"5b5ea1da902111ac799b65a8b810d4364f448e7d","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.0-beta.3_1780536502518_0.04072368688269923","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-rc.1":{"name":"glassbox","version":"0.12.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"a47cf0089229111567e1ec21d256f0ac62e6af34","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.0-rc.1.tgz","fileCount":10,"integrity":"sha512-FJeiL7bOVEyFRqp6Vhf6GpM5nA5BT6AQnXXFnP5ADh/dF+eq1Hjm2GzOS+EvuC8STQePNYu492231u60uSt0MQ==","signatures":[{"sig":"MEUCIQDeT4hDiB8B2TH3gXJg7d1r6UHPV/C7F6LeXq5xuPfS5wIgTSA77AH00vYrqcpbRkOCmbUb250o3/gjGEmzc/AzICM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165283},"type":"module","engines":{"node":">=20"},"gitHead":"6b5e8e49586df7f8c268ce922a6d7f8fe58ea360","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.0-rc.1_1780538348423_0.4462145837025224","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"glassbox","version":"0.12.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"620d202537e0d74c3c3ad67e2ed93ea3934f481d","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.0.tgz","fileCount":10,"integrity":"sha512-4KayhBcqJaeKgtV1TZ1jFKeEmdC/pWnFX+AaioEuQzsBDJGK2swA0IapIpgVOXLWwLAB+HnJykQu5t8hy0f4qA==","signatures":[{"sig":"MEQCIEnKlfOrurRO44ZBQTqQb2ee+eBqhxD/l90Fi9nzf4fgAiAHYxodfki/J0kYNHaF7vqVFmd9wUCTzY2gS9KMKA3hlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165278},"type":"module","engines":{"node":">=20"},"gitHead":"6b5e8e49586df7f8c268ce922a6d7f8fe58ea360","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.16.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.2","kerfjs":"^0.14.0","@hono/node-server":"^1.19.9","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^9.39.3","vitest":"^4.1.0","esbuild":"^0.27.3","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.0.0","domotion-svg":"0.8.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.10.1","@playwright/test":"^1.59.1","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.1.0","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.1","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.0_1780538400751_0.5352207437759777","host":"s3://npm-registry-packages-npm-production"}},"0.12.1-beta.1":{"name":"glassbox","version":"0.12.1-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.12.1-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"8d26444db509cfcc11c87a16a0c30d2510cdb292","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.12.1-beta.1.tgz","fileCount":10,"integrity":"sha512-Nv3Mipv43MhKnKHcFYvHcPZiS+hSSKSA6GrR7pZuhqaMiDDoifK3f/WPvEpwCdCycoh4bvKpzZSmlCdIHDM93Q==","signatures":[{"sig":"MEUCIQCBblHWI0rSr50zHuKx1y/WmdR/yVEA6ti9VJwBsoJM/QIgPeC4OrFz3f693gEwOz363/lKWe/ygvWzezJMdTvf5I8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.12.1-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165569},"type":"module","engines":{"node":">=20"},"gitHead":"e1d9b3c719684543567c4614b9c4c303b7d1aa9d","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.12.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.12.1-beta.1_1781584550511_0.6962358598244165","host":"s3://npm-registry-packages-npm-production"}},"0.13.2-rc.3":{"name":"glassbox","version":"0.13.2-rc.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.13.2-rc.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"02aa3c7fee1ec52a49688380198d7869bfebe751","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.13.2-rc.3.tgz","fileCount":10,"integrity":"sha512-utjKLy0aOxen0c2NTGqQAQ4COFPGz+2luTl16UHZPNWLex7jwBgoYp3cmVjSLbzzmoUfCW2l54FIGnxLrSUmXQ==","signatures":[{"sig":"MEUCIBZ/unyRs3uJKMo2NEniZwPiDtO4imE4wkU6g0U9SCgIAiEApTUykeGevEh1dUFP1K57YzbdxSDbr0xCj0y6R2+qsWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.13.2-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165567},"type":"module","engines":{"node":">=20"},"gitHead":"576aeef3683508fadab53c038f08f3505d2ac3e2","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.13.2-rc.3_1781677418016_0.6894023678598187","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"glassbox","version":"0.13.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.13.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"fa3092d97a02bfcc17cc3e610fa49166e7c17676","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.13.2.tgz","fileCount":10,"integrity":"sha512-G9v7tfq0ldBVHzSZ5JdrAwiIxuPmEoOGnBgHsAXNNN1Pgzy28zIcL9e5HXRkkm1lPpeXrlw1Qe5SzwPpRcTSQg==","signatures":[{"sig":"MEUCIQDfVwBrBeX5Iont8uqWWCVYwIHUrYOtO2U1v+a7yyHpwQIgW7LWCyvKJp5T6qSeLFGe81X5G4l03Rn3Z7Bqbsl/WRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165562},"type":"module","engines":{"node":">=20"},"gitHead":"576aeef3683508fadab53c038f08f3505d2ac3e2","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.13.2_1781677491420_0.9100573645142349","host":"s3://npm-registry-packages-npm-production"}},"0.13.2-rc.4":{"name":"glassbox","version":"0.13.2-rc.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.13.2-rc.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"a3131a4f2a4eac41e69b4109bc009a23dc81d467","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.13.2-rc.4.tgz","fileCount":10,"integrity":"sha512-BzZch8133twMTb0D+JhND3YODBzFTgWQbI8L4NOQBS4mLajamSNpxTf19dzC8t1Bby95szo0mx18cKLYtddcQw==","signatures":[{"sig":"MEYCIQDyWx4N90AUIuWMlXve5gKv6eaM57qofQ3UPOZucxCnDwIhAMHp2w+GaW0ccr7FrjKDzexlKa/MMNNm/K2TvfJbfHq0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.13.2-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165567},"type":"module","engines":{"node":">=20"},"gitHead":"60eddeb5a72252f55a01ca8e2480427baa887a84","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.13.2-rc.4_1781679706563_0.1271646297259017","host":"s3://npm-registry-packages-npm-production"}},"0.13.3-rc.1":{"name":"glassbox","version":"0.13.3-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.13.3-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"7047645e875777e817e3be08ca3c1b77d018b0d8","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.13.3-rc.1.tgz","fileCount":10,"integrity":"sha512-3OyPCEroiYY7mxBQsmSd+ZytPSBnNgDyLX+Xv9mWLe/0bjI3hedj5wQeebr/436fGhzCCQkRQT0Y4e0S+O30VA==","signatures":[{"sig":"MEQCICfMZrcSunl9F88z5Np0Ma/ifLGtCzMr6HC/HXfqxkT3AiBrd7Se//ugI20O9rXF4tfqJRaWacc1ROypQFeJiot39w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.13.3-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165567},"type":"module","engines":{"node":">=20"},"gitHead":"93b0d2863b8aac345a12d7ec7d7d5bf8c428ae00","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.13.3-rc.1_1781680809359_0.5250324495482908","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"glassbox","version":"0.13.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.13.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"a7876c34a753514afa0054aad51ac054ac73afa4","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.13.3.tgz","fileCount":10,"integrity":"sha512-dUgftgFxnMMoiTHBXw+JD11McZLPNiVHIF6VMsf0hpeGi7SLnXLMYteySO5wzSk8rITPkWjYLVvJuNAr6+k1eQ==","signatures":[{"sig":"MEQCICaK8ZKZ53LZhO+arGkL1J4/dRdGsO91V4bOrm5nC2fTAiBX9wWUtMPiRTYdXWOSeB5aCoCLyhyge/Sfa7o9kq4aEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3165562},"type":"module","engines":{"node":">=20"},"gitHead":"93b0d2863b8aac345a12d7ec7d7d5bf8c428ae00","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.13.3_1781680867437_0.5504572545129767","host":"s3://npm-registry-packages-npm-production"}},"0.14.0-rc.1":{"name":"glassbox","version":"0.14.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.14.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"1eb381926b99c1cdd4e3093e1ec0f55dd760b43d","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.14.0-rc.1.tgz","fileCount":10,"integrity":"sha512-rlY6CLEK5TLOW+7iC4/XUTV6c+x6VfPUQyl3sIGqSq+C+42x+NkJvhjtaYeShnVHsM9woLDm/RPNPCQ72E2X9A==","signatures":[{"sig":"MEQCIFha0gdnj4kHdnFp88LNZOVZvx5Gjw3rd03wE+sFSEFcAiA5sQyjrsrz9aR/ZlUg5dHrt1jwo3vvhb0NvqlQ1/+UQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.14.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3176470},"type":"module","engines":{"node":">=20"},"gitHead":"f6ef9ba6bc60a6d90d1a1cdc455cf00adce9ceca","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.14.0-rc.1_1781703888477_0.20108650118336935","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"glassbox","version":"0.14.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.14.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"4f4858364f84c791a8e92a8bfd35745635a97bef","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.14.0.tgz","fileCount":10,"integrity":"sha512-mU70zwxBobbPJm4ACkKdTsECkYJiR28An0qk2aJTfCyueQtH4MXmhPHVjdfSyozpTd6i8w5MrCaaRSqsv20OHw==","signatures":[{"sig":"MEUCIQC7mQkJbRHTqVbiAzjNbOgU20SodxhEpAuh9Y1FgwckWgIgNlWyAEhzdIFyM3nYPNCuIexf62qhRtMsuplZauqNReg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3176465},"type":"module","engines":{"node":">=20"},"gitHead":"f6ef9ba6bc60a6d90d1a1cdc455cf00adce9ceca","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.14.0_1781703952130_0.45111644620637525","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-beta.3":{"name":"glassbox","version":"0.15.0-beta.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.15.0-beta.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"4e4de6139472f7bdffb881d0517343f19d61cf5a","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.15.0-beta.3.tgz","fileCount":10,"integrity":"sha512-Nrxf7zLbc1MA1Fr0K70AZLwlqLm0Gi+TH9XKIMPr9U1zU7W9VA7L+3slttAQ2D7vfbxR8iMSAdms3HDlzhkH0g==","signatures":[{"sig":"MEYCIQCVlmFnQX1pI+msjf6WOVbHkVSNQOxerzepXm5aSINuowIhAKq22hWoPQgK2evbj7zB9PSfFofy71bmNQz0rn/jy9Bi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.15.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3235514},"type":"module","engines":{"node":">=20"},"gitHead":"d3f2900e628c6cd2a5e13a6bdc1414d55b499724","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^0.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.15.0-beta.3_1781829061957_0.24951444650932175","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-beta.6":{"name":"glassbox","version":"0.15.0-beta.6","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.15.0-beta.6","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"908900643b52905b3a6229a0f1b8944b654852b3","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.15.0-beta.6.tgz","fileCount":10,"integrity":"sha512-GPOR7JO5RJnuv9PCmfCeVlL3Bx2smGcIG4si6wMGGVOOHLMrfFyflNAe8HMHEp3ZzMxd8DbHM6ZyftVkkQDhWg==","signatures":[{"sig":"MEQCIE+Sr4aPxALN/vvajgyXjrcgyDKdAE5z/LM5lCcxX2oUAiAnq5WIuXQDQ5xvvlgcH51+XtvZYINpzZFlW+FBAYwpTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.15.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3241805},"type":"module","engines":{"node":">=20"},"gitHead":"03e5e86f80f563b33d0f7fc6c0b25c5fd41ced4a","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^0.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.15.0-beta.6_1781853145575_0.5054020593777337","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-rc.1":{"name":"glassbox","version":"0.15.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.15.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"13ee05dbcd1dd98695104ef95b8ca4a33a2399c3","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.15.0-rc.1.tgz","fileCount":10,"integrity":"sha512-2ZtE6jFEGnlS1MEAZhzHbVgVecfJGH1M5ruMd4Dqvb6f8sGuD47k7TY0LlwqJnlGKZ4/DbVu7THCrDD66pUmrg==","signatures":[{"sig":"MEUCIGveH5kr1+uDYBf1reS5oRlhTlqyKvSejZPrCXeiQFiXAiEAvfmYQi29i47gbx6VcP3zlymNYuGZ4h/SmHNsgW7YMxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.15.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3245051},"type":"module","engines":{"node":">=20"},"gitHead":"aae31b8769e49d7f615d87f57f675b08755be74f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^0.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.15.0-rc.1_1781915009073_0.6867710608617259","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"glassbox","version":"0.15.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.15.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"7f5de15b443a5c90c446b1803b1aa29653ee1cc0","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.15.0.tgz","fileCount":10,"integrity":"sha512-MgsjAsoJH+dY6yehQBCaPylmhuzvypLyV8gWq8cc+5Kh1aZE0LpRD9AxoafjK4qF5gdS9/1pPCBSoNkf8USJMA==","signatures":[{"sig":"MEUCIQDa01GuwDRwSL3fZpyGFKT+cVEkyEKIJY8/IrH2oWpmJgIgcbr7Uqkrz2NyPG/vcl43GuV4p24BVcVg6Vb906S5zbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3245046},"type":"module","engines":{"node":">=20"},"gitHead":"aae31b8769e49d7f615d87f57f675b08755be74f","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^0.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.15.0_1781915068202_0.6861378372500853","host":"s3://npm-registry-packages-npm-production"}},"0.16.0-beta.1":{"name":"glassbox","version":"0.16.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.16.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"e69e96f48638b1ebdb9909c55f5f84f07a990051","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.16.0-beta.1.tgz","fileCount":10,"integrity":"sha512-eTAacbvd0k6ADflJwxl3jv4ayYdlrtRrtiLnvvifjTBURiGWL080SJ9SFNwz3mbB2hTuY2BPso9jbFVwtB+XDQ==","signatures":[{"sig":"MEQCIE8NtytUX1zFSmJ1r65w/lvOpxrf41QOdc7o457kAK0iAiAXHQUvJbzhuIh4RXXXTq8A92LGYSIcKHwLEQOVrWf/Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.16.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3243407},"type":"module","engines":{"node":">=20"},"gitHead":"c0be5d0f02fd25ee7e54ce9640acd7cfd116d51c","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.16.0-beta.1_1781926532021_0.36990558006018714","host":"s3://npm-registry-packages-npm-production"}},"0.16.0-rc.1":{"name":"glassbox","version":"0.16.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.16.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"85598fc9c6060ac233162509b674e7a14947eb36","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.16.0-rc.1.tgz","fileCount":10,"integrity":"sha512-vIhOprEeMN49CYos51COO2LYYOxjubbYhHc/cECV+jH4+MzWx+3WRKhCww5gjsVn9fnQw9sSy+Je/bXdmpbEOw==","signatures":[{"sig":"MEQCIGnTF02ddhwjS4arXzdh4tH0qaLcQ8v0T8kPCTE2wcouAiBsqX4rWllZdqEEk3q8GI+B/ietJBb7gB6cwYtVOAGdlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.16.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3243405},"type":"module","engines":{"node":">=20"},"gitHead":"fe3038327e79675fa3c67d4a6d95f8f34b1b1d2b","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.16.0-rc.1_1781930013556_0.8207557872393965","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"glassbox","version":"0.16.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.16.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"d3f66cb4a71c92fb39e786b31ebb8e611ff08c35","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.16.0.tgz","fileCount":10,"integrity":"sha512-ZzDLP54wIHfaHnKsQ/BmWACEi+E+jLOa0WvoAz2KOMLLxbM7l2tWEAVX7eepdV1juKJUX/Ehpts4seYouYOwqA==","signatures":[{"sig":"MEUCICyUq9lkNfcSFM47NLb6dr5JvOGv4ndAt001L1ODtv+UAiEA7l45QO06nYsq4HYVlPk8Vvf29NwGcc6ZA6N/zg2J68c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3243400},"type":"module","engines":{"node":">=20"},"gitHead":"fe3038327e79675fa3c67d4a6d95f8f34b1b1d2b","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@resvg/resvg-wasm":"^2.6.2","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.16.0_1781930071009_0.5805578732961028","host":"s3://npm-registry-packages-npm-production"}},"0.17.0-beta.3":{"name":"glassbox","version":"0.17.0-beta.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.17.0-beta.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"bb02da2743fd3bf966dbebf823f6456a76f61aef","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.17.0-beta.3.tgz","fileCount":9,"integrity":"sha512-OKFrp62TLLg14aniA4Mwvy2fMZufX0DfscBdC8wLo3S6KEfvcgXa6qp06iG6TjXh8AlvctMg1B4lnv8wIpSYGg==","signatures":[{"sig":"MEQCIHVc70p9jzM0vSio4kGuA+3v0DIRcRz6bZHyP4vrh90sAiB5S8Bu7dTivE6VeIM/2EYUtLBILMd4toBeK84v+rxUcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.17.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3255728},"type":"module","engines":{"node":">=20"},"gitHead":"54ef5ebffdb4931a462022dd866b916dc469773d","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.17.0-beta.3_1782110641364_0.7543292710859644","host":"s3://npm-registry-packages-npm-production"}},"0.17.0-rc.1":{"name":"glassbox","version":"0.17.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.17.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"d9de82039f07a70a36a3da55a9bad27972f4b9a1","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.17.0-rc.1.tgz","fileCount":9,"integrity":"sha512-PCj0bIQgAPh19Gaqvqbv5IE4y9zkDayFxhIMbRxLZWS0S4MdrMadS85FulsmkkdxlUUYafv6k1HPYvTB9x3+7Q==","signatures":[{"sig":"MEYCIQCu/WYz0Gmp7wANX+dDlqEx0BfAleV52Tf5lE50mXuuUgIhAMp+5OW0Aof/K1TYwGZROaIhEX0epV6CDQ3zTVY/wgRs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.17.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3255726},"type":"module","engines":{"node":">=20"},"gitHead":"10433a9490c9f6124c51a4a65bdc176107da0629","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.17.0-rc.1_1782117027357_0.7481806188861326","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"glassbox","version":"0.17.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.17.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"39ea15b7177b6d8afe1093a703ea80eac5f10073","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.17.0.tgz","fileCount":9,"integrity":"sha512-UBZjeUwenxO5YERWwQRvS61XxKU0hCTjxB4CNCHU1iZv/UCLYO4IE5Hs3ayqDw5ASJww2AOUz4to5mYdS7NVtA==","signatures":[{"sig":"MEYCIQD8b0q57zkPDZlN6QtaAeUVY91xm2S6dDfgWmE3zcdz3gIhAP0GNaB5bhw8t946VMAtho9iBLofPw7RK6vHC3+/fUj7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3255721},"type":"module","engines":{"node":">=20"},"gitHead":"10433a9490c9f6124c51a4a65bdc176107da0629","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","kerfjs":"^0.14.0","apple-fm":"^1.0.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","domotion-svg":"0.13.3","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.17.0_1782117081770_0.10987170557123971","host":"s3://npm-registry-packages-npm-production"}},"0.18.0-beta.1":{"name":"glassbox","version":"0.18.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.18.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"28c9c9c6d0556d1bc3e4f6d9a6b27eab4aaf5e20","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.18.0-beta.1.tgz","fileCount":9,"integrity":"sha512-Kd4eO5MrLT9LlSRN1eVRafLQTz5WFu8KPFUZwfJVZbt8eYdRrOV2N8t3+E3Q1KzyoBfVtXre7Hhzdc6SsPFhqA==","signatures":[{"sig":"MEUCIQDlDzl7bWMBtrUB292X3GF2EpGfhZBJS4GSwvp0fOM/PgIgI5i/bderY8mXyvGSdUbOMrFofulsziVwXU82hO7ReUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.18.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3821288},"type":"module","engines":{"node":">=20"},"gitHead":"f98c841b5befbfdd5399176f43cc581c9a837737","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"npm run gt:capture && tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.14.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.15.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.18.0-beta.1_1782435462258_0.290032869691653","host":"s3://npm-registry-packages-npm-production"}},"0.18.0-rc.1":{"name":"glassbox","version":"0.18.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.18.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"2f961dee72ec1206decf49712985baa5bbef698e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.18.0-rc.1.tgz","fileCount":9,"integrity":"sha512-M2tRKcu2wFWFObA1Kr730HUvlkRH5rlcYkoCDErprYRt1RIvqTiLTmweR3aaf6/pkKNacldVdo25BnTzLVRZKA==","signatures":[{"sig":"MEQCIGeq79Gv25kV98kbcwlC6aSCUpKZXoC5DpYYggb6gvLoAiBeQ71m13M+KXQUAurG80OW0eBiIhT9HETAtPErr+oM2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.18.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3821286},"type":"module","engines":{"node":">=20"},"gitHead":"b5a4d351365308723c7e5ead3a3144168437f844","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"npm run gt:capture && tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.14.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.15.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.18.0-rc.1_1782444318570_0.9038739670228391","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"glassbox","version":"0.18.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.18.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"f25422143c133d6380bdb72c2067e591e5b0abd6","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.18.0.tgz","fileCount":9,"integrity":"sha512-5vE1irQp+n82DLbDK9NwgU+aXOfjscDWgEM0uo4fJKAZzYr5IkkS0Meiod6/HT41uFqDOGmAaPpfuW1wqZYnHg==","signatures":[{"sig":"MEYCIQD3yvAwLPYhplPDNiTrxgrI5PlQNunIpg7nVpb0N251HAIhAOlR8JnxYXLa3SJuPrEogHnyH/0WrufvWM1InaCZwUtd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3821281},"type":"module","engines":{"node":">=20"},"gitHead":"b5a4d351365308723c7e5ead3a3144168437f844","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"npm run gt:capture && tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.17.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.14.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.0.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.15.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.14.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.18.0_1782444391228_0.07680969033952278","host":"s3://npm-registry-packages-npm-production"}},"0.19.0-beta.2":{"name":"glassbox","version":"0.19.0-beta.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.19.0-beta.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"2c6520f3435a460562f8dd8b50cf07a69450e8c5","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.19.0-beta.2.tgz","fileCount":9,"integrity":"sha512-J5LwsFhqnEdEl4ODvoaGl7KMq1U4qNeiUWG51mtcnxwW8s63twXHD9HpD6WGkpSCAB5uhxyWHbRHDGSkujVDqw==","signatures":[{"sig":"MEQCICmjNkfyY+ufq5fCYHCbwszOO6sEvvW5Ot84Z0IJuX9zAiBKEOjkXbVj32GDealyTCyD/sfTBDk8g1wBAwZWrpI6ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.19.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3822074},"type":"module","engines":{"node":">=20"},"gitHead":"4482e5dc896b29f0c62b78570456eb4dfc8a13f2","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.16.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.18.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.16.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.19.0-beta.2_1782889544416_0.14968612933499426","host":"s3://npm-registry-packages-npm-production"}},"0.19.0-rc.1":{"name":"glassbox","version":"0.19.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.19.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"083c73d6ffcf55108842b9238c4b6a498765d5c0","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.19.0-rc.1.tgz","fileCount":9,"integrity":"sha512-NKV3u2rOBMeQmXF/oeC5Z9RdUGpf4+7G9YywQ/mX3Qc7PtQsib/vJDkeab4vGITIAINsCqXkGaMSAZ7euMfNaQ==","signatures":[{"sig":"MEUCIHvRs3z1wKGfLY0GrYQHIirVRCYIJxoowuxV4w4r8AI1AiEA82dHbRW3YPx9QOdjXHa2Adpf0d3C5ydkrESENSzeR/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.19.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3822072},"type":"module","engines":{"node":">=20"},"gitHead":"5c38866042ae81465590c3ab448f6dde911222ae","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.16.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.20.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.16.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.19.0-rc.1_1782971460328_0.5763893510828895","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"glassbox","version":"0.19.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.19.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"fd12b5f4e36260b59d7702e6d120db261c03f61e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.19.0.tgz","fileCount":9,"integrity":"sha512-HzNLd0XZqGLDN0cxHfR2qtSiItNqyeySYHJRZnqwfNzTaFHO9oFxz70RTUH8qRocdnwf77Pi1ZOSb3IT7h3ecQ==","signatures":[{"sig":"MEUCIQCF0AAZtQEBLnYNuLcjya/pM5QS7tH3cljMOjuLTzIYlQIgUlbrBJ2frmhWjPHG3NIZHy225Rh4RuxyaL+qWxJt6fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3822067},"type":"module","engines":{"node":">=20"},"gitHead":"5c38866042ae81465590c3ab448f6dde911222ae","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.16.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.20.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.16.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.19.0_1782971527698_0.6340531397911864","host":"s3://npm-registry-packages-npm-production"}},"0.20.0-beta.1":{"name":"glassbox","version":"0.20.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.20.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"473ae7b8ae22684ccb06e7677a9ccba33492dc70","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.20.0-beta.1.tgz","fileCount":10,"integrity":"sha512-g5e/du5hholPBl9zJcTp+68b1WHEluJA6Odror8QGLfrtiT0A9sYClKR9yW2V8kLEk9DQ2NVQqF515j7hsoP1g==","signatures":[{"sig":"MEUCIQC4M+LJ8KmbLkfj/dQk3PtvjNywu3VET4ypQ/Zs4OdFggIgCoqaePto8faHo1RY2NTqX+MBv6gsJEeryAJ+c5B5Qn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.20.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3831448},"type":"module","engines":{"node":">=20"},"gitHead":"eb410fd404e9d23f5fe1cd3a8563e3523ed7878d","scripts":{"dev":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.16.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@types/pngjs":"^6.0.5","domotion-svg":"0.20.0","highlight.js":"^11.11.1","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.16.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.20.0-beta.1_1782986265832_0.1907663093456109","host":"s3://npm-registry-packages-npm-production"}},"0.20.0-beta.4":{"name":"glassbox","version":"0.20.0-beta.4","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@0.20.0-beta.4","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"ff4bad15242869829f3330056819593f76b94944","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-0.20.0-beta.4.tgz","fileCount":18,"integrity":"sha512-xGkS0geX+zaQSGiY5eeHIZadzxO7v6pPYFoO0t5Q9jovcaSFH847dD8xBymg/pcc938LFikNm2GT/EU/Ht4oow==","signatures":[{"sig":"MEQCIBNbpbzl8zIMzj5E42WbF6UWd1ZCS/UqzR12raEnDqv2AiB09PADz9AwxNtou5BD/VmIDcg8KamgXO8Q7+pjmyxXPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@0.20.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7246103},"type":"module","engines":{"node":">=20"},"gitHead":"4c7ddddd311833a5492998c213c8cc7a7edcdf3e","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^0.16.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^0.16.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_0.20.0-beta.4_1784695836159_0.773530287699173","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"glassbox","version":"1.0.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.0.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"b2c8d16ddcb4af7c6a86e9bef66203d5b0d7fa6a","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.0.0-rc.1.tgz","fileCount":18,"integrity":"sha512-WkTU9cfTcY41RzXG0H19lVu/7v9Shb3gOsi+Co76B7zUkS5VGcphB0Vwr6fduEDjWMnC8HupuSHL+F6GcYfmbw==","signatures":[{"sig":"MEYCIQCfwbp87Y+GGe9Oj5M1XdQ1d8xQBbFNVBe0rF1mI6tIkAIhANYYjHTnr3MNlEhcj6NiqFL4/Wi5X9yIcbEa6Rq0vUv4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7269977},"type":"module","engines":{"node":">=20"},"gitHead":"385f4dc58039460f7c29efb192abe6fdb8f29452","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^2.0.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^2.0.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.0.0-rc.1_1784773773590_0.819813645065173","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"glassbox","version":"1.0.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.0.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"72ffde82608d922e5ff0043e9015e9f6189a99af","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.0.0.tgz","fileCount":18,"integrity":"sha512-oU7kcWClowdQfkqr0nD2wSX1R75+ZHI11jVI+u/GJXUUPoGr3ZR1UUb6cVvhrn1vvyHAl2xer7PAXmIKqDbuBA==","signatures":[{"sig":"MEQCIEhIGjuQphiqPUR+rB/dYjgbARG4mWPtBYKWilPNT7o9AiAaLRZiLIrgS2zXFXEkFxmuvCdYipukIRKfiUxVkK0R2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7269972},"type":"module","engines":{"node":">=20"},"gitHead":"385f4dc58039460f7c29efb192abe6fdb8f29452","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^2.0.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^2.0.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.0.0_1784773840649_0.813175634948468","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-beta.1":{"name":"glassbox","version":"1.1.0-beta.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.0-beta.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"7ae03c9a8c0ed5ec13beb351d9772ac948658593","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.0-beta.1.tgz","fileCount":18,"integrity":"sha512-utFdkNorJ/1xD8f+AkgTaysLn26Q5juW8DZdx0yXLZflxKky64VrOVtoUNMIwIAbolHGBhFWF2bg2O7DD2WC1Q==","signatures":[{"sig":"MEYCIQCfp7YTsmIeirlR6JLriik1Fp6b/HHCeRfkKtYV4vvdYAIhANLVSJad96tcFa7acKc/pRbXGJ0rWUB2DDEBPExQEqx6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7288981},"type":"module","engines":{"node":">=20"},"gitHead":"f2059b6702e72a74531d2ce74afa9516beb79fcc","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.18.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^2.0.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.4.5","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.1.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^2.0.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.0-beta.1_1784860233444_0.05183131435423638","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-beta.2":{"name":"glassbox","version":"1.1.0-beta.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.0-beta.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"d5a94cb4ddfd01db6477fafb93ff1ee2aac07c34","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.0-beta.2.tgz","fileCount":18,"integrity":"sha512-G7JcLu7PkqFvMj4Tz4imE7070llbEA/nVHg6ZQ0Jc5wp5WaB3SLSXsnO+Q31/wZnerUs2SpOSFKgdCa/6UPacQ==","signatures":[{"sig":"MEQCID4cvlha1bi2ZHlnYmbXx88uxal34M/hvW9mkBdtbvIAAiBQqvcqCuo5rWwWZNh4NUfFsVfc8iSiKzsHhzbvaSujpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7370471},"type":"module","engines":{"node":">=20"},"gitHead":"c6f7be11de2e0e4086399c3b865afdff7b415184","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.1.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.1.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.0-beta.2_1785742859030_0.5588254458743713","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-rc.1":{"name":"glassbox","version":"1.1.0-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.0-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"81e371798d182a5706afd679cbdc21b485ced9a7","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.0-rc.1.tgz","fileCount":18,"integrity":"sha512-xWppOQrXC/AMPejKNNgwpowMYVjtIDO0MNiLcrqutLTE7k9xvCS1L0eUIMvKEgyfo6HuwXhnl8mUrBu4zpFzzQ==","signatures":[{"sig":"MEUCIE2fAxzbiMHlGcW9b9sjJ0h6+dnWePqhBRoKMK5/NWI4AiEA3YgUzO+0S79cKRXpE8mxdTYTw49JhHgPipIv+0VYL/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7370469},"type":"module","engines":{"node":">=20"},"gitHead":"2881855f74657d61aa3733e263d1db0dd2e838f7","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.1.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.1.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.0-rc.1_1785746226859_0.6331381658611657","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"glassbox","version":"1.1.0","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.0","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"be808a2804571ec256968126ccd1b94f8732b647","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.0.tgz","fileCount":18,"integrity":"sha512-F26v+oF6XP1uWRkUfz5HiWNE/0XBRgsRjAIT0NoycLnNRSmU+qPbAMdAhI+D7tL1BagiabuQTmRvb4TPufs9Lw==","signatures":[{"sig":"MEUCICIin0YHVYEqSp1uaJATlRJ2vQL4egeRafIGKHUPgNMkAiEApK5/r/2iT1yty+7jiAOLxeGfPSI3CkCJEGtjNqGAReE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7370464},"type":"module","engines":{"node":">=20"},"gitHead":"2881855f74657d61aa3733e263d1db0dd2e838f7","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.1.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.21.1","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.1.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.0_1785746309934_0.5004129066800558","host":"s3://npm-registry-packages-npm-production"}},"1.1.2-rc.1":{"name":"glassbox","version":"1.1.2-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.2-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"1976786cc99af7f74761006b1715253f298218e3","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.2-rc.1.tgz","fileCount":18,"integrity":"sha512-ed6exiDByyyx0vaWm+PJfsuEqwcVR+QWEKUAYx0jZSUN9pbeasTnNXSB4cUFnybbYMGvL3xWKPxIGKMUoLWj7g==","signatures":[{"sig":"MEYCIQCL0JuuAMDA8Es0NCQ72KboKmgwdg2116uH6MwqMfQ0FQIhAIbU/u47/VstmAMCqOjp//Wy272m9pgBKoPVgRaHEJ/H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.2-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7370524},"type":"module","engines":{"node":">=20"},"gitHead":"2c6d4a072c7e12bc9ae595c700535c9d026f77e9","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.5","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.1.1","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.22.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.1.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.2-rc.1_1786669943504_0.5176690898728256","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"glassbox","version":"1.1.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.1.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"d611feef16dab3a0b7ff7412afb93ba62900a5f6","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.1.2.tgz","fileCount":18,"integrity":"sha512-OFgDFhYGMBkFUgo04mtL9l3cLloAbiD9Ska3CGe60JW1Oyrw5z5JdMV03I5RXTMsSqq8W6Ru0JkODRyeBaaAww==","signatures":[{"sig":"MEQCIFwr83D5By05twI/daACvo52/2V0BDBcV8x7PDinWES5AiBSrL6m+dqFp/9//1fbq7j8ocor/cZr7BzxU/jd0soG9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7370519},"type":"module","engines":{"node":">=20"},"gitHead":"2c6d4a072c7e12bc9ae595c700535c9d026f77e9","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.5","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.1.1","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.22.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.1.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.1.2_1786670011491_0.5680743643481692","host":"s3://npm-registry-packages-npm-production"}},"1.2.0-beta.2":{"name":"glassbox","version":"1.2.0-beta.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.0-beta.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"0337710e9506c5fea6f1f27d0c8e2055c35aca8c","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.0-beta.2.tgz","fileCount":18,"integrity":"sha512-LI3zT63UovTkics5JCKJfaEWqBuAseNCJbLgQ9zfZHaB6Vhy7LBqrNt+heZ3kYnaM0QZlTxBfthzgs3viK5H/Q==","signatures":[{"sig":"MEUCIEM749bf6+Yg1jQKd6daK4ky0EacFf8q0tpIRDIgQrFUAiEAlZizyjYSn8OF4HvvjCK9sHu57G9cZcBWA8DvDvQvxHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431278},"type":"module","engines":{"node":">=20"},"gitHead":"6d7292f584a3a88fb536057d4c6714b8dfa5d68a","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.5","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.24.0","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.0-beta.2_1787723414612_0.27435606433052917","host":"s3://npm-registry-packages-npm-production"}},"1.2.0-beta.3":{"name":"glassbox","version":"1.2.0-beta.3","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.0-beta.3","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"0be2380b35182c7dc984142743444339399a20c6","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.0-beta.3.tgz","fileCount":18,"integrity":"sha512-oixUlyoCjMCamgGg1cIfXYX5yGe391ZDIYL/bXFih//UORmalwosWfzFNwCRaIZoFMEds9e4ygSUaXq/C+wshQ==","signatures":[{"sig":"MEUCIQC5TjInwE4K1KOkJNijJRC5IMNoAodWIVjjf/Xt+zLkHwIgKjNqx5dlsMbHh3TIyOl7kc0W7ZzEsPBFZp2Oo/Ga2QA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431339},"type":"module","engines":{"node":">=20"},"gitHead":"0f2fd17891511441538204dcf832d51b0f4e2e6c","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.5","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.0","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.24.0","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.0-beta.3_1787726486516_0.38568966875512545","host":"s3://npm-registry-packages-npm-production"}},"1.2.1-rc.1":{"name":"glassbox","version":"1.2.1-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.1-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"bf8fefb586d4f124db6eefd7f9e9bfd1d120ac9f","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.1-rc.1.tgz","fileCount":18,"integrity":"sha512-Ob9uv99YAFo0xotNgtDslbsUmzPDAKOQJBfpnQA/twQ772g+0niw2nRj5bX98VVw6bygQ7BrXXmAPIN5ptksJg==","signatures":[{"sig":"MEUCIQDEiy8zedEyIFr/VlmwMmPgQA5wOGg+IrJ114v9/JkzWgIgTXb0LO45cM4c1Qd9vPRJs1pZv9Sfv/O1OI5EICQyj4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICotYSxAPlG2WNqOiyLxNZ2FpUmPC7qxBjHxaspkx3yqAiBk3U79y1iO6HhTdUH+ikaXjsGNNwRtGsxP59KDaS7NJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.1-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431337},"type":"module","engines":{"node":">=20"},"gitHead":"6af8eecb1f275923171442ce04cd1ce345098c66","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.7","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.28.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.1-rc.1_1788834574446_0.08843374938788773","host":"s3://npm-registry-packages-npm-production"}},"1.2.2-rc.1":{"name":"glassbox","version":"1.2.2-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.2-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"b6691934c313e6a5e55ff4de331d05ffe6478f89","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.2-rc.1.tgz","fileCount":18,"integrity":"sha512-9e1QWXD8yF+9/rvJq7rnov6zviO+3sxxKgFXRecuqZMVpcH22oLcZfMiDJHKK1miWNOfwXjuEFK7GP353PzHQA==","signatures":[{"sig":"MEUCIQCN3mFrmh3s13tBFx6QK55DUzpk+ioe9pRcXzmQULSJfQIgQaaMkM+O+x3TKqgvNQ+09520tU7g7iL+UguphJz5Ipg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCXm4MxMwtqxbTG6f1o4klzv8gwtnMsjnzqL6NhIEby7AIhAPDkZumqe5IsD573zexa16BNyyY27lxQGuPLuESBk2VX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.2-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431337},"type":"module","engines":{"node":">=20"},"gitHead":"5b7a00677a35242be15020201c3e23a2c56c0140","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.7","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.28.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.2-rc.1_1788840030588_0.3289498425370019","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"glassbox","version":"1.2.2","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.2","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"76a41fcccb5d1a867223da920559efd8269d089e","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.2.tgz","fileCount":18,"integrity":"sha512-grZLA7J4TYkrN6eyc7LVMQYspP3ut9rbuzQ53yXVKAtVY94SZ5kk9WfpnLv0EsdryjN+SrRgUm+Pfke0qqlDaA==","signatures":[{"sig":"MEYCIQCjeb0LfxTQ6M/JbVjNza9gZqE/FCyYp/wFVhAqZ0xBNAIhAK+8WhDDOKuVL8nC+YIZhiC93CDtY7yTB9kbCoQ2hMsX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCzM22lKaoE6IWB1HIsM7zSl1hlnjoA10JdIa9sj+imoQIgUzI/iMMnGp9wcGqrm7sPvRvoIpU2o21WpGo1CPhY/W8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431332},"type":"module","engines":{"node":">=20"},"gitHead":"5b7a00677a35242be15020201c3e23a2c56c0140","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.7","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.28.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.2_1788840207837_0.5621657877414712","host":"s3://npm-registry-packages-npm-production"}},"1.2.3-rc.1":{"name":"glassbox","version":"1.2.3-rc.1","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"author":{"name":"westphal"},"license":"MIT","_id":"glassbox@1.2.3-rc.1","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"homepage":"https://github.com/brianwestphal/glassbox#readme","bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"dist":{"shasum":"56f3238bfd99ee83d2c00e9698ae78a93e4f6dd2","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.3-rc.1.tgz","fileCount":18,"integrity":"sha512-MDPN0BuwS5WXcgnd2QLS6BMreCYgZ/zfqAq1durd+pQ0PsV6r7e2AvK74v8yU6knXfq/Nh3icB8dgHyBXv1O3g==","signatures":[{"sig":"MEYCIQD+zMI2XFaGGppNfgfXk4RbV+KzqqGP/IWR5PNTyXUBwAIhAOe5B9dj3Gk8VLbx5P6egsEz/dz+8iV/MQfXaNIyf00C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDkdPf3O4+FJC+Cg2R/qPbOPhih7p8toKtqo0GNzB4z0AIhAOKl3tUL+Jucox2S9TCwnBk6dj2Mf/003Egix9QvAzJi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.3-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431376},"type":"module","engines":{"node":">=20"},"gitHead":"e6a418288144cf0b73511c2279c4d03036f3442c","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.7","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.28.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/glassbox_1.2.3-rc.1_1789090567376_0.7107607257079096","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"_id":"glassbox@1.2.3","bin":{"glassbox":"dist/cli.js","glassbox-difftool":"dist/cli-difftool.js"},"bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"dist":{"shasum":"e5c4254c605fe544569762ceae185aede72a83a4","tarball":"https://registry.npmjs.org/glassbox/-/glassbox-1.2.3.tgz","fileCount":18,"integrity":"sha512-ZIX+oc37yriHbd6RBhnCwMZq++wSf+Tv+oA4mHBC1oI7wr7JgYwjCWzw50dJWa1hrEnE2OsjvX/ggd8UW532kw==","signatures":[{"sig":"MEQCIFZnLxH78elD+hZDwaaBY6z1fh5UsDZ+smXYBywsfrQqAiA1eQ9TJMrde8wfNquhwlccIDJI3XjDokPWugReBN3fTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCo6ZjBxYAEghAa5OsNqx3nvuyEjnXfkDAAgVbBLjKmNgIgPXi9kJqXzRiJsUzKcV6Wh3sitsWM+fjVhZTWD8Glpws="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/glassbox@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7431371},"name":"glassbox","type":"module","author":{"name":"westphal"},"engines":{"node":">=20"},"gitHead":"e6a418288144cf0b73511c2279c4d03036f3442c","license":"MIT","scripts":{"dev":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && npm run build:plugins","clean":"rm -rf dist node_modules/.cache","tauri":"tauri","release":"bash scripts/release.sh","test:all":"bash scripts/test-all.sh","test:e2e":"npx playwright test","gt:review":"tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json","tauri:dev":"bash scripts/tauri-dev.sh","test:live":"vitest run --config vitest.config.live.ts","typecheck":"tsc --noEmit","commit:msg":"gitgist --staged --commit-message","dev:server":"npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port","gt:capture":"npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts","gt:promote":"tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json","test:smoke":"bash tests/smoke/smoke-test.sh","test:watch":"vitest","tauri:build":"bash scripts/build-sidecar.sh && tauri build","tauri:clean":"rm -rf src-tauri/target","build:client":"node -e \"require('fs').mkdirSync('dist/client',{recursive:true})\" && npx esbuild src/client/app.tsx --bundle --format=iife --outfile=dist/client/app.global.js --target=es2020 --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx esbuild src/client/history.tsx --bundle --format=iife --outfile=dist/client/history.global.js --target=es2020 --minify --sourcemap --jsx=automatic --jsx-import-source=kerfjs && npx sass src/client/styles.scss dist/client/styles.css --style compressed --no-source-map && node -e \"require('fs').copyFileSync('assets/favicon.svg','dist/client/favicon.svg')\"","demo:capture":"npm run build:client && tsx scripts/demo/capture-demo.ts","release:beta":"bash scripts/release.sh --beta","build:plugins":"node scripts/build-plugins.mjs","check:features":"tsx scripts/check-features.ts","prepublishOnly":"npm run build","test:e2e:docker":"bash scripts/test-e2e-docker.sh","gt:capture-review":"npm run gt:capture && npm run gt:review","release:beta:auto":"bash scripts/release-beta-auto.sh","tauri:build:local":"read -rsp \"Password: \" MYPASS && echo && TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$MYPASS TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/glassbox.key) npm run tauri:build","typecheck:scripts":"tsc --noEmit -p tsconfig.scripts.json","demo:capture-stills":"npm run build:client && tsx scripts/demo/capture-stills.ts","test:smoke:difftool":"bash tests/smoke/difftool-accumulate.sh","test:smoke:ground-truth":"bash tests/smoke/ground-truth.sh"},"version":"1.2.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52a440b6-8e4b-493d-9905-2a3190ce6468"}},"homepage":"https://github.com/brianwestphal/glassbox#readme","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"overrides":{"esbuild":"^0.28.1","fast-uri":"^3.1.7","ip-address":"^10.4.0"},"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"_npmVersion":"11.19.1","description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","directories":{},"maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","pngjs":"^7.0.0","kerfjs":"^4.4.0","jpeg-js":"^0.4.4","apple-fm":"^1.0.0","pixelmatch":"^7.2.0","pglite-migrate":"^2.1.0","@hono/node-server":"^2.0.5","@electric-sql/pglite":"^0.5.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.4","sass":"^1.97.3","tsup":"^8.5.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","gitgist":"^1.2.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.9.3","@viz-js/viz":"^3.28.0","@types/pngjs":"^6.0.5","domotion-svg":"0.28.2","highlight.js":"^11.11.1","@jsquash/avif":"^2.1.1","@jsquash/webp":"^1.5.0","@tauri-apps/cli":"^2.11.2","@playwright/test":"^1.61.0","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.9","eslint-plugin-tsdoc":"^0.5.2","eslint-plugin-kerfjs":"^4.2.0","eslint-plugin-import-x":"^4.16.2","eslint-plugin-simple-import-sort":"^12.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/glassbox_1.2.3_1789090774304_0.41419586883496606"}}},"time":{"created":"2026-03-05T06:52:56.944Z","modified":"2026-09-11T01:39:34.776Z","0.1.0":"2026-03-05T06:52:57.076Z","0.1.1":"2026-03-05T06:57:56.003Z","0.1.2":"2026-03-06T01:38:27.144Z","0.1.3":"2026-03-06T05:23:25.262Z","0.1.4":"2026-03-06T22:43:45.021Z","0.2.0":"2026-03-10T06:39:49.513Z","0.2.1":"2026-03-13T08:13:45.304Z","0.2.2":"2026-03-13T08:17:52.030Z","0.2.3":"2026-03-13T08:34:06.249Z","0.2.4":"2026-03-13T15:09:08.825Z","0.2.5":"2026-03-14T00:01:40.250Z","0.2.6":"2026-03-15T23:17:17.049Z","0.2.7":"2026-03-16T03:15:03.817Z","0.2.8":"2026-03-16T03:40:01.544Z","0.3.0":"2026-03-16T07:44:41.335Z","0.3.1":"2026-03-16T09:22:38.564Z","0.3.2":"2026-03-16T09:50:24.104Z","0.3.3":"2026-03-16T22:15:50.479Z","0.3.4":"2026-03-16T22:24:54.704Z","0.3.5":"2026-03-16T22:38:57.683Z","0.3.6":"2026-03-17T07:45:52.589Z","0.4.0":"2026-03-19T03:32:02.328Z","0.4.1":"2026-03-19T04:05:17.307Z","0.4.2":"2026-03-20T01:33:20.011Z","0.4.3":"2026-03-21T03:43:03.286Z","0.4.4":"2026-03-21T23:17:23.696Z","0.5.0":"2026-03-23T04:00:26.269Z","0.5.1":"2026-03-26T23:51:21.002Z","0.6.0":"2026-03-27T03:40:04.547Z","0.7.0":"2026-04-02T08:07:09.916Z","0.7.1":"2026-04-02T11:34:50.975Z","0.7.2":"2026-04-03T00:13:39.093Z","0.7.3":"2026-04-03T01:23:12.775Z","0.7.4-rc.1":"2026-04-03T02:33:24.802Z","0.7.4":"2026-04-03T02:34:12.903Z","0.7.6-rc.1":"2026-04-03T03:37:00.075Z","0.7.6":"2026-04-03T03:37:41.040Z","0.7.7-rc.1":"2026-04-03T03:54:35.659Z","0.7.7":"2026-04-03T03:57:38.346Z","0.7.8-rc.1":"2026-04-07T09:03:09.772Z","0.7.8":"2026-04-07T09:03:53.478Z","0.7.9-rc.1":"2026-04-07T23:55:13.122Z","0.7.9":"2026-04-07T23:55:53.258Z","0.8.0-rc.1":"2026-04-08T00:37:52.183Z","0.8.0":"2026-04-08T00:38:44.329Z","0.8.1-rc.1":"2026-04-08T04:45:59.717Z","0.8.1":"2026-04-08T04:46:47.825Z","0.8.2-rc.1":"2026-05-02T23:58:48.451Z","0.8.2":"2026-05-03T02:47:42.875Z","0.9.0-beta.1":"2026-05-13T05:27:22.416Z","0.8.3-beta.1":"2026-05-13T06:55:29.930Z","0.9.0-rc.1":"2026-05-13T23:16:57.690Z","0.9.0":"2026-05-13T23:17:45.057Z","0.9.1-rc.1":"2026-05-18T14:17:43.247Z","0.9.1":"2026-05-18T14:18:33.855Z","0.9.2-rc.1":"2026-05-19T05:13:39.841Z","0.9.2":"2026-05-19T05:14:25.650Z","0.9.99-beta.1":"2026-05-20T03:16:55.368Z","0.9.3-rc.1":"2026-05-20T06:04:43.584Z","0.9.3":"2026-05-20T06:05:34.379Z","0.9.4-rc.1":"2026-05-20T09:20:49.143Z","0.9.4":"2026-05-20T09:21:45.961Z","0.9.5-rc.1":"2026-05-21T07:15:52.949Z","0.9.5":"2026-05-21T07:16:37.031Z","0.9.6-rc.1":"2026-05-21T08:21:30.767Z","0.9.6":"2026-05-21T08:22:25.145Z","0.9.7-rc.1":"2026-05-21T22:56:29.483Z","0.9.7":"2026-05-21T22:57:22.754Z","0.9.9-rc.1":"2026-05-22T03:53:04.435Z","0.9.9":"2026-05-22T03:53:59.163Z","0.9.10-rc.1":"2026-05-22T06:45:53.424Z","0.9.10":"2026-05-22T06:46:48.232Z","0.9.11-rc.1":"2026-05-22T07:55:44.484Z","0.9.11":"2026-05-22T07:56:34.476Z","0.10.1-rc.1":"2026-05-25T01:04:34.731Z","0.10.1":"2026-05-25T01:05:28.138Z","0.10.2-beta.1":"2026-05-25T08:36:30.820Z","0.11.0-rc.1":"2026-05-27T07:53:12.840Z","0.11.0":"2026-05-27T07:54:15.864Z","0.12.0-beta.1":"2026-06-01T04:43:32.733Z","0.11.1-beta.1":"2026-06-01T05:53:04.495Z","0.12.0-beta.2":"2026-06-04T00:06:10.548Z","0.12.0-beta.3":"2026-06-04T01:28:22.716Z","0.12.0-rc.1":"2026-06-04T01:59:08.580Z","0.12.0":"2026-06-04T02:00:00.921Z","0.12.1-beta.1":"2026-06-16T04:35:50.680Z","0.13.2-rc.3":"2026-06-17T06:23:38.218Z","0.13.2":"2026-06-17T06:24:51.622Z","0.13.2-rc.4":"2026-06-17T07:01:46.785Z","0.13.3-rc.1":"2026-06-17T07:20:09.509Z","0.13.3":"2026-06-17T07:21:07.643Z","0.14.0-rc.1":"2026-06-17T13:44:48.725Z","0.14.0":"2026-06-17T13:45:52.317Z","0.15.0-beta.3":"2026-06-19T00:31:02.157Z","0.15.0-beta.6":"2026-06-19T07:12:25.776Z","0.15.0-rc.1":"2026-06-20T00:23:29.241Z","0.15.0":"2026-06-20T00:24:28.407Z","0.16.0-beta.1":"2026-06-20T03:35:32.201Z","0.16.0-rc.1":"2026-06-20T04:33:33.758Z","0.16.0":"2026-06-20T04:34:31.198Z","0.17.0-beta.3":"2026-06-22T06:44:01.514Z","0.17.0-rc.1":"2026-06-22T08:30:27.522Z","0.17.0":"2026-06-22T08:31:22.017Z","0.18.0-beta.1":"2026-06-26T00:57:42.480Z","0.18.0-rc.1":"2026-06-26T03:25:18.731Z","0.18.0":"2026-06-26T03:26:31.427Z","0.19.0-beta.2":"2026-07-01T07:05:44.619Z","0.19.0-rc.1":"2026-07-02T05:51:00.496Z","0.19.0":"2026-07-02T05:52:07.884Z","0.20.0-beta.1":"2026-07-02T09:57:45.987Z","0.20.0-beta.4":"2026-07-22T04:50:36.342Z","1.0.0-rc.1":"2026-07-23T02:29:33.818Z","1.0.0":"2026-07-23T02:30:40.825Z","1.1.0-beta.1":"2026-07-24T02:30:33.628Z","1.1.0-beta.2":"2026-08-03T07:40:59.203Z","1.1.0-rc.1":"2026-08-03T08:37:07.030Z","1.1.0":"2026-08-03T08:38:30.168Z","1.1.2-rc.1":"2026-08-14T01:12:23.702Z","1.1.2":"2026-08-14T01:13:31.656Z","1.2.0-beta.2":"2026-08-26T05:50:14.830Z","1.2.0-beta.3":"2026-08-26T06:41:26.701Z","1.2.1-rc.1":"2026-09-08T02:29:34.598Z","1.2.2-rc.1":"2026-09-08T04:00:30.715Z","1.2.2":"2026-09-08T04:03:27.932Z","1.2.3-rc.1":"2026-09-11T01:36:07.507Z","1.2.3":"2026-09-11T01:39:34.425Z"},"bugs":{"url":"https://github.com/brianwestphal/glassbox/issues"},"author":{"name":"westphal"},"license":"MIT","homepage":"https://github.com/brianwestphal/glassbox#readme","keywords":["code-review","ai","diff","annotations","cli","developer-tools","llm","claude","cursor","copilot"],"repository":{"url":"git+https://github.com/brianwestphal/glassbox.git","type":"git"},"description":"A local code review tool for AI-generated code. Review diffs, annotate lines, and export structured feedback that AI tools can act on.","maintainers":[{"name":"bwestphal","email":"brian.westphal@bleugris.com"},{"name":"dgobaud","email":"dgobaud@gmail.com"}],"readme":"<div align=\"center\">\n\n# Glassbox\n\n### Stop hoping your AI got it right. Review the diff, leave precise feedback, and let AI fix it — in one loop.\n\n<p>\n  <a href=\"https://www.npmjs.com/package/glassbox\"><img src=\"https://img.shields.io/npm/v/glassbox.svg\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/brianwestphal/glassbox/releases\"><img src=\"https://img.shields.io/github/v/release/brianwestphal/glassbox?label=desktop%20app\" alt=\"Latest desktop app release\" /></a>\n  <img src=\"https://img.shields.io/badge/node-%E2%89%A520-brightgreen.svg\" alt=\"Node.js 20 or newer\" />\n  <img src=\"https://img.shields.io/npm/l/glassbox.svg\" alt=\"MIT license\" />\n</p>\n\n<br>\n\n**Glassbox** is a local, browser-based code review tool built for the AI coding workflow. You review the changes your AI made, annotate what's wrong (or right), and export structured feedback that AI tools can read and act on instantly.\n\nNo accounts. No pull requests. No waiting. Just you, the diff, and a tight feedback loop.\n\n<br>\n\n**Desktop app** (recommended) — download from [GitHub Releases](https://github.com/brianwestphal/glassbox/releases):\n\n| Platform | Download |\n|----------|----------|\n| macOS (Apple Silicon) | `.dmg` (arm64) |\n| macOS (Intel) | `.dmg` (x64) |\n| Linux | `.AppImage` / `.deb` |\n| Windows | `.msi` / `.exe` |\n\nAfter installing, open the app and click **Install CLI** to add the `glassbox` command to your PATH.\n\n**Or install via npm:**\n\n```bash\nnpm install -g glassbox\n```\n\nThen, from any git repository:\n\n```bash\nglassbox\n```\n\nThat's it. Data stays local. Works in any git repo.\n\n<br>\n\n<img src=\"assets/demo.svg\" alt=\"Glassbox: triage by AI risk, annotate a diff, and let Claude Code apply the fix — the full review loop\" width=\"720\">\n\n</div>\n\n---\n\n## Why Glassbox?\n\nAI coding tools generate a lot of code fast. But \"fast\" doesn't mean \"correct.\" The bottleneck isn't generation — it's **review**.\n\nMost developers review AI output by skimming files in their editor, mentally diffing what changed, and then either accepting it or rewriting it by hand. That's slow, error-prone, and throws away the most valuable signal: your expert judgment about _what specifically_ was wrong and why.\n\nGlassbox gives you a proper diff viewer with annotation categories designed for AI feedback:\n\n<img src=\"assets/demo-annotations.png\" alt=\"Inline annotations with category badges\" width=\"720\">\n\n| Category              | What it tells the AI                            |\n| --------------------- | ----------------------------------------------- |\n| **Bug**               | \"This is broken. Fix it.\"                       |\n| **Fix needed**        | \"This needs a specific change.\"                 |\n| **Style**             | \"I prefer it done this way.\"                    |\n| **Pattern to follow** | \"This is good. Keep doing this.\"                |\n| **Pattern to avoid**  | \"This is an anti-pattern. Stop.\"                |\n| **Note**              | Context for the AI to consider.                 |\n| **Remember**          | A rule to persist to the AI's long-term config. |\n\nAs you annotate, `.glassbox/latest-review.md` is updated automatically. You can tell your AI tool at any time:\n\n```\nRead .glassbox/latest-review.md and apply the feedback.\n```\n\nThe AI gets a structured file with every annotation, organized by file and line number, with clear instructions on how to interpret each category. It fixes the bugs, applies your style preferences, avoids the anti-patterns, and updates its own config with your \"remember\" items. You don't need to formally \"complete\" a review to share feedback — just annotate and switch to your AI tool.\n\nThen you run `glassbox` again. Your previous annotations carry forward — matched to the updated diff. Stale comments that no longer apply are flagged so you can keep or discard them. The loop continues until you're satisfied.\n\n---\n\n## How it works\n\n<img src=\"assets/sequence-diagram.svg\" alt=\"Sequence diagram: You and AI in a review loop\" width=\"520\">\n\n---\n\n## Features\n\n### Diffs & viewing\n\n- **Split and unified diffs** with syntax-colored add/remove/context lines\n- **Image and SVG diffs** — binary images and SVGs render in a **side-by-side** layout (with a left/right or over/under toggle), a **difference overlay**, a **swipeable slice tool**, single-side **A / B focus** modes, and pixel-precision synced zoom/pan. SVGs offer a *Code* / *Rendered* toggle so you can review either the source or the live-rendered output.\n- **Compare any two paths** — `glassbox --diff <A> <B>` reviews two arbitrary files or two arbitrary folders by path — no git repository required.\n- **Ground-truth image comparison** — `glassbox --ground-truth <manifest>` compares an **actual** render against an **expected** one (a design spec, a reference, or a previous baseline — even outside the repo), scores the perceptual difference, sorts most-changed-first, and lets you **promote** a new actual to the baseline. Great for catching visual regressions.\n- **Content plugins** — opt-in renderers turn diagram source (Graphviz, PlantUML, Mermaid) into pictures: diagram files diff like images, and diagram artifacts on AI review notes render inline\n- **Go-to-definition and a nav stack** — click any symbol to jump to its definition, with back/forward through your trail\n- **Collapsible folder tree** in the sidebar with file filter\n- **Resizable sidebar** and word wrap toggle\n- **Keyboard navigation** — `j`/`k` to move between files, `Cmd+Enter` to save\n- **Themes** — sixteen built-in themes (Dark, Light, High Contrast Dark/Light, Dracula, Tokyo Night, One Dark Pro, Solarized Dark/Light, Monokai, Nord, Gruvbox Dark/Light, GitHub Dark, Rosé Pine, Ayu Dark) — the ones that meet WCAG AA contrast are marked — plus a custom theme editor with live preview\n\n### Annotations & feedback\n\n- **Line-level annotations** — click any line to add feedback with a category\n- **Comment on images** — leave a general comment on any image, or **draw a rectangle region** to anchor feedback to a specific spot (per A/B side), just like a line annotation.\n- **Attach files to any comment** — drag, paste, or browse to attach screenshots, logs, or any file to a line comment, image comment, or note reply. Image attachments show a thumbnail and open in a lightbox; the export lists each file's path so your AI tool can read it.\n- **Drag and drop** annotations to different lines\n- **Double-click** to edit, click the category badge to reclassify\n- **Stale annotation detection** — comments that can't be matched to the updated diff are flagged with a visual indicator\n- **Structured export** — markdown output with file paths, line numbers, categories, and instructions for AI consumption\n\n### AI assistance (optional)\n\n- **AI review notes** — render the generating AI's line-anchored rationale and proof, committed alongside the code in `.pr-notes/`, right in the diff — and reply to any note inline\n- **AI-powered analysis** — risk scoring, narrative reading order, and guided review, powered by cloud, local (Ollama / LM Studio), or on-device (Apple) models\n\n### Workflow & data\n\n- **Right-click any file** in the sidebar — reveal in your file manager, copy its path, open it in your editor, or mark it reviewed\n- **Session persistence** — reviews survive restarts, pick up where you left off\n- **Smart review reuse** — re-running `glassbox` on the same commit updates diffs in place and migrates annotations to their new line positions\n- **Review history** — browse, reopen, or delete past reviews\n- **Automatic .gitignore** — keeps `.glassbox/` out of version control for you at launch, while leaving the per-project `.glassbox/settings.json` tracked\n- **Auto port selection** — if the default port is busy, it finds an open one\n- **Fully local** — no network calls (unless you opt into AI features), no accounts, no telemetry. Your code stays on your machine.\n\n---\n\n## Review more than code\n\nDiffs aren't only text. Glassbox reviews **images** as a first-class diff: a side-by-side layout, a pixel **difference overlay**, and a swipeable slice tool — with synced zoom/pan. Leave a comment on the whole image or draw a region to anchor it to a spot.\n\n<img src=\"assets/demo-image-comparison.png\" alt=\"Image diff with a pixel difference overlay\" width=\"720\">\n\nAnd when \"correct\" means \"matches the design,\" **ground-truth comparison** (`glassbox --ground-truth <manifest>`) puts each **actual** render next to its **expected** one — a design spec, a reference render, or a previous baseline, even outside the repo. Glassbox scores the perceptual difference, hides identical pairs, sorts the rest most-changed-first, and lets you **promote** a new actual to the baseline once a change is intentional. Multi-step flows render as ordered, named sets.\n\n<img src=\"assets/demo-ground-truth.png\" alt=\"Ground-truth comparison: expected vs actual with a perceptual difference score\" width=\"720\">\n\n### Diagrams too, via content plugins\n\nReviewing a diagram's source text tells you what changed; seeing the diagram tells you what it _means_. **Content plugins** render specialized formats server-side — install one and a `.dot`, `.puml`, or `.mmd` file gets a **Code | Rendered** toggle: _Code_ is the ordinary text diff, _Rendered_ treats the diagram **like an image**, with the full image-review toolkit — side-by-side, difference overlay, slice, synced zoom.\n\n<img src=\"assets/demo-plugin-rendered.png\" alt=\"A Graphviz .dot file diffed as an image: old and new pipeline diagrams side by side\" width=\"720\">\n\nThe same plugins render diagram-source **proof artifacts** attached to [AI review notes](#ai-review-notes) — so an AI's sequence-diagram evidence shows up as an actual diagram, inline with the diff:\n\n<img src=\"assets/demo-plugin-mermaid-note.png\" alt=\"A Mermaid sequence-diagram proof artifact rendered inline in an AI review note\" width=\"720\">\n\nGraphviz ships built-in (WASM, no dependencies). PlantUML and Mermaid are one click away in **Settings → Plugins** (they use a local Java / headless-Chromium render, so they're opt-in), alongside an image-codecs plugin that adds WebP/AVIF support to ground-truth scoring. Everything stays local, and everything fails soft — without a plugin you simply see the source text. Want to render your own format? See the [plugin development guide](docs/plugin-development-guide.md).\n\n---\n\n## AI-Powered Review Intelligence\n\n> Entirely optional. Glassbox is fully functional without it.\n\nWhen reviewing a large diff, knowing _where to look first_ is half the battle. Glassbox can optionally connect to an AI provider to analyze your changes and surface what matters:\n\n### Risk Analysis\n\nEvery file is scored across six dimensions — security, correctness, error handling, maintainability, architecture, and performance — on a 0.0 to 1.0 scale. Files are ranked by their highest-risk dimension, so a single critical issue won't hide behind low averages.\n\nWhen you open a file, inline risk notes highlight the specific lines and concerns the AI flagged, giving you a heads-up before you even start reading.\n\n<img src=\"assets/demo-risk-mode.png\" alt=\"Risk mode with scores and inline risk notes\" width=\"720\">\n\n### Narrative Reading Order\n\nFor large, multi-file changes, the AI determines the optimal reading order: types and interfaces first, then utilities, then business logic, then integration code. Each file gets walkthrough notes that explain what changed and how it connects to the rest of the diff — like having a colleague walk you through their PR.\n\n<img src=\"assets/demo-narrative-mode.png\" alt=\"Narrative mode with reading order and walkthrough notes\" width=\"720\">\n\n### Guided Review\n\nIf you're learning a new language, onboarding to an unfamiliar codebase, or new to programming, Guided Review generates educational annotations inline with the diff. Enable it in Settings and select the topics that apply to you — \"Programming,\" \"This codebase,\" or specific languages. Glassbox runs a separate analysis pass and inserts green \"Learn\" notes that explain concepts, idioms, and design decisions relevant to your experience level.\n\nGuided Review works in all three sidebar modes (folder, risk, and narrative) and runs independently of risk or narrative analysis. When enabled, risk and narrative analysis also adjust their output to be more detailed and educational.\n\n<img src=\"assets/demo-guided-review.png\" alt=\"Guided review notes inline with the diff\" width=\"720\">\n\n### How to use it\n\nClick the shield or book icon in the sidebar to switch from the default folder view to risk or narrative mode. If you haven't configured an API key yet, a settings dialog will prompt you. Analysis runs once and results are cached for the session. To enable Guided Review, open the Settings dialog (gear icon) and check \"Enable guided review.\"\n\n<img src=\"assets/demo-settings.png\" alt=\"Settings dialog with guided review configuration\" width=\"480\">\n\n### Supported providers\n\n| Provider      | Models                                       | Runs                          |\n| ------------- | -------------------------------------------- | ----------------------------- |\n| **Anthropic** | Claude Sonnet 4.6, Opus 4.8, Haiku 4.5       | Cloud — `ANTHROPIC_API_KEY`   |\n| **OpenAI**    | GPT-4o, GPT-4o Mini                          | Cloud — `OPENAI_API_KEY`      |\n| **Google**    | Gemini 2.5 Flash, Gemini 2.5 Pro             | Cloud — `GEMINI_API_KEY`      |\n| **Local**     | Any Ollama / LM Studio model                 | On your machine — no key      |\n| **Apple**     | On-device Apple Intelligence                 | On-device (macOS) — no key    |\n\nAvailable models are discovered live from each provider, so the list stays current without an app update. Switch providers and models in the settings dialog (gear icon in the sidebar).\n\n**Local and on-device models are free, private, and offline.** Point Glassbox at any OpenAI-compatible server like [Ollama](https://ollama.com/) or [LM Studio](https://lmstudio.ai/), or — on a Mac with Apple Intelligence — run analysis on-device with Apple Foundation Models. Either way, no API key is required and your code never leaves your machine.\n\n### API key storage\n\nYour API key never leaves your machine. Glassbox resolves keys in this order:\n\n1. **Environment variables** — if `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `GEMINI_API_KEY` is set, it's used automatically. Nothing is stored.\n2. **OS keychain** — on macOS (Keychain), Linux (GNOME Keyring / KDE Wallet via `secret-tool`), or Windows (Credential Manager). Keys are encrypted by your operating system and tied to your user account.\n3. **Config file** — stored in `~/.glassbox/config.json` with `0600` permissions, base64-encoded. Use this as a fallback if your OS keychain isn't available.\n\nKeys entered through the settings dialog are stored in the OS keychain by default when available, and never sent anywhere except directly to the AI provider's API.\n\n---\n\n## AI Review Notes\n\nWhen an AI writes or modifies code, it knows _why_ each non-obvious change is the way it is and _what proves it correct_ — and then throws that context away. The reasoning lives in the model's head at edit time, and the reviewer is left to reconstruct it from prose in a ticket or commit message.\n\n**AI Review Notes** give the generating AI a structured, line-anchored channel to record that reasoning. The AI emits notes with the `glassbox note` command; they're stored as committed SARIF under `.pr-notes/` — tool-neutral and travelling with the repo — and Glassbox renders them review-comment-style at the exact line they apply to:\n\n- **Rationale** — why this change, and what alternatives were rejected\n- **Proof** — the test that passed, a measurement, or a before/after screenshot (notes can carry text, image, and diagram-source artifacts — diagrams render inline via [content plugins](#diagrams-too-via-content-plugins))\n- **Risk / assumption** — what a reviewer should double-check\n\n<img src=\"assets/demo-review-notes.png\" alt=\"AI-authored review notes rendered inline with the diff, with a threaded reply\" width=\"720\">\n\nYou can **reply** to any note with your own annotation — threaded beneath it like a pull-request comment. When a note's code later changes, Glassbox re-anchors it to its new line and flags it **outdated**, so stale reasoning never misleads you. And because the notes are plain SARIF in `.pr-notes/`, any tool or teammate can read them — Glassbox is just the most pleasant way to consume them.\n\nSee [docs/20-ai-review-notes.md](docs/20-ai-review-notes.md) for the format and the producer-side `glassbox note` CLI.\n\n---\n\n## For AI tools: integrating with Glassbox\n\nIf you're an AI coding tool or agent working in a project that uses Glassbox, **[docs/ai-integration.md](docs/ai-integration.md)** is the integration hub — how to launch a review, record line-anchored rationale/proof (`glassbox note`), export ground-truth image proof, consume the exported feedback (`.glassbox/latest-review.md`), and respond to the MCP/Claude channel. The repo's [AGENTS.md](AGENTS.md) is a one-screen router to it (and, separately, to the contributor docs for agents hacking on Glassbox itself).\n\n---\n\n## Install\n\n### Desktop app (recommended)\n\nDownload the latest release for your platform from [GitHub Releases](https://github.com/brianwestphal/glassbox/releases).\n\nOn first launch, the app will prompt you to install the `glassbox` CLI command. This creates a symlink so you can launch the desktop app from any project directory. You can also install it manually:\n\n**macOS:**\n```bash\nsudo sh -c 'mkdir -p /usr/local/bin && ln -sf \"/Applications/Glassbox.app/Contents/Resources/resources/glassbox\" /usr/local/bin/glassbox'\n```\n\n**Linux:**\n```bash\nln -sf /path/to/glassbox/resources/glassbox-linux ~/.local/bin/glassbox\n```\n\nThe desktop app includes automatic updates — new versions are downloaded and applied in the background.\n\n### npm\n\nAlternatively, install via npm (runs in your browser instead of a native window):\n\n```bash\nnpm install -g glassbox\n```\n\nRequires **Node.js 20+** and **git**.\n\n---\n\n## Usage\n\nRun from inside any git repository:\n\n```bash\n# Review uncommitted changes (default, same as no arguments)\nglassbox\n\n# Review only staged changes\nglassbox --staged\n\n# Review a specific commit\nglassbox --commit abc123\n\n# Review current branch vs main\nglassbox --branch main\n\n# Review a range of commits\nglassbox --range main..feature-branch\n\n# Review specific files\nglassbox --files \"src/**/*.ts,lib/*.js\"\n\n# Review entire codebase\nglassbox --all\n\n# Compare two arbitrary files or folders by path (no git repo required)\nglassbox --diff ./dist-old ./dist-new\n\n# Compare actual images against expected/ground-truth images (no git repo required)\nglassbox --ground-truth ./screenshots/manifest.json\n\n# Resume a previous review\nglassbox --resume\n```\n\n### All options\n\n| Flag                   | Description                                        |\n| ---------------------- | -------------------------------------------------- |\n| _(no flag)_            | Same as `--uncommitted`                            |\n| `--uncommitted`        | Staged + unstaged + untracked changes              |\n| `--staged`             | Only staged changes                                |\n| `--unstaged`           | Only unstaged changes                              |\n| `--commit <sha>`       | Changes from a specific commit                     |\n| `--range <from>..<to>` | Changes between two refs                           |\n| `--branch <name>`      | Current branch vs the named branch                 |\n| `--files <patterns>`   | Specific files (comma-separated globs)             |\n| `--all`                | Entire codebase (all tracked files)                |\n| `--diff <a> <b>`       | Compare two arbitrary files or folders by path — no git repo required |\n| `--ground-truth <m>`   | Compare actual vs expected images from a manifest — no git repo required |\n| `--port <number>`      | Port to run on (default: 4183)                     |\n| `--data-dir <path>`    | Store review data somewhere other than `.glassbox/` |\n| `--resume`             | Resume the latest in-progress review for this mode |\n| `--no-open`            | Don't open the browser automatically               |\n| `--on-complete <cmd>`  | Run a local command when a review is completed     |\n| `--check-for-updates`  | Check for a newer version on npm                   |\n| `--debug`              | Show build timestamp and debug info                |\n| `--help`               | Show help                                          |\n\n### Settings file\n\nCreate `.glassbox/settings.json` in your project directory to configure per-project options:\n\n```json\n{\n  \"appName\": \"Glassbox — My Project\"\n}\n```\n\n| Key | Description |\n|-----|-------------|\n| `appName` | Custom window title and Dock name (defaults to \"Glassbox — _folder name_\") |\n\n### Use as `git difftool`\n\nGlassbox installs a companion binary, `glassbox-difftool`, that lets you register it as your `git difftool` so `git difftool --dir-diff <refA> <refB>` opens the diff in Glassbox automatically.\n\n> Both binaries (`glassbox` + `glassbox-difftool`) are installed onto PATH together — `npm install -g glassbox` ships both via the `bin` map; the desktop app's **Install CLI** affordance symlinks both. If `glassbox` is on PATH but `glassbox-difftool` isn't (e.g. a pre-0.12 desktop install), re-run \"Install CLI\" from **Settings → General** to add the missing symlink.\n\nThe easiest way to register it is to let the CLI do it for you:\n\n```bash\nglassbox --register-difftool          # writes the three keys at --global scope\nglassbox --register-difftool --local  # only inside the current repo\nglassbox --unregister-difftool        # remove (only touches keys we set)\n```\n\nIf you already have a different `diff.tool` configured, `--register-difftool` refuses to clobber it; pass `--force` to overwrite. The same controls live under **Settings → General** in the app (Register / Re-register / Unregister buttons).\n\nIf you'd rather wire it up by hand, the equivalent config is:\n\n```bash\ngit config --global diff.tool glassbox\ngit config --global difftool.glassbox.cmd 'glassbox-difftool \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'\ngit config --global difftool.prompt false\n```\n\nThen either:\n\n```bash\ngit difftool --dir-diff HEAD~1 HEAD   # whole change set in one review (recommended)\ngit difftool HEAD~1 HEAD              # step through changed files one at a time\n```\n\n**Both modes open the whole change set as a single review.** With `--dir-diff`, git hands Glassbox both snapshot directories at once. **Per-file mode** (without `--dir-diff`) gets you the same single-session result: git invokes `glassbox-difftool` once per changed file, and the wrapper forwards each file to one long-lived Glassbox server, so every file accumulates into **one** review rather than one tab per file. git steps through the files with **no Ctrl-C between them**, and the sidebar grows live as each arrives. Each file is labeled with its repo-relative path.\n\nWhen you're finished, click **Done** in the review (a difftool session shows this instead of the normal completion flow) — the `git difftool` command returns to your prompt cleanly, no Ctrl-C needed. Closing the browser tab ends the session too.\n\n**Desktop vs browser:** the accumulating model is the same either way — only the window differs. In a browser (npm) install the review opens in a tab; if the desktop app is installed, it opens in one Glassbox window (matching what `glassbox --commit` does from the same folder) on macOS, Linux, and Windows, and per-file mode accumulates into that single window just like the browser. Closing the window ends the session.\n\n**Under the hood:** `git difftool --dir-diff` materializes its two snapshot directories asymmetrically — the right side is symlinks pointing into your working tree, which trips up plain `git diff --no-index`. `glassbox-difftool` dereferences those symlinks into a temp tree before handing the dirs to `glassbox --diff`, then cleans up when the session ends. In per-file mode the wrapper reads each file's content before it returns (git deletes the temp files the instant the tool exits) and POSTs it to the accumulating server; the last file holds the connection open so `git difftool` stays attached until you click Done. Without the wrapper you'd see every modified file show up as a \"deleted + added\" pair instead of a modified entry, and per-file mode would hang waiting for a manual Ctrl-C between files.\n\n**Alternative: skip git difftool entirely.** Glassbox's native ref-aware modes already cover the workflows `git difftool` is for and produce cleaner diffs (real `git diff`, not `--no-index`):\n\n```bash\nglassbox --commit <sha>          # review one commit\nglassbox --range <from>..<to>    # review a range\nglassbox --branch main           # current branch vs main\nglassbox                         # uncommitted changes\n```\n\nMost users will find the native modes preferable. The `git difftool` integration exists for muscle memory.\n\n---\n\n## AI integration\n\nThe exported review file is plain markdown. Any AI tool that can read files can use it.\n\n### Claude Code\n\n```\nRead .glassbox/latest-review.md and apply the review feedback.\n```\n\nGlassbox automatically generates a `/glassbox` skill for Claude Code, so you can just type `/glassbox` in Claude to have it read and apply your latest review.\n\n### Claude Channel Integration (Experimental)\n\nGlassbox can send review feedback directly to a running Claude Code session via MCP channels — no copy-pasting needed. When you complete a review, a \"Send to Claude\" button appears that pushes your feedback to Claude instantly.\n\nEnable it in Settings → Experimental → Claude Channel, then launch Claude with channel support:\n\n```bash\nclaude --dangerously-load-development-channels server:glassbox-channel\n```\n\nRequires Claude Code v2.1.80+ with channel support. See [docs/17-claude-channel.md](docs/17-claude-channel.md) for details.\n\n### Cursor / Copilot / other\n\nPoint the tool at the file. The export includes an \"Instructions for AI Tools\" section that explains how to interpret each annotation category.\n\n### What the AI does with it\n\n- Fixes lines marked **bug** or **fix needed**\n- Applies **style** preferences to the indicated lines and similar patterns\n- Continues using **pattern-to-follow** patterns\n- Refactors **pattern-to-avoid** anti-patterns\n- Persists **remember** items to its configuration (CLAUDE.md, .cursorrules, etc.)\n- Reads **notes** as context\n\n---\n\n## Architecture\n\n| Layer    | Technology                                           |\n| -------- | ---------------------------------------------------- |\n| Desktop  | Tauri v2 (native window, auto-updates)               |\n| CLI      | TypeScript, Node.js                                  |\n| Server   | Hono                                                 |\n| Database | PGLite (embedded PostgreSQL)                         |\n| UI       | Custom server-side JSX (no React), vanilla client JS |\n| Build    | tsup (single-file bundle)                            |\n| Storage  | `.glassbox/data/` (local to each project)            |\n\nData stays local. The only network calls are an optional once-per-day npm update check and AI analysis requests if you opt in.\n\n## Platform support\n\nGlassbox is developed and **actively tested on macOS** (Apple Silicon and Intel). Linux and Windows builds are produced by the same codebase and are intended to work, but they are **not regularly exercised** by the maintainers, so rough edges are likely.\n\nIf you use Glassbox on Linux or Windows, contributions are very welcome:\n\n- **Try it and report back** — even a \"works for me on Ubuntu 24.04\" / \"crashes on Windows 11 with X\" comment is useful.\n- **File issues** for anything that breaks or feels off — [open an issue](https://github.com/brianwestphal/glassbox/issues).\n- **Send pull requests** for platform-specific fixes, packaging improvements, or test coverage.\n\nThe goal is genuine cross-platform support; we just don't have the cycles to validate every release on every OS without help.\n\n## Development\n\n```bash\ngit clone <repo-url>\ncd glassbox\nnpm install\n\nnpm run dev              # Build client assets, then run via tsx\nnpm run build            # Build to dist/cli.js\nnpm run tauri:dev        # Run desktop app in dev mode\nnpm run tauri:build      # Build desktop app for distribution\nnpm run clean            # Remove dist and caches\nnpm link                 # Symlink for global 'glassbox' command\n```\n\n## See Also\n\n- **[Hot Sheet](https://github.com/brianwestphal/hotsheet)** — Lightweight local project management for AI-assisted development. Pairs well with Glassbox for tracking review feedback as actionable tickets.\n- **[Changelog](CHANGELOG.md)** — Full release history\n\n## Sponsor\n\nGlassbox is free and open-source. If it saves you time on your AI workflow, consider sponsoring continued development:\n\n[![Sponsor on GitHub](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/brianwestphal)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}