20 lines
896 B
Go
20 lines
896 B
Go
package tools
|
|
|
|
import "strconv"
|
|
|
|
// util.go — небольшие помощники MCP-слоя.
|
|
|
|
// truncateText ограничивает длинный вывод (задачи, compose, env), чтобы он не
|
|
// съел контекст модели. По умолчанию оставляем хвост: ошибки сборки/деплоя
|
|
// обычно в конце вывода. Второй результат — был ли вывод обрезан.
|
|
func truncateText(s string, maxBytes int, tail bool) (string, bool) {
|
|
if maxBytes <= 0 || len(s) <= maxBytes {
|
|
return s, false
|
|
}
|
|
cut := len(s) - maxBytes
|
|
if tail {
|
|
return "…(обрезано " + strconv.Itoa(cut) + " байт, показан хвост)\n" + s[len(s)-maxBytes:], true
|
|
}
|
|
return s[:maxBytes] + "\n…(обрезано " + strconv.Itoa(cut) + " байт, показано начало)", true
|
|
}
|