{ "name": "tokentrace", "version": "0.21.2", "mcpName": "io.github.abhiyoheswaran1/tokentrace", "description": "Local-first dashboard for AI CLI token, cost, and session analytics.", "author": { "name": "Abhi Yoheswaran", "url": "https://www.abhiyoheswaran.com" }, "type": "module", "homepage": "https://www.baseframelabs.com/apps/tokentrace", "repository": { "type": "git", "url": "git+https://github.com/abhiyoheswaran1/tokentrace.git" }, "bugs": { "url": "https://github.com/abhiyoheswaran1/tokentrace/issues" }, "bin": { "tokentrace": "bin/tokentrace.js" }, "files": [ "bin", "TOKENTRACE_AGENT.md", "llms.txt", "public", "!public/Baseframe-Labs-brand-assets", "app", "components", "docs/chatgpt-app", "docs/CHATGPT_APP_RELEASE.md", "docs/CHATGPT_APP_PROTOTYPE.md", "docs/agent-adoption.md", "docs/agent-discovery.schema.json", "docs/assets", "server.json", "CHANGELOG.md", "CONTRIBUTING.md", "SECURITY.md", "pricing", "src", "scripts", "dist", "fixtures", "next.config.mjs", "postcss.config.mjs", "tsconfig.json", "components.json", "README.md" ], "scripts": { "dev": "next dev", "build": "npm run build:app && npm run build:runtime", "build:app": "next build", "build:runtime": "node scripts/build-cli-runtime.mjs", "start": "next start", "scan": "tsx scripts/scan.ts", "db:migrate": "tsx scripts/db-migrate.ts", "db:seed": "tsx scripts/db-seed.ts", "screenshots:seed": "tsx scripts/seed-screenshot-data.ts", "pricing:refresh": "tsx scripts/pricing-refresh.ts", "reset": "tsx scripts/reset.ts", "test": "vitest run", "lint": "eslint .", "verify": "npm test && tsc --noEmit && npm run lint", "package:inspect": "node scripts/package-inspect.mjs", "release:notes": "node scripts/extract-release-notes.mjs", "release:chatgpt:check": "node scripts/chatgpt-app-release-check.mjs", "security:ioc": "node scripts/security-ioc.mjs", "security:package": "npm run package:inspect && npm audit --audit-level=moderate", "smoke:cli": "npm run build && node scripts/smoke-cli.mjs", "smoke:packed": "node scripts/smoke-packed-install.mjs", "package:test": "npm run verify && npm pack --dry-run", "release:check": "npm run package:test && npm run smoke:cli && npm run smoke:packed && npm run release:chatgpt:check && npm run security:ioc && npm run security:package && npm run projscan:doctor", "visual:smoke": "node scripts/visual-smoke.mjs", "browser:guard": "node scripts/browser-issue-guard.mjs", "projscan:doctor": "npx --yes projscan@latest doctor", "prepack": "npm run build:runtime", "coverage": "vitest run --coverage" }, "overrides": { "postcss": "^8.5.15" }, "engines": { "node": ">=20.9.0" }, "keywords": [ "tokens", "agents", "agent-discovery", "ai", "cli", "analytics", "codex", "claude", "local-first", "nextjs", "sqlite" ], "license": "MIT", "dependencies": { "@modelcontextprotocol/ext-apps": "^1.7.4", "@modelcontextprotocol/sdk": "^1.29.0", "@radix-ui/react-slot": "^1.1.1", "@tailwindcss/postcss": "^4.3.0", "@types/node": "^22.19.19", "@types/react": "^19.2.15", "better-sqlite3": "^12.10.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "drizzle-orm": "^0.45.2", "get-port": "^7.2.0", "lucide-react": "^1.16.0", "next": "^16.2.6", "open": "^11.0.0", "postcss": "^8.5.15", "react": "^19.0.0", "react-dom": "^19.0.0", "recharts": "^3.8.1", "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", "zod": "^4.4.3" }, "devDependencies": { "@playwright/test": "^1.60.0", "@types/better-sqlite3": "^7.6.12", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^5.2.0", "@vitest/coverage-v8": "^4.1.8", "esbuild": "^0.28.0", "eslint": "^9.39.4", "eslint-config-next": "^16.2.6", "eslint-plugin-react-hooks": "^5.2.0", "tsx": "^4.22.3", "vitest": "^4.1.7" } }