Files
openchamber/package.json
T
Bohdan Triapitsyn ca31157584 perf(tooling): add an animation cost profiler and document the harness
Adds `bun run profile:animation`: it serves an isolated fixture and measures
each animation variant directly, so comparing techniques takes seconds instead
of an application rebuild plus a streamed response.

The result is unambiguous and does not vary with element count, measured from 1
to 32: transform, opacity and filter cost zero extra style recalculations, while
the individual rotate property, background-position, border-color and box-shadow
each recalculate style 60 times a second, and geometry properties add layout on
top. Notably `rotate: 360deg` is not a cheap synonym for
`transform: rotate(360deg)`, and will-change, wrapper elements, containment and
stepped timing do not make a non-composited property cheap.

`scripts/perf/DOCUMENTATION.md` documents all four capture commands, how to
stand up a production build to measure against, how to read the artifacts, the
validity guarantees the scripts enforce, and the methodology rules, so this can
be handed to an agent as the entry point for measuring performance. It is linked
from the root guide's documentation anchors.

The theme skill gains an animation contract carrying the measured table, and the
performance skill points at the tooling documentation.
2026-08-03 18:38:58 +03:00

186 lines
7.5 KiB
JSON

{
"name": "openchamber-monorepo",
"version": "1.17.2",
"description": "OpenChamber monorepo workspace for web, ui, and desktop runtimes",
"private": true,
"type": "module",
"packageManager": "bun@1.3.14",
"workspaces": [
"packages/*"
],
"engines": {
"node": ">=22.0.0"
},
"keywords": [
"opencode",
"ai",
"coding",
"openchamber",
"cli"
],
"author": "Bohdan Triapitsyn",
"license": "MIT",
"scripts": {
"dev": "node ./scripts/dev-web-hmr.mjs",
"oc-dev": "node scripts/oc-dev.mjs",
"build": "bun run --sequential --filter '!@openchamber/mobile' build && bun run --cwd packages/mobile build:assets",
"build:web": "bun run --cwd packages/web build",
"build:ui": "bun run --cwd packages/ui build",
"build:electron": "bun run --cwd packages/electron build",
"build:mobile": "bun run --cwd packages/mobile build",
"type-check": "bun run --filter '*' type-check",
"type-check:web": "bun run --cwd packages/web type-check",
"type-check:ui": "bun run --cwd packages/ui type-check",
"type-check:electron": "bun run --cwd packages/electron type-check",
"type-check:mobile": "bun run --cwd packages/mobile type-check",
"lint": "bun run --filter '*' lint",
"lint:web": "bun run --cwd packages/web lint",
"lint:ui": "bun run --cwd packages/ui lint",
"lint:electron": "bun run --cwd packages/electron lint",
"lint:mobile": "bun run --cwd packages/mobile lint",
"clean": "bun run --filter '*' clean",
"changelog-card": "node scripts/changelog-card/generate.mjs",
"postinstall": "node ./fix-deprecation.js && patch-package",
"dev:web": "bun run --cwd packages/web build:watch",
"dev:web:server": "bun run --cwd packages/web dev:server:watch",
"dev:web:full": "node ./scripts/dev-web-full.mjs",
"dev:web:hmr": "node ./scripts/dev-web-hmr.mjs",
"start:web": "bun run --cwd packages/web start",
"pack:web": "bun pm pack --cwd packages/web",
"electron:dev": "node ./packages/electron/scripts/electron-dev.mjs",
"electron:dev:bundled": "OPENCHAMBER_ELECTRON_USE_BUNDLED_UI=1 node ./packages/electron/scripts/electron-dev.mjs",
"electron:build": "bun run --cwd packages/electron package",
"mobile:build": "bun run --cwd packages/mobile build",
"mobile:sync": "bun run --cwd packages/mobile sync",
"mobile:add:ios": "bun run --cwd packages/mobile add:ios",
"mobile:add:android": "bun run --cwd packages/mobile add:android",
"mobile:build:android:debug": "bun run --cwd packages/mobile build:android:debug",
"mobile:build:ios:simulator": "bun run --cwd packages/mobile build:ios:simulator",
"mobile:sim:boot": "bun run --cwd packages/mobile sim:boot",
"mobile:sim:install": "bun run --cwd packages/mobile sim:install",
"mobile:sim:launch": "bun run --cwd packages/mobile sim:launch",
"mobile:sim:run": "bun run --cwd packages/mobile sim:run",
"mobile:sim:dev": "bun run --cwd packages/mobile sim:dev",
"mobile:sim:serve": "bun run --cwd packages/mobile sim:serve",
"mobile:sim:list": "bun run --cwd packages/mobile sim:list",
"mobile:sim:kill": "bun run --cwd packages/mobile sim:kill",
"mobile:open:ios": "bun run --cwd packages/mobile open:ios",
"mobile:open:android": "bun run --cwd packages/mobile open:android",
"vscode:dev": "node ./scripts/dev-vscode.mjs",
"vscode:build": "bun run --cwd packages/vscode build",
"vscode:package": "bun run --cwd packages/vscode package",
"vscode:type-check": "bun run --cwd packages/vscode type-check",
"docs:validate": "node scripts/docs/validate-docs.mjs",
"dead-code": "bunx knip@5.80.0 --no-exit-code --include files,exports,nsExports,types,nsTypes,enumMembers,duplicates",
"doctor": "node scripts/react-doctor.mjs",
"profile:browser": "node scripts/profile-browser.mjs",
"icons:sprite": "node scripts/generate-file-type-sprite.mjs",
"icons:generate": "bun run scripts/generate-icon-sprite.mjs",
"themes:port:opencode": "tsx scripts/port-opencode-theme.ts",
"version:bump": "node scripts/bump-version.mjs",
"release:prepare": "bun run build && bun run type-check && bun run lint",
"release:test": "./scripts/test-release-build.sh",
"release:test:intel": "./scripts/test-release-build.sh x86_64",
"release:test:arm": "./scripts/test-release-build.sh aarch64",
"profile:idle": "node scripts/profile-idle.mjs",
"profile:session": "node scripts/profile-session.mjs",
"profile:animation": "node scripts/profile-animation.mjs"
},
"dependencies": {
"@base-ui/react": "^1.4.0",
"@codemirror/autocomplete": "^6.20.0",
"@codemirror/commands": "^6.10.1",
"@codemirror/lang-cpp": "^6.0.3",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/lang-go": "^6.0.1",
"@codemirror/lang-html": "^6.4.11",
"@codemirror/lang-javascript": "^6.2.4",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/lang-markdown": "^6.5.0",
"@codemirror/lang-python": "^6.2.1",
"@codemirror/lang-rust": "^6.0.2",
"@codemirror/lang-sql": "^6.10.0",
"@codemirror/lang-xml": "^6.1.0",
"@codemirror/lang-yaml": "^6.1.2",
"@codemirror/language": "6.12.2",
"@codemirror/lint": "^6.9.2",
"@codemirror/search": "^6.6.0",
"@codemirror/state": "^6.5.4",
"@codemirror/view": "6.39.13",
"@heroui/scroll-shadow": "^2.3.18",
"@heroui/system": "^2.4.23",
"@heroui/theme": "^2.4.23",
"@lezer/highlight": "^1.2.3",
"@octokit/rest": "^22.0.1",
"@opencode-ai/sdk": "1.18.11",
"@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-scroll-area": "^1.2.10",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-tooltip": "^1.2.8",
"@xenova/transformers": "^2.17.2",
"@zumer/snapdom": "^2.12.8",
"bun-pty": "^0.4.5",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"express": "^5.1.0",
"ghostty-web": "0.4.0",
"http-proxy-middleware": "^3.0.5",
"next-themes": "^0.4.6",
"node-pty": "1.2.0-beta.12",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.1",
"simple-git": "^3.36.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"yaml": "^2.8.1",
"zod": "^4.3.6",
"zustand": "^5.0.8"
},
"overrides": {
"@codemirror/language": "6.12.2",
"@codemirror/view": "6.39.13"
},
"devDependencies": {
"@clack/prompts": "^1.1.0",
"@eslint/js": "^9.33.0",
"@tailwindcss/postcss": "^4.0.0",
"@types/dom-speech-recognition": "^0.0.12",
"@types/node": "^24.3.1",
"@types/react": "^19.1.10",
"@types/react-dom": "^19.1.7",
"@vitejs/plugin-react": "^5.0.0",
"autoprefixer": "^10.4.21",
"babel-plugin-react-compiler": "^1.0.0",
"concurrently": "^9.2.1",
"cors": "^2.8.5",
"cross-env": "^7.0.3",
"eslint": "^9.33.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.5.0",
"globals": "^16.3.0",
"node-addon-api": "7.1.1",
"nodemon": "^3.1.7",
"patch-package": "^8.0.0",
"@remixicon/react": "^4.7.0",
"sharp": "^0.35.0",
"tailwindcss": "^4.0.0",
"tsx": "^4.20.6",
"tw-animate-css": "^1.3.8",
"typescript": "~5.9.0",
"typescript-eslint": "^8.39.1",
"vite": "^7.1.2"
},
"patchedDependencies": {
"@tanstack/virtual-core@3.17.3": "bun-patches/@tanstack+virtual-core+3.17.3.patch",
"bun-pty@0.4.8": "bun-patches/bun-pty@0.4.8.patch"
}
}