UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

524 lines (523 loc) 21.7 kB
{ "name": "@juspay/neurolink", "version": "9.65.0", "packageManager": "pnpm@10.15.1", "description": "Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applications with 21+ providers: OpenAI, Anthropic, Google AI Studio, Google Vertex, AWS Bedrock, Azure OpenAI, Mistral, LiteLLM, SageMaker, Hugging Face, Ollama, OpenAI-compatible, OpenRouter, DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, plus voice (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech).", "author": { "name": "Juspay Technologies", "email": "support@juspay.in", "url": "https://juspay.io" }, "license": "MIT", "homepage": "https://github.com/juspay/neurolink#readme", "repository": { "type": "git", "url": "git+https://github.com/juspay/neurolink.git" }, "bugs": { "url": "https://github.com/juspay/neurolink/issues" }, "funding": { "type": "individual", "url": "https://github.com/sponsors/juspay" }, "engines": { "node": ">=20.18.1", "npm": ">=10.0.0", "pnpm": ">=8.0.0" }, "scripts": { "dev": "vite dev", "build": "vite build && pnpm run prepack", "build:browser": "node scripts/build-browser.mjs", "build:browser:dev": "node scripts/build-browser.mjs --dev", "build:cli": "echo 'Building CLI...' && svelte-kit sync && tsc --project tsconfig.cli.json", "build:cli:bundle": "node scripts/bundle-cli.mjs", "build:cli:bundle:minify": "node scripts/bundle-cli.mjs --minify", "build:action": "ncc build src/action/index.ts -o action-dist --source-map", "build:cli:link": "pnpm run build:cli && pnpm link --global", "check:deps": "tsx scripts/check-banned-deps.ts", "cli": "node dist/cli/index.js", "preview": "vite preview", "prepare": "git rev-parse --git-dir > /dev/null 2>&1 && husky install || echo 'Skipping husky in non-git environment'", "prepack": "svelte-kit sync && svelte-package && pnpm run build:react-hooks && pnpm run build:cli && pnpm run build:browser && publint", "build:react-hooks": "npx tsc --jsx react-jsx --module nodenext --moduleResolution nodenext --target esnext --esModuleInterop --skipLibCheck --outDir dist --declaration false src/lib/client/reactHooks.tsx", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit --strict", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "modelServer": "tsx scripts/modelServer.ts", "lint": "prettier --check . && NODE_OPTIONS='--max-old-space-size=8192' eslint .", "format": "prettier --write .", "format:check": "prettier --check .", "format:staged": "tsx scripts/format-staged.ts", "changeset": "changeset", "changeset:version": "changeset version && git add --all", "format:changelog": "tsx scripts/format-changelog.ts", "// ===== NEUROLINK DEVELOPER EXPERIENCE ENHANCEMENT 2.0 =====": "", "// Environment & Setup (pnpm-first)": "", "setup": "pnpm install && tsx tools/setup.ts", "setup:complete": "pnpm run setup && pnpm run project:organize && pnpm run env:validate", "env:setup": "tsx tools/automation/environmentManager.ts", "env:validate": "tsx tools/automation/environmentManager.ts --validate", "env:backup": "tsx tools/automation/environmentManager.ts --backup", "env:list-backups": "tsx tools/automation/environmentManager.ts --list-backups", "// Project Management & Analysis": "", "project:organize": "tsx tools/automation/projectOrganizer.ts", "project:health": "tsx tools/development/healthMonitor.ts", "// Shell Script Conversion": "", "convert:shell-scripts": "tsx tools/automation/shellConverter.ts", "convert:specific": "tsx tools/automation/shellConverter.ts --specific", "// Testing (Continuous Test Suites)": "", "test": "npx tsx test/continuous-test-suite.ts", "test:client": "npx tsx test/continuous-test-suite-client.ts", "test:context": "npx tsx test/continuous-test-suite-context.ts", "test:evaluation": "npx tsx test/continuous-test-suite-evaluation.ts", "test:mcp": "npx tsx test/continuous-test-suite-mcp-infra.ts", "test:mcp:http": "npx tsx test/continuous-test-suite-mcp-http.ts", "test:mcp:sdk": "npx tsx test/continuous-test-suite-mcp-sdk.ts", "test:mcp:cli": "npx tsx test/continuous-test-suite-mcp-cli.ts", "test:mcp:full": "pnpm run test:mcp:infra && pnpm run test:mcp:bash && pnpm run test:mcp:limits && pnpm run test:mcp:spans && pnpm run test:mcp:sdk && pnpm run test:mcp:cli && pnpm run test:mcp:http", "test:media": "npx tsx test/continuous-test-suite-media-gen.ts", "test:memory": "npx tsx test/continuous-test-suite-memory.ts", "test:middleware": "npx tsx test/continuous-test-suite-middleware.ts", "test:observability": "npx tsx test/continuous-test-suite-observability.ts", "test:ppt": "npx tsx test/continuous-test-suite-ppt.ts", "test:providers": "npx tsx test/continuous-test-suite-providers.ts", "test:new-providers": "npx tsx test/continuous-test-suite-new-providers.ts", "test:matrix": "npx tsx test/continuous-test-suite-provider-matrix.ts", "test:matrix:cli": "npx tsx test/continuous-test-suite-provider-matrix-cli.ts", "test:mcp:spans": "npx tsx test/continuous-test-suite-mcp-spans.ts", "test:mcp:bash": "npx tsx test/continuous-test-suite-mcp-bash.ts", "test:mcp:limits": "npx tsx test/continuous-test-suite-mcp-output-limits.ts", "test:mcp:infra": "npx tsx test/continuous-test-suite-mcp-infra.ts", "test:providers-mocked": "npx tsx test/continuous-test-suite-providers-mocked.ts", "test:rag": "npx tsx test/continuous-test-suite-rag.ts", "test:servers": "npx tsx test/continuous-test-suite-servers.ts", "test:tool-reliability": "npx tsx test/continuous-test-suite-tool-reliability.ts", "test:google-native": "npx tsx test/continuous-test-suite-google-native.ts", "test:tts": "npx tsx test/continuous-test-suite-tts.ts", "test:voice": "npx tsx test/continuous-test-suite-voice.ts", "test:voice-server": "npx tsx test/continuous-test-suite-voice-server.ts", "test:avatar": "npx tsx test/continuous-test-suite-avatar.ts", "test:music": "npx tsx test/continuous-test-suite-music.ts", "test:image-gen": "npx tsx test/continuous-test-suite-image-gen-extras.ts", "test:ssrf": "npx tsx test/continuous-test-suite-ssrf.ts", "test:log-sanitize": "npx tsx test/continuous-test-suite-log-sanitize.ts", "test:stream-span": "npx tsx test/continuous-test-suite-stream-span.ts", "test:credentials": "npx tsx test/continuous-test-suite-credentials.ts", "test:dynamic": "npx tsx test/continuous-test-suite-dynamic.ts", "test:proxy": "npx tsx test/continuous-test-suite-proxy.ts", "test:bugfixes": "npx tsx test/continuous-test-suite-bugfixes.ts", "test:workflow": "npx tsx test/continuous-test-suite-workflow.ts", "test:hitl": "npx tsx test/continuous-test-suite-hitl.ts", "test:tasks": "npx tsx test/continuous-test-suite-tasks.ts", "test:auth": "npx tsx test/continuous-test-suite-auth.ts", "test:autoresearch": "npx tsx test/continuous-test-suite-autoresearch.ts", "test:autoresearch:redis": "npx tsx test/continuous-test-suite-autoresearch-redis.ts", "test:envguard": "npx tsx test/helpers/envGuard.test.ts", "test:ci": "pnpm run test && pnpm run test:client && pnpm run test:hitl", "// CI tier — fast, no live AI calls, safe for every commit": "", "test:unit": "pnpm run test:envguard && pnpm run test:bugfixes && pnpm run test:mcp:infra && pnpm run test:mcp:bash && pnpm run test:mcp:limits && pnpm run test:mcp:spans && pnpm run test:autoresearch:redis", "// CI tier — live providers, runs only when API keys are present (test:credentials and test:dynamic make real provider calls when keys are set, so they live here, not in test:unit)": "", "test:live": "pnpm run test:providers && pnpm run test:mcp:http && pnpm run test:mcp:sdk && pnpm run test:mcp:cli && pnpm run test:observability && pnpm run test:context && pnpm run test:memory && pnpm run test:tool-reliability && pnpm run test:evaluation && pnpm run test:autoresearch && pnpm run test:credentials && pnpm run test:dynamic", "// CI tier — product output (image/video/TTS/PPT) — costs $$ per run": "", "test:product": "pnpm run test:media && pnpm run test:tts && pnpm run test:ppt && pnpm run test:proxy", "test:performance": "tsx tools/testing/performanceMonitor.ts", "// Content Generation (Cross-platform JS)": "", "content:videos": "tsx tools/converted-scripts/generateAllVideos.ts", "content:cleanup": "tsx tools/converted-scripts/cleanupHashNamedVideos.ts", "content:all": "pnpm run content:videos", "// Documentation Automation (Legacy MkDocs)": "", "docs:api": "typedoc", "docs:sync": "bash scripts/sync-readme.sh", "docs:build:mkdocs": "pnpm run docs:api && bash scripts/sync-readme.sh && mkdocs build --strict --clean", "docs:serve:mkdocs": "bash scripts/sync-readme.sh && mkdocs serve", "docs:gh-deploy:mkdocs": "bash scripts/sync-readme.sh && mkdocs gh-deploy --force", "docs:validate": "tsx tools/content/documentationSync.ts --validate", "docs:generate": "pnpm run docs:validate", "// Documentation (Docusaurus)": "", "docs:start": "pnpm --filter ./docs-site start", "docs:build": "pnpm --filter ./docs-site build", "docs:serve": "pnpm --filter ./docs-site serve", "docs:clear": "pnpm --filter ./docs-site clear", "// Proxy Observability (Local OpenObserve)": "", "proxy:observability:setup": "bash scripts/observability/manage-local-openobserve.sh setup", "proxy:observability:up": "bash scripts/observability/manage-local-openobserve.sh up", "proxy:observability:down": "bash scripts/observability/manage-local-openobserve.sh down", "proxy:observability:logs": "bash scripts/observability/manage-local-openobserve.sh logs", "proxy:observability:status": "bash scripts/observability/manage-local-openobserve.sh status", "proxy:observability:doctor": "node scripts/observability/check-proxy-telemetry.mjs", "proxy:observability:import-dashboard": "bash scripts/observability/manage-local-openobserve.sh import-dashboard", "// Development & Monitoring": "", "dev:health": "tsx tools/development/healthMonitor.ts", "dev:demo": "concurrently \"pnpm run dev\" \"node neurolink-demo/complete-enhanced-server.js\"", "demo:voice": "pnpm build && tsx examples/voice-demo/server.ts", "// Build & Deploy (Complete Pipeline)": "", "build:complete": "tsx tools/automation/buildSystem.ts", "// Quality & Maintenance": "", "quality:all": "pnpm run lint && pnpm run format && pnpm run test:ci", "clean": "pnpm run content:cleanup && rm -rf dist .svelte-kit node_modules/.cache", "reset": "pnpm run clean && pnpm install", "audit": "pnpm audit", "// Release & Publishing": "", "release": "pnpm run build:complete && pnpm run test:ci && changeset publish", "test:semantic-release": "node scripts/test-semantic-release.js", "release:dry-run": "npx semantic-release --dry-run", "// Build Rule Enforcement Scripts": "", "validate": "tsx scripts/build-validations.ts", "validate:env": "tsx scripts/env-validation.ts", "validate:security": "tsx scripts/security-check.ts", "validate:all": "pnpm run validate && pnpm run lint && pnpm run validate:env && pnpm run validate:security", "validate:commit": "tsx scripts/commit-validation.ts", "quality:metrics": "tsx scripts/quality-metrics.ts", "quality:report": "pnpm run quality:metrics && echo 'Quality metrics saved to quality-metrics.json'", "pre-commit": "lint-staged", "pre-push": "pnpm run validate:commit && pnpm run validate:env && pnpm run validate && pnpm run test:ci", "check:all": "pnpm run lint && pnpm run format --check && pnpm run validate && pnpm run validate:commit" }, "files": [ "dist", "!dist/**/*.test.*", "!dist/**/*.spec.*", "!dist/**/*.map", "docs/assets/dashboards/*.json", "docs-site/mcp-server/*.js", "docs-site/mcp-server/*.d.ts", "docs-site/static/search-index.json", "scripts/observability/*", "README.md", "CHANGELOG.md", "LICENSE" ], "sideEffects": [ "**/*.css" ], "svelte": "./dist/index.js", "types": "./dist/index.d.ts", "type": "module", "main": "./dist/index.js", "bin": { "neurolink": "./dist/cli/index.js" }, "exports": { ".": { "types": "./dist/index.d.ts", "svelte": "./dist/index.js", "import": "./dist/index.js", "default": "./dist/index.js" }, "./client": { "types": "./dist/client/index.d.ts", "import": "./dist/client/index.js", "default": "./dist/client/index.js" }, "./types": { "types": "./dist/types/sdk.d.ts", "import": "./dist/types/sdk.js", "default": "./dist/types/sdk.js" }, "./package.json": "./package.json", "./cli": { "types": "./dist/cli/index.d.ts", "import": "./dist/cli/index.js", "default": "./dist/cli/index.js" }, "./server": { "types": "./dist/server/index.d.ts", "import": "./dist/server/index.js", "default": "./dist/server/index.js" }, "./browser": { "types": "./dist/index.d.ts", "import": "./dist/browser/neurolink.min.js", "default": "./dist/browser/neurolink.min.js" } }, "dependencies": { "@ai-sdk/anthropic": "^3.0.50", "@ai-sdk/azure": "^3.0.38", "@ai-sdk/mistral": "^3.0.21", "@ai-sdk/openai": "^3.0.37", "@ai-sdk/openai-compatible": "^2.0.41", "@ai-sdk/provider": "^3.0.8", "@anthropic-ai/vertex-sdk": "^0.16.0", "@aws-sdk/client-bedrock": "^3.1000.0", "@aws-sdk/client-bedrock-runtime": "^3.1000.0", "@aws-sdk/client-sagemaker-runtime": "^3.1000.0", "@aws-sdk/credential-provider-node": "^3.886.0", "@aws-sdk/types": "^3.862.0", "@google-cloud/text-to-speech": "^6.4.0", "@google-cloud/vertexai": "^1.10.0", "@google/genai": "^1.43.0", "@huggingface/inference": "^4.13.14", "@modelcontextprotocol/sdk": "^1.27.1", "@openrouter/ai-sdk-provider": "^2.2.3", "@opentelemetry/api-logs": "^0.214.0", "@opentelemetry/context-async-hooks": "^2.6.1", "@opentelemetry/core": "^2.6.0", "@opentelemetry/exporter-logs-otlp-http": "^0.214.0", "@opentelemetry/exporter-metrics-otlp-http": "^0.214.0", "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", "@opentelemetry/resources": "^2.6.0", "@opentelemetry/sdk-logs": "^0.214.0", "@opentelemetry/sdk-metrics": "^2.6.1", "@opentelemetry/sdk-trace-base": "^2.6.0", "@opentelemetry/semantic-conventions": "^1.40.0", "adm-zip": "^0.5.16", "ai": "^6.0.134", "chalk": "^5.6.2", "croner": "^9.1.0", "csv-parser": "^3.2.0", "dotenv": "^17.3.1", "google-auth-library": "^10.6.1", "hono": "^4.12.3", "inquirer": "^13.3.0", "jose": "^6.1.3", "json-schema-to-zod": "^2.7.0", "nanoid": "^5.1.5", "ollama-ai-provider": "^1.2.0", "open": "^11.0.0", "ora": "^9.3.0", "p-limit": "^7.3.0", "redis": "^5.11.0", "tar-stream": "^3.1.8", "undici": ">=7.22.0", "ws": "^8.19.0", "yargs": "^18.0.0", "zod": "^4.3.6", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@juspay/hippocampus": ">=0.1.4", "@opentelemetry/api": "^1.9.0", "@opentelemetry/sdk-trace-node": "^2.0.0", "react": ">=18.0.0", "react-dom": ">=18.0.0" }, "peerDependenciesMeta": { "@juspay/hippocampus": { "optional": true }, "react": { "optional": true }, "react-dom": { "optional": true } }, "optionalDependencies": { "@aws-sdk/client-sagemaker": "^3.1000.0", "@fastify/cors": "^11.2.0", "@fastify/rate-limit": "^10.3.0", "@hono/node-server": "^1.19.9", "@koa/cors": "^5.0.0", "@koa/router": "^15.3.1", "@langfuse/otel": "^5.0.1", "@picovoice/cobra-node": "^3.0.2", "bullmq": "^5.52.2", "cors": "^2.8.5", "exceljs": "^4.4.0", "express": "^5.1.0", "express-rate-limit": "^8.2.1", "fastify": "^5.7.2", "ffmpeg-static": "^5.3.0", "fluent-ffmpeg": "^2.1.3", "koa": "^3.1.1", "koa-bodyparser": "^4.4.1", "mammoth": "^1.11.0", "mediabunny": "^1.40.1", "music-metadata": "^11.11.2", "pdf-parse": "^2.4.5", "pdf-to-img": "^5.0.0", "pptxgenjs": "^4.0.1", "sharp": "^0.34.5" }, "devDependencies": { "@actions/core": "^3.0.0", "@actions/exec": "^3.0.0", "@actions/github": "^9.0.0", "@biomejs/biome": "^2.4.4", "@changesets/changelog-github": "^0.6.0", "@changesets/cli": "^2.29.8", "@eslint/js": "^10.0.1", "@opentelemetry/api": "^1.9.0", "@opentelemetry/sdk-trace-base": "^2.6.0", "@opentelemetry/sdk-trace-node": "^2.6.0", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^12.0.6", "@semantic-release/npm": "^13.1.4", "@semantic-release/release-notes-generator": "^14.1.0", "@smithy/types": "^4.13.0", "@sveltejs/adapter-auto": "^7.0.1", "@sveltejs/kit": "^2.53.4", "@sveltejs/package": "^2.5.7", "@sveltejs/vite-plugin-svelte": "^7.0.0", "@types/adm-zip": "^0.5.7", "@types/cors": "^2.8.19", "@types/express": "^5.0.6", "@types/fluent-ffmpeg": "^2.1.28", "@juspay/hippocampus": "^0.1.6", "@types/inquirer": "^9.0.9", "@types/js-yaml": "^4.0.9", "@types/koa": "^3.0.1", "@types/koa-bodyparser": "^4.3.13", "@types/koa__cors": "^5.0.1", "@types/node": "^25.3.3", "@types/react": "^19.2.10", "@types/tar-stream": "^3.1.4", "@types/ws": "^8.18.1", "@types/yargs": "^17.0.35", "@typescript-eslint/eslint-plugin": "^8.57.2", "@typescript-eslint/parser": "^8.57.2", "@vercel/ncc": "^0.38.4", "@vitest/coverage-v8": "^4.1.0", "concurrently": "^9.2.1", "conventional-changelog-conventionalcommits": "^9.1.0", "esbuild": "^0.27.4", "eslint": "^10.0.2", "husky": "^9.1.7", "js-yaml": "^4.1.1", "lint-staged": "^16.3.0", "playwright": "^1.58.2", "prettier": "^3.8.1", "publint": "^0.3.17", "puppeteer": "^24.37.5", "react": "^19.2.4", "react-dom": "^19.2.4", "semantic-release": "^25.0.3", "shell-quote": "^1.8.3", "svelte": "^5.53.6", "svelte-check": "^4.4.4", "ts-morph": "^24.0.0", "tslib": "^2.8.1", "tsx": "^4.21.0", "typedoc": "^0.28.17", "typedoc-plugin-markdown": "^4.10.0", "typescript": "^5.9.3", "vite": "^8.0.1", "vitest": "^4.1.0", "why-is-node-running": "^3.2.2" }, "keywords": [ "ai", "llm", "mcp", "model-context-protocol", "lighthouse", "tool-orchestration", "ai-platform", "openai", "anthropic", "google", "bedrock", "vertex", "azure", "mistral", "ollama", "huggingface", "litellm", "openrouter", "deepseek", "nvidia-nim", "lm-studio", "llama-cpp", "tts", "stt", "voice", "realtime", "elevenlabs", "deepgram", "whisper", "azure-speech", "rag", "streaming", "tools", "neurolink", "juspay", "svelte", "chatgpt", "gpt-4", "claude", "gemini", "gemini-3", "ai-sdk", "typescript", "cli-tool", "developer-tools", "automation", "machine-learning", "artificial-intelligence", "multi-provider", "ai-agents", "prompt-engineering", "ai-workflow", "universal-ai", "ai-development", "llm-integration" ], "pnpm": { "onlyBuiltDependencies": [ "esbuild", "protobufjs", "puppeteer", "sqlite3", "ffmpeg-static", "sharp" ], "overrides": { "esbuild@<=0.24.2": ">=0.25.0", "cookie@<0.7.0": ">=0.7.0", "@eslint/plugin-kit@<0.3.4": ">=0.3.4", "tmp@<=0.2.3": ">=0.2.4", "axios@<1.13.5": ">=1.13.5", "glob@>=10.3.7 <=11.0.3": ">=11.1.0", "@semantic-release/npm": "^13.1.4", "@opentelemetry/sdk-trace-base": "^2.6.0", "@opentelemetry/sdk-trace-node": "^2.6.0", "jws@<4.0.1": ">=4.0.1", "tar@<7.5.8": ">=7.5.8", "qs@<6.14.2": ">=6.14.2", "minimatch@>=10.0.0 <10.2.3": ">=10.2.3", "minimatch@>=9.0.0 <9.0.7": ">=9.0.7", "typedoc>minimatch": ">=10.2.3", "minimatch@>=5.0.0 <5.1.8": ">=5.1.8", "minimatch@>=3.0.0 <3.1.4": ">=3.1.4", "fast-xml-parser@>=5.0.0 <5.3.8": ">=5.3.8", "lodash@<4.17.23": ">=4.17.23", "lodash-es@<4.17.23": ">=4.17.23", "undici@>=7.0.0 <7.22.0": ">=7.22.0", "undici@>=6.0.0 <6.23.0": ">=6.23.0", "undici@<5.29.0": ">=5.29.0", "js-yaml@>=4.0.0 <4.1.1": ">=4.1.1", "js-yaml@>=3.0.0 <3.14.2": ">=3.14.2", "markdown-it@<14.1.1": ">=14.1.1", "ajv@>=8.0.0 <8.18.0": ">=8.18.0", "@xmldom/xmldom@<0.8.12": ">=0.8.12", "rollup@>=4.0.0 <4.59.0": ">=4.59.0" } }, "os": [ "darwin", "linux", "win32" ], "prettier": { "tabWidth": 2, "useTabs": false, "proseWrap": "preserve" }, "lint-staged": { "src/**/*.{ts,tsx}": [ "eslint --fix --max-warnings=50", "prettier --write" ], "test/**/*.{ts,tsx}": [ "eslint --fix --max-warnings=0", "prettier --write" ], "*.{json,md}": [ "prettier --write" ] } }