Skip to content

Commit 82d45c4

Browse files
feat: Implement GetLibraryIDTool with Context7 API integration (#7)
* feat(tools): Implement Context7 API integration for library ID resolution and documentation fetching - Implement resolve_library_id tool with direct Context7 API integration - Enhance get_library_docs tool with Context7-compatible parameters - Add intelligent library selection logic based on Context7 MCP patterns - Update agent.yaml with correct tool schemas - Add comprehensive documentation in IMPLEMENTATION.md - Support environment variable configuration (CONTEXT7_API_KEY) - Handle authentication, error responses, and edge cases The implementation bypasses MCP protocol overhead by calling Context7 REST APIs directly while maintaining full compatibility with the official Context7 MCP server tool schemas and response formats. Fixes #6 Co-authored-by: Eden Reich <[email protected]> * chore: Update agent.json, Dockerfile, Taskfile.yml, and main.go with new tool descriptions and timestamps Signed-off-by: Eden Reich <[email protected]> * chore: Update generated files and configurations to version 0.12.2; add new card properties in agent.yaml Signed-off-by: Eden Reich <[email protected]> * fix: Improve the generator to also output default input and output modes Signed-off-by: Eden Reich <[email protected]> * chore: Update agent configuration and documentation; add new environment variables and improve README Signed-off-by: Eden Reich <[email protected]> * docs: Add example environment files and Docker Compose setup for Documentation Agent Signed-off-by: Eden Reich <[email protected]> * chore: Add claude-code package configuration and update environment variables Signed-off-by: Eden Reich <[email protected]> * fix: Integrate LLM client into agent builder for improved documentation query management Signed-off-by: Eden Reich <[email protected]> * fix: Update skills to include logger for improved debugging and error handling Signed-off-by: Eden Reich <[email protected]> * fix: Correct error message formatting in get_library_docs handler for consistency Signed-off-by: Eden Reich <[email protected]> * fix: Remove claude-code references and add golangci-lint configuration in manifest files For claude-code I will make it optional some might want to work with AI some might would want to implement things themselves. Entirely up to the dev, will let the codegen pass a flag called --ai so the correct setup will be in place and the agents will be able to build agents efficiently. Signed-off-by: Eden Reich <[email protected]> * chore: Update README and example environment file with new server timeout configurations Signed-off-by: Eden Reich <[email protected]> --------- Signed-off-by: Eden Reich <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Eden Reich <[email protected]>
1 parent bf39ba6 commit 82d45c4

20 files changed

+1335
-182
lines changed

.adl-ignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
# - Directories: build/
1010
# - Comments: lines starting with #
1111

12-
tools/*
12+
skills/*
13+
Taskfile.yml
14+
Dockerfile
15+
k8s/deployment.yaml
16+
.env.example
1317

1418
# Go dependency files
1519
go.sum

.env.example

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Documentation Agent Configurations
2+
CONTEXT7_API_KEY=
3+
4+
# A2A Configuration
5+
6+
# Server Configuration
7+
A2A_PORT=8080
8+
A2A_DEBUG=false
9+
A2A_AGENT_URL=http://localhost:8080
10+
A2A_STREAMING_STATUS_UPDATE_INTERVAL=1s
11+
12+
# Agent Metadata
13+
A2A_AGENT_CARD_FILE_PATH=.well-known/agent.json
14+
15+
# LLM Client Configuration
16+
A2A_AGENT_CLIENT_PROVIDER=
17+
A2A_AGENT_CLIENT_MODEL=
18+
A2A_AGENT_CLIENT_MAX_TOKENS=4096
19+
A2A_AGENT_CLIENT_TEMPERATURE=0.7
20+
A2A_AGENT_CLIENT_SYSTEM_PROMPT=""
21+
22+
# LLM Provider Settings (set the appropriate one based on your provider)
23+
A2A_AGENT_CLIENT_API_KEY=your-api-key-here
24+
# A2A_AGENT_CLIENT_BASE_URL=https://api.openai.com/v1 # Optional: Custom endpoint
25+
26+
# Client Configuration
27+
A2A_AGENT_CLIENT_TIMEOUT=30s
28+
A2A_AGENT_CLIENT_MAX_RETRIES=3
29+
A2A_AGENT_CLIENT_MAX_CHAT_COMPLETION_ITERATIONS=10
30+
31+
# Capabilities
32+
A2A_CAPABILITIES_STREAMING=true
33+
A2A_CAPABILITIES_PUSH_NOTIFICATIONS=false
34+
A2A_CAPABILITIES_STATE_TRANSITION_HISTORY=true
35+
36+
# Task Management
37+
A2A_TASK_RETENTION_MAX_COMPLETED_TASKS=100
38+
A2A_TASK_RETENTION_MAX_FAILED_TASKS=50
39+
A2A_TASK_RETENTION_CLEANUP_INTERVAL=5m
40+
41+
# Storage Configuration (optional)
42+
A2A_QUEUE_PROVIDER=memory
43+
# A2A_QUEUE_URL=redis://localhost:6379 # Required when using Redis
44+
A2A_QUEUE_MAX_SIZE=100
45+
A2A_QUEUE_CLEANUP_INTERVAL=30s
46+
47+
# Authentication (optional - OIDC)
48+
A2A_AUTH_ENABLE=false

.flox/env/manifest.lock

Lines changed: 165 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.flox/env/manifest.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ version = 1
44
go.pkg-path = "go"
55
go.version = "^1.24"
66

7+
golangci-lint.pkg-path = "golangci-lint"
8+
golangci-lint.version = "^2.4.0"
9+
golangci-lint.pkg-group = "common"
10+
711
go-task.pkg-path = "go-task"
812
go-task.pkg-group = "common"
913

0 commit comments

Comments
 (0)