2.4 KiB
2.4 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Copilot Toolbox is a React + TypeScript + Vite frontend template for building modern AI-powered applications. Integrates Dify AI, CopilotKit with Ant Design and Tailwind CSS.
This is a template project - all development must extend this project, not create new repositories.
Tech Stack
- React 18 + TypeScript + Vite 6
- Ant Design 5.x (UI components)
- Tailwind CSS 4.x + Less (styling)
- React Router DOM 6.x (Hash mode routing)
- @copilotkit/react-core, @ag-ui/client, @shangzy/ag-ui-dify (AI integration)
Directory Conventions
| Type | Path Pattern | Example |
|---|---|---|
| Pages | src/pages/[name]/index.tsx |
src/pages/home/index.tsx |
| API | src/api/[name].ts |
src/api/user.ts |
| Components | src/components/[name]/index.tsx |
src/components/Header/index.tsx |
| Utils | src/utils/[name].ts |
src/utils/cacheUtil.ts |
- Use
@/alias for imports (configured in vite.config.ts) - TypeScript strict mode enabled
- Tailwind CSS for styling, Ant Design for components
Common Commands
pnpm install # Install dependencies
pnpm dev # Dev server (port 5173)
pnpm build # Production build
pnpm preview # Preview production build (port 3000)
Environment Variables
All API base paths use proxy prefixes. Set in .env.development or .env.production:
VITE_API_BASE_AI=/langwell-api/langwell-ai-server
VITE_API_BASE_DOC=/langwell-api/langwell-doc-server
VITE_API_BASE_LAMP=/lamp-api
VITE_AI_API_BASE=/v1
API Pattern
// src/api/[name].ts
export function getData(params: { id: string }) {
return fetch(`${import.meta.env.VITE_API_BASE_AI}/endpoint`, {
method: 'GET',
headers: { 'Content-Type': 'application/json' }
}).then(res => res.json())
}
Routing
Routes defined in src/router/index.tsx using lazy loading:
{
path: '/page-name',
element: LazyLoad(lazy(() => import('@/pages/page-name')))
}
Adding New Features
- Create page:
src/pages/[name]/index.tsx - Create API:
src/api/[name].ts - Add route:
src/router/index.tsx - Use
@/alias for imports
Restrictions
- Do NOT create new repositories - extend this project
- Do NOT remove CLAUDE.md
- Use
@/alias, not relative paths - TypeScript strict mode cannot be disabled