-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage.json
More file actions
117 lines (117 loc) · 4.65 KB
/
Copy pathpackage.json
File metadata and controls
117 lines (117 loc) · 4.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{
"name": "glassbox",
"version": "1.1.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.",
"type": "module",
"license": "MIT",
"author": "westphal",
"repository": {
"type": "git",
"url": "https://github.com/brianwestphal/glassbox"
},
"keywords": [
"code-review",
"ai",
"diff",
"annotations",
"cli",
"developer-tools",
"llm",
"claude",
"cursor",
"copilot"
],
"engines": {
"node": ">=20"
},
"bin": {
"glassbox": "./dist/cli.js",
"glassbox-difftool": "./dist/cli-difftool.js"
},
"scripts": {
"dev": "npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts",
"build": "tsup && npm run build:plugins",
"build:plugins": "node scripts/build-plugins.mjs",
"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')\"",
"dev:server": "npm run build:client && npm run build:plugins && tsx --tsconfig tsconfig.json src/cli.ts --no-open --strict-port",
"tauri": "tauri",
"tauri:clean": "rm -rf src-tauri/target",
"tauri:dev": "bash scripts/tauri-dev.sh",
"tauri:build": "bash scripts/build-sidecar.sh && tauri 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",
"test": "vitest run --coverage",
"test:watch": "vitest",
"test:live": "vitest run --config vitest.config.live.ts",
"test:all": "bash scripts/test-all.sh",
"test:e2e": "npx playwright test",
"test:e2e:docker": "bash scripts/test-e2e-docker.sh",
"test:smoke": "bash tests/smoke/smoke-test.sh",
"test:smoke:difftool": "bash tests/smoke/difftool-accumulate.sh",
"test:smoke:ground-truth": "bash tests/smoke/ground-truth.sh",
"demo:capture": "npm run build:client && tsx scripts/demo/capture-demo.ts",
"demo:capture-stills": "npm run build:client && tsx scripts/demo/capture-stills.ts",
"gt:capture": "npm run build:client && tsx scripts/ground-truth/capture-screenshots.ts",
"gt:review": "tsx src/cli.ts --ground-truth ground-truth-screenshots/manifest.json",
"gt:capture-review": "npm run gt:capture && npm run gt:review",
"gt:promote": "tsx src/cli.ts ground-truth promote ground-truth-screenshots/manifest.json",
"lint": "eslint src/",
"typecheck": "tsc --noEmit",
"typecheck:scripts": "tsc --noEmit -p tsconfig.scripts.json",
"check:features": "tsx scripts/check-features.ts",
"clean": "rm -rf dist node_modules/.cache",
"release": "bash scripts/release.sh",
"release:beta": "bash scripts/release.sh --beta",
"release:beta:auto": "bash scripts/release-beta-auto.sh",
"commit:msg": "gitgist --staged --commit-message",
"prepublishOnly": "npm run build"
},
"files": [
"dist",
"!dist/*.map"
],
"dependencies": {
"@electric-sql/pglite": "^0.5.4",
"@hono/node-server": "^2.0.5",
"@modelcontextprotocol/sdk": "^1.29.0",
"apple-fm": "^1.0.0",
"hono": "^4.12.25",
"jpeg-js": "^0.4.4",
"kerfjs": "^4.4.0",
"pglite-migrate": "^2.1.0",
"pixelmatch": "^7.2.0",
"pngjs": "^7.0.0",
"zod": "^4.4.3"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@jsquash/avif": "^2.1.1",
"@jsquash/webp": "^1.5.0",
"@playwright/test": "^1.61.0",
"@tauri-apps/cli": "^2.11.2",
"@types/node": "^25.9.3",
"@types/pngjs": "^6.0.5",
"@vitest/coverage-v8": "^4.1.9",
"@viz-js/viz": "^3.28.0",
"c8": "^11.0.0",
"domotion-svg": "0.22.2",
"esbuild": "^0.28.1",
"eslint": "^10.5.0",
"eslint-plugin-import-x": "^4.16.2",
"eslint-plugin-kerfjs": "^4.2.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-tsdoc": "^0.5.2",
"gitgist": "^1.2.0",
"highlight.js": "^11.11.1",
"sass": "^1.97.3",
"tsup": "^8.5.1",
"tsx": "^4.22.4",
"typescript": "^5.9.3",
"typescript-eslint": "^8.61.1",
"vitest": "^4.1.9"
},
"overrides": {
"esbuild": "^0.28.1",
"fast-uri": "^3.1.5",
"ip-address": "^10.4.0"
}
}