{"_id":"@bugsbunnycodes1998/cartographer-core","_rev":"6-f1eaa209624d7ff5d7ed964ae3ed6d8f","name":"@bugsbunnycodes1998/cartographer-core","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.0","license":"MIT","_id":"@bugsbunnycodes1998/cartographer-core@0.1.0","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"dist":{"shasum":"2b221f56815cc3aa60305047ff157ddb0f06bb8b","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.0.tgz","fileCount":220,"integrity":"sha512-I+Vswt6xjZRkmknykeX4FHai2lLiOozW/Af+eN9rUeITCHqQUOoXUHxp2OMQIO56pVhD7A11CyOuLXFnmJpHpg==","signatures":[{"sig":"MEUCIGxHrF1mmXftPh6kGb4RN6F+i8yMgTDz1suIwx6f647MAiEAmuwqTnzEDmfxwpklxTUCjYJgFkSRTqqcymDle01kXPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7825178},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json && node scripts/copy-wasm.js"},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ignore":"^7.0.3","openai":"^4.70.0","consola":"^3.4.0","p-limit":"^6.0.0","d3-force":"^3.0.0","d3-hierarchy":"^3.1.2","better-sqlite3":"^11.8.1","isomorphic-git":"^1.27.1","web-tree-sitter":"^0.24.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/d3-force":"^3.0.10","tree-sitter-wasms":"^0.1.12","@types/d3-hierarchy":"^3.1.7","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/cartographer-core_0.1.0_1775321440525_0.34273670939966605","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.1","license":"MIT","_id":"@bugsbunnycodes1998/cartographer-core@0.1.1","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"dist":{"shasum":"49326f2304adf61364890ef184c4d51958e0ab25","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.1.tgz","fileCount":220,"integrity":"sha512-yV1Ffxp36cQYifoWUfTYG+42fMfFGagKtqPrOLHjd/qN2xtaroUyfkhDEMyz9SxuLuRTkIH9DQBHK+h3XBoa4g==","signatures":[{"sig":"MEQCICr9OT4ouhX38VeDFaWW/tw5mxrYOijzcZGeuCkG/rleAiAcwIxXFJZnP4iJ10/od0bbNDpI5iU6wZA0XWoGurHkTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7825178},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json && node scripts/copy-wasm.js"},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ignore":"^7.0.3","openai":"^4.70.0","consola":"^3.4.0","p-limit":"^6.0.0","d3-force":"^3.0.0","d3-hierarchy":"^3.1.2","better-sqlite3":"^11.8.1","isomorphic-git":"^1.27.1","web-tree-sitter":"^0.24.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/d3-force":"^3.0.10","tree-sitter-wasms":"^0.1.12","@types/d3-hierarchy":"^3.1.7","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/cartographer-core_0.1.1_1775322350073_0.8569672455760751","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.2","license":"MIT","_id":"@bugsbunnycodes1998/cartographer-core@0.1.2","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"dist":{"shasum":"6fdb543e5b23dafb7b8e393bd252419494bb8814","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.2.tgz","fileCount":220,"integrity":"sha512-qbmSHNYbBDrdqg1ohYV6dnADNPl8EM61xKT1gO5fA9cUwPRCQfl7UYeTqwC81YAmseXMqVP+MqZRiIJg7+qVuA==","signatures":[{"sig":"MEUCIB96ccDNGdC2fvLrwUG5Te7eDXSkpBvgnir4BbeoV+UgAiEA7GF0nyWdFbuXRPEyTOguHzlIeBj/RY7LtRkfihHAVeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7844352},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json && node scripts/copy-wasm.js"},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ignore":"^7.0.3","openai":"^4.70.0","consola":"^3.4.0","p-limit":"^6.0.0","d3-force":"^3.0.0","d3-hierarchy":"^3.1.2","better-sqlite3":"^11.8.1","isomorphic-git":"^1.27.1","web-tree-sitter":"^0.24.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/d3-force":"^3.0.10","tree-sitter-wasms":"^0.1.12","@types/d3-hierarchy":"^3.1.7","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/cartographer-core_0.1.2_1775392531824_0.9443245439853427","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.3","license":"MIT","_id":"@bugsbunnycodes1998/cartographer-core@0.1.3","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"dist":{"shasum":"c2114d1a601d1c54731d5d711db9e5661043c581","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.3.tgz","fileCount":220,"integrity":"sha512-v/5K2j0P+uNgltUjRLdll/2JCfd5br+Y41DB84YHRu//UNIMLcNk/3F28V7IWb4DAeuAbDTMCgqDazg8eAdTkQ==","signatures":[{"sig":"MEQCIFNEWoi8Y3lInRdYmxpmxIt4XMkFJrNw5Ur5M9Ef9Bd2AiA2DsXHV1WUes9gpXt3OKp0J6dnH5YGvdSBPqOnPuHVog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7844352},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json && node scripts/copy-wasm.js"},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ignore":"^7.0.3","openai":"^4.70.0","consola":"^3.4.0","p-limit":"^6.0.0","d3-force":"^3.0.0","d3-hierarchy":"^3.1.2","better-sqlite3":"^11.8.1","isomorphic-git":"^1.27.1","web-tree-sitter":"^0.24.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/d3-force":"^3.0.10","tree-sitter-wasms":"^0.1.12","@types/d3-hierarchy":"^3.1.7","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/cartographer-core_0.1.3_1775394123829_0.18640853154154047","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.4","license":"MIT","_id":"@bugsbunnycodes1998/cartographer-core@0.1.4","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"dist":{"shasum":"a84b71116c8bbbd9ef4b9d2a45626d5d321a0cf8","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.4.tgz","fileCount":220,"integrity":"sha512-f9SAvn0zIrvgB/XCPfLJ+xfmUBJHHhQcVXWCaGjzCuSRiTFGBnOyIxCCejtiBWRzzQDkL/cA6CWMK+C8WDY0SA==","signatures":[{"sig":"MEUCIQCC+Clpp2GBrW9gi6W195FXjUgozrMAojZf9KHxf6scJQIgAM+5tkoXv0YoBaaCMi95H8LICMQ5a1OKT/03gDKrFy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7848255},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json && node scripts/copy-wasm.js"},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"_npmVersion":"11.6.2","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ignore":"^7.0.3","openai":"^4.70.0","consola":"^3.4.0","p-limit":"^6.0.0","d3-force":"^3.0.0","d3-hierarchy":"^3.1.2","better-sqlite3":"^11.8.1","isomorphic-git":"^1.27.1","web-tree-sitter":"^0.24.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/d3-force":"^3.0.10","tree-sitter-wasms":"^0.1.12","@types/d3-hierarchy":"^3.1.7","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/cartographer-core_0.1.4_1775401354103_0.5235464589527126","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bugsbunnycodes1998/cartographer-core","version":"0.1.6","type":"module","license":"MIT","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-wasm.js","dev":"tsc -p tsconfig.json --watch"},"dependencies":{"web-tree-sitter":"^0.24.7","better-sqlite3":"^11.8.1","ignore":"^7.0.3","consola":"^3.4.0","d3-hierarchy":"^3.1.2","d3-force":"^3.0.0","isomorphic-git":"^1.27.1","openai":"^4.70.0","p-limit":"^6.0.0"},"devDependencies":{"tree-sitter-wasms":"^0.1.12","@types/better-sqlite3":"^7.6.12","@types/d3-hierarchy":"^3.1.7","@types/d3-force":"^3.0.10"},"gitHead":"08eaa860f7f4f3d50c358e79cdd92a22f480b85e","_id":"@bugsbunnycodes1998/cartographer-core@0.1.6","description":"**See your code. Understand your architecture. Navigate with confidence.**","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/emXHWnbIh86nDEFambh14Xi+k6RHJj6jC4rvHjVktxNxF23XQE0C5HXVPHqKs9A1Ewi+6278SLQxtASmrAhnA==","shasum":"8d4f660edc6c6cf2512f24398a66e1fbcdc6fa64","tarball":"https://registry.npmjs.org/@bugsbunnycodes1998/cartographer-core/-/cartographer-core-0.1.6.tgz","fileCount":221,"unpackedSize":7852663,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB0rKGnpi2QS0cI/KnyBpkvsWVPgv9kHNr9BXZnXuRNjAiEAxqj9x+QS0L6BFxJ7WBslrDpoHECqF4BY1Bzwu9Ej5nY="}]},"_npmUser":{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"},"directories":{},"maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cartographer-core_0.1.6_1775407327674_0.6007478466373501"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-04T16:50:40.392Z","modified":"2026-04-05T16:42:07.988Z","0.1.0":"2026-04-04T16:50:40.746Z","0.1.1":"2026-04-04T17:05:50.248Z","0.1.2":"2026-04-05T12:35:32.037Z","0.1.3":"2026-04-05T13:02:04.071Z","0.1.4":"2026-04-05T15:02:34.294Z","0.1.6":"2026-04-05T16:42:07.888Z"},"license":"MIT","maintainers":[{"name":"bugsbunnycodes1998","email":"saswatray2505@gmail.com"}],"readme":"# Cartographer\n\n**See your code. Understand your architecture. Navigate with confidence.**\n\nPoint any codebase at Cartographer. Get an interactive, explorable 3D city where modules are neighborhoods, files are buildings, and dependencies are roads.\n\n## Quick Start\n\n```bash\nnpx @bugsbunnycodes1998/cartographer analyze https://github.com/expressjs/express --quick\n```\n\nThis clones the repo, analyzes it, and opens a 3D city map in your browser at `http://localhost:3742`.\n\n## Features\n\n- **3D City Visualization** — modules as neighborhoods, files as buildings with glowing windows, dependencies as roads with flowing particles\n- **Health Scoring** — composite 0-100 health per file (complexity, churn, test coverage, type safety). Buildings glow green (healthy) to red (critical)\n- **AI Summaries** — OpenAI-powered hierarchical summaries at file, module, and system level\n- **Git Archaeology** — churn analysis, bus factor, contributor mapping, evolution timeline\n- **Guided Expeditions** — auto-generated tours: Grand Tour, Danger Zones, Request Lifecycle\n- **Building Interiors** — zoom into a file to see functions as floors with call connections\n- **Live Mode** — watch for file changes and update the city in real-time via WebSocket\n- **Multi-Language** — TypeScript, JavaScript, Python, Rust, Go, Java\n- **Cmd+K Search** — fuzzy search to fly to any file or module instantly\n\n## Installation\n\n```bash\nnpm install -g @bugsbunnycodes1998/cartographer\n```\n\nRequires Node.js 20+.\n\n## Usage\n\n### Analyze a GitHub repo\n\n```bash\n# Quick mode (structure only, instant)\ncartographer analyze https://github.com/org/repo --quick\n\n# With git history + health scoring\ncartographer analyze https://github.com/org/repo --skip-llm\n\n# Full analysis with AI summaries (requires OPENAI_API_KEY)\ncartographer analyze https://github.com/org/repo\n```\n\n### Analyze a local project\n\n```bash\ncartographer analyze ./my-project\ncartographer analyze . --quick\n```\n\n### Live mode (real-time updates)\n\n```bash\ncartographer live ./my-project\n```\n\nEdit files and watch the city update in your browser.\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--quick` | Structure only, no AI/git. Instant results |\n| `--skip-git` | Skip git archaeology (churn, bus factor) |\n| `--skip-llm` | Skip AI summaries (no OpenAI key needed) |\n| `--root <dir>` | Scope analysis to a subdirectory |\n| `--output <dir>` | Custom output directory |\n| `--languages <list>` | Filter languages (e.g., `ts,py`) |\n| `--no-serve` | Don't open the browser |\n| `-p, --port <n>` | Custom port (default: 3742) |\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `OPENAI_API_KEY` | Required for AI summaries and custom expeditions |\n| `CARTOGRAPHER_PORT` | Web UI port (default: 3742) |\n\n## Navigating the City\n\n| Action | How |\n|--------|-----|\n| **Pan** | Left-click drag |\n| **Rotate** | Right-click drag |\n| **Zoom** | Scroll wheel |\n| **Select module** | Click a neighborhood |\n| **Select file** | Click a building |\n| **Enter building** | Click \"Enter Building\" in HUD |\n| **Exit building** | Click \"Exit Building\" or Escape |\n| **Search** | Cmd+K / Ctrl+K |\n| **Back to overview** | Press Escape |\n| **Expeditions** | Click \"Expeditions\" button |\n\n## Visual Encoding\n\n| Visual | Meaning |\n|--------|---------|\n| Building height | Lines of code |\n| Building color (green) | Health 90-100 |\n| Building color (blue) | Health 70-89 |\n| Building color (amber) | Health 50-69 |\n| Building color (orange) | Health 30-49 |\n| Building color (red) | Health 0-29 |\n| Road thickness | Coupling strength |\n| Flowing particles | Data flow direction |\n| Flame particles | High churn + low health |\n| Gold shimmer | Excellent health (90+) |\n| Warning icon | Bus factor = 1 |\n\n## Supported Languages\n\n| Language | Parsing | Imports | Modules |\n|----------|---------|---------|---------|\n| TypeScript | Full | Full | Barrel files, tsconfig paths |\n| JavaScript | Full | Full | Barrel files |\n| Python | Full | Full | `__init__.py` packages |\n| Rust | Full | Full | `Cargo.toml`, `mod.rs` |\n| Go | Full | Full | Directory packages, `go.mod` |\n| Java | Full | Full | Maven/Gradle, package dirs |\n\n## Development\n\n```bash\ngit clone https://github.com/BugBunnyWanders/Cartographer.git\ncd Cartographer\npnpm install\npnpm build\nnode packages/cli/dist/index.js analyze . --quick\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","description":"**See your code. Understand your architecture. Navigate with confidence.**"}