MCPcopy Index your code
hub / github.com/ai-hero-dev/cohort-002-project

github.com/ai-hero-dev/cohort-002-project @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
299 symbols 746 edges 65 files 2 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Personal Assistant - Project Repository

This is the project workspace for the Build a Personal Assistant in TypeScript workshop. You'll implement techniques learned in the skill-building exercises here to build a functional AI assistant.

What You'll Build

During this workshop, you'll add these capabilities to your assistant:

  • Hybrid retrieval system (BM25 + semantic embeddings + rank fusion) to search 547 emails
  • Memory system with semantic recall, working memory, and episodic learning
  • Agentic tools with metadata-first retrieval patterns
  • Evaluation framework using tool call testing and LLM-as-judge scorers
  • Human-in-the-loop approval system for destructive actions
  • MCP integration for external tool access

Workshop Structure

  • Skill-building exercises: Learn techniques in separate repo
  • Project work: Implement those techniques here
  • Iteration: Learn → Build → Test

Getting Started

Prerequisites

  • Node.js (v20 or higher)
  • pnpm package manager
  • API keys for AI providers (Google/Anthropic/OpenAI)
  • Completed AI SDK v5 Crash Course (workshop pre-requisite)

Installation

  1. Install dependencies:
pnpm install
  1. Set up environment variables (.env.local):
GOOGLE_GENERATIVE_AI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here  # optional
OPENAI_API_KEY=your_key_here      # optional
  1. Run dev server:
pnpm run dev
  1. Open http://localhost:3000

Project Structure

Starting scaffold includes:

  • /src/app/api/chat/route.ts - Basic chat endpoint (you'll add agent + tools here)
  • /src/components/ai-elements/ - Chat UI components (message, response, reasoning, etc.)
  • /src/lib/persistence-layer.ts - Chat history + memory persistence
  • /data/emails.json - 547 emails for retrieval exercises
  • /data/db.local.json - Local storage for chats + memories

You'll add during workshop:

  • Search algorithms (BM25, embeddings, RRF)
  • Agent tools (search, filter, get emails)
  • Memory extraction + retrieval
  • HITL system
  • Evals

Tech Stack

  • Framework: Next.js 15 (App Router + Turbopack)
  • AI SDK: Vercel AI SDK v5 (provider-agnostic)
  • Models: Google Gemini 2.5 Flash (default), Claude, GPT-4
  • UI: Radix UI + Tailwind CSS 4
  • TypeScript: Full type safety

Available Scripts

  • pnpm run dev - Start dev server (Turbopack)
  • pnpm run build - Build for production
  • pnpm start - Start production server

Extension points exported contracts — how you extend this code

Chat (Interface)
(no doc)
src/lib/persistence-layer.ts
Email (Interface)
(no doc)
src/app/search/page.tsx
Memory (Interface)
(no doc)
src/lib/persistence-layer.ts
PersistenceData (Interface)
(no doc)
src/lib/persistence-layer.ts

Core symbols most depended-on inside this repo

cn
called by 185
src/lib/utils.ts
useContextValue
called by 8
src/components/ai-elements/context.tsx
loadChats
called by 8
src/lib/persistence-layer.ts
loadMemories
called by 8
src/lib/persistence-layer.ts
useBranch
called by 5
src/components/ai-elements/branch.tsx
useOpenInContext
called by 5
src/components/ai-elements/open-in-chat.tsx
usePromptInputAttachments
called by 4
src/components/ai-elements/prompt-input.tsx
useCarousel
called by 4
src/components/ui/carousel.tsx

Shape

Function 295
Interface 4

Languages

TypeScript100%

Modules by API surface

src/components/ai-elements/prompt-input.tsx28 symbols
src/components/ui/sidebar.tsx25 symbols
src/lib/persistence-layer.ts17 symbols
src/components/ui/dropdown-menu.tsx15 symbols
src/components/ai-elements/inline-citation.tsx15 symbols
src/components/ai-elements/context.tsx13 symbols
src/components/ai-elements/open-in-chat.tsx12 symbols
src/components/ui/sheet.tsx10 symbols
src/components/ui/select.tsx10 symbols
src/components/ui/dialog.tsx10 symbols
src/components/ai-elements/web-preview.tsx10 symbols
src/components/ai-elements/branch.tsx10 symbols

For agents

$ claude mcp add cohort-002-project \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page