refactor(tools): генерировать инвентарь SERVER_INSTRUCTIONS и tool_catalog из реестра + guard на имена тулов в ai-chat.prompt.ts #448
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Зачем
Инвентарь тулов сегодня существует в четырёх прозаических копиях, поддерживаемых руками:
SERVER_INSTRUCTIONS(packages/mcp/src/index.ts:~52) — охраняется только regex-тестом (server-instructions.test.mjsскрейпит имена и проверяет вхождение слова, с ручнымEXCEPTIONS-сетом);<tool_catalog>in-app агента — собирается изcatalogLineспеков +INLINE_TOOL_TIERS;ai-chat.prompt.ts:94-102— перечисляетgetPage, editPageText, patchNode, insertNode, deleteNodeвообще без guard'а (переименование тула оставит агенту устаревшие инструкции, ни один тест не упадёт);При этом роадмап #416 планирует четыре последовательных ручных правки этого текста (#411 −import_page_markdown, #412 camelCase-переименование, #413 новые дефолты, #415 wording-sweep).
Механика
SERVER_INSTRUCTIONSна две части: генерируемый инвентарь (изmcpName+catalogLine/описаний реестра, группировка по семействам) и рукописную routing-прозу (intent-подсказки «когда что использовать» — она осмысленно ручная). Regex-тест удалить; инвентарь не может разъехаться по построению.<tool_catalog>— уже собирается из спеков; убедиться, что после #445 не остаётся ручных списков (INLINE_TOOL_TIERSсжимается до реально inline-специфичных).ai-chat.prompt.ts— либо подставлять из реестра (шаблон-константы), либо минимум guard-тест «каждое упомянутое имя существует в реестре».Порядок
До breaking-окна #412 (и в идеале до #411): иначе четыре ишью роадмапа перепишут одни и те же строки руками, а потом всё равно придётся генерировать.
Критерии приёмки
SERVER_INSTRUCTIONSи<tool_catalog>без правки прозы.server-instructions.test.mjs(regex-скрейпер) удалён.ai-chat.prompt.ts→ красный тест.Связано: #416 (роадмап), #445 (реестр как единственный источник), #411/#412/#413/#415 (потребители).