fix: idle-таймер сбрасывается по live-стриму LLM + дефолт 5м; агенты opencode в agents/ с mode: primary
- opencode ищет кастомных агентов в поддиректории agents/ (как .opencode), а не в корне OPENCODE_CONFIG_DIR → распаковка теперь в <dir>/agents/*.md - markdown-агентам добавлен mode: primary (иначе subagent по умолчанию) - idle-детекция сбрасывает таймер при live-строках (text/tool/agent/reasoning), а не только по росту БД → «LLM думает и стримит» не считается зависанием - дефолт idle_timeout поднят с 2м до 5м
This commit is contained in:
@@ -3,9 +3,16 @@
|
||||
// Агенты зашиты в бинарь через go:embed и распаковываются при запуске
|
||||
// в каталог OPENCODE_CONFIG_DIR (по умолчанию ./agents рядом с бинарём),
|
||||
// чтобы opencode находил их независимо от того, где запущен ratatoskr.
|
||||
//
|
||||
// opencode сканирует OPENCODE_CONFIG_DIR как каталог .opencode: агенты
|
||||
// ищутся в поддиректории agents/ (мн.ч.), а не в корне. Поэтому распаковка
|
||||
// идёт в <dir>/agents/*.md.
|
||||
package agents
|
||||
|
||||
import "embed"
|
||||
import (
|
||||
"embed"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
//go:embed *.md
|
||||
var FS embed.FS
|
||||
@@ -16,15 +23,16 @@ var FS embed.FS
|
||||
// в FS, но для детерминированной распаковки список лучше дополнять здесь.
|
||||
var Names = []string{"analyst", "dev", "reviewer"}
|
||||
|
||||
// WriteTo распаковывает всех встроенных агентов в каталог dir (создаёт его).
|
||||
// Файлы перезаписываются — встроенная копия всегда актуальна.
|
||||
// WriteTo распаковывает всех встроенных агентов в каталог dir/agents
|
||||
// (создаёт его). Файлы перезаписываются — встроенная копия всегда актуальна.
|
||||
func WriteTo(dir string) error {
|
||||
agentsDir := filepath.Join(dir, "agents")
|
||||
for _, name := range Names {
|
||||
data, err := FS.ReadFile(name + ".md")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := writeFile(dir, name+".md", data); err != nil {
|
||||
if err := writeFile(agentsDir, name+".md", data); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user