docs: expand lint scope batch47 (2 files)

This commit is contained in:
Apple
2026-02-16 07:42:56 -08:00
parent 83decf0fc8
commit 8ea99372c0
3 changed files with 160 additions and 160 deletions

View File

@@ -9,7 +9,7 @@ Integrations & Bridges Agent — це модуль, який забезпечу
---
# 1. Призначення
## 1. Призначення
Bridges Agent виконує функції:
@@ -25,7 +25,7 @@ Bridges Agent виконує функції:
---
# 2. Види інтеграцій
## 2. Види інтеграцій
### 2.1. Месенджери та комунікаційні сервіси
@@ -65,7 +65,7 @@ Bridges Agent виконує функції:
---
# 3. Агенти інтеграцій
## 3. Агенти інтеграцій
Модуль складається із під-агентів:
@@ -102,7 +102,7 @@ Bridges Agent виконує функції:
---
# 4. Модель інтеграції
## 4. Модель інтеграції
### 4.1. Таблиця інтеграцій
@@ -119,7 +119,7 @@ Bridges Agent виконує функції:
Всі зовнішні події конвертуються у універсальний формат:
```
```text
event: {
id,
team_id,
@@ -128,7 +128,7 @@ type, // message | file | issue | event | calendar_update ...
payload, // JSON
ts
}
```
```text
Цей формат потім обробляється:
@@ -140,7 +140,7 @@ ts
---
# 5. Основні сценарії
## 5. Основні сценарії
### 5.1. Telegram → microDAO
@@ -175,7 +175,7 @@ ts
---
# 6. Інтеграція з Runtime Core (12)
## 6. Інтеграція з Runtime Core (12)
Основний агент:
@@ -196,13 +196,13 @@ const bridgesAgentConfig: AgentConfig = {
"disable_integration"
]
};
```
```text
Адаптери — це окремі агенти з вузькими tools.
---
# 7. Tools (для Runtime Core)
## 7. Tools (для Runtime Core)
### 7.1. register_integration
@@ -230,36 +230,36 @@ const bridgesAgentConfig: AgentConfig = {
---
# 8. UI
## 8. UI
## 8.1. Sidebar → Інтеграції
* список інтеграцій,
* кнопка "Підключити інтеграцію".
- список інтеграцій,
- кнопка "Підключити інтеграцію".
## 8.2. Модалка підключення інтеграції
* вибір сервісу: Telegram / Email / Calendar / GitHub / Custom API,
* ввод даних підключення,
* тестування підключення,
* збереження.
- вибір сервісу: Telegram / Email / Calendar / GitHub / Custom API,
- ввод даних підключення,
- тестування підключення,
- збереження.
## 8.3. Профіль інтеграції
* історія подій,
* статус,
* налаштування,
* кнопка "Вимкнути".
- історія подій,
- статус,
- налаштування,
- кнопка "Вимкнути".
## 8.4. Cross-microDAO панель
* список підключених DAO,
* права та контексти,
* статуси синхронізації.
- список підключених DAO,
- права та контексти,
- статуси синхронізації.
---
# 9. API
## 9. API
### Інтеграції
@@ -280,9 +280,9 @@ const bridgesAgentConfig: AgentConfig = {
---
# 10. Інструкції для Cursor
## 10. Інструкції для Cursor
```
```text
Implement the Integrations & Bridges Agent using:
- 20_integrations_bridges_agent.md
@@ -329,18 +329,17 @@ Output:
- list of modified files
- diff
- summary
```
```text
---
# 11. Результат
## 11. Результат
Після впровадження:
* microDAO стає мережевим вузлом,
* агенти можуть діяти в кількох просторах,
* знання й події можуть перетікати між DAO,
* зовнішні інструменти інтегруються легко та безпечно,
* DAARION.city отримує основу для єдиного агентського всесвіту.
- microDAO стає мережевим вузлом,
- агенти можуть діяти в кількох просторах,
- знання й події можуть перетікати між DAO,
- зовнішні інструменти інтегруються легко та безпечно,
- DAARION.city отримує основу для єдиного агентського всесвіту.

View File

@@ -8,7 +8,7 @@
---
# Task 1 — UI-Agents-List (People / Agents / Robots панель)
## Task 1 — UI-Agents-List (People / Agents / Robots панель)
## Мета
@@ -18,62 +18,62 @@
### 1. Розташування
* Лівий сайдбар, нижче/поруч з блоком "Простори (microDAO)".
* Заголовок: `Учасники`.
* Вкладки або груповані секції:
- Лівий сайдбар, нижче/поруч з блоком "Простори (microDAO)".
- Заголовок: `Учасники`.
- Вкладки або груповані секції:
* `Люди`
* `Агенти`
* `Роботи` (поки список порожній, з текстом "Скоро").
- `Люди`
- `Агенти`
- `Роботи` (поки список порожній, з текстом "Скоро").
### 2. Дані
* People:
- People:
* `id`, `display_name`, `avatar_url`, `online_status`.
- `id`, `display_name`, `avatar_url`, `online_status`.
* Agents:
- Agents:
* `id`, `name`, `role`, `avatar`, maybe `type` (system/custom).
- `id`, `name`, `role`, `avatar`, maybe `type` (system/custom).
* Robots:
- Robots:
* поки просто статичний текст: "Роботи поки не під'єднані".
- поки просто статичний текст: "Роботи поки не під'єднані".
На бекенді: можна зробити:
* `GET /participants?team_id=...``{ people: [...], agents: [...] }`
- `GET /participants?team_id=...``{ people: [...], agents: [...] }`
або окремі запити `GET /members`, `GET /agents`.
### 3. UI-поведінка
* Клік по Людині:
- Клік по Людині:
* відкриває DM-чат `/t/:teamId/dm/:userId`.
- відкриває DM-чат `/t/:teamId/dm/:userId`.
* Клік по Агенту:
- Клік по Агенту:
* відкриває сторінку агента `/t/:teamId/agent/:agentId`
- відкриває сторінку агента `/t/:teamId/agent/:agentId`
або агент-чат.
* Список скролиться, якщо елементів багато.
- Список скролиться, якщо елементів багато.
### 4. Інтеграція з існуючим кодом
* Використати загальні компоненти `Sidebar`, `Avatar`, `ListItem`.
* Типи/інтерфейси привести до стандартів з `05_coding_standards.md`.
- Використати загальні компоненти `Sidebar`, `Avatar`, `ListItem`.
- Типи/інтерфейси привести до стандартів з `05_coding_standards.md`.
## Acceptance Criteria
* У лівому сайдбарі є блок "Учасники" з секціями `Люди`, `Агенти`, `Роботи`.
* Для `Людей` і `Агентів` рендеряться реальні дані з API (або mock, якщо API ще нема).
* Клік по Людині відкриває приватний чат (навіть якщо поки stub).
* Клік по Агенту відкриває сторінку/чат агента.
* "Роботи" відображаються як порожній список з плейсхолдером.
- У лівому сайдбарі є блок "Учасники" з секціями `Люди`, `Агенти`, `Роботи`.
- Для `Людей` і `Агентів` рендеряться реальні дані з API (або mock, якщо API ще нема).
- Клік по Людині відкриває приватний чат (навіть якщо поки stub).
- Клік по Агенту відкриває сторінку/чат агента.
- "Роботи" відображаються як порожній список з плейсхолдером.
## Приклад промта для Cursor
```
```text
Implement the Participants panel (People / Agents / Robots) in the left sidebar using:
- 21_agent_only_interface.md
@@ -88,7 +88,7 @@ Deliverables:
- Click on an Agent opens `/t/:teamId/agent/:agentId`.
Output: list of files + diff + summary.
```
```text
---
@@ -102,65 +102,65 @@ Output: list of files + diff + summary.
### 1. Де викликається
* У header каналу/чату — кнопка `+ Додати учасника`.
* Доступна тільки для користувача з правами `admin`/`owner` (поки можна не перевіряти, просто буде кнопка).
- У header каналу/чату — кнопка `+ Додати учасника`.
- Доступна тільки для користувача з правами `admin`/`owner` (поки можна не перевіряти, просто буде кнопка).
### 2. Модалка
* Заголовок: "Додати учасника".
* Tabs:
- Заголовок: "Додати учасника".
- Tabs:
* `Люди`
* `Агенти`
* Із них нас цікавить вкладка `Агенти`.
- `Люди`
- `Агенти`
- Із них нас цікавить вкладка `Агенти`.
### 3. Вкладка "Агенти"
* Список доступних агентів з пошуком.
* По кліку на агента або чекбоксом обираємо 1N агентів.
- Список доступних агентів з пошуком.
- По кліку на агента або чекбоксом обираємо 1N агентів.
### 4. Налаштування прав
* Секція "Права в цьому каналі":
- Секція "Права в цьому каналі":
* `[ ] Читати`
* `[ ] Писати`
* `[ ] Створювати задачі / follow-ups`
* За замовчуванням: `Читати` увімкнено, інші вимкнено.
- `[ ] Читати`
- `[ ] Писати`
- `[ ] Створювати задачі / follow-ups`
- За замовчуванням: `Читати` увімкнено, інші вимкнено.
### 5. API / Entitlements
* On Submit:
- On Submit:
* `POST /entitlements` (або аналог) із даними:
- `POST /entitlements` (або аналог) із даними:
* `agent_id`
* `resource_kind: "channel"`
* `resource_id: channelId`
* `scopes: ["read", "write", "tasks"]` (залежить від чекбоксів)
- `agent_id`
- `resource_kind: "channel"`
- `resource_id: channelId`
- `scopes: ["read", "write", "tasks"]` (залежить від чекбоксів)
* Web3 Stub:
- Web3 Stub:
* В коді робимо виклик функції `governance.issueAccessToken(...)` або логування TODO;
* Реальної транзакції поки не робимо.
- В коді робимо виклик функції `governance.issueAccessToken(...)` або логування TODO;
- Реальної транзакції поки не робимо.
### 6. UX
* Після успіху модалка закривається.
* У хедері каналу в списку учасників зʼявляється новий агент.
- Після успіху модалка закривається.
- У хедері каналу в списку учасників зʼявляється новий агент.
## Acceptance Criteria
* У кожному каналі/чаті є кнопка "Додати учасника".
* В модалці є вкладка "Агенти" зі списком наявних агентів.
* Можна обрати агента, налаштувати права, натиснути "Запросити".
* На бекенді зберігаються entitlements (навіть якщо прості JSON у БД).
* Після додавання агент показується як учасник каналу.
* В коді є очевидний Stub для майбутньої web3 інтеграції.
- У кожному каналі/чаті є кнопка "Додати учасника".
- В модалці є вкладка "Агенти" зі списком наявних агентів.
- Можна обрати агента, налаштувати права, натиснути "Запросити".
- На бекенді зберігаються entitlements (навіть якщо прості JSON у БД).
- Після додавання агент показується як учасник каналу.
- В коді є очевидний Stub для майбутньої web3 інтеграції.
## Приклад промта для Cursor
```
```text
Implement the "Invite Agent" flow for channels using:
- 21_agent_only_interface.md
@@ -176,7 +176,7 @@ Deliverables:
4) POST entitlements call to store agent-channel permissions (web3 as stub hook).
Output: list of files + diff + summary.
```
```text
---
@@ -190,64 +190,64 @@ Output: list of files + diff + summary.
### 1. Ресурси для MVP
* Почати з `Проєктів` (Projects Agent з документу 15).
* Інтерфейс у правому сайдбарі для активного контексту:
- Почати з `Проєктів` (Projects Agent з документу 15).
- Інтерфейс у правому сайдбарі для активного контексту:
* розділ "Проєкти цього контексту",
* кожен проєкт має кнопку `⋯``Поділитися`.
- розділ "Проєкти цього контексту",
- кожен проєкт має кнопку `` → `Поділитися`.
### 2. Модалка "Поділитися проєктом"
* Заголовок: "Поділитися проєктом".
* Tabs:
- Заголовок: "Поділитися проєктом".
- Tabs:
* `Люди`
* `Агенти`
* Список одержувачів з пошуком.
- `Люди`
- `Агенти`
- Список одержувачів з пошуком.
### 3. Права доступу
* Радіо-кнопки або чекбокси:
- Радіо-кнопки або чекбокси:
* `Тільки читати`
* `Читати і оновлювати задачі`
* `Адмініструвати проєкт`
* Для MVP:
- `Тільки читати`
- `Читати і оновлювати задачі`
- `Адмініструвати проєкт`
- Для MVP:
* мапимо на `["read"]`, `["read","write"]`, `["admin"]`.
- мапимо на `["read"]`, `["read","write"]`, `["admin"]`.
### 4. API / Entitlements
* `POST /entitlements`:
- `POST /entitlements`:
* `resource_kind: "project"`
* `resource_id: projectId`
* `subject_kind: "user" | "agent"`
* `subject_id: ...`
* `scopes: [...]`
- `resource_kind: "project"`
- `resource_id: projectId`
- `subject_kind: "user" | "agent"`
- `subject_id: ...`
- `scopes: [...]`
* Web3 Stub:
- Web3 Stub:
* так само, як у Task 2 — залишити хук/функцію для майбутньої транзакції.
- так само, як у Task 2 — залишити хук/функцію для майбутньої транзакції.
### 5. Відображення
* У правому сайдбарі для вибраного проєкту:
- У правому сайдбарі для вибраного проєкту:
* короткий список: хто має доступ (іконки + тип: людина/агент).
* посилання "Керувати доступами" (можна виводити ту ж саму модалку).
- короткий список: хто має доступ (іконки + тип: людина/агент).
- посилання "Керувати доступами" (можна виводити ту ж саму модалку).
## Acceptance Criteria
* У правому сайдбарі є список проєктів для контексту (навіть якщо один).
* Для кожного проєкту доступна дія "Поділитися".
* Модалка дозволяє вибрати людей/агентів і рівень доступу.
* Після підтвердження зʼявляються записи entitlements.
* У правій панелі видно, що проєкт поділено з конкретними субʼєктами.
- У правому сайдбарі є список проєктів для контексту (навіть якщо один).
- Для кожного проєкту доступна дія "Поділитися".
- Модалка дозволяє вибрати людей/агентів і рівень доступу.
- Після підтвердження зʼявляються записи entitlements.
- У правій панелі видно, що проєкт поділено з конкретними субʼєктами.
## Приклад промта для Cursor
```
```text
Implement the "Share Project" flow as the first Resource Sharing feature using:
- 21_agent_only_interface.md
@@ -264,7 +264,7 @@ Deliverables:
5) Show who has access in the sidebar (avatars + type).
Output: list of files + diff + summary.
```
```text
---
@@ -278,63 +278,63 @@ Output: list of files + diff + summary.
### 1. Новий маршрут
* `GET /t/:teamId/home` (frontend route).
* Відображає `AgentHubPage`.
- `GET /t/:teamId/home` (frontend route).
- Відображає `AgentHubPage`.
### 2. AgentHubPage структура
* Верх:
- Верх:
* заголовок: `microDAO: {team.name}`
* короткі віджети (можуть бути stub):
- заголовок: `microDAO: {team.name}`
- короткі віджети (можуть бути stub):
* "Учасники: X людей, Y агентів"
* "Активні проєкти: N"
- "Учасники: X людей, Y агентів"
- "Активні проєкти: N"
* Центр:
- Центр:
* чат з головним агентом (Team Assistant або спеціальний OS Agent):
- чат з головним агентом (Team Assistant або спеціальний OS Agent):
* використовує вже існуючий `AgentChatWindow`.
* агент_id береться з конфіг (наприклад, "team_assistant" для цієї команди).
- використовує вже існуючий `AgentChatWindow`.
- агент_id береться з конфіг (наприклад, "team_assistant" для цієї команди).
* Праворуч:
- Праворуч:
* контекст (список проєктів / каналів / ресурсів — поки можна stub).
- контекст (список проєктів / каналів / ресурсів — поки можна stub).
### 3. Поведінка чату
* Перший запуск:
- Перший запуск:
* агент вітається, якщо немає історії:
- агент вітається, якщо немає історії:
> "Привіт, це твій Agent Hub. Я допоможу керувати твоєю microDAO."
* Далі:
- Далі:
* користувач може написати запит, наприклад:
- користувач може написати запит, наприклад:
* "Покажи активні проєкти"
* "Відкрий канал #dev-mvp"
* "Хочу створити новий проєкт"
* Поки що можна зробити stub-відповіді, якщо Projects/Messenger Agents ще не реалізовані.
- "Покажи активні проєкти"
- "Відкрий канал #dev-mvp"
- "Хочу створити новий проєкт"
- Поки що можна зробити stub-відповіді, якщо Projects/Messenger Agents ще не реалізовані.
### 4. Навігація
* Кнопка/посилання "Головна" у лівому сайдбарі веде на `/t/:teamId/home`.
* Після успішного онбордингу (з `08_agent_first_onboarding.md`) редірект також може йти на Agent Hub.
- Кнопка/посилання "Головна" у лівому сайдбарі веде на `/t/:teamId/home`.
- Після успішного онбордингу (з `08_agent_first_onboarding.md`) редірект також може йти на Agent Hub.
## Acceptance Criteria
* Існує маршрут `/t/:teamId/home`, який рендерить Agent Hub.
* У центрі — робочий чат з Team Assistant (через `/agents/{id}/chat` endpoint).
* У сайдбарі є посилання "Головна" / "Agent Hub", що веде на цей екран.
* Якщо історії немає — агент показує вітальний меседж.
* Екран виглядає як "головна консоль" microDAO, а не просто черговий канал.
- Існує маршрут `/t/:teamId/home`, який рендерить Agent Hub.
- У центрі — робочий чат з Team Assistant (через `/agents/{id}/chat` endpoint).
- У сайдбарі є посилання "Головна" / "Agent Hub", що веде на цей екран.
- Якщо історії немає — агент показує вітальний меседж.
- Екран виглядає як "головна консоль" microDAO, а не просто черговий канал.
## Приклад промта для Cursor
```
```text
Implement the Agent Hub Home screen using:
- 21_agent_only_interface.md
@@ -353,7 +353,7 @@ Deliverables:
3) "Home / Agent Hub" entry in left sidebar that routes to `/t/:teamId/home`.
Output: list of files + diff + summary.
```
```text
---
@@ -409,4 +409,3 @@ Output: list of files + diff + summary.
**Готово.**
Це **структурований список задач для Agent-Only Interface**, готовий до використання в Cursor.

View File

@@ -123,3 +123,5 @@ docs/cursor/10_agent_ui_system.md
docs/cursor/16_followups_reminders_agent.md
docs/cursor/05_coding_standards.md
docs/cursor/19_notifications_attention_agent.md
docs/cursor/20_integrations_bridges_agent.md
docs/cursor/22_agent_only_interface_tasks.md