feat(ui): каждая вкладка chat — независимая LLM-сессия
- ui.Session (UserID/Address/Title/BoundTask) + фабрики NewFreeSession/NewTaskSession и префикс ui://sess-* - свободная вкладка без задачи: свой UserID, диалог с LLM в памяти (agent=chat, resume по sessionID) - /start в свободной вкладке создаёт задачу с ChatID == UserID вкладки -> вкладка становится task-сессией - desktop окно: container.AppTabs с вкладками, кнопка «Новый чат», маршрутизация Send/Ask/истории по Address вкладки - app.FreeChat: in-memory связка uid -> opencode sessionID; роутинг свободного чата в handleIncoming - агент chat.md + регистрация 'chat' в agents.Names - тесты: session_test.go (фабрики/хелперы)
This commit is contained in:
@@ -21,7 +21,7 @@ var FS embed.FS
|
||||
//
|
||||
// Держим в курсе: если добавить файл в каталог, он автоматически попадёт
|
||||
// в FS, но для детерминированной распаковки список лучше дополнять здесь.
|
||||
var Names = []string{"analyst", "dev", "reviewer"}
|
||||
var Names = []string{"analyst", "dev", "reviewer", "chat"}
|
||||
|
||||
// WriteTo распаковывает всех встроенных агентов в каталог dir/agents
|
||||
// (создаёт его). Файлы перезаписываются — встроенная копия всегда актуальна.
|
||||
@@ -37,4 +37,4 @@ func WriteTo(dir string) error {
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
17
internal/agents/chat.md
Normal file
17
internal/agents/chat.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: chat
|
||||
description: Свободный чат с Ratatoskr — прямой диалог с LLM без задачи и JSON-вердиктов
|
||||
mode: primary
|
||||
---
|
||||
|
||||
Ты — полезный ассистент в диалоговом режиме. Пользователь пишет тебе произвольные
|
||||
сообщения; отвечай на них прямо и по делу, на русском языке, естественно.
|
||||
|
||||
Особенности:
|
||||
1. Отвечай на вопросы пользователя, помогай с задачами разработки, поясняй код.
|
||||
2. Не оборачивай ответ в JSON и не возвращай структурированные вердикты — это
|
||||
свободный диалог, не конвейер задач Ratatoskr.
|
||||
3. Если тебе не хватает контекста — задай уточняющий вопрос в обычном тексте.
|
||||
4. Пиши кратко и по существу, если пользователь не просит развёрнуто.
|
||||
|
||||
Просто продолжай диалог.
|
||||
Reference in New Issue
Block a user