@balajsaleem/criterion
BMCP server package criterion
Install
agr install @balajsaleem/criterion --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "criterion", "version": "1.0.0", "private": true, "description": "Islamic Da'i chatbot with Quran RAG (Retrieval Augmented Generation)", "scripts": { "dev": "next dev --turbo", "build": "tsx lib/db/migrate && next build", "start": "next start", "lint": "npx ultracite@latest check", "format": "npx ultracite@latest fix", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts", "db:studio": "drizzle-kit studio", "db:push": "drizzle-kit push", "db:pull": "drizzle-kit pull", "db:check": "drizzle-kit check", "db:up": "drizzle-kit up", "db:enable-pgvector": "npx tsx scripts/enable-pgvector.ts", "data:quran": "npx tsx scripts/data-quran.ts", "clear:quran": "npx tsx scripts/clear-quran-data.ts", "ingest:quran": "npx tsx scripts/ingest-quran.ts", "ingest:quran:slovak": "npx tsx scripts/ingest-quran-slovak.ts", "reembed:quran": "npx tsx scripts/reembed-quran.ts", "update:quran:sahih": "npx tsx scripts/update-quran-sahih-international.ts", "verify:quran:sahih": "npx tsx scripts/verify-sahih-international.ts", "test:quran": "npx tsx scripts/test-quran-search.ts", "test:multilingual": "npx tsx scripts/test-multilingual-queries.ts", "test:embeddings": "npx tsx scripts/test-embeddings-comparison.ts", "clear:hadith": "npx tsx scripts/clear-hadith-data.ts", "ingest:hadith": "npx tsx scripts/ingest-hadith.ts", "reembed:hadith": "npx tsx scripts/reembed-hadith.ts", "test": "export PLAYWRIGHT=True && pnpm exec playwright test" }, "dependencies": { "@ai-sdk/gateway": "^3.0.39", "@ai-sdk/google": "^3.0.22", "@ai-sdk/openai": "^3.0.26", "@ai-sdk/provider": "^3.0.8", "@ai-sdk/react": "^3.0.79", "@modelcontextprotocol/sdk": "1.24.0", "@next/third-parties": "^16.0.1", "@opentelemetry/api": "^1.9.0", "@opentelemetry/api-logs": "^0.200.0", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-use-controllable-state": "^1.2.2", "@radix-ui/react-visually-hidden": "^1.1.0", "@vercel/analytics": "^1.5.0", "@vercel/blob": "^0.24.1", "@vercel/functions": "^2.0.0", "@vercel/otel": "^1.12.0", "@vercel/postgres": "^0.10.0", "ai": "^6.0.77", "bcrypt-ts": "^5.0.2", "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", "clsx": "^2.1.1", "codemirror": "^6.0.1", "date-fns": "^4.1.0", "dotenv": "^16.4.5", "drizzle-orm": "^0.34.0", "embla-carousel-react": "^8.6.0", "fast-deep-equal": "^3.1.3", "framer-motion": "^11.3.19", "geist": "^1.3.1", "lucide-react": "^0.446.0", "mcp-handler": "^1.0.4", "nanoid": "^5.0.8", "next": "^16.1.0", "next-auth": "5.0.0-beta.25", "next-intl": "^4.8.3", "next-themes": "^0.3.0", "postgres": "^3.4.4", "radix-ui": "^1.4.3", "react": "19.0.0-rc-45804af1-20241021", "react-dom": "19.0.0-rc-45804af1-20241021", "react-resizable-panels": "^2.1.7", "redis": "^5.0.0", "resumable-stream": "^2.0.0", "server-only": "^0.0.1", "shiki": "^3.15.0", "sonner": "^1.5.0", "streamdown": "^1.3.0", "swr": "^2.2.5", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", "tokenlens": "1.3.0", "use-stick-to-bottom": "^1.1.1", "usehooks-ts": "^3.1.0", "zod": "^3.25.76" }, "devDependencies": { "@biomejs/biome": "2.2.2", "@playwright/test": "^1.50.1", "@tailwindcss/postcss": "^4.1.13", "@tailwindcss/typography": "^0.5.15", "@types/d3-scale": "^4.0.8", "@types/node": "^22.8.6", "@types/pdf-parse": "^1.1.4", "@types/react": "^18", "@types/react-dom": "^18", "drizzle-kit": "^0.25.0", "postcss": "^8", "tailwindcss": "^4.1.13", "tsx": "^4.19.1", "typescript": "^5.6.3", "ultracite": "5.3.9" }, "packageManager": "pnpm@10.29.1" }
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- warnLicenseno SPDX license detected
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-a14074e96a9c2026-08-06