# Fish.bg Catalogue Agent

A2A агент само за четене над каталога на fish.bg. Данните идват на живо от
публичното WooCommerce Store API (`https://fish.bg/wp-json/wc/store/v1`).

- Карта: `https://fish.bg/.well-known/agent-card.json`
- Endpoint: `https://fish.bg/a2a/v1` (POST, JSON-RPC 2.0, A2A v1.0, protocolBinding JSONRPC)
- Умения: `search-products`, `product-details`, `browse-categories`, `list-brands`
- Няма кошница, поръчки и плащания. Няма аутентикация - каталогът е публичен.
- Без streaming, push notifications и extended card - вижте `capabilities` в картата.
- Ограничение: 60 заявки за 60 секунди от един адрес.

## Извикване

```
curl -s https://fish.bg/a2a/v1 \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"messageId":"1","role":"ROLE_USER","parts":[{"text":"въдица за шаран до 200 евро в наличност"}]}}}'
```

Структурираният вход е по-точен от свободния текст:

```
{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"messageId":"1","role":"ROLE_USER","parts":[{"data":{"skill":"search-products","query":"воблер","maxPrice":30,"inStock":true,"sort":"price-asc","limit":5}}]}}}
```

Отговорът е `Message` с две части: `text` за човек и `data` със структурирани
продукти, общ брой попадения и адреса на Store API заявката зад него.

## Параметри на search-products

| Поле | Тип | Описание |
| --- | --- | --- |
| `query` | string | Ключови думи, до 100 знака. |
| `category` | string | Име, slug или идентификатор на категория. |
| `brand` | string | Име или slug на марка (атрибут `pa_marka`). |
| `minPrice`, `maxPrice` | number | Граници в евро. |
| `inStock` | bool | Само налични. |
| `sort` | string | `relevance`, `price-asc`, `price-desc`, `popularity`, `rating`, `newest`. |
| `limit` | int | 1–20, по подразбиране 5. |
| `page` | int | 1–50. |

## Методи

| Метод | Поведение |
| --- | --- |
| `SendMessage` (`message/send`) | Работи. Връща `Message`, не `Task`. |
| `ListTasks` (`tasks/list`) | Празен списък - агентът е без състояние. |
| `GetTask`, `CancelTask` | `-32001` TaskNotFound - задачи не се създават. |
| `SendStreamingMessage`, `SubscribeToTask` | `-32004` - streaming не се поддържа. |
| `*PushNotificationConfig*` | `-32003` - push notifications не се поддържат. |
| `GetExtendedAgentCard` | `-32004` - разширена карта няма. |

Спецификация: <https://a2a-protocol.org/latest/specification/>