Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ kotlin-example/
1cv8/
ai-artefacts/
references/
!SKILL/references/
!SKILL/references/**
!v8-runner/references/
!v8-runner/references/**
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@

## Repo-local SKILL

`SKILL/SKILL.md` — это скилл для использования `v8-runner` в других 1С-проектах. При реализации задач актуализировать его, если меняются команды, workflow, контракты конфигурации, ограничения или диагностические практики, важные для внешнего применения.
`v8-runner/SKILL.md` — это скилл для использования `v8-runner` в других 1С-проектах. При реализации задач актуализировать его, если меняются команды, workflow, контракты конфигурации, ограничения или диагностические практики, важные для внешнего применения.

Правки в `SKILL/SKILL.md` должны быть краткими, емкими и по делу: добавлять только применимые инструкции, без пересказа внутренних деталей реализации и без раздувания справки.
Правки в `v8-runner/SKILL.md` должны быть краткими, емкими и по делу: добавлять только применимые инструкции, без пересказа внутренних деталей реализации и без раздувания справки.

## Commit message format

Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,15 @@ v8-runner test va
v8-runner launch mcp va
```

### Подключение к session-manager (WS-режим)

`launch mcp`, `launch mcp va`, `test yaxunit ...` и `test va ...` поддерживают подключение
1С-клиента к [`v8-client-session-manager`](../v8-client-session-manager/) вместо запуска
локального HTTP MCP. По умолчанию — `auto`: TCP-probe адреса менеджера, при успехе
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
собирается `/C"mcpMode=ws;manager_url=...;client_uid=...;kind=...;..."`, иначе используется
legacy `/C"runMcp;..."`. Полный список ключей `/C` и CLI-флагов см. в
[docs/CONFIGURATION.md](docs/CONFIGURATION.md#tools-client_mcp).

### Поднимите MCP transport (MCP-транспорт) для AI-агентов:

```bash
Expand Down
134 changes: 0 additions & 134 deletions SKILL/references/project-workflows.md

This file was deleted.

53 changes: 50 additions & 3 deletions docs/CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ tools:
source:
path: /path/to/onec-client-mcp/exts/client-mcp
format: EDT
transport: auto # ws | legacy | auto (default)
manager_url: ws://127.0.0.1:4000/sessions
log_level: info # off|error|warn|info|debug|trace
ws_timeout_ms: 1000
va:
epf_path: /path/to/vanessa.epf
platform:
Expand Down Expand Up @@ -442,11 +446,54 @@ runtime identity и не добавляет отдельное поле конф

Поддержанные поля:

- `port`, опциональный порт клиентского MCP-сервера onec-client-mcp-devkit.
- `port`, опциональный порт клиентского MCP-сервера onec-client-mcp-devkit (legacy режим).
- `extension`, опциональное tool extension для клиентского MCP-сервера.
- `transport` (`ws`, `legacy`, `auto`; по умолчанию `auto`) — режим транспорта. См. раздел
«WS-режим к session-manager» ниже.
- `manager_url` — WS-эндпоинт `v8-client-session-manager`,
по умолчанию `ws://127.0.0.1:4000/sessions`.
- `log_level` (`off`/`error`/`warn`/`info`/`debug`/`trace`) — значение `mcp_log_level`,
передаваемое в `/C` BSL-расширению `client_mcp`.
- `ws_timeout_ms` — значение `mcp_ws_timeout_ms` (таймаут установки WS-сессии в режиме `auto`,
> 0).
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

`launch mcp` передаёт это значение как `mcpPort` внутри `/C"runMcp..."`
если CLI не указал `--mcp-port`.
`launch mcp` передаёт `port` как `mcpPort` внутри `/C"runMcp..."`
Comment thread
coderabbitai[bot] marked this conversation as resolved.
если CLI не указал `--mcp-port` и выбран legacy/`auto`-fallback транспорт.

#### WS-режим к session-manager

Когда `transport=ws` или `transport=auto` и менеджер доступен по `manager_url`,
v8-runner собирает `/C` так:

```text
/C"mcpMode=ws;manager_url=...;client_uid=<UUID>;kind=<KIND>;corr_id=...;mcp_log_level=...;mcp_ws_timeout_ms=..."
```

Значение `kind` вычисляется внутри по точке входа и не может быть переопределено
из CLI:

| Команда v8-runner | `kind` |
|-------------------------|-----------------------|
| `launch mcp` | `v8_runner_client` |
| `launch mcp va` | `vanessa_test_client` |
| `test yaxunit ...` | `yaxunit_runner` |
| `test va ...` | `vanessa_test_client` |

Для тестовых запусков (`test yaxunit`, `test va`) WS-фрагмент **дописывается** к существующему
`/C` (`RunUnitTests=...` или Vanessa-плеер) через `;`. На стороне платформы все ключи
парсятся как `key=value` пары.

CLI-флаги: `--mcp-transport`, `--manager-url`, `--client-uid`, `--corr-id`,
`--mcp-log-level`, `--mcp-ws-timeout-ms`. CLI имеет приоритет над конфигом, конфиг — над
встроенными дефолтами. `client_uid` по умолчанию рандомный UUIDv4 на каждый запуск,
`corr_id` по умолчанию `vr-<первые 8 символов uid>`.

Для `transport=auto` v8-runner делает короткий TCP-probe (200 ms) на хост:порт из
`manager_url`. При успехе выбирается WS, иначе legacy. Для `transport=ws` без живого
менеджера запуск падает с ошибкой `session-manager unreachable at <url>`.

Сам менеджер v8-runner не запускает — его нужно поднять отдельно
(см. соседний репозиторий [`v8-client-session-manager`](../../v8-client-session-manager/)).

`extension` поддерживает:

Expand Down
18 changes: 18 additions & 0 deletions docs/schemas/v8project.local.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,14 @@
],
"description": "Machine-local override or reset for the client MCP tool extension."
},
"log_level": {
"description": "Machine-local override of the default `mcp_log_level`.",
"type": "string"
},
"manager_url": {
"description": "Machine-local override of the default session-manager WS endpoint.",
"type": "string"
},
"port": {
"description": "Machine-local default port passed to onec-client-mcp-devkit.",
"format": "uint16",
Expand All @@ -213,6 +221,16 @@
"integer",
"null"
]
},
"transport": {
"description": "Machine-local override of the default MCP client transport.",
"type": "string"
},
"ws_timeout_ms": {
"description": "Machine-local override of the default `mcp_ws_timeout_ms`.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"type": "object"
Expand Down
30 changes: 30 additions & 0 deletions docs/schemas/v8project.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,20 @@
],
"description": "Optional tool extension prepared by `build` for client MCP launches."
},
"log_level": {
"description": "Default `mcp_log_level` value forwarded into the `/C` payload.",
"type": [
"string",
"null"
]
},
"manager_url": {
"description": "Default WS endpoint for the session-manager.",
"type": [
"string",
"null"
]
},
"port": {
"description": "Default port passed to onec-client-mcp-devkit.",
"format": "uint16",
Expand All @@ -42,6 +56,22 @@
"integer",
"null"
]
},
"transport": {
"description": "Default transport for the MCP client side: `ws`, `legacy` or `auto`.",
"type": [
"string",
"null"
]
},
"ws_timeout_ms": {
"description": "Default `mcp_ws_timeout_ms` value forwarded into the `/C` payload.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"type": "object"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ validation error, а не поздний platform failure.
- добавить понятный hint на `v8-runner build`, если client MCP launch зависит от неподготовленной ИБ.
7. Docs/tests:
- обновить `docs/CONFIGURATION.md`, `docs/CAPABILITIES.md` and examples;
- после реализации обновить `SKILL/SKILL.md`, чтобы repo-local skill описывал shipped behavior;
- после реализации обновить `v8-runner/SKILL.md`, чтобы repo-local skill описывал shipped behavior;
- добавить targeted tests для source/artifact validation, EDT workspace init, build preparation,
source-backed no-change skip, full-rebuild refresh and no-install launch behavior.

Expand Down
Loading