Skip to content

Commit 5fbaae5

Browse files
Merge branch 'adenhq:main' into main
2 parents e166379 + 0233065 commit 5fbaae5

36 files changed

Lines changed: 2444 additions & 328 deletions

.claude/skills/building-agents-construction/SKILL.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,8 @@ class RuntimeConfig:
520520
model: str = "cerebras/zai-glm-4.7"
521521
temperature: float = 0.7
522522
max_tokens: int = 4096
523+
api_key: str | None = None
524+
api_base: str | None = None
523525
524526
default_config = RuntimeConfig()
525527
@@ -972,7 +974,11 @@ class {agent_class_name}:
972974
llm = None
973975
if not mock_mode:
974976
# LiteLLMProvider uses environment variables for API keys
975-
llm = LiteLLMProvider(model=self.config.model)
977+
llm = LiteLLMProvider(
978+
model=self.config.model,
979+
api_key=self.config.api_key,
980+
api_base=self.config.api_base,
981+
)
976982
977983
self._graph = GraphSpec(
978984
id="{agent_name}-graph",

.claude/skills/building-agents-construction/examples/online_research_agent/agent.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,11 @@ def _create_runtime(self, mock_mode=False) -> AgentRuntime:
233233
llm = None
234234
if not mock_mode:
235235
# LiteLLMProvider uses environment variables for API keys
236-
llm = LiteLLMProvider(model=self.config.model)
236+
llm = LiteLLMProvider(
237+
model=self.config.model,
238+
api_key=self.config.api_key,
239+
api_base=self.config.api_base,
240+
)
237241

238242
self._graph = GraphSpec(
239243
id="online-research-agent-graph",

.claude/skills/building-agents-construction/examples/online_research_agent/config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ class RuntimeConfig:
77
model: str = "groq/moonshotai/kimi-k2-instruct-0905"
88
temperature: float = 0.7
99
max_tokens: int = 16384
10+
api_key: str | None = None
11+
api_base: str | None = None
1012

1113

1214
default_config = RuntimeConfig()
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Claude Issue Triage
2+
3+
on:
4+
issues:
5+
types: [opened]
6+
7+
jobs:
8+
triage:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
issues: write
13+
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 1
19+
20+
- name: Run Claude Issue Triage
21+
id: claude-triage
22+
uses: anthropics/claude-code-action@v1
23+
with:
24+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
25+
github_token: ${{ secrets.GITHUB_TOKEN }}
26+
allowed_non_write_users: '*'
27+
prompt: |
28+
REPO: ${{ github.repository }}
29+
ISSUE NUMBER: ${{ github.event.issue.number }}
30+
TITLE: ${{ github.event.issue.title }}
31+
BODY: ${{ github.event.issue.body }}
32+
AUTHOR: ${{ github.event.issue.user.login }}
33+
34+
Analyze this new issue and perform the following:
35+
36+
1. **Categorize the issue type using ONLY these labels:**
37+
- bug: Something isn't working
38+
- enhancement: New feature or request
39+
- question: Further information is requested
40+
- documentation: Improvements or additions to documentation
41+
- good first issue: Good for newcomers (if issue is well-defined and small scope)
42+
- help wanted: Extra attention is needed (if issue needs community input)
43+
- backlog: Tracked for the future, but not currently planned or prioritized
44+
45+
2. **Check for duplicates:**
46+
Search for similar existing issues using:
47+
`gh issue list --state all --search "<key terms from title/body>"`
48+
49+
If a duplicate exists:
50+
- Add the "duplicate" label
51+
- Comment mentioning the original issue number
52+
53+
3. **Check for invalid issues:**
54+
If the issue lacks sufficient information, is spam, or doesn't make sense:
55+
- Add the "invalid" label
56+
- Comment asking for clarification or explaining why it's invalid
57+
58+
4. **Apply labels:**
59+
Based on your analysis, add appropriate labels using:
60+
`gh issue edit ${{ github.event.issue.number }} --add-label "label1,label2"`
61+
62+
You may apply multiple labels if appropriate (e.g., "bug,help wanted").
63+
64+
5. **Add a brief comment** summarizing your triage decision to help maintainers.
65+
66+
claude_args: |
67+
--model claude-3-5-haiku-20241022
68+
--allowedTools "Bash(gh issue:*),Bash(gh search:*)"

.gitignore

98 Bytes
Binary file not shown.

CONTRIBUTING.md

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,32 @@ Thank you for your interest in contributing to the Aden Agent Framework! This do
66

77
By participating in this project, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md).
88

9+
## Issue Assignment Policy
10+
11+
To prevent duplicate work and respect contributors' time, we require issue assignment before submitting PRs.
12+
13+
### How to Claim an Issue
14+
15+
1. **Find an Issue:** Browse existing issues or create a new one
16+
2. **Claim It:** Leave a comment (e.g., *"I'd like to work on this!"*)
17+
3. **Wait for Assignment:** A maintainer will assign you within 24 hours
18+
4. **Submit Your PR:** Once assigned, you're ready to contribute
19+
20+
> **Note:** PRs for unassigned issues may be delayed or closed if someone else was already assigned.
21+
22+
### The 5-Day Momentum Rule
23+
24+
To keep the project moving, issues with **no activity for 5 days** (no PR or status update) will be unassigned. If you need more time, just drop a quick comment!
25+
26+
### Exceptions (No Assignment Needed)
27+
28+
You may submit PRs without prior assignment for:
29+
- **Documentation:** Fixing typos or clarifying instructions
30+
- **Micro-fixes:** Minor tweaks or obvious linting errors
31+
- **Small Refactors:** Tiny improvements that don't change core logic
32+
33+
If a high-quality PR is submitted for a "stale" assigned issue (no activity for 7+ days), we may proceed with the submitted code.
34+
935
## Getting Started
1036

1137
1. Fork the repository
@@ -59,11 +85,12 @@ docs(readme): update installation instructions
5985

6086
## Pull Request Process
6187

62-
1. Update documentation if needed
63-
2. Add tests for new functionality
64-
3. Ensure all tests pass
65-
4. Update the CHANGELOG.md if applicable
66-
5. Request review from maintainers
88+
1. **Get assigned to the issue first** (see [Issue Assignment Policy](#issue-assignment-policy))
89+
2. Update documentation if needed
90+
3. Add tests for new functionality
91+
4. Ensure all tests pass
92+
5. Update the CHANGELOG.md if applicable
93+
6. Request review from maintainers
6794

6895
### PR Title Format
6996

DEVELOPER.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -596,10 +596,11 @@ pip install -e .
596596
# Option 1: Use Claude Code skill (recommended)
597597
claude> /building-agents
598598

599-
# Option 2: Copy from example
600-
cp -r exports/support_ticket_agent exports/my_new_agent
599+
# Option 2: Create manually
600+
# Note: exports/ is initially empty (gitignored). Create your agent directory:
601+
mkdir -p exports/my_new_agent
601602
cd exports/my_new_agent
602-
# Edit agent.json, tools.py, README.md
603+
# Create agent.json, tools.py, README.md (see Agent Package Structure below)
603604

604605
# Option 3: Use the agent builder MCP tools (advanced)
605606
# See core/MCP_BUILDER_TOOLS_GUIDE.md

ENVIRONMENT_SETUP.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,31 @@ Creates comprehensive test suites for your agent.
152152

153153
## Troubleshooting
154154

155+
### "externally-managed-environment" error (PEP 668)
156+
157+
**Cause:** Python 3.12+ on macOS/Homebrew, WSL, or some Linux distros prevents system-wide pip installs.
158+
159+
**Solution:** Create and use a virtual environment:
160+
161+
```bash
162+
# Create virtual environment
163+
python3 -m venv .venv
164+
165+
# Activate it
166+
source .venv/bin/activate # macOS/Linux
167+
# .venv\Scripts\activate # Windows
168+
169+
# Then run setup
170+
./scripts/setup-python.sh
171+
```
172+
173+
Always activate the venv before running agents:
174+
175+
```bash
176+
source .venv/bin/activate
177+
PYTHONPATH=core:exports python -m your_agent_name demo
178+
```
179+
155180
### "ModuleNotFoundError: No module named 'framework'"
156181

157182
**Solution:** Install the core package:
@@ -188,7 +213,7 @@ pip install --upgrade "openai>=1.0.0"
188213

189214
**Cause:** Not running from project root or missing PYTHONPATH
190215

191-
**Solution:** Ensure you're in `/home/timothy/oss/hive/` and use:
216+
**Solution:** Ensure you're in the project root directory and use:
192217

193218
```bash
194219
PYTHONPATH=core:exports python -m support_ticket_agent validate

README.es.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
<a href="README.es.md">Español</a> |
99
<a href="README.pt.md">Português</a> |
1010
<a href="README.ja.md">日本語</a> |
11-
<a href="README.ru.md">Русский</a>
11+
<a href="README.ru.md">Русский</a> |
12+
<a href="README.ko.md">한국어</a>
1213
</p>
1314

1415
[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/adenhq/hive/blob/main/LICENSE)
@@ -288,11 +289,14 @@ Usamos [Discord](https://discord.com/invite/MXE49hrKDk) para soporte, solicitude
288289

289290
¡Damos la bienvenida a las contribuciones! Por favor consulta [CONTRIBUTING.md](CONTRIBUTING.md) para las directrices.
290291

291-
1. Haz fork del repositorio
292-
2. Crea tu rama de funcionalidad (`git checkout -b feature/amazing-feature`)
293-
3. Haz commit de tus cambios (`git commit -m 'Add amazing feature'`)
294-
4. Haz push a la rama (`git push origin feature/amazing-feature`)
295-
5. Abre un Pull Request
292+
**Importante:** Por favor, solicita que se te asigne un issue antes de enviar un PR. Comenta en el issue para reclamarlo y un mantenedor te lo asignará en 24 horas. Esto ayuda a evitar trabajo duplicado.
293+
294+
1. Encuentra o crea un issue y solicita asignación
295+
2. Haz fork del repositorio
296+
3. Crea tu rama de funcionalidad (`git checkout -b feature/amazing-feature`)
297+
4. Haz commit de tus cambios (`git commit -m 'Add amazing feature'`)
298+
5. Haz push a la rama (`git push origin feature/amazing-feature`)
299+
6. Abre un Pull Request
296300

297301
## Únete a Nuestro Equipo
298302

README.ja.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
<a href="README.es.md">Español</a> |
99
<a href="README.pt.md">Português</a> |
1010
<a href="README.ja.md">日本語</a> |
11-
<a href="README.ru.md">Русский</a>
11+
<a href="README.ru.md">Русский</a> |
12+
<a href="README.ko.md">한국어</a>
1213
</p>
1314

1415
[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/adenhq/hive/blob/main/LICENSE)
@@ -288,11 +289,14 @@ timeline
288289

289290
貢献を歓迎します!ガイドラインについては[CONTRIBUTING.md](CONTRIBUTING.md)をご覧ください。
290291

291-
1. リポジトリをフォーク
292-
2. 機能ブランチを作成 (`git checkout -b feature/amazing-feature`)
293-
3. 変更をコミット (`git commit -m 'Add amazing feature'`)
294-
4. ブランチにプッシュ (`git push origin feature/amazing-feature`)
295-
5. プルリクエストを開く
292+
**重要:** PRを提出する前に、まずIssueにアサインされてください。Issueにコメントして担当を申請すると、メンテナーが24時間以内にアサインします。これにより重複作業を防ぐことができます。
293+
294+
1. Issueを見つけるか作成し、アサインを受ける
295+
2. リポジトリをフォーク
296+
3. 機能ブランチを作成 (`git checkout -b feature/amazing-feature`)
297+
4. 変更をコミット (`git commit -m 'Add amazing feature'`)
298+
5. ブランチにプッシュ (`git push origin feature/amazing-feature`)
299+
6. プルリクエストを開く
296300

297301
## チームに参加
298302

0 commit comments

Comments
 (0)