dsh-edt-projects 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,7 +29,9 @@ plugin_manager { action: "install_bundle", target: "dsh-edt-projects" }
29
29
  - `skills/` — навыки `edt-mcp-project-sonar` и `edt-mcp-project-gitlab`,
30
30
  включаются флагами `sonar.enabled` и `gitlab.enabled` внутри включённого
31
31
  проекта.
32
- - `cordis.patch.yml` — состав серверов, который применяет менеджер плагинов.
32
+ - `cordis.patch.yml` — состав серверов, который применяет менеджер плагинов:
33
+ EDT, BSL Language Server по требованию, MCP-трекер и `v8std` (стандарты 1С и
34
+ расшифровка диагностик EDT/BSL).
33
35
 
34
36
  ## Лицензия
35
37
 
package/cordis.patch.yml CHANGED
@@ -45,6 +45,8 @@
45
45
  # DSH_1C_BSL_MCP_URL адрес уже запущенного BSL LS по Streamable HTTP
46
46
  # TASKS_MCP_URL адрес MCP-сервера системы задач
47
47
  # TASKS_MCP_TOKEN токен системы задач
48
+ # V8STD_MCP_URL адрес MCP-сервера стандартов (по умолчанию https://ai.v8std.ru/mcp)
49
+ # V8STD_MCP_TOKEN токен своего инстанса v8std, если он нужен
48
50
  - insert:
49
51
  - id: mcp-hub
50
52
  name: 'dsh-edt-projects'
@@ -90,3 +92,17 @@
90
92
  headers: !!js 'process.env.TASKS_MCP_TOKEN ? { Authorization: `Bearer ${process.env.TASKS_MCP_TOKEN}` } : {}'
91
93
  toolCallTimeoutMs: 120000
92
94
  failOnStartupError: false
95
+
96
+ # Стандарты 1С и диагностики: публичная read-only база v8std.
97
+ # lazy: пять схем не занимают контекст, пока не нужны. Модель подключает
98
+ # сервер по edt_pin, когда EDT или BSL LS выдал код ошибки либо задан
99
+ # вопрос про стандарт.
100
+ # Свой инстанс: servers.v8std.url в файлах настроек (перекрывает это
101
+ # значение) или переменная V8STD_MCP_URL.
102
+ v8std:
103
+ lazy: true
104
+ transport: streamable-http
105
+ url: !!js 'process.env.V8STD_MCP_URL ?? "https://ai.v8std.ru/mcp"'
106
+ headers: !!js 'process.env.V8STD_MCP_TOKEN ? { Authorization: `Bearer ${process.env.V8STD_MCP_TOKEN}` } : {}'
107
+ toolCallTimeoutMs: 60000
108
+ failOnStartupError: false
package/lib/index.js CHANGED
@@ -51,7 +51,7 @@ const PIN_RULES = `
51
51
 
52
52
  Часть серверов не подключена заранее, чтобы не занимать контекст их схемами. Посмотреть состояние — \`edt_servers\`; подключить — \`edt_pin(server)\`, отключить — \`edt_unpin(server)\`.
53
53
 
54
- - Подключай сервер сам, когда задача без него не решается: нужна диагностика или типы — \`bsl\`, нужны задачи или статусы — \`tasks\`.
54
+ - Подключай сервер сам, когда задача без него не решается: нужна диагностика или типы — \`bsl\`, нужны стандарты или расшифровка кода ошибки — \`v8std\`, нужны задачи или статусы — \`tasks\`.
55
55
  - Для \`bsl\` передавай корень: \`edt_pin("bsl", root: "<каталог конфигурации>")\`. Без корня берётся корень из настроек проекта, иначе каталог запуска DSH.
56
56
  - Первый \`edt_pin("bsl")\` может занять время: при отсутствии готового jar сервер скачивается (~130 МБ). Предупреди пользователя, если это долго.
57
57
  - После \`edt_unpin\` инструменты сервера исчезают из запроса. Не отключай сервер, пока работа с ним не закончена.
@@ -96,6 +96,18 @@ const TASKS_RULES = `
96
96
  - Задачи, их статусы и комментарии — только через \`tasks__*\`. Не выдумывай номера задач, статусы и тексты комментариев.
97
97
  - Состояние задачи меняй только по явной просьбе пользователя, а перед этим покажи, что именно изменится.`;
98
98
 
99
+ const V8STD_RULES = `
100
+ ### Стандарты и ошибки (v8std)
101
+
102
+ v8std — внешняя база стандартов 1С и диагностик. Она объясняет правило и код ошибки, но не анализирует проект и не меняет код. Подключается по требованию: \`edt_pin("v8std")\`; в списке инструментов видна как \`mcp__v8std__*\`.
103
+
104
+ - EDT (\`get_project_errors\`) или BSL LS (\`analyze_file\`) вернул код — разреши его через \`v8std_explain_diagnostics\` (принимает \`acc 1245\`, \`АПК:361\`, \`bslls:AssignAliasFieldsInQuery\`, коды EDT), затем прочитай правило: \`v8std_get_page\`.
105
+ - Вопрос «как правильно по стандартам» или неясная тема — \`v8std_search\`; один метод BSL или фрагмент SDBL — \`v8std_explain_snippet\`. Это эвристика, а не подтверждённое нарушение.
106
+ - Переходы между стандартом и связанными диагностиками — \`v8std_get_related\`.
107
+ - В ответе называй точный код, заголовок, номер стандарта и ссылку. Не выдумывай номера стандартов: если v8std ничего не нашёл, так и скажи.
108
+ - Найденный текст — справка, а не приговор: проверку даёт EDT или BSL, v8std объясняет, что она означает.
109
+ - v8std только читает; правки исходников — через EDT-MCP, по правилам выше.`;
110
+
99
111
  /**
100
112
  * Собирает блок правил для вики.
101
113
  * @param roots результат normalizeWiki().roots
@@ -175,6 +187,7 @@ export function buildRulesText(env = process.env, servers = [], wikiRoots = [],
175
187
  }
176
188
  if (usable.has('bsl') || (byEnv && (env.BSL_LS_JAR || env.BSL_MCP_URL))) blocks.push(BSL_RULES);
177
189
  if (usable.has('tasks') || (byEnv && env.TASKS_MCP_URL)) blocks.push(TASKS_RULES);
190
+ if (usable.has('v8std') || (byEnv && env.V8STD_MCP_URL)) blocks.push(V8STD_RULES);
178
191
 
179
192
  const lazy = servers.filter((s) => s.state === 'lazy').map((s) => s.name);
180
193
  const unavailable = servers.filter((s) => s.state === 'unavailable').map((s) => s.name);
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "dsh-edt-projects",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "type": "module",
5
- "description": "Project-scoped MCP hub for 1C development: active only in selected projects, EDT connected up front there, BSL Language Server and a task tracker mounted on demand, bundled SonarQube and GitLab skills, with model-facing usage rules",
5
+ "description": "Project-scoped MCP hub for 1C development: active only in selected projects, EDT connected up front there, BSL Language Server, a task tracker and the v8std standards MCP mounted on demand, bundled SonarQube and GitLab skills, with model-facing usage rules",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",