# Ask Mode Rules (Non-Obvious Only)

## Project Structure

- Vue 3 + Arco Design admin template with Pinia state management
- Vite config files located in `config/` directory (not root)

## Key Directories

- `src/api/` - API layer with two axios instances
- `src/views/ops/` - Main business modules (kb, netarch, asset, etc.)
- `src/router/guard/` - Route guards including dynamic menu loading
- `src/store/modules/app/` - App store with server menu fetching

## Documentation References

- Arco Design Vue: https://arco.design/vue
- Vue Flow (for topology): https://vueflow.dev/

## API Patterns

- Use [`request.ts`](src/api/request.ts) for workspace-aware requests
- Use [`interceptor.ts`](src/api/interceptor.ts) for standard Bearer token auth

## API Response Format

- Standard response: `{code: 0, details: {...}}`
- Success code is `0`, NOT `200` or `20000`
- Access data via `response.details.data`

## Component Libraries

- Arco Design Vue components: `<a-button>`, `<a-table>`, `<a-form>`, etc.
- Global components: `SearchTable`, `SearchForm`, `DataTable`, `Chart`

## Code Style

- No semicolons
- Single quotes
- Print width: 140 characters
- Path alias: `@/` → `src/`

## Build Commands

- `pnpm dev` - Start dev server
- `pnpm build` - Production build
- `pnpm lint` - Run ESLint + Prettier
