Class McpWorkspaceResolver
java.lang.Object
com.github._1c_syntax.bsl.languageserver.mcp.McpWorkspaceResolver
Выбор рабочей папки для MCP-инструментов, у которых нет явной привязки к конкретному
файлу (например,
type_info, global_member_info). Клиент обязан явно
указать workspaceFolder (одно из значений, которые вернул
list_workspace_folders), потому что ответ может различаться между зарегистрированными
папками (конфигурации, OneScript-проекты, библиотеки).
Сравнение URI ведётся через McpWorkspaceFolders.toWorkspaceFolderUri(String) — чтобы
клиентское представление (file://D:/repo / file:///D:/repo/ / голый путь
D:\repo) сходилось с тем URI, под которым папка зарегистрирована.
Инвариант ошибки: если корень не передан или не совпал ни с одной рабочей папкой,
сообщение перечисляет зарегистрированные корни и называет инструмент их регистрации
(см. McpWorkspaceFolders.registrationHint(Collection)).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionresolveWorkspaceFolderUri(@Nullable String requestedFolder) Выбрать рабочую папку для tool-запроса.
-
Constructor Details
-
McpWorkspaceResolver
@ConstructorProperties("serverContextProvider") public McpWorkspaceResolver(ServerContextProvider serverContextProvider)
-
-
Method Details
-
resolveWorkspaceFolderUri
Выбрать рабочую папку для tool-запроса.- Parameters:
requestedFolder- URI рабочей папки (либо путь к ней), на которую ссылается запрос.- Returns:
- URI зарегистрированной рабочей папки.
- Throws:
IllegalArgumentException- еслиrequestedFolderпуст/отсутствует, либо не совпадает ни с одной зарегистрированной рабочей папкой. Сообщение содержит список зарегистрированных папок и указание наregister_workspace_folder.
-