{ "name": "leon", "version": "1.0.0-beta.10+dev", "description": "Server, skills and web app of the Leon personal assistant", "author": { "name": "Louis Grenard", "email": "louis@getleon.ai", "url": "https://twitter.com/grenlouis" }, "license": "MIT", "homepage": "https://getleon.ai", "repository": { "type": "git", "url": "git+https://github.com/leon-ai/leon.git" }, "bugs": { "url": "https://github.com/leon-ai/leon/issues" }, "engines": { "node": ">=16.0.0", "npm": ">=8.0.0" }, "scripts": { "lint": "tsx scripts/lint.js", "test": "npm run test:json && npm run test:over-http && npm run test:unit && npm run test:e2e", "test:unit": "npm run train en && cross-env PIPENV_PIPFILE=bridges/python/src/Pipfile LEON_NODE_ENV=testing jest --forceExit --silent --projects test/unit/unit.jest.json && npm run train", "test:e2e": "npm run test:e2e:nlp-modules && npm run test:e2e:modules", "test:e2e:modules": "tsx scripts/run-clean-test-dbs.js && npm run train en && cross-env PIPENV_PIPFILE=bridges/python/src/Pipfile LEON_NODE_ENV=testing jest --forceExit --silent --verbose --projects test/e2e/modules/e2e.modules.jest.json && tsx scripts/run-clean-test-dbs.js && npm run train", "test:e2e:nlp-modules": "npm run train en && cross-env PIPENV_PIPFILE=bridges/python/src/Pipfile LEON_NODE_ENV=testing jest --forceExit --silent --verbose --setupTestFrameworkScriptFile=./test/paths.setup.js test/e2e/nlp-modules.spec.js && npm run train", "test:json": "jest --silent --projects test/json/json.jest.json", "test:over-http": "npm run generate:skills-endpoints && npm run train && cross-env PIPENV_PIPFILE=bridges/python/src/Pipfile LEON_NODE_ENV=testing LEON_HOST=http://localhost LEON_PORT=1338 LEON_HTTP_API_KEY=72aeb5ba324580963114481144385d7179c106fc jest --forceExit --silent --verbose --notify=false --bail --collectCoverage=false test/e2e/over-http.spec.js", "test:module": "tsx scripts/test-module.js", "setup:offline": "tsx scripts/setup-offline/setup-offline.js", "setup:offline-stt": "tsx scripts/setup-offline/run-setup-stt.js", "setup:offline-tts": "tsx scripts/setup-offline/run-setup-tts.js", "setup:offline-hotword": "tsx scripts/setup-offline/run-setup-hotword.js", "setup:python-bridge": "tsx scripts/setup/setup-python-dev-env.js python-bridge", "setup:tcp-server": "tsx scripts/setup/setup-python-dev-env.js tcp-server", "preinstall": "node scripts/setup/preinstall.js", "postinstall": "tsx scripts/setup/setup.js", "dev:app": "vite --config app/vite.config.js", "dev:server": "npm run train && npm run generate:skills-endpoints && cross-env LEON_NODE_ENV=development tsc-watch --noClear --onSuccess \"nodemon\"", "dev:server:no-lint": "npm run train && npm run generate:skills-endpoints && cross-env LEON_NODE_ENV=development \"nodemon\"", "wake": "cross-env LEON_HOST=http://localhost LEON_PORT=1337 node hotword/index.js", "delete-dist:server": "shx rm -rf ./server/dist", "clean:python-deps": "shx rm -rf ./bridges/python/src/.venv && npm run postinstall", "prepare": "husky install", "generate:skills-endpoints": "tsx scripts/generate/run-generate-skills-endpoints.js", "generate:http-api-key": "tsx scripts/generate/run-generate-http-api-key.js", "generate:json-schemas": "tsx scripts/generate/run-generate-json-schemas.js", "build": "npm run build:app && npm run build:server", "build:app": "cross-env LEON_NODE_ENV=production tsx scripts/app/run-build-app.js", "build:server": "npm run delete-dist:server && npm run train && npm run generate:skills-endpoints && tsc --project tsconfig.json && resolve-tspaths && shx rm -rf server/dist/core server/dist/package.json && shx mv -f server/dist/server/src/* server/dist && shx rm -rf server/dist/server && shx mkdir -p server/dist/tmp", "build:nodejs-bridge": "tsx scripts/build-binaries.js nodejs-bridge", "build:python-bridge": "tsx scripts/build-binaries.js python-bridge", "build:tcp-server": "tsx scripts/build-binaries.js tcp-server", "start:tcp-server": "cross-env PIPENV_PIPFILE=tcp_server/src/Pipfile pipenv run python tcp_server/src/main.py", "start": "cross-env LEON_NODE_ENV=production node server/dist/pre-check.js && node server/dist/index.js", "python-bridge": "cross-env PIPENV_PIPFILE=bridges/python/src/Pipfile pipenv run python bridges/python/src/main.py server/src/intent-object.sample.json", "train": "tsx scripts/train/run-train.js", "prepare-release": "tsx scripts/release/prepare-release.js", "skill-package": "tsx scripts/skill-package.js", "pre-release:nodejs-bridge": "tsx scripts/release/pre-release-binaries.js nodejs-bridge", "pre-release:python-bridge": "tsx scripts/release/pre-release-binaries.js python-bridge", "pre-release:tcp-server": "tsx scripts/release/pre-release-binaries.js tcp-server", "check": "tsx scripts/check.js" }, "dependencies": { "@aws-sdk/client-polly": "3.18.0", "@fastify/static": "6.12.0", "@ffmpeg-installer/ffmpeg": "1.1.0", "@ffprobe-installer/ffprobe": "1.4.1", "@fontsource/source-sans-pro": "5.0.8", "@google-cloud/speech": "4.2.0", "@google-cloud/text-to-speech": "3.2.1", "@leon-ai/aurora": "1.0.0-beta.9", "@nlpjs/builtin-microsoft": "4.22.7", "@nlpjs/core-loader": "4.22.7", "@nlpjs/lang-all": "4.22.12", "@nlpjs/nlp": "4.22.17", "@segment/ajv-human-errors": "2.11.3", "@sinclair/typebox": "0.31.23", "ajv": "8.12.0", "ajv-formats": "2.1.1", "archiver": "6.0.1", "axios": "1.6.2", "cross-env": "7.0.3", "dayjs": "1.11.10", "dotenv": "16.4.5", "execa": "5.1.1", "extract-zip": "2.0.1", "fastify": "4.24.3", "fluent-ffmpeg": "2.1.2", "getos": "3.2.1", "googleapis": "67.1.1", "ibm-watson": "6.1.1", "node-llama-cpp": "3.0.0-beta.17", "node-wav": "0.0.2", "os-name": "4.0.1", "pretty-bytes": "5.6.0", "pretty-ms": "7.0.1", "react": "18.2.0", "react-dom": "18.2.0", "remixicon": "3.5.0", "socket.io": "4.7.2", "socket.io-client": "4.7.2", "stt": "1.4.0", "tree-kill": "1.2.2" }, "devDependencies": { "@nlpjs/utils": "4.24.1", "@tsconfig/node16": "16.1.1", "@tsconfig/strictest": "2.0.2", "@types/archiver": "6.0.1", "@types/cli-spinner": "0.2.3", "@types/fluent-ffmpeg": "2.1.24", "@types/getos": "3.0.4", "@types/node": "20.9.0", "@types/node-wav": "0.0.2", "@types/react": "18.2.37", "@types/react-dom": "18.2.15", "@typescript-eslint/eslint-plugin": "6.11.0", "@typescript-eslint/parser": "6.11.0", "@vercel/ncc": "0.38.1", "@vitejs/plugin-react": "4.1.1", "cli-spinner": "0.2.10", "eslint": "8.53.0", "eslint-config-prettier": "9.0.0", "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-import": "npm:eslint-plugin-i@2.29.0", "eslint-plugin-unicorn": "49.0.0", "git-changelog": "2.0.0", "husky": "8.0.3", "inquirer": "8.2.3", "jest": "27.4.7", "jest-canvas-mock": "2.3.1", "jest-extended": "2.0.0", "json": "11.0.0", "lint-staged": "15.1.0", "nodemon": "3.0.1", "prettier": "3.1.0", "resolve-tspaths": "0.8.17", "semver": "7.5.4", "shx": "0.3.4", "tsc-watch": "6.2.0", "tsx": "4.1.2", "typescript": "5.2.2", "vite": "4.5.0" } }