{ "name": "5ire", "productName": "5ire", "version": "0.15.4", "description": "A Sleek Desktop AI Assistant & MCP Client", "main": "src/main/main.ts", "repository": "https://github.com/nanbingxyz/5ire.git", "author": { "name": "Ironben", "email": "support@5ire.app", "url": "https://5ire.app" }, "license": "Modified Apache-2.0", "scripts": { "postinstall": "patch-package && node ./node_modules/electron/install.js && npm run install:deps", "install:deps": "electron-builder install-app-deps", "lint": "biome check --write .", "test": "jest", "prepare": "husky", "format": "biome format --write .", "check": "tsc --noEmit", "build": "npm run install:deps && rsbuild build", "build:watch": "npm run install:deps && rsbuild dev", "dev:build": "rsbuild dev", "dev:start": "npx wait-on http-get://127.0.0.1:33077 file:./output/nodemon.json && cd ./output && npx nodemon", "dev": "rimraf ./output/ && concurrently -n R,E -c cyan,magenta \"npm run dev:build\" \"npm run dev:start\"", "package": "rimraf ./release && tsx ./scripts/package/index.ts", "package:publish": "rimraf ./release && tsx ./scripts/package/index.ts --publish", "generate:drizzle": "drizzle-kit generate" }, "jest": { "preset": "ts-jest", "moduleDirectories": [ "node_modules", "release/app/node_modules", "src", "test" ], "moduleFileExtensions": [ "js", "jsx", "ts", "tsx", "json" ], "moduleNameMapper": { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/.erb/mocks/fileMock.js", "\\.(css|less|sass|scss)$": "identity-obj-proxy", "electron": "/test/mocks/electron.js", "electron-log": "/test/mocks/electron-log.js", "env.js": "/node_modules/@xenova/transformers/src/env.test.js" }, "setupFiles": [ "./.erb/scripts/check-build-exists.ts" ], "testEnvironment": "node", "testEnvironmentOptions": { "url": "http://localhost/" }, "testPathIgnorePatterns": [ "release/app/dist", ".erb/dll" ], "transform": { "^.+\\.(ts|tsx|js|jsx)$": "ts-jest" } }, "dependencies": { "@axiomhq/js": "^1.0.0-rc.1", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@electric-sql/pglite": "^0.3.11", "@fluentui-contrib/react-data-grid-react-window": "^1.0.2", "@fluentui/react-components": "^9.58.3", "@fluentui/react-datepicker-compat": "^0.4.6", "@fluentui/react-icons": "^2.0.223", "@lancedb/lancedb": "^0.14.1", "@modelcontextprotocol/sdk": "^1.17.1", "@postlight/parser": "^2.2.3", "@sentry/electron": "^4.7.0", "@sentry/react": "^7.74.0", "@supabase/supabase-js": "^2.38.5", "@xenova/transformers": "^2.17.2", "apache-arrow": "18.0.0", "better-sqlite3": "^12.4.1", "catch-unknown": "^2.0.0", "classnames": "^2.5.1", "clipboard": "^2.0.11", "clsx": "^2.1.1", "data-uri-to-buffer": "^6.0.2", "dompurify": "^3.2.5", "drizzle-orm": "^0.44.7", "echarts": "^5.4.2", "electron-debug": "^3.2.0", "electron-devtools-installer": "^3.2.0", "electron-log": "^4.4.8", "electron-store": "^8.1.0", "electron-updater": "^5.3.0", "file-loader": "^6.2.0", "file-type": "16.5.3", "fix-path": "^4.0.0", "highlight.js": "^11.8.0", "https-proxy-agent": "^7.0.6", "i18next": "^23.2.3", "i18next-browser-languagedetector": "^7.1.0", "i18next-resources-to-backend": "^1.1.4", "identity-obj-proxy": "^3.0.0", "immer": "^10.0.2", "js-big-decimal": "^2.0.4", "json5": "^2.2.3", "katex": "^0.16.22", "llama-tokenizer-js": "^1.2.1", "llama3-tokenizer-js": "^1.0.0", "lodash": "^4.17.21", "magic-bytes.js": "^1.12.1", "markdown-it": "^13.0.1", "markdown-it-emoji": "^3.0.0", "markdown-it-mathjax3": "^4.3.2", "markdown-it-mermaid": "^0.2.5", "markdown-it-texmath": "^1.0.0", "memoizee": "^0.4.17", "mitt": "^3.0.1", "mousetrap": "^1.6.5", "msgpackr": "^1.11.5", "node-abi": "^3.65.0", "officeparser": "^5.1.1", "pdf-parse": "^2.4.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-error-boundary": "^6.0.0", "react-hotkeys-hook": "^4.4.1", "react-i18next": "^13.0.1", "react-router-dom": "^6.11.2", "split-pane-react": "^0.1.3", "suspend-react": "^0.1.3", "swr": "^2.2.0", "tiktoken": "^1.0.10", "ts-key-enum": "^2.0.12", "ts-pattern": "^5.9.0", "typeid-js": "^0.3.0", "valid-url": "^1.0.9", "zustand": "^4.3.9" }, "devDependencies": { "@biomejs/biome": "^2.2.7", "@electron/notarize": "^1.2.3", "@electron/rebuild": "^3.2.13", "@rsbuild/core": "^1.5.17", "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rsdoctor/rspack-plugin": "^1.3.11", "@tailwindcss/postcss": "^4.1.16", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@types/better-sqlite3": "^7.6.11", "@types/i18next-node-fs-backend": "^2.1.2", "@types/jest": "^29.5.2", "@types/lodash": "^4.14.195", "@types/memoizee": "^0.4.12", "@types/mockery": "^1.4.33", "@types/mousetrap": "^1.6.15", "@types/node": "^20.2.5", "@types/node-fetch": "^2.6.12", "@types/react": "^18.2.8", "@types/react-dom": "^18.2.4", "@types/valid-url": "^1.0.4", "autoprefixer": "^10.4.14", "chalk": "^4.1.2", "concurrently": "^8.1.0", "cross-env": "^7.0.3", "debug": "^4.3.4", "detect-port": "^1.5.1", "dotenv": "^16.4.5", "drizzle-kit": "^0.31.6", "electron": "31.7.1", "electron-builder": "^24.6.3", "husky": "^9.1.7", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "lint-staged": "^15.5.0", "patch-package": "^8.0.1", "postcss": "^8.4.24", "rimraf": "^5.0.1", "tailwindcss": "^4.1.16", "ts-jest": "^29.1.0", "tsx": "^4.19.2", "typescript": "^5.1.3" }, "engines": { "node": ">=16.x", "npm": ">=7.x" }, "electronmon": { "patterns": [ "!**/**", "src/main/**" ], "logLevel": "quiet" }, "volta": { "node": "22.19.0", "yarn": "1.22.21" }, "lint-staged": { "*": [ "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true", "biome format --write --no-errors-on-unmatched --files-ignore-unknown=true" ] } }