120 lines · 5.5 KB · JSON
RawDownload
{  "name": "frontend",  "version": "2.1.0",  "private": true,  "description": "Local-first workstation for running self-hosted LLMs",  "author": "Sybil Solutions",  "homepage": "https://localstudio.ai",  "repository": "https://github.com/sybil-solutions/local-studio",  "scripts": {    "predev": "node ../scripts/project.mjs link-services",    "dev": "concurrently -k -n NEXT,AGENT -c cyan,green \"next dev\" \"npm --prefix ../services/agent-runtime run dev\"",    "build": "node ../scripts/project.mjs prepare-next && npm --prefix ../services/agent-runtime run bundle && next build --webpack && node ../scripts/project.mjs complete-standalone && node ../scripts/project.mjs assert-standalone",    "start": "node ../scripts/project.mjs start",    "perf:audit": "node ../scripts/project.mjs perf",    "perf:browser": "node ../scripts/project.mjs browser-perf",    "lint": "eslint",    "lint:fix": "eslint --fix",    "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,css,md,json}\"",    "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,css,md,json}\"",    "depcheck": "depcheck",    "prepare": "node ../scripts/project.mjs setup-hooks",    "postinstall": "node ../scripts/project.mjs link-services",    "check:deadcode": "knip",    "check:dupes": "jscpd src",    "check:cleanup": "npm run check:deadcode && npm run check:dupes && npm run depcheck",    "check:ui-structure": "node ../scripts/project.mjs validate-ui",    "check:fix": "knip --fix",    "desktop:build:main": "tsc -p desktop/tsconfig.json --noEmit && bun build desktop/main.ts desktop/preload.ts --outdir desktop/dist --target=node --format=cjs --minify --external electron --external @lydell/node-pty",    "desktop:start": "electron desktop/dist/main.js",    "desktop:start:dev": "LOCAL_STUDIO_DESKTOP_DEV_SERVER_URL=http://127.0.0.1:3000 electron desktop/dist/main.js",    "desktop:build": "npm run build && npm run desktop:build:main",    "desktop:dev": "npm run desktop:build:main && concurrently -k -n NEXT,ELECTRON -c cyan,magenta \"npm run dev\" \"node -e \\\"setTimeout(() => process.exit(0), 3000)\\\" && npm run desktop:start:dev\"",    "desktop:dist": "npm run desktop:build && electron-builder --config desktop/electron-builder.yml",    "desktop:dist:dev": "npm run desktop:build && electron-builder --config desktop/electron-builder.yml --config.appId=org.local.studio.desktop.dev --config.productName=\"Local Studio Dev\" --config.extraMetadata.localStudioChannel=dev --config.directories.output=dist-desktop-dev",    "desktop:dist:notarized": "npm run desktop:build && electron-builder --config desktop/electron-builder.yml --config.mac.notarize=true",    "desktop:pack": "npm run desktop:build && electron-builder --dir --config desktop/electron-builder.yml",    "typecheck": "tsc --noEmit",    "typecheck:desktop": "tsc -p desktop/tsconfig.json",    "check:cycles": "madge --extensions ts,tsx --circular src",    "check:static": "npm run lint && npm run typecheck && npm run typecheck:desktop && npm run typecheck:extensions && npm run check:cycles && npm run check:ui-structure",    "check:quality": "node ../scripts/project.mjs validate-package && npm run check:static && npm run check:cleanup && npm run build",    "precommit": "lint-staged --config .lintstagedrc.json && npm run typecheck",    "typecheck:extensions": "tsc -p desktop/resources/pi-extensions/tsconfig.json"  },  "dependencies": {    "@earendil-works/pi-ai": "0.83.0",    "@earendil-works/pi-coding-agent": "0.83.0",    "@hono/node-server": "^2.0.12",    "@local-studio/agent-runtime": "file:../services/agent-runtime",    "@local-studio/contracts": "file:../controller/contracts",    "@lydell/node-pty": "1.2.0-beta.12",    "@modelcontextprotocol/sdk": "1.30.0",    "@xterm/addon-fit": "0.11.0",    "@xterm/addon-web-links": "0.13.0-beta.220",    "@xterm/xterm": "6.1.0-beta.285",    "chromium-bidi": "0.12.0",    "effect": "4.0.0-beta.90",    "electron-updater": "6.8.9",    "highlight.js": "11.11.1",    "hono": "4.12.30",    "lucide-react": "0.561.0",    "mermaid": "^11.16.0",    "next": "16.2.12",    "playwright-core": "1.61.1",    "proper-lockfile": "4.1.2",    "qrcode.react": "4.2.0",    "react": "19.2.1",    "react-dom": "19.2.1",    "react-markdown": "10.1.0",    "react-virtuoso": "4.18.1",    "remark-gfm": "4.0.1",    "semver": "7.8.5",    "typebox": "1.1.38",    "yaml": "2.9.0",    "zustand": "4.5.7"  },  "devDependencies": {    "@tailwindcss/postcss": "4.1.18",    "@types/node": "20.19.27",    "@types/proper-lockfile": "4.1.4",    "@types/react": "19.2.7",    "@types/react-dom": "19.2.3",    "@types/semver": "7.7.1",    "concurrently": "9.2.4",    "depcheck": "1.4.7",    "electron": "43.1.1",    "electron-builder": "26.15.3",    "eslint": "9.39.2",    "eslint-config-next": "16.2.7",    "jscpd": "4.0.7",    "knip": "5.82.1",    "lint-staged": "15.5.2",    "madge": "8.0.0",    "prettier": "3.8.0",    "tailwindcss": "4.1.18",    "typescript": "5.9.3"  },  "overrides": {    "postcss": "^8.5.23",    "fast-uri": "^3.1.4",    "sharp": "^0.35.3",    "dompurify": "^3.4.12",    "protobufjs": "^7.6.5",    "tar": "^7.5.21",    "minimatch@^10": {      "brace-expansion": "5.0.9"    }  },  "main": "desktop/dist/main.js",  "allowScripts": {    "electron-winstaller@5.4.0": true,    "msgpackr-extract@3.0.4": true,    "protobufjs@7.6.5": true,    "protobufjs@7.6.4": true,    "sharp@0.34.5": true,    "unrs-resolver@1.11.1": true,    "@google/genai@1.52.0": true,    "fsevents@2.3.2": true  }}