← Browse

@liveloveapp/source

B

MCP server package @hashbrownai/source

mcp_servermcp

Install

agr install @liveloveapp/source --target claude

This artifact does not publish files for Claude.

Document

{ "name": "@hashbrownai/source", "version": "0.1.0", "license": "MIT", "author": "LiveLoveApp hello@liveloveapp.com", "keywords": [ "ai", "angular", "react", "hashbrown" ], "scripts": { "build": "npx nx run-many -t build", "www": "npx nx serve www", "www-full": "npx nx run www:collect-docs && npx nx serve www", "clean": "git clean -xdf", "lint": "npx nx run-many -t lint", "prepare": "husky install", "test": "npx nx run-many -t test", "docs:translate": "npx tsx www/src/tools/translate-docs.ts", "docs:review": "npx tsx www/src/tools/review-docs.ts", "docs:draft": "npx tsx www/src/tools/create-rough-draft.ts" }, "lint-staged": { ".ts": [ "nx run-many -t lint -- --fix=true", "prettier --write" ], ".{html,scss,js,json}": [ "prettier --write" ] }, "dependencies": { "@analogjs/content": "^2.6.2", "@analogjs/router": "^2.6.2", "@angular-architects/ngrx-toolkit": "^20.7.0", "@angular/animations": "^20.3.25", "@angular/cdk": "^20.2.14", "@angular/common": "^20.3.25", "@angular/compiler": "^20.3.25", "@angular/core": "^20.3.25", "@angular/elements": "^20.3.25", "@angular/forms": "^20.3.25", "@angular/material": "^20.2.14", "@angular/platform-browser": "^20.3.25", "@angular/platform-browser-dynamic": "^20.3.25", "@angular/platform-server": "^20.3.25", "@angular/router": "^20.3.25", "@google/genai": "^1.52.0", "@jitl/quickjs-singlefile-browser-debug-asyncify": "0.31.0", "@ngrx/effects": "^20.1.0", "@ngrx/entity": "^20.1.0", "@ngrx/signals": "^20.1.0", "@ngrx/store": "^20.1.0", "@spotify/web-api-ts-sdk": "^1.2.0", "@stackblitz/sdk": "^1.11.1", "arktype": "^2.2.2", "express": "^4.22.2", "firebase": "^11.10.0", "front-matter": "^4.0.2", "genius-lyrics": "^4.4.7", "highlight.js": "^11.11.1", "marked": "^15.0.12", "marked-gfm-heading-id": "^4.1.4", "marked-highlight": "^2.2.4", "marked-mangle": "^1.1.13", "marked-shiki": "^1.2.1", "mermaid": "^10.9.6", "ngrx-toolkit": "^0.1.0", "ngx-markdown": "^20.1.0", "ollama": "^0.5.18", "quickjs-emscripten-core": "0.31.0", "react": "18.3.1", "react-dom": "18.3.1", "rxjs": "~7.8.2", "sanitize-html": "^2.17.5", "tslib": "^2.8.1", "zod": "^3.25.76", "zod-to-json-schema": "^3.25.2", "zone.js": "~0.15.1" }, "devDependencies": { "@analogjs/platform": "^2.6.2", "@analogjs/vite-plugin-angular": "^2.6.2", "@analogjs/vitest-angular": "^2.6.2", "@angular-devkit/build-angular": "^20.3.31", "@angular-devkit/core": "^20.3.31", "@angular-devkit/schematics": "^20.3.31", "@angular-eslint/eslint-plugin": "^19.8.1", "@angular-eslint/eslint-plugin-template": "^19.8.1", "@angular-eslint/template-parser": "^19.8.1", "@angular/build": "^20.3.31", "@angular/compiler-cli": "^20.3.25", "@angular/ssr": "^20.3.31", "@anthropic-ai/sdk": "^0.24.3", "@aws-sdk/client-bedrock-runtime": "^3.1079.0", "@babel/core": "^7.29.7", "@babel/preset-react": "^7.29.7", "@copilotkit/aimock": "^1.35.1", "@eslint/js": "^9.39.4", "@faker-js/faker": "^9.9.0", "@microsoft/api-extractor": "^7.58.9", "@microsoft/tsdoc": "^0.15.1", "@modelcontextprotocol/sdk": "^1.29.0", "@ngrx/store-devtools": "^20.1.0", "@nx/angular": "^21.6.11", "@nx/devkit": "^21.6.11", "@nx/esbuild": "21.5.2", "@nx/eslint": "^21.6.11", "@nx/eslint-plugin": "^21.6.11", "@nx/jest": "^21.6.11", "@nx/js": "21.5.2", "@nx/node": "21.5.2", "@nx/react": "^21.6.11", "@nx/rollup": "^21.6.11", "@nx/storybook": "^21.6.11", "@nx/vite": "^22.7.6", "@nx/web": "^21.6.11", "@nx/workspace": "^21.6.11", "@openapi-contrib/json-schema-to-openapi-schema": "^3.0.3", "@radix-ui/react-checkbox": "^1.3.6", "@radix-ui/react-dialog": "^1.1.18", "@radix-ui/react-label": "^2.1.11", "@radix-ui/react-navigation-menu": "^1.2.17", "@radix-ui/react-popover": "^1.1.18", "@radix-ui/react-scroll-area": "^1.2.13", "@radix-ui/react-select": "^2.3.2", "@radix-ui/react-slider": "^1.4.2", "@radix-ui/react-slot": "^1.3.0", "@radix-ui/react-switch": "^1.3.2", "@radix-ui/react-toast": "^1.2.18", "@schematics/angular": "^20.3.31", "@swc-node/register": "~1.9.2", "@swc/cli": "~0.7.10", "@swc/core": "~1.13.5", "@swc/helpers": "~0.5.23", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "16.1.0", "@types/aws-lambda": "^8.10.162", "@types/cors": "^2.8.19", "@types/express": "^4.17.25", "@types/jest": "^29.5.14", "@types/json-schema": "^7.0.15", "@types/node": "20.19.9", "@types/react": "18.3.1", "@types/react-dom": "18.3.0", "@types/sanitize-html": "^2.16.1", "@typescript-eslint/eslint-plugin": "^8.62.1", "@typescript-eslint/parser": "^8.62.1", "@typescript-eslint/utils": "^8.62.1", "@vitejs/plugin-react": "^4.7.0", "@vitest/coverage-v8": "^3.2.7", "@vitest/ui": "^3.2.7", "angular-eslint": "^19.8.1", "autoprefixer": "^10.5.2", "babel-jest": "^29.7.0", "chalk": "^5.6.2", "chart.js": "^4.5.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "cors": "^2.8.6", "date-fns": "^3.6.0", "dotenv": "^16.6.1", "esbuild": "^0.19.12", "eslint": "^9.39.4", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "6.10.1", "eslint-plugin-react": "7.35.0", "eslint-plugin-react-hooks": "5.0.0", "figma-squircle": "^1.1.0", "husky": "^9.1.7", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-environment-node": "^29.7.0", "jiti": "2.4.2", "jsdom": "^22.1.0", "jsonc-eslint-parser": "^2.4.2", "lint-staged": "^15.5.2", "lucide-react": "^0.488.0", "ng-packagr": "20.0.0", "nx": "^21.6.11", "nx-ignore": "^19.8.0", "openai": "^6.45.0", "portfinder": "^1.0.38", "postcss": "^8.5.16", "postcss-url": "~10.1.4", "prettier": "^3.9.4", "react-day-picker": "^8.10.2", "react-markdown": "^10.1.0", "react-router-dom": "6.30.4", "serverless": "^4.38.1", "serverless-esbuild": "^1.57.2", "serverless-offline": "^14.7.4", "serverless-prune-plugin": "^2.1.0", "shiki": "^1.29.2", "storybook": "^8.6.18", "tailwind-merge": "^3.6.0", "tailwindcss": "^3.4.19", "ts-jest": "^29.4.11", "ts-node": "10.9.1", "tsx": "^4.23.0", "typescript": "~5.8.3", "typescript-eslint": "^8.62.1", "uuid": "^11.1.1", "vaul": "^1.1.2", "verdaccio": "^6.7.4", "vite": "^7.3.6", "vite-plugin-dts": "~4.5.4", "vite-tsconfig-paths": "^4.3.2", "vitest": "^3.2.7", "writer-sdk": "^2.3.2", "zod-v4": "npm:zod@^4.4.3", "zustand": "^5.0.14" }, "optionalDependencies": { "@rollup/rollup-darwin-arm64": "4.50.0", "@rollup/rollup-darwin-x64": "4.50.0", "@rollup/rollup-linux-arm64-gnu": "4.50.0", "@rollup/rollup-linux-x64-gnu": "4.50.0", "@rollup/rollup-linux-x64-musl": "4.50.0" }, "nx": { "includedScripts": [] } }

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-d877aa8140082026-08-06