Skip to content

Commit af93bb3

Browse files
4pmtonga7m-1stCamelAIorgWendong-Fan
authored
feat: Add Lint & Format (#878)
Co-authored-by: a7m-1st <Ahmed.jimi.awelkeir500@gmail.com> Co-authored-by: eigent-ai <camel@eigent.ai> Co-authored-by: Wendong-Fan <133094783+Wendong-Fan@users.noreply.github.com> Co-authored-by: Wendong-Fan <w3ndong.fan@gmail.com>
1 parent f256272 commit af93bb3

348 files changed

Lines changed: 48747 additions & 36522 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ dist-electron
1616
release
1717
*.local
1818

19+
backend/context_files/
20+
1921
# Editor directories and files
2022
.vscode/.debug.env
2123
.idea

.lintstagedrc.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
{
2-
"*.{ts,tsx,d.ts}": [
2+
"*.{ts,tsx}": [
3+
"eslint --fix --no-warn-ignored",
4+
"prettier --write",
35
"node licenses/update_license.js"
46
],
5-
"*.py": [
6-
"node licenses/update_license.js"
7-
]
7+
"*.{js,jsx}": ["eslint --fix --no-warn-ignored", "prettier --write"],
8+
"*.{json,css,md}": ["prettier --write"],
9+
"*.py": ["node licenses/update_license.js"]
810
}

.prettierignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Dependencies
2+
node_modules/
3+
package/@stackframe/
4+
5+
# Build outputs
6+
dist/
7+
dist-electron/
8+
build/
9+
10+
# Cache
11+
.cache/
12+
.vite/
13+
*.tsbuildinfo
14+
15+
# Logs
16+
*.log
17+
npm-debug.log*
18+
19+
# OS
20+
.DS_Store
21+
Thumbs.db
22+
23+
# IDE
24+
.vscode/
25+
.idea/
26+
27+
# Python
28+
__pycache__/
29+
*.pyc
30+
*.pyo
31+
*.pyd
32+
.Python
33+
*.so
34+
*.egg
35+
*.egg-info/
36+
.pytest_cache/
37+
**/.venv/
38+
39+
# Lock files
40+
package-lock.json
41+
uv.lock
42+
43+
# Generated files
44+
messages.pot
45+
*.po

.prettierrc.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"plugins": [
3+
"prettier-plugin-organize-imports",
4+
"prettier-plugin-tailwindcss"
5+
],
6+
"tailwindFunctions": ["classNames"],
7+
"singleQuote": true,
8+
"trailingComma": "es5"
9+
}

.storybook/main.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212
// limitations under the License.
1313
// ========= Copyright 2025-2026 @ Eigent.ai All Rights Reserved. =========
1414

15-
import type { StorybookConfig } from '@storybook/react-vite'
15+
import type { StorybookConfig } from '@storybook/react-vite';
1616

1717
const config: StorybookConfig = {
1818
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
1919
addons: ['@storybook/addon-docs', '@storybook/addon-a11y'],
2020
framework: '@storybook/react-vite',
2121
viteFinal: async (config) => {
2222
// Reuse project's vite config for path aliases
23-
return config
23+
return config;
2424
},
25-
}
25+
};
2626

27-
export default config
27+
export default config;

.storybook/preview.tsx

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,20 @@
1212
// limitations under the License.
1313
// ========= Copyright 2025-2026 @ Eigent.ai All Rights Reserved. =========
1414

15-
import type { Preview } from '@storybook/react-vite'
16-
import React from 'react'
17-
import '@fontsource/inter/400.css'
18-
import '@fontsource/inter/500.css'
19-
import '@fontsource/inter/600.css'
20-
import '@fontsource/inter/700.css'
21-
import '@fontsource/inter/800.css'
22-
import '../src/style/index.css'
23-
import './storybook.css' // Storybook-specific overrides
24-
import { Toaster } from 'sonner'
15+
import '@fontsource/inter/400.css';
16+
import '@fontsource/inter/500.css';
17+
import '@fontsource/inter/600.css';
18+
import '@fontsource/inter/700.css';
19+
import '@fontsource/inter/800.css';
20+
import type { Preview } from '@storybook/react-vite';
21+
import { Toaster } from 'sonner';
22+
import '../src/style/index.css';
23+
import './storybook.css'; // Storybook-specific overrides
2524

2625
// Apply theme immediately via script
2726
if (typeof document !== 'undefined') {
28-
document.documentElement.setAttribute('data-theme', 'light')
29-
document.documentElement.classList.add('root')
27+
document.documentElement.setAttribute('data-theme', 'light');
28+
document.documentElement.classList.add('root');
3029
}
3130

3231
const preview: Preview = {
@@ -56,6 +55,6 @@ const preview: Preview = {
5655
</div>
5756
),
5857
],
59-
}
58+
};
6059

61-
export default preview
60+
export default preview;

.vscode/extensions.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
"recommendations": [
55
"mrmlnc.vscode-json5",
66
"ms-python.python",
7-
"ms-python.debugpy"
7+
"ms-python.debugpy",
8+
// Linting / Formatting
9+
"esbenp.prettier-vscode",
10+
"dbaeumer.vscode-eslint",
11+
"bradlc.vscode-tailwindcss"
812
]
913
}

.vscode/settings.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,37 @@
1818
"server/lang",
1919
"src/i18n",
2020
"src/i18n/locales"
21+
],
22+
// Prettier & ESLint configuration
23+
"editor.defaultFormatter": "esbenp.prettier-vscode",
24+
"editor.formatOnSave": true,
25+
"editor.codeActionsOnSave": {
26+
"source.fixAll.eslint": "explicit",
27+
"source.organizeImports": "explicit"
28+
},
29+
"[javascript]": {
30+
"editor.defaultFormatter": "esbenp.prettier-vscode"
31+
},
32+
"[javascriptreact]": {
33+
"editor.defaultFormatter": "esbenp.prettier-vscode"
34+
},
35+
"[typescript]": {
36+
"editor.defaultFormatter": "esbenp.prettier-vscode"
37+
},
38+
"[typescriptreact]": {
39+
"editor.defaultFormatter": "esbenp.prettier-vscode"
40+
},
41+
"[json]": {
42+
"editor.defaultFormatter": "esbenp.prettier-vscode"
43+
},
44+
"[jsonc]": {
45+
"editor.defaultFormatter": "esbenp.prettier-vscode"
46+
},
47+
"prettier.requireConfig": true,
48+
"eslint.validate": [
49+
"javascript",
50+
"javascriptreact",
51+
"typescript",
52+
"typescriptreact"
2153
]
2254
}

CONTRIBUTING.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ our coding standards.
105105
- Readability: Is the code easy to read and understand? Is it well-commented where necessary?
106106
- Maintainability: Is the code structured in a way that makes future changes easy?
107107
- Style: Does the code follow the project’s style guidelines?
108-
Currently we use Ruff for format check and take [Google Python Style Guide]("https://google.github.io/styleguide/pyguide.html") as reference.
108+
Currently we use Ruff for format check and take [Google Python Style Guide]("https://google.github.io/styleguide/pyguide.html") as reference.
109109
- Documentation: Are public methods, classes, and any complex logic well-documented?
110110
- Design
111111
- Consistency: Does the code follow established design patterns and project architecture?
@@ -162,11 +162,11 @@ Example:
162162

163163
```markdown
164164
Args:
165-
system_message (BaseMessage): The system message for initializing
166-
the agent's conversation context.
167-
model (BaseModelBackend, optional): The model backend to use for
168-
response generation. Defaults to :obj:`OpenAIModel` with
169-
`GPT_4O_MINI`. (default: :obj:`OpenAIModel` with `GPT_4O_MINI`)
165+
system_message (BaseMessage): The system message for initializing
166+
the agent's conversation context.
167+
model (BaseModelBackend, optional): The model backend to use for
168+
response generation. Defaults to :obj:`OpenAIModel` with
169+
`GPT_4O_MINI`. (default: :obj:`OpenAIModel` with `GPT_4O_MINI`)
170170
```
171171

172172
### Principles 🛡️

README.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ The recommended way to run Eigent — fully standalone with complete control ove
9292
👉 **[Full Local Deployment Guide](./server/README_EN.md)**
9393

9494
This setup includes:
95+
9596
- Local backend server with full API
9697
- Local model integration (vLLM, Ollama, LM Studio, etc.)
9798
- Complete isolation from cloud services
@@ -156,10 +157,12 @@ For teams who prefer managed infrastructure, we also offer a cloud platform. The
156157
</div>
157158

158159
## **✨ Key features - Open Source Cowork**
160+
159161
Unlock the full potential of exceptional productivity with Eigent's open-source Cowork powerful features — built for seamless integration, smarter task execution, and boundless automation.
160162

161-
### 🏭 Workforce
162-
Employs a team of specialized AI agents that collaborate to solve complex tasks. Eigent's open-source Cowork dynamically breaks down tasks and activates multiple agents to work **in parallel.**
163+
### 🏭 Workforce
164+
165+
Employs a team of specialized AI agents that collaborate to solve complex tasks. Eigent's open-source Cowork dynamically breaks down tasks and activates multiple agents to work **in parallel.**
163166

164167
Eigent pre-defined the following agent workers:
165168

@@ -173,27 +176,31 @@ Eigent pre-defined the following agent workers:
173176
<br/>
174177

175178
### 🧠 Comprehensive Model Support
179+
176180
Deploy the Eigent open-source Cowork desktop locally with your preferred models.
177181

178182
![Model](https://eigent-ai.github.io/.github/assets/gif/feature_local_model.gif)
179183

180184
<br/>
181185

182186
### 🔌 MCP Tools Integration (MCP)
187+
183188
Eigent comes with massive built-in **Model Context Protocol (MCP)** tools (for web browsing, code execution, Notion, Google suite, Slack etc.), and also lets you **install your own tools**. Equip agents with exactly the right tools for your scenarios – even integrate internal APIs or custom functions – to enhance their capabilities.
184189

185190
![MCP](https://eigent-ai.github.io/.github/assets/gif/feature_add_mcps.gif)
186191

187192
<br/>
188193

189194
### ✋ Human-in-the-Loop
190-
If a task gets stuck or encounters uncertainty, Eigent will automatically request human input.
195+
196+
If a task gets stuck or encounters uncertainty, Eigent will automatically request human input.
191197

192198
![Human-in-the-loop](https://eigent-ai.github.io/.github/assets/gif/feature_human_in_the_loop.gif)
193199

194200
<br/>
195201

196202
### 👐 100% Open Source
203+
197204
Eigent is completely open-sourced. You can download, inspect, and modify the code, ensuring transparency and fostering a community-driven ecosystem for multi-agent innovation.
198205

199206
![Opensource][image-opensource]
@@ -284,12 +291,13 @@ Please add this signature image to the Signature Areas in the PDF. You could ins
284291
Eigent open-source Cowork desktop is built on modern, reliable technologies that ensure scalability, performance, and extensibility.
285292

286293
### Backend
294+
287295
- **Framework:** FastAPI
288296
- **Package Manager:** uv
289297
- **Async Server:** Uvicorn
290-
- **Authentication:** OAuth 2.0, Passlib.
298+
- **Authentication:** OAuth 2.0, Passlib.
291299
- **Multi-agent framework:** CAMEL
292-
300+
293301
### Frontend
294302

295303
- **Framework:** React
@@ -311,22 +319,20 @@ Eigent open-source Cowork desktop is built on modern, reliable technologies that
311319

312320
Our open-source Cowork continues to evolve with input from the community. Here's what's coming next:
313321

314-
| Topics | Issues | Discord Channel |
315-
| ------------------------ | -- |-- |
316-
| **Context Engineering** | - Prompt caching<br> - System prompt optimize<br> - Toolkit docstring optimize<br> - Context compression | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
317-
| **Multi-modal Enhancement** | - More accurate image understanding when using browser<br> - Advanced video generation | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
318-
| **Multi-agent system** | - Workforce support fixed workflow<br> - Workforce support multi-round conversion | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
319-
| **Browser Toolkit** | - BrowseComp integration<br> - Benchmark improvement<br> - Forbid repeated page visiting<br> - Automatic cache button clicking | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
320-
| **Document Toolkit** | - Support dynamic file editing | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
321-
| **Terminal Toolkit** | - Benchmark improvement<br> - Terminal-Bench integration | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
322-
| **Environment & RL** | - Environment design<br> - Data-generation<br> - RL framework integration (VERL, TRL, OpenRLHF) | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
323-
322+
| Topics | Issues | Discord Channel |
323+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- |
324+
| **Context Engineering** | - Prompt caching<br> - System prompt optimize<br> - Toolkit docstring optimize<br> - Context compression | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
325+
| **Multi-modal Enhancement** | - More accurate image understanding when using browser<br> - Advanced video generation | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
326+
| **Multi-agent system** | - Workforce support fixed workflow<br> - Workforce support multi-round conversion | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
327+
| **Browser Toolkit** | - BrowseComp integration<br> - Benchmark improvement<br> - Forbid repeated page visiting<br> - Automatic cache button clicking | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
328+
| **Document Toolkit** | - Support dynamic file editing | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
329+
| **Terminal Toolkit** | - Benchmark improvement<br> - Terminal-Bench integration | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
330+
| **Environment & RL** | - Environment design<br> - Data-generation<br> - RL framework integration (VERL, TRL, OpenRLHF) | [**Join Discord →**](https://discord.com/invite/CNcNpquyDc) |
324331

325332
## [🤝 Contributing][contribution-link]
326333

327334
We believe in building trust and embracing all forms of open-source collaborations. Your creative contributions help drive the innovation of `Eigent`. Explore our GitHub issues and projects to dive in and show us what you’ve got 🤝❤️ [Contribution Guideline][contribution-link]
328335

329-
330336
## Contributors
331337

332338
<a href="https://github.com/eigent-ai/eigent/graphs/contributors">
@@ -346,6 +352,7 @@ Eigent is built on top of [CAMEL-AI.org][camel-ai-org-github]'s research and inf
346352
This repository is licensed under the [Apache License 2.0](LICENSE).
347353

348354
## 🌐 Community & Contact
355+
349356
For more information please contact info@eigent.ai
350357

351358
- **GitHub Issues:** Report bugs, request features, and track development. [Submit an issue][github-issue-link]
@@ -360,57 +367,50 @@ For more information please contact info@eigent.ai
360367
<img src="./src/assets/wechat_qr.jpg" width="200" style="display: inline-block; margin: 10px;">
361368
</div>
362369

363-
364-
365370
<!-- LINK GROUP -->
366371
<!-- Social -->
372+
367373
[discord-url]: https://discord.com/invite/CNcNpquyDc
368374
[discord-image]: https://img.shields.io/discord/1082486657678311454?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb
369-
370-
[built-with-camel]:https://img.shields.io/badge/-Built--with--CAMEL-4C19E8.svg?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQ4IiBoZWlnaHQ9IjI3MiIgdmlld0JveD0iMCAwIDI0OCAyNzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjgzMTE3IDE4LjU4NjVMMCAzMC44MjY3QzUuNDY2OTIgMzUuMDQzMiAxNS4xMzkxIDM4LjgyNTggMjQuODExNCAzNi4yOTU5QzMwLjY5ODggNDAuOTM0MSAzOS42NzAyIDQwLjIzMTMgNDQuMTU1OSA0MC4wOTA4QzQzLjQ1NSA0Ny4zOTk0IDQyLjQ3MzcgNzAuOTU1OCA0NC4xNTU5IDEwNi43MTJDNDUuODM4IDE0Mi40NjggNzEuNzcwOCAxNjYuODY4IDg0LjUyNjkgMTc0LjU5OEw3Ni4wMDAyIDIyMEw4NC41MjY5IDI3MkgxMDguOTE4TDk4LjAwMDIgMjIwTDEwOC45MTggMTc0LjU5OEwxMjkuOTQ0IDI3MkgxNTQuNzU2TDEzNC4xNSAxNzQuNTk4SDE4Ny4xMzdMMTY2LjUzMSAyNzJIMTkxLjc2M0wyMTIuMzY5IDE3NC41OThMMjI2IDIyMEwyMTIuMzY5IDI3MkgyMzcuNjAxTDI0OC4wMDEgMjIwTDIzNy4xOCAxNzQuNTk4QzIzOS4yODMgMTY5LjExNyAyNDAuNDAxIDE2Ni45NzYgMjQxLjgwNiAxNjEuMTA1QzI0OS4zNzUgMTI5LjQ4MSAyMzUuMDc3IDEwMy45MDEgMjI2LjY2NyA5NC40ODRMMjA2LjQ4MSA3My44MjNDMTk3LjY1IDY0Ljk2ODMgMTgyLjUxMSA2NC41NDY3IDE3Mi44MzkgNzIuNTU4MUMxNjUuNzI4IDc4LjQ0NzcgMTYxLjcwMSA3OC43NzI3IDE1NC43NTYgNzIuNTU4MUMxNTEuODEyIDcwLjAyODEgMTQ0LjUzNSA2MS40ODg5IDEzNC45OTEgNTMuNTgzN0MxMjUuMzE5IDQ1LjU3MjMgMTA4LjQ5NyA0OC45NDU1IDEwMi4xODkgNTUuNjkxOUw3My41OTMxIDg0LjM2NDRWNy42MjM0OUw3OS4xMjczIDBDNjAuOTA0MiAzLjY1NDMzIDIzLjgwMjEgOS41NjMwOSAxOS43NjUgMTAuNTc1MUMxNS43Mjc5IDExLjU4NyAxMC43OTM3IDE2LjMzNzcgOC44MzExNyAxOC41ODY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjIwMzggMTguNzE4N0w0OS4wOTEyIDEzLjA0OTNMNTQuOTc4NyAxOC43MTg3TDQ5LjA5MTIgMjQuODI0Mkw0My4yMDM4IDE4LjcxODdaIiBmaWxsPSIjNEMxOUU4Ii8+Cjwvc3ZnPgo=
371-
375+
[built-with-camel]: https://img.shields.io/badge/-Built--with--CAMEL-4C19E8.svg?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQ4IiBoZWlnaHQ9IjI3MiIgdmlld0JveD0iMCAwIDI0OCAyNzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjgzMTE3IDE4LjU4NjVMMCAzMC44MjY3QzUuNDY2OTIgMzUuMDQzMiAxNS4xMzkxIDM4LjgyNTggMjQuODExNCAzNi4yOTU5QzMwLjY5ODggNDAuOTM0MSAzOS42NzAyIDQwLjIzMTMgNDQuMTU1OSA0MC4wOTA4QzQzLjQ1NSA0Ny4zOTk0IDQyLjQ3MzcgNzAuOTU1OCA0NC4xNTU5IDEwNi43MTJDNDUuODM4IDE0Mi40NjggNzEuNzcwOCAxNjYuODY4IDg0LjUyNjkgMTc0LjU5OEw3Ni4wMDAyIDIyMEw4NC41MjY5IDI3MkgxMDguOTE4TDk4LjAwMDIgMjIwTDEwOC45MTggMTc0LjU5OEwxMjkuOTQ0IDI3MkgxNTQuNzU2TDEzNC4xNSAxNzQuNTk4SDE4Ny4xMzdMMTY2LjUzMSAyNzJIMTkxLjc2M0wyMTIuMzY5IDE3NC41OThMMjI2IDIyMEwyMTIuMzY5IDI3MkgyMzcuNjAxTDI0OC4wMDEgMjIwTDIzNy4xOCAxNzQuNTk4QzIzOS4yODMgMTY5LjExNyAyNDAuNDAxIDE2Ni45NzYgMjQxLjgwNiAxNjEuMTA1QzI0OS4zNzUgMTI5LjQ4MSAyMzUuMDc3IDEwMy45MDEgMjI2LjY2NyA5NC40ODRMMjA2LjQ4MSA3My44MjNDMTk3LjY1IDY0Ljk2ODMgMTgyLjUxMSA2NC41NDY3IDE3Mi44MzkgNzIuNTU4MUMxNjUuNzI4IDc4LjQ0NzcgMTYxLjcwMSA3OC43NzI3IDE1NC43NTYgNzIuNTU4MUMxNTEuODEyIDcwLjAyODEgMTQ0LjUzNSA2MS40ODg5IDEzNC45OTEgNTMuNTgzN0MxMjUuMzE5IDQ1LjU3MjMgMTA4LjQ5NyA0OC45NDU1IDEwMi4xODkgNTUuNjkxOUw3My41OTMxIDg0LjM2NDRWNy42MjM0OUw3OS4xMjczIDBDNjAuOTA0MiAzLjY1NDMzIDIzLjgwMjEgOS41NjMwOSAxOS43NjUgMTAuNTc1MUMxNS43Mjc5IDExLjU4NyAxMC43OTM3IDE2LjMzNzcgOC44MzExNyAxOC41ODY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjIwMzggMTguNzE4N0w0OS4wOTEyIDEzLjA0OTNMNTQuOTc4NyAxOC43MTg3TDQ5LjA5MTIgMjQuODI0Mkw0My4yMDM4IDE4LjcxODdaIiBmaWxsPSIjNEMxOUU4Ii8+Cjwvc3ZnPgo=
372376
[eigent-github]: https://github.com/eigent-ai/eigent
373377
[github-star]: https://img.shields.io/github/stars/eigent-ai?color=F5F4F0&labelColor=gray&style=plastic&logo=github
374378
[camel-ai-org-github]: https://github.com/camel-ai
375-
376379
[camel-github]: https://github.com/camel-ai/camel
377380
[eigent-github]: https://github.com/eigent-ai/eigent
378381
[contribution-link]: https://github.com/eigent-ai/eigent/blob/main/CONTRIBUTING.md
379-
380382
[social-x-link]: https://x.com/Eigent_AI
381383
[social-x-shield]: https://img.shields.io/badge/-%40Eigent_AI-white?labelColor=gray&logo=x&logoColor=white&style=plastic
382-
383384
[reddit-url]: https://www.reddit.com/r/CamelAI/
384385
[reddit-image]: https://img.shields.io/reddit/subreddit-subscribers/CamelAI?style=plastic&logo=reddit&label=r%2FCAMEL&labelColor=white
385-
386386
[wechat-url]: https://ghli.org/camel/wechat.png
387387
[wechat-image]: https://img.shields.io/badge/WeChat-CamelAIOrg-brightgreen?logo=wechat&logoColor=white
388-
389388
[sponsor-link]: https://github.com/sponsors/camel-ai
390389
[sponsor-shield]: https://img.shields.io/badge/-Sponsor%20CAMEL--AI-1d1d1d?logo=github&logoColor=white&style=plastic
391-
392390
[eigent-download]: https://www.eigent.ai/download
393391
[download-shield]: https://img.shields.io/badge/Download%20Eigent-363AF5?style=plastic
394-
395-
[join-us]:https://eigent-ai.notion.site/eigent-ai-careers
396-
[join-us-image]:https://img.shields.io/badge/Join%20Us-yellow?style=plastic
392+
[join-us]: https://eigent-ai.notion.site/eigent-ai-careers
393+
[join-us-image]: https://img.shields.io/badge/Join%20Us-yellow?style=plastic
397394

398395
<!-- camel & eigent -->
396+
399397
[camel-site]: https://www.camel-ai.org
400398
[eigent-site]: https://www.eigent.ai
401399
[docs-site]: https://docs.eigent.ai
402400
[github-issue-link]: https://github.com/eigent-ai/eigent/issues
403401

404402
<!-- marketing -->
405-
[image-seperator]: https://eigent-ai.github.io/.github/assets/seperator.png
406-
[image-head]: https://eigent-ai.github.io/.github/assets/head.png
403+
404+
[image-seperator]: https://eigent-ai.github.io/.github/assets/seperator.png
405+
[image-head]: https://eigent-ai.github.io/.github/assets/head.png
407406
[image-public-beta]: https://eigent-ai.github.io/.github/assets/banner.png
408407
[image-star-us]: https://eigent-ai.github.io/.github/assets/star-us.gif
409408
[image-opensource]: https://eigent-ai.github.io/.github/assets/opensource.png
410409
[image-wechat]: https://eigent-ai.github.io/.github/assets/wechat.png
411410
[image-join-us]: https://camel-ai.github.io/camel_asset/graphics/join_us.png
412411

413412
<!-- feature -->
413+
414414
[image-workforce]: https://eigent-ai.github.io/.github/assets/feature_dynamic_workforce.gif
415415
[image-human-in-the-loop]: https://eigent-ai.github.io/.github/assets/feature_human_in_the_loop.gif
416416
[image-customise-workers]: https://eigent-ai.github.io/.github/assets/feature_customise_workers.gif

0 commit comments

Comments
 (0)