Публичный каталог команд и текущих поддержанных сценариев v8-runner.
Документ описывает только текущий пользовательский контракт. Если он расходится с кодом или live CLI help, доверяйте текущему коду и затем синхронизируйте docs.
- Матрица поддержки
- Глобальные CLI-опции
- Настройка проекта
- Проверка и валидация
- Файлы и артефакты
- Прямой запуск и MCP
- workPath и артефакты выполнения
- Пока не поддерживается
| Сценарий | Поддерживаемые комбинации | Примечания |
|---|---|---|
version |
Работает без существующего конфига | Печатает имя приложения и версию; с --json-message возвращает JSON envelope |
bootstrap |
Работает без существующего конфига | Создаёт проект из существующей ИБ: config, local overlay, .gitignore, src/configuration |
config init |
Работает без существующего конфига | Создаёт v8project.yaml, sibling v8project.local.yaml, .gitignore entry, autodetect-ит supported source-set и aggregate external roots |
tools download <tool> |
CLI-only загрузка latest releases | Загружает выбранный YAxUnit, Vanessa Automation single или onec-client-mcp-devkit; обновляет local overlay для Vanessa/client MCP и при yaxunit --sources добавляет YAxUnit как source-set tests |
init |
format=DESIGNER + builder=DESIGNER |
Создаёт файловую ИБ через Designer; server connection остаётся manual prerequisite |
init |
format=DESIGNER + builder=IBCMD |
Выполняет ensure файловой или серверной ИБ через ibcmd infobase create |
init |
format=EDT + `builder=DESIGNER |
IBCMD` |
extensions |
format=DESIGNER или format=EDT |
Обновляет свойства extension source-set |
build |
format=DESIGNER + `builder=DESIGNER |
IBCMD` |
build |
format=EDT + `builder=DESIGNER |
IBCMD` |
test |
Та же матрица, что и у build |
По умолчанию запускает build |
test --no-build |
Подготовленная file/server ИБ; source-set и build tooling не требуются | Запускает выбранный test engine без build |
dump |
format=DESIGNER + builder=DESIGNER |
Полная, инкрементальная или object-scoped partial выгрузка |
dump |
format=DESIGNER + builder=IBCMD |
Полная и инкрементальная выгрузка; partial деградирует в incremental с warning; standalone-server state изолирован в workPath/ibcmd-data |
dump |
format=EDT + `builder=DESIGNER |
IBCMD` |
convert |
CLI-only repo-aware конвертация текущих source-set |
Не использует builder и не требует ИБ |
load |
format=DESIGNER + builder=DESIGNER |
Загрузка .cf / .cfe артефактов в ИБ |
make / artifacts |
format=DESIGNER + builder=DESIGNER |
Экспорт .cf / .cfe и публикация .epf / .erf |
syntax |
format=DESIGNER или format=EDT |
Designer checks для DESIGNER, EDT validate для EDT |
launch |
Не зависит от format |
Прямой запуск 1C utility по позиционному mode |
| MCP | stdio и streamable HTTP |
Публикует 8 инструментов, уже более узкая поверхность, чем CLI |
| Опция | Значение |
|---|---|
--version |
Печатает версию приложения и завершает выполнение |
--config <CONFIG> |
Путь к существующему v8project.yaml; по умолчанию ./v8project.yaml |
--json-message |
Structured JSON envelope вместо text output |
--log-level <LOG_LEVEL> |
error, warn, info, debug, trace |
--clean-before-execution |
Очистить лог-файлы перед запуском |
--no-color |
Отключить ANSI-цвета |
--workdir <WORKDIR> |
Переопределить workPath из конфига |
Если рядом с primary config лежит v8project.local.yaml, он применяется автоматически до CLI
overrides. Сам local overlay нельзя передавать как --config.
Принципы вывода:
- Без
--json-messageCLI держит clean success path кратким. - Live progress в text output использует human-readable строки; для long-running stages время
старта может выводиться как локальный префикс
HH:MM:SS, без structured ключей вродеstarted_at. - Важные warnings, degraded behavior, diagnostics и created artifacts должны быть видимы и в text, и в JSON.
--json-messageостаётся machine-readable contract для автоматизации.- MCP
structured_contentиспользует тот же envelope core:ok,command,duration_ms,data,warnings,steps, optionalerror.
v8-runner version
v8-runner --version- Не требует
v8project.yaml. - В text mode печатает
v8-runner <version>. - С
--json-messageкомандаversionвозвращает envelope сdata.nameиdata.version.
v8-runner config init [--force] [--output <FILE>] [--connection <CONNECTION>] [--format <auto|designer|edt>] [--builder <DESIGNER|IBCMD>]- Не требует существующего
v8project.yaml. - Пишет результат в текущий каталог или в
--output. - Рядом с primary config создает/обновляет пустой
v8project.local.yamlсо schema modeline и добавляетv8project.local.yamlв.gitignore, если подходящий pattern еще не указан. - Не использует глобальный
--configкак shortcut output path. - Ищет supported
DESIGNER/EDTsource-setпо marker files и их содержимому. - Для external roots создаёт aggregate
source-setтолько при однородной классификации каталога. - Не пишет synthetic
CONFIGURATION: отсутствие конфигурационного source-set это validation error. - Для
--builder IBCMDнайденные external roots считаются validation error.
v8-runner bootstrap --connection <CONNECTION> --platform-version <VERSION> [--project-dir <DIR>] [--source-dir <DIR>] [--user <USER>] [--password <PASSWORD>] [--platform-path <PATH>] [--force]- Работает до загрузки
v8project.yamlи предназначен для пустого project directory. - Создаёт
v8project.yaml, schema-modelinedv8project.local.yaml,.gitignoreentry иsource-set mainтипаCONFIGURATION. - Выгружает основную конфигурацию из указанной ИБ в
src/configurationчерез Designer full dump. --connectionне должен содержать embedded credentials; используйте--userи--password. Эти значения пишутся только вv8project.local.yaml.- Не обнаруживает и не выгружает расширения автоматически.
v8-runner init- Всегда разделяет шаг подготовки ИБ и шаг EDT workspace.
- Для file connection и
builder=DESIGNERиспользует1cv8 CREATEINFOBASE. - Для
builder=IBCMDиспользуетibcmd infobase create; server path добавляет--create-database. - Для benign
already existsприIBCMDвозвращает non-fatal outcome. - Для
format=EDTиспользуетworkPath/edt-workspaceи импортируетCONFIGURATION, затемEXTENSION. - Если настроен
tools.client_mcp.extension.source.format=EDT, импортирует этот tool extension project в EDT workspace, не добавляя его в projectsource-set.
v8-runner tools download yaxunit [--sources] [--force]
v8-runner tools download vanessa [--force]
v8-runner tools download client-mcp [--sources] [--force]- CLI-only; не публикуется как MCP tool.
- Берёт latest release из GitHub для выбранного инструмента:
bia-technologies/yaxunit,Pr-Mex/vanessa-automation-singleили1c-neurofish/onec-client-mcp-devkit. yaxunit --sourcesраспаковывает source subtree вtestsи добавляет в primaryv8project.yamlsource-setс именемtests; без--sourcesскачивает.cfeвbuild/tools.client-mcp --sourcesраспаковывает source subtree вbuild/tools/onec-client-mcp-devkit/exts/client-mcp; без--sourcesтребуетbuilder=DESIGNERи скачивает.cfeвbuild/tools.vanessaвсегда скачиваетbuild/tools/vanessa-automation-single.epf.v8project.local.yamlобновляется только для команд, которым нужны machine-local пути:vanessaзаполняетtools.va.epf_path,client-mcpзаполняетtools.client_mcp.extension; повторный запуск переиспользует уже скачанные файлы, а--forceперезаписывает только managed targets, созданныеtools download.- Managed target определяется sidecar marker-файлом
tools download; если публикация файла или каталога не завершилась, новый marker очищается и target не считается управляемым. - Каждый HTTP response body ограничен 512 MiB; превышение лимита возвращает ошибку до публикации target.
v8-runner extensions [--name <SOURCE_SET>...]- Работает только с
source-set, у которыхtype=EXTENSION. - Без
--nameобрабатывает все extensionsource-setиз конфига. - Возвращает пошаговый результат по каждому целевому расширению.
v8-runner build [--source-set <NAME>] [--full-rebuild]- Без
--source-setобрабатывает все configuredsource-setв canonical order. - С
--source-setproject stage анализирует и строит только указанныйsource-set; неизвестное имя отклоняется как validation error. - Для
DESIGNERвыбирает incremental, partial или full path по изменённым файлам выбранного scope. - Для
EDTсначала анализирует и экспортирует выбранные EDTsource-set, затем грузит generated Designer files выбранным backend. - После успешного project stage, включая scoped
--source-set, подготавливаетtools.client_mcp.extension, если оно настроено:sourceзагружается как extension из исходников,.cfeartifactзагружается как extension с именемtools.client_mcp.extension.name. - Для source-backed
tools.client_mcp.extensionиспользует отдельное состояние change detection подworkPath/hash-storages: неизменённый source пропускает export/load,--full-rebuildпринудительно обновляет расширение. tools.client_mcp.extensionне является projectsource-set;--source-setвыбирает только project source-set.- Не является атомарной multi-source-set операцией: ранние успешные шаги не откатываются, если поздний шаг падает.
v8-runner test [--full] [--no-build] yaxunit all
v8-runner test [--full] [--no-build] yaxunit module <NAME>
v8-runner test [--no-build] va
v8-runner test [--no-build] va --feature login --filter-tag @smoke- По умолчанию сначала запускает
build.--no-buildотмечает build-step какskippedи запускает тесты на подготовленной ИБ; для file connection до запуска платформы требуется<infobase>/1Cv8.1CD, для server connection доступность подтверждается запуском test engine. - В
--no-buildsource-set и build tooling не проходят filesystem/layout validation: исходники configuration могут отсутствовать. Валидация ИБ, платформы и настроек test engine сохраняется. --no-buildявляется CLI-only контрактом; MCPrun_all_testsсохраняет build-first поведение.test yaxunit module <NAME>требует непустое имя модуля.test vaиспользует профиль изtests.va.profile;--feature,--filter-tag,--ignore-tagи--scenario-filterпереопределяют соответствующие списки выбранного профиля только для текущего запуска.- Для функциональных
.feature-сценариев и приемки используйте Vanessa Automation: CLItest vaили MCPrun_all_testsсrunner=vanessa, а не дефолтный YaXUnit-runner. --fullвключает полный вывод успешных кейсов и расширенные stack traces.tests.*.timeouts.total_msостаётся активным пользовательским контрактом таймаутов.
v8-runner syntax designer-config [FLAGS]
v8-runner syntax designer-modules [FLAGS]
v8-runner syntax edt [--project <PROJECT>...]designer-config:
- Только
builder=DESIGNER,format=DESIGNER. - Позволяет комбинировать config checks и client scopes.
- Поддерживает
--extension <EXTENSION>или--all-extensions.
designer-modules:
- Только
builder=DESIGNER,format=DESIGNER. - Требует как минимум один mode flag.
- Поддерживает
--extension <EXTENSION>или--all-extensions.
edt:
- Только
builder=DESIGNER,format=EDT. - Повторяемый
--project. - Без
--projectиспользует дефолтный набор EDT-проектов из конфига.
v8-runner dump --mode <full|incremental|partial> [--source-set <NAME>] [--extension <EXTENSION>] [--object <TYPE:NAME>...]partialтребует хотя бы один--object.- Канонический ввод селектора —
TYPE:NAME(например,Catalog:Items); для совместимости принимается иTYPE.NAME. Переданный селектор сохраняется в JSON какdata.selectors[*].requested, а в списке Designer и какdata.selectors[*].normalizedиспользуется нормализованныйTYPE.NAME. - До запуска платформы CLI валидирует синтаксис селектора: непустые
TYPEиNAME, ровно один разделитель:или., без управляющих символов. Вbuilder=DESIGNERсуществование metadata root type проверяет Designer;builder=IBCMDне использует object list, потому что деградирует в incremental. builder=DESIGNERподдерживает true object-scoped partial.builder=IBCMDне умеет object-scoped partial; запрос деградирует в incremental с warning.format=EDTиспользует internal Designer snapshot подworkPath/designer/<sourceSetName>, затем импортирует его в EDT target и публикует результат атомарной заменой target каталога.
v8-runner convert [--source-set <NAME>] [--output <DIR>]- CLI-only; не публикуется как MCP tool.
- Работает от текущего
v8project.yaml, а не по arbitrary source/target paths. - Направление определяется только из
format. - Без
--outputпубликует результат подworkPath/convert/out/<sourceSetName>/<designer|edt>/. --outputзадаёт только target root и зеркалитsource-set.pathотносительно каталога primary config.- Публикация остаётся staged full replacement с overlap guardrails.
v8-runner load --path <FILE> [--mode <load|merge>] [--settings <FILE>] [--extension <NAME>]- Поддерживает
.cfи.cfe. - Работает только для
format=DESIGNERиbuilder=DESIGNER. .cfeтребует--extension.--mode mergeтребует--settings <FILE>.load --mode updateне поддержан; используйтеloadилиmerge.
v8-runner make --output <TARGET> [--source-set <NAME>] [--extension <NAME>]
v8-runner artifacts --output <TARGET> [--source-set <NAME>] [--extension <NAME>]- Это один use case с двумя CLI names.
.cfиспользуется для основной конфигурации..cfeиспользуется для extension export.- Каталог output используется для external
.epf/.erfpublication. - Требует
builder=DESIGNER.
v8-runner launch <designer|thin|thick|ordinary> [FLAGS]
v8-runner launch mcp [va] [--mode <thin|thick|ordinary>] [--wait-ready] [FLAGS]- Для обычного запуска (
designer/thin/thick/ordinary) режим задаётся позиционным аргументом. designerиспользует1cv8.thinиспользует1cv8c.thickиordinaryиспользуют1cv8.mcpзапускает клиентский MCP-сервер onec-client-mcp-devkit через/C runMcp.launch mcpпо умолчанию использует--mode thinи1cv8c.launch mcp --mode thickиспользует1cv8;launch mcp --mode ordinaryиспользует1cv8и добавляет/RunModeOrdinaryApplication.launch mcp vaдополнительно запускает Vanessa Automation изtools.vaчерез/Execute <epf>и передаётVAParams=<runtime params>безStartFeaturePlayer.- Для интерактивной отладки и написания функциональных
.feature-сценариев используйтеlaunch mcp va --wait-ready; голыйlaunch mcpподнимает client MCP без Vanessa tools. - Любой управляемый runner payload для ключа
/Cпередаётся как значение отдельного аргумента/C: это касаетсяlaunch --c,launch mcp,test yaxunitиtest va. На уровне process argv это два элемента:/Cи<payload>; shell-подобная запись/C <payload>в документации не означает один склеенный аргумент. - Для
mcpдоступны typed flags--mcp-config <FILE>и--mcp-port <PORT>; итоговый payload:/C runMcp[=<FILE>][;mcpPort=<PORT>]. - Если
--mcp-portне указан, используетсяtools.client_mcp.portизv8project.yaml. --wait-readyждётhttp://127.0.0.1:<port>/mcp, выполняет MCPinitialize,notifications/initializedиtools/list, а в JSON-результате возвращаетmcp_readinessсо списком tools. Дляlaunch mcp va --wait-readyдополнительно проверяется наличие Vanessa tools:load_features,open_feature_file,run_scenario,get_test_results,connect_test_client.- Timeout ожидания задаётся
tools.client_mcp.wait_ready_timeout_ms; если он не задан, используется общийexecution_timeout. Фактическое ожидание всё равно ограничено общим command deadline, поэтому для более длинного ожидания нужно увеличить иexecution_timeout. - Если настроено
tools.client_mcp.extension,launch mcpне устанавливает и не обновляет его; подготовка выполняется командойv8-runner build. --mcp-configне должен содержать;, потому что/Cpayload разделяется точкой с запятой.launch mcpне принимает--cи--execute, потому что/Cуправляется командой.- Для локальной проверки external EPF используйте только
launch thin --execute <file.epf> --output <out> --stderr-output <stderr> --wait-for-exit --wait-timeout-ms <ms>: это opt-in bounded wait с JSON-полями PID, execute path, exit code/timeout и заявленными artifact paths. Timeout считается CLI failure и возвращает error envelope с payload после остановки группы процесса. Ненулевой exit code external EPF возвращается в JSON как наблюдаемый результат; вызывающий runtime gate обязан проверитьexternal_epf_wait.exit_code. Обычныйlaunchостаётся асинхронным. В wait-режиме запрещены raw/C,/Executeи/Out(включая configured additional launch keys). launch mcpпринимает общие launch flags--use-privileged-mode,--outputи--raw-key, но--raw-keyне может задавать/C,/Executeили/Out.- Для
designer/thin/thick/ordinaryдополнительные typed flags:--c,--execute,--use-privileged-mode,--output, повторяемый--raw-key. - Platform discovery использует
tools.platform.pathкак explicit-only границу: если path задан, default roots иPATHне используются.tools.platform.versionбез path фильтрует обычный поиск; вместе с path проверяется только приtools.platform.strict: true, а приstrict: falseигнорируется. - JSON-результат именно
launchсодержит legacybinaryиplatform_resolutionс canonicalpath,version(илиnull),source(explicit,default-rootилиpath) иinstallation_root. Это не общий metadata contract для остальных команд.
v8-runner mcp serve stdio
v8-runner mcp serve httpstdioиstreamable HTTPпубликуют один и тот же набор из 8 инструментов.- MCP request fields используют
camelCase. - Business failures возвращаются внутри tool result payload.
- Transport/internal failures остаются MCP-native.
- Все tool calls разделяют
mcp.execution.max_concurrent_calls. - Если пользователь просит функциональные
.feature-сценарии, приемку или Vanessa Automation, агент должен выбиратьrun_all_testsсrunner=vanessaлибоlaunch_appсutilityType=mcp,mcpScenario=vaиwaitReady=true; bareutilityType=mcpне загружает Vanessa.
| Инструмент | Основные поля запроса | Примечания |
|---|---|---|
build_project |
fullRebuild, sourceSet |
fullRebuild=false; sourceSet omitted значит все source-set |
run_all_tests |
full, runner, profile, feature, filterTag, ignoreTag, scenarioFilter |
Компактный вывод по умолчанию; runner=vanessa запускает Vanessa Automation с выбранным профилем и фильтрами |
run_module_tests |
moduleName, full |
Отклоняет пустой moduleName |
dump_config |
mode, extension, objects |
Пустой mode нормализуется в INCREMENTAL |
launch_app |
utilityType, mcpScenario, mode, mcpConfig, mcpPort, waitReady |
utilityType=mcp запускает client MCP; mcpScenario=va загружает Vanessa Automation; остальные MCP-поля доступны только для utilityType=mcp |
check_syntax_edt |
projectName |
Пустой projectName значит “все EDT-проекты” |
check_syntax_designer_config |
Designer-config flags в camelCase |
Область расширений нормализуется в service layer |
check_syntax_designer_modules |
Designer-modules flags в camelCase |
Область расширений нормализуется в service layer |
Важные runtime директории:
workPath/hash-storages/: persisted change-detection state.workPath/edt-workspace/: общий EDT workspace дляinit.workPath/convert/edt-workspace/: отдельный EDT workspace дляconvert.workPath/ibcmd-data/: изолированный standalone-server data directory для IBCMD dump; это runtime statev8-runner, его можно удалить, когда нет активных CLI/MCP команд проекта.workPath/logs/platform/: platform logs.workPath/logs/mcp/actions.log: MCP action log.workPath/temp/: временные run artifacts и диагностические файлы.
- Публикация CLI-only команд в MCP без отдельного ADR.
- Object-scoped partial dump для
builder=IBCMD. loadдляIBCMD.- Arbitrary path-based
convert source -> targetcontract. - Отдельная пользовательская настройка EDT
working-directory.