{
  "name": "@rativiv/bob",
  "productName": "Bob",
  "version": "0.1.12",
  "main": "dist-electron/main/index.js",
  "bin": {
    "bob": "bin/bob.cjs"
  },
  "files": [
    "dist",
    "dist-electron",
    "public",
    "build",
    "bin",
    "docs/screenshots",
    "scripts",
    "package.json"
  ],
  "description": "Bob: local agent loops without API keys.",
  "author": "stuart",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/rativiv/Bob.git"
  },
  "homepage": "https://github.com/rativiv/Bob",
  "bugs": {
    "url": "https://github.com/rativiv/Bob/issues"
  },
  "publishConfig": {
    "access": "public"
  },
  "debug": {
    "env": {
      "VITE_DEV_SERVER_URL": "http://127.0.0.1:5173/"
    }
  },
  "type": "module",
  "engines": {
    "node": ">=20 <27"
  },
  "scripts": {
    "typecheck": "tsc --noEmit",
    "check": "npm run typecheck && npm test",
    "bump:version": "node scripts/bump-version.mjs",
    "predev": "node -e \"const major = Number(process.versions.node.split('.')[0]); if (major < 20 || major >= 27) { console.error('\\nUnsupported Node.js version ' + process.version + '.\\nUse Node >=20 and <27 (recommended: Node 22 LTS).\\n'); process.exit(1); }\"",
    "dev": "vite",
    "dev:clean": "node scripts/dev-clean.mjs && npm run dev",
    "prebuild:dist:raw": "node scripts/sync-icon.mjs",
    "build:dist:raw": "tsc && vite build",
    "build:dist": "node scripts/run-with-version-bump.mjs \"npm run build:dist:raw\"",
    "browser:install": "node scripts/ensure-playwright-browser.mjs",
    "build:portable:raw": "npm run browser:install && npm run build:dist:raw && npm run orch:build && electron-builder --win portable --publish never && node scripts/apply-exe-icon.mjs",
    "build": "node scripts/build-dispatch.mjs",
    "build:raw": "npm run build:portable:raw",
    "build:portable": "node scripts/run-with-version-bump.mjs \"npm run build:portable:raw\"",
    "package": "npm run build:portable",
    "deploy": "npm run package",
    "build:release": "npm run build:dist && electron-builder && node scripts/apply-exe-icon.mjs",
    "build:release:raw": "npm run browser:install && npm run build:dist:raw && npm run orch:build && electron-builder --publish never && node scripts/apply-exe-icon.mjs",
    "release:notes": "node scripts/create-release-notes.mjs",
    "release:prepare": "node scripts/validate-version-files.mjs && node scripts/run-with-version-bump.mjs \"npm run release:notes && npm run build:portable:raw\"",
    "postinstall": "node scripts/shortcut-win.mjs && node scripts/rebuild-native.mjs",
    "publish:npm": "npm run build:dist:raw && npm pack --dry-run && npm publish",
    "package:win": "npm run build:dist && npm run orch:build && electron-packager . Bob --platform=win32 --arch=x64 --out=release/0.0.1/packaged --overwrite --asar --prune=true --icon=build/icon.ico",
    "preview": "vite preview",
    "pretest": "vite build --mode=test",
    "test": "vitest run",
    "orch:build": "cd plugins/bob-orchestrator && npm run build:raw",
    "orch:deploy": "npm run orch:build && node -e \"const fs=require('fs'),path=require('path'),os=require('os');const src=path.resolve('plugins/bob-orchestrator');const dest=path.join(os.homedir(),'.bob','plugins','bob-orchestrator');const distSrc=path.join(src,'dist');const distDest=path.join(dest,'dist');fs.rmSync(dest,{recursive:true,force:true});fs.mkdirSync(distDest,{recursive:true});for(const f of fs.readdirSync(distSrc))fs.cpSync(path.join(distSrc,f),path.join(distDest,f),{recursive:true});fs.cpSync(path.join(src,'package.json'),path.join(dest,'package.json'));console.log('Orchestrator deployed to '+dest)\"",
    "build:all": "npm run build:portable && npm run orch:deploy"
  },
  "dependencies": {
    "@codemirror/lang-cpp": "^6.0.3",
    "@codemirror/lang-css": "^6.3.1",
    "@codemirror/lang-html": "^6.4.11",
    "@codemirror/lang-java": "^6.0.2",
    "@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",
    "@google/genai": "^1.45.0",
    "@modelcontextprotocol/sdk": "^1.27.0",
    "@types/react-syntax-highlighter": "^15.5.13",
    "@uiw/codemirror-theme-vscode": "^4.25.5",
    "@uiw/react-codemirror": "^4.25.4",
    "@xterm/addon-fit": "^0.11.0",
    "@xterm/xterm": "^5.3.0",
    "playwright": "^1.61.1",
    "react-markdown": "^10.1.0",
    "react-resizable-panels": "^4.6.4",
    "react-syntax-highlighter": "^16.1.0",
    "remark-gfm": "^4.0.1",
    "undici": "^6.27.0",
    "zod": "^4.3.6"
  },
  "optionalDependencies": {
    "electron-updater": "^6.3.9",
    "node-pty": "^1.0.0"
  },
  "devDependencies": {
    "@electron/packager": "^19.0.5",
    "@playwright/test": "^1.48.2",
    "@tailwindcss/typography": "^0.5.19",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/react": "^16.3.2",
    "@testing-library/user-event": "^14.6.1",
    "@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.3",
    "autoprefixer": "^10.4.20",
    "electron": "^40.6.0",
    "electron-builder": "^26.8.1",
    "jsdom": "^29.1.1",
    "postcss": "^8.4.49",
    "postcss-import": "^16.1.0",
    "rcedit": "^5.0.2",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "tailwindcss": "^3.4.15",
    "typescript": "^5.4.2",
    "vite": "^5.4.11",
    "vite-plugin-electron": "^0.29.0",
    "vite-plugin-electron-renderer": "^0.14.6",
    "vitest": "^4.0.18"
  }
}
