From f957c12a4130a8a1b6ff1e02a1ccf4637f40dfbe Mon Sep 17 00:00:00 2001 From: Kushagra Agarwal Date: Tue, 3 Feb 2026 22:51:15 +0530 Subject: [PATCH 1/2] Link @leanmcp/apps -> @leanmcp/ui --- packages/apps/package.json | 79 +++++++++++++++++++++++++++++++++++++ packages/apps/src/index.ts | 1 + packages/apps/src/server.ts | 1 + packages/apps/styles.css | 1 + packages/apps/tsconfig.json | 18 +++++++++ 5 files changed, 100 insertions(+) create mode 100644 packages/apps/package.json create mode 100644 packages/apps/src/index.ts create mode 100644 packages/apps/src/server.ts create mode 100644 packages/apps/styles.css create mode 100644 packages/apps/tsconfig.json diff --git a/packages/apps/package.json b/packages/apps/package.json new file mode 100644 index 0000000..33d411b --- /dev/null +++ b/packages/apps/package.json @@ -0,0 +1,79 @@ +{ + "name": "@leanmcp/apps", + "version": "0.3.7", + "description": "MCP Apps SDK - Re-exports @leanmcp/ui for building MCP Apps", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./client": { + "types": "./dist/index.d.ts", + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./server": { + "types": "./dist/server.d.ts", + "require": "./dist/server.js", + "import": "./dist/server.mjs" + }, + "./styles.css": { + "default": "./styles.css" + } + }, + "sideEffects": [ + "*.css" + ], + "files": [ + "dist", + "styles.css", + "README.md", + "LICENSE" + ], + "scripts": { + "build": "tsup src/index.ts src/server.ts --format esm,cjs --dts", + "dev": "tsup src/index.ts src/server.ts --format esm,cjs --dts --watch", + "test": "jest --passWithNoTests", + "clean": "rm -rf dist" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "dependencies": { + "@leanmcp/ui": "*" + }, + "devDependencies": { + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", + "react": "^18.3.0", + "react-dom": "^18.3.0", + "tsup": "^8.5.1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/LeanMCP/leanmcp-sdk.git", + "directory": "packages/apps" + }, + "homepage": "https://github.com/LeanMCP/leanmcp-sdk#readme", + "bugs": { + "url": "https://github.com/LeanMCP/leanmcp-sdk/issues" + }, + "keywords": [ + "mcp", + "mcp-apps", + "model-context-protocol", + "react", + "ui", + "components" + ], + "author": "LeanMCP ", + "license": "MIT", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/apps/src/index.ts b/packages/apps/src/index.ts new file mode 100644 index 0000000..21b4396 --- /dev/null +++ b/packages/apps/src/index.ts @@ -0,0 +1 @@ +export * from '@leanmcp/ui'; diff --git a/packages/apps/src/server.ts b/packages/apps/src/server.ts new file mode 100644 index 0000000..521cfa2 --- /dev/null +++ b/packages/apps/src/server.ts @@ -0,0 +1 @@ +export * from '@leanmcp/ui/server'; diff --git a/packages/apps/styles.css b/packages/apps/styles.css new file mode 100644 index 0000000..3e6a2bb --- /dev/null +++ b/packages/apps/styles.css @@ -0,0 +1 @@ +@import '@leanmcp/ui/styles.css'; diff --git a/packages/apps/tsconfig.json b/packages/apps/tsconfig.json new file mode 100644 index 0000000..a234467 --- /dev/null +++ b/packages/apps/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "bundler", + "declaration": true, + "declarationMap": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "dist", + "rootDir": "src", + "jsx": "react-jsx" + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} From a7309995c299c0957eb111f97ff2e08f5382387f Mon Sep 17 00:00:00 2001 From: Kushagra Agarwal Date: Tue, 3 Feb 2026 22:53:19 +0530 Subject: [PATCH 2/2] Update package-lock.json --- package-lock.json | 538 +++++++++++++++++++++++++++++++--------------- 1 file changed, 369 insertions(+), 169 deletions(-) diff --git a/package-lock.json b/package-lock.json index bad635e..92dbb8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -955,21 +955,356 @@ "examples/github-roast": { "version": "1.0.0", "dependencies": { - "@leanmcp/auth": "^0.4.0", - "@leanmcp/core": "^0.3.16", - "@leanmcp/ui": "*", + "@leanmcp/auth": "^0.4.5", + "@leanmcp/core": "^0.4.7", + "@leanmcp/ui": "^0.3.8", "dotenv": "^17.2.3", "openai": "^4.20.0" }, "devDependencies": { - "@leanmcp/cli": "^0.4.0", + "@leanmcp/cli": "^0.5.5", "@types/node": "^20.0.0", "@types/react": "^18.0.0", "tsx": "^4.20.3", "typescript": "^5.6.3" } }, - "examples/github-roast/node_modules/@leanmcp/cli": { + "examples/github-roast/node_modules/@leanmcp/auth": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@leanmcp/auth/-/auth-0.4.5.tgz", + "integrity": "sha512-MbLu9fRe0rOIFFAscknPOK4Yllgjtvp3v/7sY54MoEjxwUAJ+WInGargeLmBmXXCq3SCv05Da6ModRI72AfATg==", + "license": "MIT", + "dependencies": { + "@leanmcp/core": "^0.3.0", + "reflect-metadata": "^0.2.1" + }, + "peerDependencies": { + "@aws-sdk/client-cognito-identity-provider": "^3.0.0", + "@leanmcp/env-injection": "^0.1.0", + "axios": "^1.0.0", + "express": "^5.0.0", + "jsonwebtoken": "^9.0.0", + "jwk-to-pem": "^2.0.0", + "keytar": "^7.0.0", + "open": "^10.0.0" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-cognito-identity-provider": { + "optional": true + }, + "@leanmcp/env-injection": { + "optional": true + }, + "axios": { + "optional": true + }, + "jsonwebtoken": { + "optional": true + }, + "jwk-to-pem": { + "optional": true + }, + "keytar": { + "optional": true + }, + "open": { + "optional": true + } + } + }, + "examples/github-roast/node_modules/@leanmcp/core/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "examples/github-roast/node_modules/@leanmcp/ui": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@leanmcp/ui/-/ui-0.3.8.tgz", + "integrity": "sha512-B8dxUrPLCCflcc5h5aWQOURBSR4HDuIafy03hfNxUfDmQI7iBKuNaqtPYB9x0lYgXwwtxlmwnaprrxGV6f3+fw==", + "license": "MIT", + "dependencies": { + "@hookform/resolvers": "^5.2.2", + "@modelcontextprotocol/ext-apps": "^0.2.2", + "@modelcontextprotocol/sdk": "^1.23.0", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slider": "^1.3.6", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-tooltip": "^1.2.8", + "@tanstack/react-table": "^8.20.6", + "autoprefixer": "^10.4.23", + "chart.js": "^4.4.7", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "lucide-react": "^0.561.0", + "next-themes": "^0.4.6", + "postcss": "^8.5.6", + "prism-react-renderer": "^2.4.1", + "react-chartjs-2": "^5.3.0", + "react-hook-form": "^7.68.0", + "reflect-metadata": "^0.2.2", + "sonner": "^2.0.7", + "tailwind-merge": "^3.4.0", + "tailwindcss": "^3.4.17", + "tailwindcss-animate": "^1.0.7", + "zod": "^4.2.1" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "examples/github-roast/node_modules/@leanmcp/ui/node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "examples/github-roast/node_modules/@modelcontextprotocol/ext-apps": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/ext-apps/-/ext-apps-0.2.2.tgz", + "integrity": "sha512-h8sN3QIBLqMsRXjKL76M5VmBQf3N0I1G1DiDiSYAgtdynYQctHqCs79WEo1d5wClyZVYBWXdRcxgiR/WBfSOqw==", + "hasInstallScript": true, + "license": "MIT", + "workspaces": [ + "examples/*" + ], + "dependencies": { + "prettier": "^3.6.2" + }, + "optionalDependencies": { + "@oven/bun-darwin-aarch64": "^1.2.21", + "@oven/bun-darwin-x64": "^1.2.21", + "@oven/bun-darwin-x64-baseline": "^1.2.21", + "@oven/bun-linux-aarch64": "^1.2.21", + "@oven/bun-linux-aarch64-musl": "^1.2.21", + "@oven/bun-linux-x64": "^1.2.21", + "@oven/bun-linux-x64-baseline": "^1.2.21", + "@oven/bun-linux-x64-musl": "^1.2.21", + "@oven/bun-linux-x64-musl-baseline": "^1.2.21", + "@oven/bun-windows-x64": "^1.2.21", + "@oven/bun-windows-x64-baseline": "^1.2.21", + "@rollup/rollup-darwin-arm64": "^4.53.3", + "@rollup/rollup-darwin-x64": "^4.53.3", + "@rollup/rollup-linux-arm64-gnu": "^4.53.3", + "@rollup/rollup-linux-x64-gnu": "^4.53.3", + "@rollup/rollup-win32-x64-msvc": "^4.53.3" + }, + "peerDependencies": { + "@modelcontextprotocol/sdk": "^1.24.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0", + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "examples/github-roast/node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "examples/github-roast/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "examples/github-roast/node_modules/openai": { + "version": "4.104.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz", + "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "examples/github-roast/node_modules/openai/node_modules/@types/node": { + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "examples/github-roast/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "examples/github-roast/node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "examples/github-roast/node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "examples/github-roast/node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "examples/github-roast/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "examples/github-roast/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "examples/gpt-slack": { + "version": "1.0.0", + "dependencies": { + "@leanmcp/core": "^0.3.10", + "@leanmcp/ui": "*", + "@slack/web-api": "^7.13.0", + "dotenv": "^17.2.3", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "devDependencies": { + "@leanmcp/cli": "^0.4.0", + "@types/node": "^20.0.0", + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", + "typescript": "^5.6.3" + } + }, + "examples/gpt-slack/node_modules/@leanmcp/cli": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/@leanmcp/cli/-/cli-0.4.5.tgz", "integrity": "sha512-Sn5zi0VrnJpiwoSIcbDszfWdbk4YyyAoC6vMDT9xzMUZL8AYAo2qPIVWleZocqYLzzLLWf1bWHjIJ2Xb9KNhMA==", @@ -995,7 +1330,7 @@ "leanmcp": "bin/leanmcp.js" } }, - "examples/github-roast/node_modules/@leanmcp/core": { + "examples/gpt-slack/node_modules/@leanmcp/core": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/@leanmcp/core/-/core-0.3.19.tgz", "integrity": "sha512-67VWhhOcX3xvO6AseFAlrBBUYNrKurf2Dt6fRY90UznVeH+cYeByAZ/1LcfQYgeGJIxQWOAXQ3FRtD7KdgN+RA==", @@ -1024,7 +1359,7 @@ } } }, - "examples/github-roast/node_modules/@leanmcp/core/node_modules/dotenv": { + "examples/gpt-slack/node_modules/@leanmcp/core/node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", @@ -1036,7 +1371,7 @@ "url": "https://dotenvx.com" } }, - "examples/github-roast/node_modules/chalk": { + "examples/gpt-slack/node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", @@ -1049,7 +1384,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "examples/github-roast/node_modules/dotenv": { + "examples/gpt-slack/node_modules/dotenv": { "version": "17.2.3", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", @@ -1061,7 +1396,7 @@ "url": "https://dotenvx.com" } }, - "examples/github-roast/node_modules/glob": { + "examples/gpt-slack/node_modules/glob": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", @@ -1085,7 +1420,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "examples/github-roast/node_modules/jiti": { + "examples/gpt-slack/node_modules/jiti": { "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", @@ -1095,7 +1430,7 @@ "jiti": "bin/jiti.js" } }, - "examples/github-roast/node_modules/minimatch": { + "examples/gpt-slack/node_modules/minimatch": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", @@ -1111,46 +1446,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "examples/github-roast/node_modules/openai": { - "version": "4.104.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz", - "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.4", - "abort-controller": "^3.0.0", - "agentkeepalive": "^4.2.1", - "form-data-encoder": "1.7.2", - "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7" - }, - "bin": { - "openai": "bin/cli" - }, - "peerDependencies": { - "ws": "^8.18.0", - "zod": "^3.23.8" - }, - "peerDependenciesMeta": { - "ws": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "examples/github-roast/node_modules/openai/node_modules/@types/node": { - "version": "18.19.130", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", - "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "examples/github-roast/node_modules/readdirp": { + "examples/gpt-slack/node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", @@ -1163,7 +1459,7 @@ "node": ">=8.10.0" } }, - "examples/github-roast/node_modules/tailwindcss": { + "examples/gpt-slack/node_modules/tailwindcss": { "version": "3.4.19", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", @@ -1201,7 +1497,7 @@ "node": ">=14.0.0" } }, - "examples/github-roast/node_modules/tailwindcss/node_modules/chokidar": { + "examples/gpt-slack/node_modules/tailwindcss/node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", @@ -1226,7 +1522,7 @@ "fsevents": "~2.3.2" } }, - "examples/github-roast/node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "examples/gpt-slack/node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", @@ -1239,42 +1535,6 @@ "node": ">= 6" } }, - "examples/github-roast/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "license": "MIT" - }, - "examples/github-roast/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "examples/gpt-slack": { - "version": "1.0.0", - "extraneous": true, - "dependencies": { - "@leanmcp/core": "^0.3.10", - "@leanmcp/ui": "*", - "@slack/web-api": "^7.13.0", - "dotenv": "^17.2.3", - "react": "^18.3.0", - "react-dom": "^18.3.0" - }, - "devDependencies": { - "@leanmcp/cli": "^0.4.0", - "@types/node": "^20.0.0", - "@types/react": "^18.3.0", - "@types/react-dom": "^18.3.0", - "typescript": "^5.6.3" - } - }, "examples/leanmcp-auth": { "version": "1.0.0", "dependencies": { @@ -6263,8 +6523,8 @@ "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", "license": "MIT" }, - "node_modules/@leanmcp/auth": { - "resolved": "packages/auth", + "node_modules/@leanmcp/apps": { + "resolved": "packages/apps", "link": true }, "node_modules/@leanmcp/cli": { @@ -6279,10 +6539,6 @@ "resolved": "packages/elicitation", "link": true }, - "node_modules/@leanmcp/env-injection": { - "resolved": "packages/env-injection", - "link": true - }, "node_modules/@leanmcp/ui": { "resolved": "packages/ui", "link": true @@ -11642,6 +11898,10 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gpt-slack": { + "resolved": "examples/gpt-slack", + "link": true + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -17047,75 +17307,28 @@ "zod": "^3.25 || ^4" } }, - "packages/auth": { - "name": "@leanmcp/auth", - "version": "0.4.4", + "packages/apps": { + "name": "@leanmcp/apps", + "version": "0.3.7", "license": "MIT", "dependencies": { - "@leanmcp/core": "^0.4.0", - "reflect-metadata": "^0.2.1" + "@leanmcp/ui": "*" }, "devDependencies": { - "@leanmcp/env-injection": "^0.1.0", - "@types/jest": "^29.5.0", - "@types/jsonwebtoken": "^9.0.10", - "@types/jwk-to-pem": "^2.0.3", - "@types/node": "^20.0.0", - "dotenv": "^17.2.3", - "express": "^5.0.0", - "jest": "^29.7.0", - "ts-jest": "^29.1.0" + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", + "react": "^18.3.0", + "react-dom": "^18.3.0", + "tsup": "^8.5.1" }, "peerDependencies": { - "@aws-sdk/client-cognito-identity-provider": "^3.0.0", - "@leanmcp/env-injection": "^0.1.0", - "axios": "^1.0.0", - "express": "^5.0.0", - "jsonwebtoken": "^9.0.0", - "jwk-to-pem": "^2.0.0", - "keytar": "^7.0.0", - "open": "^10.0.0" - }, - "peerDependenciesMeta": { - "@aws-sdk/client-cognito-identity-provider": { - "optional": true - }, - "@leanmcp/env-injection": { - "optional": true - }, - "axios": { - "optional": true - }, - "jsonwebtoken": { - "optional": true - }, - "jwk-to-pem": { - "optional": true - }, - "keytar": { - "optional": true - }, - "open": { - "optional": true - } - } - }, - "packages/auth/node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "packages/cli": { "name": "@leanmcp/cli", - "version": "0.5.5", + "version": "0.5.9", "license": "MIT", "dependencies": { "@inquirer/prompts": "^7.0.1", @@ -17920,19 +18133,6 @@ "@leanmcp/core": "*" } }, - "packages/env-injection": { - "name": "@leanmcp/env-injection", - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "reflect-metadata": "^0.2.1" - }, - "devDependencies": { - "@types/node": "^20.0.0", - "tsup": "^8.0.0", - "typescript": "^5.0.0" - } - }, "packages/leanmcp": { "version": "0.3.6", "license": "MIT",