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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
- [`test-lab`](https://github.com/portable-agent/test-lab) — системные, нагрузочные и resilience-тесты.
- [`calendar-mcp`](https://github.com/portable-agent/calendar-mcp) — MCP-сервис календаря с fake-провайдером.
- [`mcp-gateway`](https://github.com/portable-agent/mcp-gateway) — безопасная маршрутизация вызовов MCP.
- [`channel-gateway`](https://github.com/portable-agent/channel-gateway) — единый вход Web, Telegram и других каналов.

Первый backend-срез уже проверен: русский текст превращается в предложение, после явного подтверждения
проходит через Temporal и создаёт событие в Fake Calendar. Входные каналы, виджеты и реальный календарь
Expand Down
2 changes: 1 addition & 1 deletion catalog/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ services:
phase: 0
- name: channel-gateway
repository: channel-gateway
status: planned
status: working
owner: platform
runtime: typescript
framework: fastify
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/REPOSITORY_MODEL.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Portable Agent использует GitHub Organization и отдельную р
| `test-lab` | Сквозные, нагрузочные и resilience-тесты | Контрактный календарный acceptance-тест готов |
| `calendar-mcp` | MCP-интеграция календаря | Fake Calendar, OIDC и идемпотентность работают в общем сценарии |
| `mcp-gateway` | Безопасный вызов настроенных MCP-сервисов | Stateless-маршрутизатор работает между Action и Calendar MCP |
| `channel-gateway` | Единый вход независимых каналов | Текстовый API, JWT и вызов Agent Runtime работают в общем сценарии |

Каркас означает, что настроены структура и инженерные проверки. Это не означает, что правила бизнеса уже
спроектированы или реализованы.
Expand All @@ -24,7 +25,6 @@ Portable Agent использует GitHub Organization и отдельную р

```text
portable-agent organization
├── channel-gateway единый вход для каналов
├── conversation-service состояние диалога
├── approval-service подтверждение действий
├── policy-bundle правила OPA
Expand Down
18 changes: 9 additions & 9 deletions docs/delivery/CURRENT_STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,21 @@
| Репа | Что меняем или добавляем | Ожидаемый результат | Фактический результат | Следующий шаг |
|---|---|---|---|---|
| `.github` | Общие workflows и правила | Одинаковый CI/CD для всех сервисов | Java, Python, Node, docs, security и container workflows работают | Подключать правила к каждой новой репе |
| `contracts` | Версионируемые внешние и внутренние API | Один проверяемый источник сетевых DTO | Bundle `2.1.0` выпущен; Agent, Action и MCP Gateway берут схемы из него | Сначала описать API Channel Gateway |
| `contracts` | Версионируемые внешние и внутренние API | Один проверяемый источник сетевых DTO | Bundle `2.2.0` выпущен; добавлен Channel Gateway API | Спроектировать контракт ответа для виджета |
| `action-service` | Подтверждение и надёжное выполнение | `AWAITING_APPROVAL → APPROVED → EXECUTING → SUCCEEDED/FAILED` | jOOQ, outbox, Temporal worker и вызов MCP Gateway работают; backend acceptance зелёный | Принимать команду через Channel Gateway |
| `calendar-mcp` | `create_event` | Идемпотентное создание fake-события | Fake Calendar, OIDC и защита от дублей работают в общем сценарии | Оставить эталонным fake-коннектором |
| `mcp-gateway` | OIDC, allowlist и MCP client | Безопасный stateless-маршрутизатор | Foundation смержен и проверен вызовом Calendar MCP | Добавлять коннекторы только по контракту |
| `deploy` | Приложения в локальном Compose | Одна команда поднимает вертикальный backend-срез | Agent, Action, Temporal, Gateway и Calendar поднимаются; GitHub smoke зелёный | Ускорить сборку и добавить следующий входной сервис |
| `deploy` | Приложения в локальном Compose | Одна команда поднимает вертикальный backend-срез | Channel, Agent, Action, Temporal, MCP Gateway и Calendar поднимаются; GitHub smoke зелёный | Ускорить сборку полного smoke |
| `test-lab` | Календарный acceptance-тест | Один JWT и один контракт на всём пути | Схема Agent `2.1.0`, подтверждение и проверка часового пояса работают | Добавить повтор запроса и проверку отсутствия дубля |
| `agent-runtime` | Текст в предложение действия | Детерминированное предложение встречи без скрытого выполнения | API `2.1.0`, проверка JWT и календарное предложение работают в общем сценарии | Вызывать через Channel Gateway, AI-модель пока не выбирать |
| `channel-gateway` | Общий вход каналов | Web и Telegram используют один контракт | Репа ещё не создана | Спроектировать минимальный API и создать репу |
| `widget-sdk` | Карточка подтверждения | Один UI-контракт для разных каналов | Репа ещё не создана | Начать после API Channel Gateway |
| `channel-gateway` | Общий вход каналов | Web и Telegram используют один контракт | Репа создана; JWT, OpenAPI-типы и вызов Agent работают в общем acceptance | Добавить сохранённое action в ответ после выбора orchestration |
| `widget-sdk` | Карточка подтверждения | Один UI-контракт для разных каналов | Репа ещё не создана | Спроектировать тип карточки и создать репу |

## Что уже проверено

```text
русский текст
-> Channel Gateway
-> Agent Runtime
-> предложение calendar.create_event
-> Action Service и явное подтверждение
Expand All @@ -30,18 +31,17 @@
```

Проверка запускает реальные контейнеры отдельных репозиториев по закреплённым commit SHA. Последний
зелёный запуск вошёл в `deploy` через merge `b931cc6`.
зелёный запуск вошёл в `deploy` через merge `722d33f`.

## Текущий порядок

```text
[готово] contracts 2.1.0
[готово] contracts 2.2.0
-> [готово] MCP Gateway и Calendar MCP
-> [готово] Action Service и Temporal worker
-> [готово] Agent Runtime в общем Compose
-> [готово] Channel Gateway и Agent Runtime в общем Compose
-> [готово] backend acceptance
-> [следом] Channel Gateway API и репа
-> Widget SDK
-> [следом] контракт карточки подтверждения и Widget SDK
-> Telegram adapter
```

Expand Down
4 changes: 2 additions & 2 deletions docs/delivery/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

## Фаза 1 — Первый вертикальный срез

Состояние: backend-путь от текста до fake-календаря готов. Следующий пакет — независимый от канала
входной API, затем Widget SDK и первый адаптер.
Состояние: backend-путь от независимого Channel Gateway до fake-календаря готов. Следующий пакет —
контракт карточки подтверждения, Widget SDK и первый адаптер.

- Channel Gateway и Telegram adapter.
- Conversation Service и Agent Runtime.
Expand Down
3 changes: 2 additions & 1 deletion docs/delivery/WORK_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,8 @@

### 6. Первый продуктовый срез

Состояние: backend-срез готов. Вход из канала, Widget SDK и реальный календарь ещё не реализованы.
Состояние: backend-срез и общий текстовый вход готовы. Widget SDK, адаптер и реальный календарь ещё не
реализованы.

Выбран сценарий создания события календаря с явным подтверждением. Обязательны название, начало,
конец и часовой пояс. Сначала пишется сквозной acceptance-тест с `fake-calendar`, и только затем
Expand Down
Loading