Этот документ описывает execution semantics и operational nuances v8-runner без дублирования
полного каталога команд. За точным пользовательским surface обращайтесь к
CAPABILITIES.md, за YAML-контрактом к CONFIGURATION.md.
- Модель выполнения
- source-set и change detection
- Пайплайн build
- Проверка и тесты
- Файловые сценарии и публикация
- Shared EDT
- workPath, lock и interruption policy
- MCP runtime semantics
v8-runner разделяет public surface и execution model:
- CLI и MCP являются разными публичными поверхностями.
- Use case слой остаётся transport-neutral orchestration boundary.
- Platform DSL и process execution остаются ниже use case слоя.
- Text output и machine-readable envelope проектируются отдельно от доменного результата.
Это позволяет держать один orchestration model для CLI и MCP, не смешивая clap, Presenter и
MCP DTO в одном слое.
source-set — минимальная единица оркестрации.
- Для
format=DESIGNERиспользуется один runtime contextdesigner-<sourceSetName>. - Для
format=EDTиспользуются два context-а:edt-<sourceSetName>для решения, нужен ли export;designer-<sourceSetName>для решения, что именно грузить в ИБ.
- Persisted state живёт в
workPath/hash-storages/. - Generated Designer output для EDT flow живёт под
workPath/designer/<sourceSetName>.
Change detection выполняется on-demand во время build/export/load decision и не требует
background watcher. build --source-set <NAME> ограничивает анализ, export/load decision и
runtime snapshot commit только указанным source-set.
Для DESIGNER:
- Анализ изменений по выбранным
source-set. - Выбор partial/full path по изменённым файлам.
- Загрузка через выбранный backend.
- Commit runtime snapshot только после успешного шага.
Для EDT:
- Анализ выбранных EDT source-set.
- Export затронутых EDT source-set в generated Designer representation.
- Повторный анализ generated Designer files.
- Load/apply generated files через
DESIGNERилиIBCMD.
Пайплайн намеренно не является атомарным across many source-set: поздний failure не откатывает
уже успешные ранние шаги.
test и syntax проектируются как часть того же локального цикла, а не как отдельная
эксплуатационная подсистема.
testвсегда сначала делаетbuild, затем запускает YaXUnit или Vanessa Automation.syntax designer-*работает только дляDESIGNERsource format.syntax edtиспользует EDTvalidateи привязан кformat=EDT.- Таймауты и interruption metadata должны проходить через общий command-level contract, а не жить как ad hoc special case конкретной команды.
Важно различать три разных класса файловых операций:
Это reverse sync из ИБ обратно в файловые исходники.
- Для
DESIGNERможет быть full, incremental или partial. - Для
IBCMDobject-scoped partial деградирует в incremental. - Для
format=EDTиспользует internal Designer snapshot, затем EDT import.
Это repo-aware файловая конвертация текущих project files между DESIGNER и EDT.
- Не использует ИБ.
- Не является alias для
dump. - Работает только в модели
v8project.yaml+source-set.
Это materialization сценарии поверх готовых артефактов или publish targets.
loadработает с готовыми.cf/.cfe.make/artifactsпубликуют final.cf,.cfe,.epf,.erf.- Full replacement target publication идёт через staged publication model.
tools.edt_cli.interactive_mode включает shared interactive EDT execution model.
falseозначает one-shot1cedtcli.trueозначает shared actor/manager и одну interactive session для поддержанных EDT-сценариев.- Для CLI shared EDT стартует лениво при первом EDT-вызове.
tools.edt_cli.auto-startотносится только к long-lived host process, сейчас это MCP server.
Shared EDT нужен не ради отдельного public режима, а ради повторного использования одного execution model для CLI и MCP.
workPath является корнем runtime state.
- Логи, temp files, generated outputs и persisted snapshots не должны расползаться по каталогу primary config.
- Public CLI/MCP команды, работающие с runtime state под
workPath, должны брать workspace lock. - Workspace lock сериализует доступ к конкретному runtime root, но не заменяет admission limits и не делает multi-step orchestration fully atomic.
Interruption policy:
- timeout/cancellation являются общим CLI/MCP contract;
- terminal cancellation и deferred interruption должны различаться;
- critical publish/apply phases не hard-kill by default.
MCP deliberately narrower than CLI.
- Опубликованы только 8 tool-операций.
CallToolResult/isErrorостаются MCP-native protocol behavior.- Business failure payload uses the shared command envelope.
- HTTP session capacity и execution admission являются разными guardrails.
- Shared EDT under MCP reuses the same execution model instead of inventing a separate MCP-only runtime path.