Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Use `just` for all development tasks:
| `just console` | Run Textual devtools console |
| `just get-card` | Fetch agent card (CLI) |
| `just send` | Send message to agent (CLI) |
| `just validate` | Validate agent card (CLI) |
| `just version` | Show current version |
| `just bump` | Bump version (patch, minor, major) |
| `just tag` | Create git tag for current version |
Expand All @@ -27,8 +28,9 @@ Use `just` for all development tasks:
handler/
├── src/a2a_handler/ # Main package
│ ├── _version.py # Version string
│ ├── cli.py # CLI (click)
│ ├── cli.py # CLI (rich-click)
│ ├── client.py # A2A protocol client (a2a-sdk)
│ ├── validation.py # Agent card validation utilities
│ ├── server.py # A2A server agent (google-adk, litellm)
│ ├── tui.py # TUI application (textual)
│ ├── common/ # Shared utilities (rich, logging)
Expand Down Expand Up @@ -61,7 +63,7 @@ The `a2a_handler.client` module provides A2A protocol logic:

## Key Dependencies

- **CLI**: `click`
- **CLI**: `rich-click` (enhanced `click` with rich formatting)
- **Client**: `a2a-sdk`, `httpx`
- **Server**: `google-adk`, `litellm`, `uvicorn`
- **TUI**: `textual`
Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ Handler is a single Python package (`a2a-handler`) with all modules under `src/a

| Module | Description |
|--------|-------------|
| `cli.py` | CLI built with `click`. Entry point: `handler` |
| `cli.py` | CLI built with `rich-click`. Entry point: `handler` |
| `client.py` | A2A protocol client library using `a2a-sdk` |
| `validation.py` | Agent card validation utilities |
| `common/` | Shared utilities (logging, printing with `rich`) |
| `server.py` | Reference A2A agent using `google-adk` + `litellm` |
| `tui.py` | TUI application built with `textual` |
Expand Down Expand Up @@ -43,6 +44,7 @@ just install # or: uv sync
| `just console` | Run Textual devtools console |
| `just get-card [url]` | Fetch agent card from URL |
| `just send [url] [msg]` | Send message to agent |
| `just validate [source]` | Validate agent card from URL or file |
| `just version` | Show current version |
| `just bump [level]` | Bump version (patch, minor, major) |
| `just tag` | Create git tag for current version |
Expand Down
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,44 @@ handler tui

### CLI

#### Global Options

```bash
handler --verbose # Enable verbose logging output
handler --debug # Enable debug logging output
handler --help # Show help for any command
```

#### Commands

Fetch agent card from A2A server:

```bash
handler card http://localhost:8000
handler card http://localhost:8000 --output json # JSON output
```

Validate an agent card from a URL or file:

```bash
handler validate http://localhost:8000 # Validate from URL
handler validate ./agent-card.json # Validate from file
handler validate http://localhost:8000 --output json # JSON output
```

Send a message to an A2A agent:

```bash
handler send http://localhost:8000 "Hello World"
handler send http://localhost:8000 "Hello" --output json # JSON output
handler send http://localhost:8000 "Hello" --context-id abc # Conversation continuity
handler send http://localhost:8000 "Hello" --task-id xyz # Reference existing task
```

Show version:

```bash
handler version
```

## Contributing
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "a2a-handler"
version = "0.1.7"
version = "0.1.8"
description = "An A2A Protocol client TUI and CLI."
readme = "README.md"
requires-python = ">=3.11"
Expand Down Expand Up @@ -34,6 +34,7 @@ classifiers = [
dependencies = [
"a2a-sdk>=0.2.5",
"click>=8.0.0",
"rich-click>=1.8.0",
"google-adk>=0.5.0",
"httpx>=0.27.0",
"litellm>=1.0.0",
Expand Down
Loading