# Project export: Dumpd

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: UC Berkeley AI Hackathon 2026
- Tagline: a second brain is useless if you have to remember to ask it questions
- Devpost: https://devpost.com/software/dumpd
- GitHub: https://github.com/Omm2005/dumpd
- Team: 2 GitHub contributor(s) — Om Shah (3 commits), SonjiaD (3 commits)

## Devpost submission (written by the team)

### Overview

a second brain is useless if you have to remember to ask it questions. 💡 inspiration we hate the copy-paste tax. manually copying text, switching tabs, searching, and organizing files is a brain-rot ritual that kills cognitive momentum. we wanted something that watches what you're doing and just... hands you what you need. no searching, no switching tabs, no interrupting your flow. the right note, doc, or email shows up on its own because dumpd already knows what you're working on. this is deeply inspired by poke by interaction co. an AI that lives in the background and helps before you ask. we built that, but for developers. ⚡ what it does dumpd watches your computer in real-time and surfaces the most relevant things from your personal knowledge base before you even know you need them. it reads what tabs you have open, what github PRs you're reviewing, what's running on localhost, and even what you're listening to on spotify 🎵 if you put on a specific playlist while deep in a project, dumpd recognizes the song and automatically reloads your workspace and notes from that session nothing is manual. it all just happens in the background 🛠️ what we built it with frontend: next.js, typescript, tailwind css, framer motion backend: hono and bun, supabase postgres AI search: pgvector, finds the most relevant notes by meaning not just keywords agentic layer: langgraph.js for orchestrating multi-step retrieval, firecrawl and jina reader for web and document ingestion redis: keeps everything fast by caching your active context so lookups are instant claude (anthropic): reads and ranks your notes, understands what you're working on, and decides what's actually relevant to surface poke (interaction co.): send anything to dumpd through poke via imessage. drop a link, paste a note, forward an email, and it lands directly in your knowledge base and becomes searchable. your messenger is now your capture layer. custom daemon: a background process we wrote that watches your open windows and browser tabs to keep context fresh 🏆 sponsor tracks best use of claude: claude is what makes the retrieval smart. it reads your notes, understands your current context, and figures out what's actually worth showing you best use of redis: redis keeps the context layer fast. without it, every lookup would stall waiting on the database interaction co. / poke: we built dumpd as a poke-native capture layer. send anything via imessage and it lands in your knowledge graph and joins the ambient retrieval loop. poke handles the input, dumpd handles the memory. 😅 challenges we ran into cloudflare's website protection kept breaking our browser reading loop, returning empty data instead of page content our AI tunnel crashed with a 502 error and got stuck in an auth loop for hours instagram blocked us from pulling video content entirely spotify's API kept crashing, so we ended up looping mos def instrumentals on repeat for half the hackathon 🎉 accomplishments that we're proud of got a live browser overlay working that shows retrieved context directly on top of whatever you're looking at built a search that feels instant and finds the right thing by meaning, not just exact words the whole thing runs silently in the background. you never have to touch it shipped a working end-to-end retrieval loop from context detection to knowledge surfacing 📚 what we learned scraping live websites that use cloudflare is genuinely one of the harder problems in software building something that runs constantly in the background without breaking requires way more defensive coding than you'd expect auth flows that span multiple services have a lot of places to go wrong 🚀 what's next for dumpd scale the MCP tunnel to handle production auth and multi-user sessions rewrite the browser tracker to handle complex sites and shadow dom elements deeper OS-level context beyond window titles make it fully local so your data never leaves your machine

## README (from the GitHub repository)

# dumpd

This project was created with [Better-T-Stack](https://github.com/AmanVarshney01/create-better-t-stack), a modern TypeScript stack that combines Next.js, Self, and more.

## Features

- **TypeScript** - For type safety and improved developer experience
- **Next.js** - Full-stack React framework
- **TailwindCSS** - Utility-first CSS for rapid UI development
- **Shared UI package** - shadcn/ui primitives live in `packages/ui`
- **Drizzle** - TypeScript-first ORM
- **PostgreSQL** - Database engine
- **Authentication** - Better-Auth
- **Turborepo** - Optimized monorepo build system

## Getting Started

First, install the dependencies:

```bash
bun install
```

## Database Setup

This project uses PostgreSQL with Drizzle ORM.

1. Make sure you have a PostgreSQL database set up.
2. Update your `apps/web/.env` file with your PostgreSQL connection details.

For Supabase photo uploads and Vector Buckets, also configure:

```env
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
SUPABASE_PHOTOS_BUCKET=dumpd-photos
SUPABASE_VECTOR_BUCKET=vectordb
SUPABASE_VECTOR_INDEX=text-embedding-3-small-768
```

The app creates the public photo bucket and the 768-dimensional cosine vector
index when they are first used. Supabase Vector Buckets are currently a public
alpha feature, so pin and test `@supabase/supabase-js` upgrades. Keep the
service role key server-only; never expose it through a `NEXT_PUBLIC_`
variable.

3. Apply the schema to your database:

```bash
bun run db:push
```

For MCP ingestion, set the same 32+ character `MCP_INGEST_SECRET` in
`apps/web/.env` and `apps/mcp-server/.dev.vars`. Also set
`DUMPD_API_URL=http://localhost:3000` in the MCP development variables.
Media-to-text conversion is performed by the MCP client before it calls
Dumpd's image, music, video, or PDF save tools. MCP saves are written directly
to Postgres and displayed on the web canvas.

Then, run the development server:

```bash
bun run dev
```

Open [http://localhost:3000](http://localhost:3000) in your browser to see the fullstack application.

## UI Customization

React web apps in this stack share shadcn/ui primitives through `packages/ui`.

- Change design tokens and global styles in `packages/ui/src/styles/globals.css`
- Update shared primitives in `packages/ui/src/components/*`
- Adjust shadcn aliases or style config in `packages/ui/components.json` and `apps/web/components.json`

### Add more shared components

Run this from the project root to add more primitives to the shared UI package:

```bash
npx shadcn@latest add accordion dialog popover sheet table -c packages/ui
```

Import shared components like this:

```tsx
import { Button } from "@dumpd/ui/components/button";
```

### Add app-specific blocks

If you want to add app-specific blocks instead of shared primitives, run the shadcn CLI from `apps/web`.

## Project Structure

```
dumpd/
├── apps/
│   └── web/         # Fullstack application (Next.js)
├── packages/
│   ├── ui/          # Shared shadcn/ui components and styles
│   ├── auth/        # Authentication configuration & logic
│   └── db/          # Database schema & queries
```

## Available Scripts

- `bun run dev`: Start all applications in development mode
- `bun run build`: Build all applications
- `bun run dev:web`: Start only the web application
- `bun run check-types`: Check TypeScript types across all apps
- `bun run db:push`: Push schema changes to database
- `bun run db:generate`: Generate database client/types
- `bun run db:migrate`: Run database migrations
- `bun run db:studio`: Open database studio UI


## Detected evidence (automated analysis)

Indexed codebase: 174 recognized source files, 1108 KB.
- Anthropic (technology) — detected in the code
- CSS (language) — detected in the code
- Google Gemini (technology) — detected in the code
- JavaScript (language) — detected in the code
- Next.js (technology) — detected in the code
- PostgreSQL (technology) — detected in the code
- Python (language) — detected in the code
- React (technology) — detected in the code
- SQL (language) — detected in the code
- Supabase (technology) — detected in the code
- Tailwind CSS (technology) — detected in the code
- TypeScript (language) — detected in the code
- Vercel AI SDK (technology) — detected in the code

## Codebase structure (from repository index)

### Files (120 of 238)

```
.agents/skills/ai-sdk/references/ai-gateway.md
.agents/skills/ai-sdk/references/common-errors.md
.agents/skills/ai-sdk/references/devtools.md
.agents/skills/ai-sdk/references/type-safe-agents.md
.agents/skills/ai-sdk/SKILL.md
.agents/skills/code-security-audit/.github/skills/skill-creator/LICENSE.txt
.agents/skills/code-security-audit/.github/skills/skill-creator/references/output-patterns.md
.agents/skills/code-security-audit/.github/skills/skill-creator/references/workflows.md
.agents/skills/code-security-audit/.github/skills/skill-creator/scripts/init_skill.py
.agents/skills/code-security-audit/.github/skills/skill-creator/scripts/package_skill.py
.agents/skills/code-security-audit/.github/skills/skill-creator/scripts/quick_validate.py
.agents/skills/code-security-audit/.github/skills/skill-creator/SKILL.md
.agents/skills/code-security-audit/.github/skills/up-to-date/references/doc-urls.md
.agents/skills/code-security-audit/.github/skills/up-to-date/scripts/check_versions.py
.agents/skills/code-security-audit/.github/skills/up-to-date/SKILL.md
.agents/skills/code-security-audit/.gitignore
.agents/skills/code-security-audit/action.yml
.agents/skills/code-security-audit/assets/security-review-command.md
.agents/skills/code-security-audit/claudecode/__init__.py
.agents/skills/code-security-audit/claudecode/audit.py
.agents/skills/code-security-audit/claudecode/claude_api_client.py
.agents/skills/code-security-audit/claudecode/constants.py
.agents/skills/code-security-audit/claudecode/evals/__init__.py
.agents/skills/code-security-audit/claudecode/evals/eval_engine.py
.agents/skills/code-security-audit/claudecode/evals/run_eval.py
.agents/skills/code-security-audit/claudecode/findings_filter.py
.agents/skills/code-security-audit/claudecode/github_action_audit.py
.agents/skills/code-security-audit/claudecode/json_parser.py
.agents/skills/code-security-audit/claudecode/logger.py
.agents/skills/code-security-audit/claudecode/prompts.py
.agents/skills/code-security-audit/claudecode/requirements.txt
.agents/skills/code-security-audit/evals/scenario-1/capability.txt
.agents/skills/code-security-audit/evals/scenario-1/criteria.json
.agents/skills/code-security-audit/evals/scenario-1/task.md
.agents/skills/code-security-audit/evals/scenario-2/capability.txt
.agents/skills/code-security-audit/evals/scenario-2/criteria.json
.agents/skills/code-security-audit/evals/scenario-2/task.md
.agents/skills/code-security-audit/evals/scenario-3/capability.txt
.agents/skills/code-security-audit/evals/scenario-3/criteria.json
.agents/skills/code-security-audit/evals/scenario-3/task.md
.agents/skills/code-security-audit/evals/scenario-4/capability.txt
.agents/skills/code-security-audit/evals/scenario-4/criteria.json
.agents/skills/code-security-audit/evals/scenario-4/task.md
.agents/skills/code-security-audit/README.md
.agents/skills/code-security-audit/references/custom-false-positive-filtering.txt
.agents/skills/code-security-audit/references/custom-scan-instructions.md
.agents/skills/code-security-audit/references/custom-security-scan-instructions.txt
.agents/skills/code-security-audit/references/false-positive-filtering.md
.agents/skills/code-security-audit/scripts/comment-pr-findings.js
.agents/skills/code-security-audit/SKILL.md
.agents/skills/code-security-audit/skills-lock.json
.agents/skills/code-security-audit/tile.json
.agents/skills/find-skills/SKILL.md
.agents/skills/shadcn/agents/openai.yml
.agents/skills/shadcn/cli.md
.agents/skills/shadcn/customization.md
.agents/skills/shadcn/evals/evals.json
.agents/skills/shadcn/mcp.md
.agents/skills/shadcn/registry.md
.agents/skills/shadcn/rules/base-vs-radix.md
.agents/skills/shadcn/rules/composition.md
.agents/skills/shadcn/rules/forms.md
.agents/skills/shadcn/rules/icons.md
.agents/skills/shadcn/rules/styling.md
.agents/skills/shadcn/SKILL.md
.agents/skills/supermemory/LICENSE
.agents/skills/supermemory/README.md
.agents/skills/supermemory/references/api-reference.md
.agents/skills/supermemory/references/architecture.md
.agents/skills/supermemory/references/quickstart.md
.agents/skills/supermemory/references/sdk-guide.md
.agents/skills/supermemory/references/use-cases.md
.agents/skills/supermemory/SKILL.md
.agents/skills/svg-animations/SKILL.md
.agents/skills/turborepo/command/turborepo.md
.agents/skills/turborepo/references/best-practices/dependencies.md
.agents/skills/turborepo/references/best-practices/packages.md
.agents/skills/turborepo/references/best-practices/RULE.md
.agents/skills/turborepo/references/best-practices/structure.md
.agents/skills/turborepo/references/boundaries/RULE.md
.agents/skills/turborepo/references/caching/gotchas.md
.agents/skills/turborepo/references/caching/remote-cache.md
.agents/skills/turborepo/references/caching/RULE.md
.agents/skills/turborepo/references/ci/github-actions.md
.agents/skills/turborepo/references/ci/patterns.md
.agents/skills/turborepo/references/ci/RULE.md
.agents/skills/turborepo/references/ci/vercel.md
.agents/skills/turborepo/references/cli/commands.md
.agents/skills/turborepo/references/cli/RULE.md
.agents/skills/turborepo/references/configuration/global-options.md
.agents/skills/turborepo/references/configuration/gotchas.md
.agents/skills/turborepo/references/configuration/RULE.md
.agents/skills/turborepo/references/configuration/tasks.md
.agents/skills/turborepo/references/environment/gotchas.md
.agents/skills/turborepo/references/environment/modes.md
.agents/skills/turborepo/references/environment/RULE.md
.agents/skills/turborepo/references/filtering/patterns.md
.agents/skills/turborepo/references/filtering/RULE.md
.agents/skills/turborepo/references/watch/RULE.md
.agents/skills/turborepo/SKILL.md
.gitignore
apps/mcp-server/.dev.vars.example
apps/mcp-server/.gitignore
apps/mcp-server/package.json
apps/mcp-server/README.md
apps/mcp-server/src/google-handler.ts
apps/mcp-server/src/index.ts
apps/mcp-server/src/utils.ts
apps/mcp-server/src/workers-oauth-utils.ts
apps/mcp-server/tsconfig.json
apps/mcp-server/worker-configuration.d.ts
apps/mcp-server/wrangler.jsonc
apps/web/.gitignore
apps/web/components.json
apps/web/next.config.ts
apps/web/package.json
apps/web/postcss.config.mjs
apps/web/public/sw.js
apps/web/src/app/api/auth/[...all]/route.ts
apps/web/src/app/api/completion/route.ts
[118 more files omitted for size]
```

### Dependencies

- .agents/skills/code-security-audit/claudecode/requirements.txt: anthropic@>=0.39.0, PyGithub@>=2.3.0, requests@>=2.31.0
- apps/mcp-server/package.json: @cloudflare/workers-oauth-provider@^0.4.0, @cloudflare/workers-types@^4.20260402.1, agents@^0.9.0, hono@^4.12.9, just-pick@^4.2.0, typescript@6.0.2, wrangler@^4.79.0, zod@^4.3.6
- apps/web/package.json: @ai-sdk/google@^3.0.80, @ai-sdk/react@^3.0.197, @dumpd/auth@workspace:*, @dumpd/config@workspace:*, @dumpd/db@workspace:*, @dumpd/env@workspace:*, @dumpd/ui@workspace:*, @heroicons/react@^2.2.0, @radix-ui/react-use-controllable-state@^1.2.2, @supabase/supabase-js@^2.108.2, @tailwindcss/postcss@^4.1.18, @types/node@^20, @types/react@catalog:, @types/react-dom@catalog:, @xyflow/react@^12.11.0, ai@^6.0.195, babel-plugin-react-compiler@^1.0.0, better-auth@catalog:, dotenv@catalog:, drizzle-orm@^0.45.1, ioredis@^5.11.1, lucide-react@catalog:, motion@^12.40.0, next@^16.2.0, next-themes@catalog:, react@catalog:, react-dom@catalog:, react-markdown@^10.1.0, remark-gfm@^4.0.1, sonner@catalog:, tailwindcss@catalog:, typescript@catalog:, zod@catalog:
- package.json: @dumpd/config@workspace:*, @dumpd/env@workspace:*, @types/node@^22.13.14, clsx@^2.1.1, dotenv@catalog:, tailwind-merge@^3.6.0, turbo@^2.8.12, typescript@catalog:, zod@catalog:
- packages/auth/package.json: @dumpd/config@workspace:*, @dumpd/db@workspace:*, @dumpd/env@workspace:*, better-auth@catalog:, dotenv@catalog:, typescript@catalog:, zod@catalog:
- packages/db/package.json: @dumpd/config@workspace:*, @dumpd/env@workspace:*, @types/pg@^8.16.0, dotenv@catalog:, drizzle-kit@^0.31.8, drizzle-orm@^0.45.1, pg@^8.17.1, typescript@catalog:, zod@catalog:
- packages/env/package.json: @dumpd/config@workspace:*, @t3-oss/env-core@^0.13.1, @t3-oss/env-nextjs@^0.13.1, @types/node@^22.13.14, dotenv@catalog:, typescript@catalog:, zod@catalog:
- packages/ui/package.json: @base-ui/react@^1.5.0, @dumpd/config@workspace:*, @hugeicons/core-free-icons@^4.2.0, @hugeicons/react@^1.1.7, @radix-ui/react-use-controllable-state@^1.2.2, @types/react@catalog:, @types/react-dom@catalog:, class-variance-authority@^0.7.1, clsx@^2.1.1, lucide-react@^1.17.0, motion@^12.40.0, next-themes@^0.4.6, react@catalog:, react-dom@catalog:, shadcn@^4.11.0, sonner@^2.0.7, tailwind-merge@^3.6.0, tailwindcss@catalog:, tw-animate-css@^1.4.0, typescript@catalog:

### Recent commits (newest first)

- Harry potter help me
- FUCK BC
- Merge branch 'main' of https://github.com/Omm2005/dumpd
- feat: pinboard floating card UI — scatter, float animation, cursor tilt, grain
- feat: pinboard floating card UI — scatter, float animation, cursor tilt, grain
- UI: Grid and column
- -adding redis (3 features)
- Initial commit

## Key source files (fetched from GitHub, selected and truncated for size)

### .agents/skills/shadcn/mcp.md

```markdown
# shadcn MCP Server

The CLI includes an MCP server that lets AI assistants search, browse, view, and install items from registries.

---

## Setup

```bash
shadcn mcp        # start the MCP server (stdio)
shadcn mcp init   # write config for your editor
```

Editor config files:

| Editor      | Config file                     |
| ----------- | ------------------------------- |
| Claude Code | `.mcp.json`                     |
| Cursor      | `.cursor/mcp.json`              |
| VS Code     | `.vscode/mcp.json`              |
| OpenCode    | `opencode.json`                 |
| Codex       | `~/.codex/config.toml` (manual) |

---

## Tools

> **Tip:** MCP tools handle registry operations (search, view, install). For project configuration (aliases, framework, Tailwind version), use `npx shadcn@latest info` — there is no MCP equivalent.

### `shadcn:get_project_registries`

Returns registry names from `components.json`. Errors if no `components.json` exists.

**Input:** none

### `shadcn:list_items_in_registries`

Lists all items from one or more registries. Registries can be configured
namespaces such as `@acme`, public GitHub sources such as `owner/repo`, or
registry catalog URLs.

**Input:** `registries` (string[]), `limit` (number, optional), `offset` (number, optional)

### `shadcn:search_items_in_registries`

Fuzzy search across registries. Registries can be configured namespaces, public
GitHub sources, or registry catalog URLs.

**Input:** `registries` (string[]), `query` (string), `limit` (number, optional), `offset` (number, optional)

### `shadcn:view_items_in_registries`

View item details including full file contents.

**Input:** `items` (string[]) — e.g.
`["@shadcn/button", "@shadcn/card", "owner/repo/item"]`

### `shadcn:get_item_examples_from_registries`

Find usage examples and demos with source code.

**Input:** `registries` (string[]), `query` (string) — e.g. `"accordion-demo"`, `"button example"`

### `shadcn:get_add_command_for_items`

Returns the CLI install command.

**Input:** `items` (string[]) — e.g. `["@shadcn/button"]`

### `shadcn:get_audit_checklist`

Returns a checklist for verifying components (imports, deps, lint, TypeScript).

**Input:** none

---

## Configuring Registries

Namespaced and authenticated registries are set in `components.json`. The
`@shadcn` registry is always built-in. Public GitHub registries can also be used
directly as `owner/repo` registry sources when the repository has a root
`registry.json`; they do not need `components.json` configuration.

```json
{
  "registries": {
    "@acme": "https://acme.com/r/{name}.json",
    "@private": {
      "url": "https://private.com/r/{name}.json",
      "headers": { "Authorization": "Bearer ${MY_TOKEN}" }
    }
  }
}
```

- Names must start with `@`.
- URLs must contain `{name}`.
- `${VAR}` references are resolved from environment variables.

Community registry index: `https://ui.shadcn.com/r/registries.json`

```

### .agents/skills/ai-sdk/SKILL.md

```markdown
---
name: ai-sdk
description: 'Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".'
---

## Prerequisites

Before searching docs, check if `node_modules/ai/docs/` exists. If not, install **only** the `ai` package using the project's package manager (e.g., `pnpm add ai`).

Do not install other packages at this stage. Provider packages (e.g., `@ai-sdk/openai`) and client packages (e.g., `@ai-sdk/react`) should be installed later when needed based on user requirements.

## Critical: Do Not Trust Internal Knowledge

Everything you know about the AI SDK is outdated or wrong. Your training data contains obsolete APIs, deprecated patterns, and incorrect usage.

**When working with the AI SDK:**

1. Ensure `ai` package is installed (see Prerequisites)
2. Search `node_modules/ai/docs/` and `node_modules/ai/src/` for current APIs
3. If not found locally, search ai-sdk.dev documentation (instructions below)
4. Never rely on memory - always verify against source code or docs
5. **`useChat` has changed significantly** - check [Common Errors](references/common-errors.md) before writing client code
6. When deciding which model and provider to use (e.g. OpenAI, Anthropic, Gemini), use the Vercel AI Gateway provider unless the user specifies otherwise. See [AI Gateway Reference](references/ai-gateway.md) for usage details.
7. **Always fetch current model IDs** - Never use model IDs from memory. Before writing code that uses a model, run `curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '[.data[] | select(.id | startswith("provider/")) | .id] | reverse | .[]'` (replacing `provider` with the relevant provider like `anthropic`, `openai`, or `google`) to get the full list with newest models first. Use the model with the highest version number (e.g., `claude-sonnet-4-5` over `claude-sonnet-4` over `claude-3-5-sonnet`).
8. Run typecheck after changes to ensure code is correct
9. **Be minimal** - Only specify options that differ from defaults. When unsure of defaults, check docs or source rather than guessing or over-specifying.

If you cannot find documentation to support your answer, state that explicitly.

## Finding Documentation

### ai@6.0.34+

Search bundled docs and source in `node_modules/ai/`:

- **Docs**: `grep "query" node_modules/ai/docs/`
- **Source**: `grep "query" node_modules/ai/src/`

Provider packages include docs at `node_modules/@ai-sdk/<provider>/docs/`.

### Earlier versions

1. Search: `https://ai-
[truncated — 1681 more characters]
```

### package.json

```
{
  "name": "dumpd",
  "private": true,
  "workspaces": {
    "packages": [
      "apps/*",
      "packages/*"
    ],
    "catalog": {
      "dotenv": "^17.2.2",
      "zod": "^4.1.13",
      "typescript": "^6",
      "lucide-react": "^0.546.0",
      "next-themes": "^0.4.6",
      "react": "^19.2.6",
      "react-dom": "^19.2.6",
      "sonner": "^2.0.5",
      "better-auth": "1.6.11",
      "@types/react": "^19.2.15",
      "@types/react-dom": "^19.2.3",
      "tailwindcss": "^4.1.18"
    }
  },
  "type": "module",
  "scripts": {
    "dev": "turbo dev",
    "build": "turbo build",
    "check-types": "turbo check-types",
    "dev:web": "turbo -F web dev",
    "db:push": "turbo -F @dumpd/db db:push",
    "db:studio": "turbo -F @dumpd/db db:studio",
    "db:generate": "turbo -F @dumpd/db db:generate",
    "db:migrate": "turbo -F @dumpd/db db:migrate"
  },
  "dependencies": {
    "@dumpd/env": "workspace:*",
    "clsx": "^2.1.1",
    "dotenv": "catalog:",
    "tailwind-merge": "^3.6.0",
    "zod": "catalog:"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "@types/node": "^22.13.14",
    "turbo": "^2.8.12",
    "typescript": "catalog:"
  },
  "packageManager": "bun@1.2.17"
}

```

### packages/config/package.json

```
{
  "name": "@dumpd/config",
  "version": "0.0.0",
  "private": true
}

```

### packages/env/package.json

```
{
  "name": "@dumpd/env",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": {
    "./server": "./src/server.ts",
    "./web": "./src/web.ts"
  },
  "dependencies": {
    "@t3-oss/env-core": "^0.13.1",
    "@t3-oss/env-nextjs": "^0.13.1",
    "dotenv": "catalog:",
    "zod": "catalog:"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "@types/node": "^22.13.14",
    "typescript": "catalog:"
  }
}

```

### packages/auth/package.json

```
{
  "name": "@dumpd/auth",
  "type": "module",
  "exports": {
    ".": {
      "default": "./src/index.ts"
    },
    "./*": {
      "default": "./src/*.ts"
    }
  },
  "scripts": {},
  "dependencies": {
    "@dumpd/db": "workspace:*",
    "@dumpd/env": "workspace:*",
    "better-auth": "catalog:",
    "dotenv": "catalog:",
    "zod": "catalog:"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "typescript": "catalog:"
  }
}

```

### apps/mcp-server/package.json

```
{
	"name": "dumpd-mcp",
	"version": "0.0.1",
	"private": true,
	"scripts": {
		"deploy": "wrangler deploy",
		"dev": "wrangler dev",
		"start": "wrangler dev",
		"cf-typegen": "wrangler types",
		"type-check": "tsc --noEmit"
	},
	"dependencies": {
		"@cloudflare/workers-oauth-provider": "^0.4.0",
		"agents": "^0.9.0",
		"hono": "^4.12.9",
		"just-pick": "^4.2.0",
		"zod": "^4.3.6"
	},
	"devDependencies": {
		"@cloudflare/workers-types": "^4.20260402.1",
		"typescript": "6.0.2",
		"wrangler": "^4.79.0"
	}
}

```

### packages/db/package.json

```
{
  "name": "@dumpd/db",
  "type": "module",
  "exports": {
    ".": {
      "default": "./src/index.ts"
    },
    "./*": {
      "default": "./src/*.ts"
    }
  },
  "scripts": {
    "db:push": "drizzle-kit push",
    "db:generate": "drizzle-kit generate",
    "db:studio": "drizzle-kit studio",
    "db:migrate": "drizzle-kit migrate"
  },
  "dependencies": {
    "@dumpd/env": "workspace:*",
    "dotenv": "catalog:",
    "drizzle-orm": "^0.45.1",
    "pg": "^8.17.1",
    "zod": "catalog:"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "@types/pg": "^8.16.0",
    "drizzle-kit": "^0.31.8",
    "typescript": "catalog:"
  }
}

```

### packages/ui/package.json

```
{
  "name": "@dumpd/ui",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": {
    "./globals.css": "./src/styles/globals.css",
    "./lib/*": "./src/lib/*.ts",
    "./components/*": "./src/components/*.tsx",
    "./hooks/*": "./src/hooks/*.ts",
    "./postcss.config": "./postcss.config.mjs"
  },
  "scripts": {
    "check-types": "tsc --noEmit"
  },
  "dependencies": {
    "@base-ui/react": "^1.5.0",
    "@hugeicons/core-free-icons": "^4.2.0",
    "@hugeicons/react": "^1.1.7",
    "@radix-ui/react-use-controllable-state": "^1.2.2",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "lucide-react": "^1.17.0",
    "motion": "^12.40.0",
    "next-themes": "^0.4.6",
    "react": "catalog:",
    "react-dom": "catalog:",
    "shadcn": "^4.11.0",
    "sonner": "^2.0.7",
    "tailwind-merge": "^3.6.0",
    "tw-animate-css": "^1.4.0"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "@types/react": "catalog:",
    "@types/react-dom": "catalog:",
    "tailwindcss": "catalog:",
    "typescript": "catalog:"
  }
}

```

### apps/web/package.json

```
{
  "name": "web",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev --port 3000",
    "build": "SKIP_ENV_VALIDATION=1 next build",
    "start": "next start"
  },
  "dependencies": {
    "@ai-sdk/google": "^3.0.80",
    "@ai-sdk/react": "^3.0.197",
    "@dumpd/auth": "workspace:*",
    "@dumpd/db": "workspace:*",
    "@dumpd/env": "workspace:*",
    "@dumpd/ui": "workspace:*",
    "@heroicons/react": "^2.2.0",
    "@radix-ui/react-use-controllable-state": "^1.2.2",
    "@supabase/supabase-js": "^2.108.2",
    "@xyflow/react": "^12.11.0",
    "ai": "^6.0.195",
    "babel-plugin-react-compiler": "^1.0.0",
    "better-auth": "catalog:",
    "dotenv": "catalog:",
    "ioredis": "^5.11.1",
    "lucide-react": "catalog:",
    "motion": "^12.40.0",
    "next": "^16.2.0",
    "next-themes": "catalog:",
    "drizzle-orm": "^0.45.1",
    "react": "catalog:",
    "react-dom": "catalog:",
    "react-markdown": "^10.1.0",
    "remark-gfm": "^4.0.1",
    "sonner": "catalog:",
    "zod": "catalog:"
  },
  "devDependencies": {
    "@dumpd/config": "workspace:*",
    "@tailwindcss/postcss": "^4.1.18",
    "@types/node": "^20",
    "@types/react": "catalog:",
    "@types/react-dom": "catalog:",
    "tailwindcss": "catalog:",
    "typescript": "catalog:"
  }
}

```

[167 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]