mlspace-plugin 0.2.2__tar.gz → 0.3.1__tar.gz
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.
- mlspace_plugin-0.3.1/.agents/plugins/marketplace.json +20 -0
- mlspace_plugin-0.3.1/.claude-plugin/marketplace.json +12 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/INSTALL.md +64 -19
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/INSTALL_AGENT.md +20 -7
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/PKG-INFO +19 -14
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/README.md +18 -13
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/RELEASE.md +15 -9
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/.claude-plugin/plugin.json +1 -1
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/.codex-plugin/plugin.json +1 -1
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/.mcp.json +1 -1
- mlspace_plugin-0.3.1/plugin/README.md +67 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/mcp.json +2 -5
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/plugin.json +1 -1
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/pyproject.toml +2 -1
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/build_plugin.py +9 -43
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/gen_plugin.py +26 -17
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/__init__.py +1 -1
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/client_setup.py +102 -76
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/config.py +23 -5
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/init_cli.py +46 -17
- mlspace_plugin-0.3.1/src/mlspace_mcp/native_plugins.py +116 -0
- mlspace_plugin-0.3.1/src/mlspace_mcp/setup_conflicts.py +105 -0
- mlspace_plugin-0.3.1/src/mlspace_mcp/setup_verification.py +106 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_client_setup.py +91 -87
- mlspace_plugin-0.3.1/tests/test_credential_pointer.py +56 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_env_file.py +1 -0
- mlspace_plugin-0.3.1/tests/test_native_cli_integration.py +117 -0
- mlspace_plugin-0.3.1/tests/test_native_plugins.py +96 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_onboarding_init.py +86 -9
- mlspace_plugin-0.3.1/tests/test_opencode_journey.py +249 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_plugin_bundle.py +15 -32
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_plugin_release.py +7 -26
- mlspace_plugin-0.3.1/tests/test_setup_conflicts.py +202 -0
- mlspace_plugin-0.3.1/tests/test_setup_native_journey.py +137 -0
- mlspace_plugin-0.3.1/tests/test_setup_verification.py +54 -0
- mlspace_plugin-0.2.2/plugin/README.md +0 -119
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/.env.example +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/.gitignore +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/AGENTS.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/CONTRIBUTING.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/LICENSE +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-call-deployed-model-predict/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-deploy-inference-service/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-diagnose-data-transfer/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-diagnose-failed-training-job/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-diagnose-job-launch-rejection/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-diagnose-unhealthy-inference/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-discover-launchable-resources/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-launch-training-job/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-list-running-jobs/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-resume-notebook-and-set-autoshutdown/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-stage-s3-to-nfs/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/plugin/skills/mlspace-transfer-compute-node/SKILL.md +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/demo_multi_workspace.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/gen_body_schemas.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/mcp_call.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/serve_stdio.sh +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/scripts/serve_stdio_dryrun.sh +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/__main__.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/_status.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/auth.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/bodyspec.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/client.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/errors.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/formatting.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/job_hooks.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/jsonc.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/overview.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/registry.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/resource_refs.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/server.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/setup_ui.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/spec/body_schemas.json +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/spec/openapi.json +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tls.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/__init__.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/allocations.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/async_inference.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/build_image.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/dalle.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/data_transfer.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/docker_registry.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/inference.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/jobs.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/notebooks.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/queues.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/resources.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/tensorboards.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/tools/workspaces.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/src/mlspace_mcp/workspace_context.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/conftest.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/specutil.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_allocations.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_artifact_sync.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_async_inference.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_auth.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_autofill.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_bodyspec.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_build_image.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_client.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_configs_shrink.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_dalle.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_data_transfer.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_docker_registry.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_drift.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_dry_run.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_dry_run_fidelity.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_errors.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_false_success.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_formatting.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_init_cli.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_integration.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_job_status.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_jobs.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_log_normalisation.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_mcp_error_contract.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_notebooks.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_onboarding_tls.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_overview.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_plugin_cli.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_preflight.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_queue_scope.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_queues.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_registry.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_resource_refs.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_resources.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_route_confusion.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_setup_ui.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_skills.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_tensorboards.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_workspace_context.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_workspaces.py +0 -0
- {mlspace_plugin-0.2.2 → mlspace_plugin-0.3.1}/tests/test_wrapper_hardening.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mlspace",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "MLSpace"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "mlspace",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugin"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Productivity"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Установка MLSpace MCP: macOS и Linux
|
|
2
2
|
|
|
3
|
-
Нужны Python 3.10+, `uv
|
|
3
|
+
Нужны Python 3.10+, `uv` (команда `uvx`), Git для нативных плагинов,
|
|
4
|
+
актуальный Claude Code, Codex или OpenCode,
|
|
4
5
|
Cloud.ru Key ID и Key Secret. Windows пока не поддерживаем.
|
|
5
6
|
|
|
6
7
|
Первая установка из PyPI выполняется одной командой:
|
|
@@ -20,7 +21,7 @@ mlspace-plugin setup
|
|
|
20
21
|
```
|
|
21
22
|
|
|
22
23
|
Если пакет уже установлен: `uv tool install --force .`.
|
|
23
|
-
При установке из wheel: `uv tool install /путь/к/mlspace_plugin-0.
|
|
24
|
+
При установке из wheel: `uv tool install /путь/к/mlspace_plugin-0.3.1-py3-none-any.whl`.
|
|
24
25
|
Не используйте editable-установку из `/tmp` для постоянной работы.
|
|
25
26
|
Далее команды показаны для PyPI. После установки исходников или wheel через
|
|
26
27
|
`uv tool install` заменяйте `uvx mlspace-plugin@latest` на `mlspace-plugin`,
|
|
@@ -34,7 +35,15 @@ mlspace-plugin setup
|
|
|
34
35
|
звёздочки показывают ввод. Ключи создаются в консоли Cloud.ru в профиле, «Ключи доступа».
|
|
35
36
|
3. Загрузит воркспейсы. Печатайте имя, проект или ID для поиска. Стрелки перемещают
|
|
36
37
|
курсор, пробел отмечает, Enter завершает выбор. Ctrl-U очищает поиск; выбор сохраняется.
|
|
37
|
-
4. Проверит выбранные
|
|
38
|
+
4. Проверит выбранные воркспейсы и сохранит настройки.
|
|
39
|
+
5. Для Claude Code и Codex добавит marketplace этого GitHub-репозитория и установит
|
|
40
|
+
`mlspace@mlspace`. Для OpenCode запишет MCP-подключение и скиллы в
|
|
41
|
+
`~/.config/opencode/skills` (учитывается `XDG_CONFIG_HOME`).
|
|
42
|
+
6. Сверит скиллы, запустит MCP и проверит инструменты и выбранные воркспейсы.
|
|
43
|
+
|
|
44
|
+
Если настройка клиента не завершилась, проверенные ключи остаются сохранёнными.
|
|
45
|
+
Мастер перечислит установленные клиенты; устраните причину и выполните напечатанную
|
|
46
|
+
команду `Retry`. Она сохраняет выбор клиентов, включая незавершённые подключения.
|
|
38
47
|
|
|
39
48
|
Откройте новую сессию выбранного клиента; если MCP не появился, перезапустите клиент.
|
|
40
49
|
Сервер запускается клиентом автоматически. Первый запрос:
|
|
@@ -75,15 +84,39 @@ uvx mlspace-plugin@latest setup --force --client-path opencode=/полный/п
|
|
|
75
84
|
`--force` повторяет настройку с сохранёнными ключами на прежнем endpoint.
|
|
76
85
|
`--replace-credentials` запрашивает новые. При смене endpoint ключи запрашиваются
|
|
77
86
|
заново, если источник явно не выбран. `--client` можно повторять.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
Посторонние MCP, комментарии JSONC и дополнительные пользовательские скиллы сохраняются.
|
|
88
|
+
Если в OpenCode уже есть другое подключение `mcp.mlspace` или отличающиеся скиллы
|
|
89
|
+
с именами из пакета, мастер **до ввода ключей** покажет все эти конфликты вместе.
|
|
90
|
+
Для подключения выберите `r`, чтобы сохранить резервную копию конфига и заменить
|
|
91
|
+
только `mcp.mlspace`. Для каждого конфликтующего скилла доступны:
|
|
92
|
+
|
|
93
|
+
- `k` — оставить свою версию активной и исключить её из обновлений плагина.
|
|
94
|
+
Этот выбор сохраняется для последующих запусков setup. Проверка сообщит,
|
|
95
|
+
что пользовательская версия не проверялась на совпадение с релизом.
|
|
96
|
+
- `r` — сохранить весь каталог скилла, включая вспомогательные файлы, в резервной
|
|
97
|
+
копии и установить пакетный `SKILL.md`.
|
|
98
|
+
- Enter — отменить настройку без замены конфликтующих файлов.
|
|
99
|
+
|
|
100
|
+
Резервные копии находятся в `backups/setup-*` рядом с `install-state.json`
|
|
101
|
+
в каталоге настроек MLSpace, **вне каталогов скиллов**; мастер печатает точный путь.
|
|
102
|
+
Они создаются перед заменой после проверки credentials. Если резервное копирование
|
|
103
|
+
не удалось, конфликтующие файлы не заменяются. Отличие от пакета само по себе
|
|
104
|
+
не означает ручное редактирование: это может быть файл от старой установки.
|
|
105
|
+
`--force` не разрешает замену конфликтов. В `--non-interactive` мастер перечисляет
|
|
106
|
+
их и останавливается; для выбора запустите ту же команду в своём терминале без этого флага.
|
|
107
|
+
|
|
108
|
+
Уже установленный `mlspace@mlspace` из этого репозитория переиспользуется.
|
|
109
|
+
Если имя marketplace занято другим источником или есть отдельная прямая регистрация
|
|
110
|
+
MLSpace в Claude/Codex, мастер остановится до ввода ключей. Разберите указанное
|
|
111
|
+
подключение; мастер не удаляет его автоматически.
|
|
82
112
|
|
|
83
113
|
## Где ключи
|
|
84
114
|
|
|
85
115
|
`~/.config/mlspace-plugin/.env` (или каталог из `XDG_CONFIG_HOME`): права файла `0600`,
|
|
86
116
|
каталога MLSpace `0700`. В конфиге клиента — только путь и команда запуска.
|
|
117
|
+
Несекретный указатель `~/.config/mlspace-plugin/credentials-path.json` хранит путь
|
|
118
|
+
к выбранному файлу. Поэтому `--path` и нестандартный `XDG_CONFIG_HOME` не требуют
|
|
119
|
+
wrapper или экспорта переменных перед каждым запуском клиента.
|
|
87
120
|
Это не шифрование: процессы того же пользователя и администратор могут прочитать
|
|
88
121
|
файл. Не отправляйте его в чат и не добавляйте в Git. x-api-key получается автоматически
|
|
89
122
|
и не сохраняется. Доступ к каждому выбранному workspace проверяется, но это не
|
|
@@ -102,15 +135,27 @@ uvx mlspace-plugin@latest setup --force --client-path opencode=/полный/п
|
|
|
102
135
|
|
|
103
136
|
## Обновление пакета и скиллов
|
|
104
137
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
138
|
+
```bash
|
|
139
|
+
uvx mlspace-plugin@latest setup --force
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Мастер переиспользует ключи, предложит выбор workspace и обновит все сохранившиеся
|
|
143
|
+
подключения, созданные им ранее. `--client` добавляет новые подключения.
|
|
144
|
+
Удалённые подключения не восстанавливаются автоматически.
|
|
145
|
+
|
|
146
|
+
Claude Code и Codex обновляют нативный плагин через свой менеджер; MCP и скиллы
|
|
147
|
+
приходят из одного релиза. OpenCode обновляет команду MCP и свои скиллы.
|
|
148
|
+
Для отличающихся конфигов и скиллов OpenCode мастер предлагает выбор, описанный выше.
|
|
149
|
+
Дополнительные скиллы с отдельными именами, в том числе `mlspace-*`, не мешают
|
|
150
|
+
установке и проверке. Скиллы, оставленные через `k`, не обновляются плагином.
|
|
151
|
+
Кеш нативного плагина принадлежит менеджеру клиента: свои правки храните отдельно.
|
|
152
|
+
|
|
153
|
+
Для постоянной установки сначала `uv tool upgrade mlspace-plugin`, затем
|
|
154
|
+
`mlspace-plugin setup --force`. Сборка из исходников должна соответствовать
|
|
155
|
+
версии публичного marketplace; для разработки используйте `--config-only`
|
|
156
|
+
или изолированную тестовую установку.
|
|
157
|
+
|
|
158
|
+
Собственного фонового обновления нет. Настройки автообновления Claude/Codex
|
|
159
|
+
мастер не меняет. Установка и проверка конкретной версии требуют доступа к GitHub
|
|
160
|
+
и PyPI. Если публикация релиза ещё не завершена, setup сообщает об ошибке;
|
|
161
|
+
повторите его после завершения публикации.
|
|
@@ -18,19 +18,32 @@
|
|
|
18
18
|
(по SSH — на целевой машине). Для stage добавьте согласованный `--base-url`.
|
|
19
19
|
Объясните: два ключа под звёздочками → поиск и выбор workspace → подключение.
|
|
20
20
|
Дождитесь сообщения о завершении. Человек не должен присылать секреты или файл.
|
|
21
|
-
4. Мастер сам обнаруживает клиентов, проверяет TLS и API
|
|
22
|
-
|
|
21
|
+
4. Мастер сам обнаруживает клиентов, проверяет TLS и API. В Claude Code/Codex
|
|
22
|
+
он добавляет GitHub marketplace и устанавливает нативный плагин; в OpenCode
|
|
23
|
+
записывает MCP и скиллы в собственный каталог клиента. Если клиентов несколько, человек выбирает нужные. Для известного
|
|
23
24
|
клиента можно заранее дать `--client claude-code`, `--client codex` или `--client opencode`.
|
|
24
25
|
Сбой TLS исправляется системным CA или PEM от администратора через `--ca-file`.
|
|
25
26
|
Никогда не отключайте TLS и не подставляйте сертификат с недоверенного сервера.
|
|
26
|
-
5.
|
|
27
|
-
|
|
27
|
+
5. Успешный setup уже проверяет установленные скиллы, MCP initialize, список
|
|
28
|
+
инструментов и выбранные workspace. Это проверка процесса MCP, а не открытой
|
|
29
|
+
сессии агента. `--list-tools` само по себе не подтверждает подключение.
|
|
28
30
|
Попросите открыть новую сессию клиента (при необходимости перезапустить).
|
|
29
31
|
После появления MCP выполните read-only запрос списка выбранных workspace.
|
|
30
32
|
До этого не заявляйте, что клиент уже загрузил MCP и скиллы.
|
|
31
|
-
6.
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
6. При существующей настройке объясните выбор до отправки человека в терминал:
|
|
34
|
+
мастер покажет конфликты OpenCode одним списком перед вводом ключей.
|
|
35
|
+
`k` оставляет пользовательский скилл активным и исключает из обновлений;
|
|
36
|
+
`r` сохраняет резервную копию и заменяет конфликтующий файл; Enter отменяет.
|
|
37
|
+
Новые скиллы пользователя с отдельными именами сохраняются автоматически.
|
|
38
|
+
Не удаляйте каталоги `mlspace-*` и не считайте отличие от пакета доказательством
|
|
39
|
+
ручного изменения. Не заменяйте выбор человека флагом `--force` — он этого не делает.
|
|
40
|
+
В неинтерактивном режиме конфликты перечисляются без изменений: предложите человеку
|
|
41
|
+
запустить ту же команду без `--non-interactive`, сохранив endpoint, путь и выбор клиентов.
|
|
42
|
+
Для конфликта нативного плагина Claude/Codex разберите указанный несекретный путь;
|
|
43
|
+
не удаляйте чужую интеграцию автоматически.
|
|
44
|
+
При частичном успехе сообщите, какие этапы завершены, и используйте команду `Retry`
|
|
45
|
+
из ошибки: она сохраняет выбор незавершённых подключений. Для автоматизации
|
|
46
|
+
добавьте прежние `--non-interactive` и `--workspace`.
|
|
34
47
|
|
|
35
48
|
## Автоматизация с уже подготовленными credentials
|
|
36
49
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mlspace-plugin
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Cloud.ru MLSpace plugin: MCP server, agent skills and setup
|
|
5
5
|
Project-URL: Repository, https://github.com/noesskeetit/mlspace-plugin
|
|
6
6
|
Project-URL: Issues, https://github.com/noesskeetit/mlspace-plugin/issues
|
|
@@ -107,8 +107,10 @@ mlspace-plugin setup
|
|
|
107
107
|
Мастер обнаруживает Claude Code, Codex и OpenCode, просит только Key ID и Key Secret
|
|
108
108
|
с маской `*****`, предлагает поиск воркспейсов по имени/проекту/ID и множественный
|
|
109
109
|
выбор. Проверяет API, сохраняет credentials в пользовательский `.env` с правами
|
|
110
|
-
`0600
|
|
111
|
-
|
|
110
|
+
`0600`. Для Claude Code и Codex мастер добавляет marketplace этого репозитория
|
|
111
|
+
и устанавливает нативный плагин с MCP и скиллами. OpenCode получает MCP и скиллы
|
|
112
|
+
в собственном каталоге. Мастер проверяет запуск MCP; затем откройте новую сессию
|
|
113
|
+
клиента — сервер запускается автоматически.
|
|
112
114
|
|
|
113
115
|
TLS использует системные доверенные CA. Для корпоративного PEM есть `--ca-file`:
|
|
114
116
|
мастер сохраняет копию для последующих запусков. Ошибка TLS/сети останавливает
|
|
@@ -118,14 +120,14 @@ TLS использует системные доверенные CA. Для ко
|
|
|
118
120
|
endpoint переиспользуются. Для замены ключей добавьте `--replace-credentials`.
|
|
119
121
|
Для stage укажите `--base-url https://mlspace-stage.example.com`.
|
|
120
122
|
Только credentials без подключения клиентов — `--config-only`.
|
|
121
|
-
|
|
123
|
+
Уже установленный нативный плагин из этого репозитория переиспользуется.
|
|
122
124
|
|
|
123
125
|
Подробнее: [установка, SSH, сертификаты и повторная настройка](https://github.com/noesskeetit/mlspace-plugin/blob/main/INSTALL.md).
|
|
124
126
|
Для разработки: `uv sync --extra dev` и `uv run pytest`.
|
|
125
127
|
|
|
126
128
|
**Порядок поиска кредов** — от общего к частному, побеждает более конкретное:
|
|
127
129
|
|
|
128
|
-
1. `~/.config/mlspace-plugin/.env`
|
|
130
|
+
1. Файл, сохранённый `setup` (по умолчанию `~/.config/mlspace-plugin/.env`)
|
|
129
131
|
2. файл из `MLSPACE_ENV_FILE` — выбран явно
|
|
130
132
|
3. настоящие переменные окружения — бьют любой файл
|
|
131
133
|
|
|
@@ -133,8 +135,10 @@ endpoint переиспользуются. Для замены ключей до
|
|
|
133
135
|
укажите его явно через `MLSPACE_ENV_FILE`, чтобы чужой репозиторий не мог
|
|
134
136
|
подменить адрес API при использовании сохранённых ключей.
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
`~/.config/mlspace-plugin/credentials-path.json` хранит только путь к выбранному
|
|
139
|
+
файлу: настройка через `--path` или `XDG_CONFIG_HOME` работает и после перезапуска
|
|
140
|
+
клиента с другим окружением. Повреждённый указатель или отсутствующий целевой файл
|
|
141
|
+
дают ошибку; другой аккаунт молча не подставляется.
|
|
138
142
|
|
|
139
143
|
| Переменная | Обяз. | По умолчанию | Назначение |
|
|
140
144
|
|---|:---:|---|---|
|
|
@@ -274,13 +278,14 @@ write-запросов подаются параметром `body: dict`; об
|
|
|
274
278
|
## Плагин: Codex, Claude Code и совместимые агенты
|
|
275
279
|
|
|
276
280
|
[Поставка MLSpace](plugin/README.md) объединяет MCP-сервер и 12 скиллов.
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
Обычная установка — `uvx mlspace-plugin@latest setup`: marketplace подключается
|
|
282
|
+
автоматически. Нативные клиенты управляют плагином `mlspace@mlspace` сами.
|
|
283
|
+
Манифест фиксирует точную версию runtime из PyPI вместе со скиллами.
|
|
284
|
+
Ключи и CA остаются в пользовательском конфиге вне кеша плагина.
|
|
285
|
+
|
|
286
|
+
Повторный `setup --force` обновляет сохранившиеся подключения мастера.
|
|
287
|
+
Собственного фонового обновления нет; политики автообновления клиентов мастер
|
|
288
|
+
не меняет. ZIP релиза содержит те же манифесты и скиллы, без вложенного wheel.
|
|
284
289
|
|
|
285
290
|
Для других агентов предусмотрены Agent Plugins 1.0, Agent Skills и обычное
|
|
286
291
|
MCP-подключение; поддержку конкретного загрузчика нужно проверять отдельно.
|
|
@@ -56,8 +56,10 @@ mlspace-plugin setup
|
|
|
56
56
|
Мастер обнаруживает Claude Code, Codex и OpenCode, просит только Key ID и Key Secret
|
|
57
57
|
с маской `*****`, предлагает поиск воркспейсов по имени/проекту/ID и множественный
|
|
58
58
|
выбор. Проверяет API, сохраняет credentials в пользовательский `.env` с правами
|
|
59
|
-
`0600
|
|
60
|
-
|
|
59
|
+
`0600`. Для Claude Code и Codex мастер добавляет marketplace этого репозитория
|
|
60
|
+
и устанавливает нативный плагин с MCP и скиллами. OpenCode получает MCP и скиллы
|
|
61
|
+
в собственном каталоге. Мастер проверяет запуск MCP; затем откройте новую сессию
|
|
62
|
+
клиента — сервер запускается автоматически.
|
|
61
63
|
|
|
62
64
|
TLS использует системные доверенные CA. Для корпоративного PEM есть `--ca-file`:
|
|
63
65
|
мастер сохраняет копию для последующих запусков. Ошибка TLS/сети останавливает
|
|
@@ -67,14 +69,14 @@ TLS использует системные доверенные CA. Для ко
|
|
|
67
69
|
endpoint переиспользуются. Для замены ключей добавьте `--replace-credentials`.
|
|
68
70
|
Для stage укажите `--base-url https://mlspace-stage.example.com`.
|
|
69
71
|
Только credentials без подключения клиентов — `--config-only`.
|
|
70
|
-
|
|
72
|
+
Уже установленный нативный плагин из этого репозитория переиспользуется.
|
|
71
73
|
|
|
72
74
|
Подробнее: [установка, SSH, сертификаты и повторная настройка](https://github.com/noesskeetit/mlspace-plugin/blob/main/INSTALL.md).
|
|
73
75
|
Для разработки: `uv sync --extra dev` и `uv run pytest`.
|
|
74
76
|
|
|
75
77
|
**Порядок поиска кредов** — от общего к частному, побеждает более конкретное:
|
|
76
78
|
|
|
77
|
-
1. `~/.config/mlspace-plugin/.env`
|
|
79
|
+
1. Файл, сохранённый `setup` (по умолчанию `~/.config/mlspace-plugin/.env`)
|
|
78
80
|
2. файл из `MLSPACE_ENV_FILE` — выбран явно
|
|
79
81
|
3. настоящие переменные окружения — бьют любой файл
|
|
80
82
|
|
|
@@ -82,8 +84,10 @@ endpoint переиспользуются. Для замены ключей до
|
|
|
82
84
|
укажите его явно через `MLSPACE_ENV_FILE`, чтобы чужой репозиторий не мог
|
|
83
85
|
подменить адрес API при использовании сохранённых ключей.
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
`~/.config/mlspace-plugin/credentials-path.json` хранит только путь к выбранному
|
|
88
|
+
файлу: настройка через `--path` или `XDG_CONFIG_HOME` работает и после перезапуска
|
|
89
|
+
клиента с другим окружением. Повреждённый указатель или отсутствующий целевой файл
|
|
90
|
+
дают ошибку; другой аккаунт молча не подставляется.
|
|
87
91
|
|
|
88
92
|
| Переменная | Обяз. | По умолчанию | Назначение |
|
|
89
93
|
|---|:---:|---|---|
|
|
@@ -223,13 +227,14 @@ write-запросов подаются параметром `body: dict`; об
|
|
|
223
227
|
## Плагин: Codex, Claude Code и совместимые агенты
|
|
224
228
|
|
|
225
229
|
[Поставка MLSpace](plugin/README.md) объединяет MCP-сервер и 12 скиллов.
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
230
|
+
Обычная установка — `uvx mlspace-plugin@latest setup`: marketplace подключается
|
|
231
|
+
автоматически. Нативные клиенты управляют плагином `mlspace@mlspace` сами.
|
|
232
|
+
Манифест фиксирует точную версию runtime из PyPI вместе со скиллами.
|
|
233
|
+
Ключи и CA остаются в пользовательском конфиге вне кеша плагина.
|
|
234
|
+
|
|
235
|
+
Повторный `setup --force` обновляет сохранившиеся подключения мастера.
|
|
236
|
+
Собственного фонового обновления нет; политики автообновления клиентов мастер
|
|
237
|
+
не меняет. ZIP релиза содержит те же манифесты и скиллы, без вложенного wheel.
|
|
233
238
|
|
|
234
239
|
Для других агентов предусмотрены Agent Plugins 1.0, Agent Skills и обычное
|
|
235
240
|
MCP-подключение; поддержку конкретного загрузчика нужно проверять отдельно.
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
`uv lock` и `uv run python scripts/gen_plugin.py`. Обновите примеры имён wheel/ZIP
|
|
8
8
|
в инструкциях, если версия присутствует в имени файла.
|
|
9
9
|
2. Выполните проверки из `CONTRIBUTING.md` на Linux и macOS.
|
|
10
|
-
3. Соберите пакет (в командах ниже замените 0.
|
|
10
|
+
3. Соберите пакет (в командах ниже замените 0.3.1 на выпускаемую версию):
|
|
11
11
|
|
|
12
12
|
```sh
|
|
13
|
-
uv build --out-dir dist/release-0.
|
|
14
|
-
uv run python scripts/build_plugin.py --
|
|
13
|
+
uv build --out-dir dist/release-0.3.1
|
|
14
|
+
uv run python scripts/build_plugin.py --output dist/plugin-release-0.3.1
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
4. Просмотрите содержимое wheel, sdist и ZIP. В них не должно быть credentials,
|
|
@@ -23,18 +23,24 @@ uv run python scripts/build_plugin.py --wheel dist/release-0.2.2/mlspace_plugin-
|
|
|
23
23
|
`UV_PUBLISH_TOKEN` средствами вашего хранилища секретов, не аргументом команды:
|
|
24
24
|
|
|
25
25
|
```sh
|
|
26
|
-
uv publish --trusted-publishing never dist/release-0.
|
|
26
|
+
uv publish --trusted-publishing never dist/release-0.3.1/mlspace_plugin-0.3.1-py3-none-any.whl dist/release-0.3.1/mlspace_plugin-0.3.1.tar.gz
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
6. Проверьте версию и SHA256 обоих файлов через PyPI JSON API; проверьте установку
|
|
30
|
-
`uvx --from mlspace-plugin==0.
|
|
31
|
-
|
|
30
|
+
`uvx --from mlspace-plugin==0.3.1 mlspace-plugin --version` из нового кеша.
|
|
31
|
+
7. Только после проверки точной версии в PyPI обновите рабочую ветку GitHub
|
|
32
|
+
marketplace и создайте тег релиза. До этого проверяйте изменения на отдельной
|
|
33
|
+
release-ветке или локальном Git marketplace: main не должен ссылаться на
|
|
34
|
+
отсутствующий пакет. ZIP и SHA256SUMS приложите к тому же релизу.
|
|
35
|
+
8. В чистом HOME выполните публичный setup, проверьте source/version нативных
|
|
36
|
+
плагинов, MCP handshake и загрузку скиллов клиентами. Используйте тестовые
|
|
37
|
+
credentials и локальный HTTPS-стенд; не выполняйте записи в реальном tenant.
|
|
32
38
|
|
|
33
39
|
Пакет не проверяет обновления в фоне. Для PyPI пользователь повторяет
|
|
34
40
|
`uvx mlspace-plugin@latest setup --force`: обновляются сервер и неизменённые скиллы.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
Claude Code и Codex получают нативный плагин через marketplace этого репозитория;
|
|
42
|
+
OpenCode — MCP и скиллы в собственном каталоге. Политики автообновления клиентов
|
|
43
|
+
не меняются. Не обещайте одинаковое фоновое обновление во всех клиентах.
|
|
38
44
|
|
|
39
45
|
Перед открытием существующего приватного Git-репозитория проверьте также его
|
|
40
46
|
историю. Проверка wheel и sdist не является проверкой старых Git-коммитов.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# MLSpace: MCP и скиллы одним плагином
|
|
2
|
+
|
|
3
|
+
Для macOS и Linux, включая SSH:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
uvx mlspace-plugin@latest setup
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Мастер принимает два ключа, предлагает поиск и выбор workspace, добавляет
|
|
10
|
+
marketplace этого репозитория и устанавливает `mlspace@mlspace` в Claude Code
|
|
11
|
+
или Codex. В OpenCode подключает MCP напрямую и устанавливает скиллы в его
|
|
12
|
+
собственный каталог. Затем проверяет скиллы и запуск MCP.
|
|
13
|
+
|
|
14
|
+
Откройте новую сессию клиента. Самостоятельно запускать сервер не требуется.
|
|
15
|
+
Подробнее: [установка](../INSTALL.md), [инструкция агенту](../INSTALL_AGENT.md).
|
|
16
|
+
|
|
17
|
+
## Состав
|
|
18
|
+
|
|
19
|
+
- 12 скиллов в `skills/`;
|
|
20
|
+
- манифесты Agent Plugins, Claude Code и Codex;
|
|
21
|
+
- команда MCP `uvx --from mlspace-plugin==<версия> mlspace-plugin --transport stdio`.
|
|
22
|
+
|
|
23
|
+
Версия сервера из PyPI совпадает с версией плагина. ZIP релиза содержит каталог
|
|
24
|
+
`plugin/`, marketplace-манифесты, README, LICENSE и SHA256SUMS. Вложенного wheel
|
|
25
|
+
нет: для запуска нужен доступ к PyPI. Исходники скиллов находятся в одном месте —
|
|
26
|
+
`plugin/skills`; их копиями в кеше управляют нативные клиенты.
|
|
27
|
+
|
|
28
|
+
Ключи, CA и указатель на credentials находятся вне кеша плагина. Изменение
|
|
29
|
+
`XDG_CONFIG_HOME` при запуске клиента не теряет выбранный файл настроек.
|
|
30
|
+
|
|
31
|
+
## Повторная установка и обновление
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
uvx mlspace-plugin@latest setup --force
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Обновляются сохранившиеся подключения мастера. Уже установленная целевая версия
|
|
38
|
+
не переустанавливается. Собственного фонового обновления нет; политики клиентов
|
|
39
|
+
мастер не меняет. Не редактируйте нативный кеш плагина: обновление заменяет его.
|
|
40
|
+
|
|
41
|
+
## Ручная диагностика нативных клиентов
|
|
42
|
+
|
|
43
|
+
Обычно эти команды не нужны — их выполняет setup. Для проверки состояния:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
claude plugin marketplace list --json
|
|
47
|
+
claude plugin list --json
|
|
48
|
+
codex plugin marketplace list --json
|
|
49
|
+
codex plugin list --json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Marketplace `mlspace` должен ссылаться на
|
|
53
|
+
`https://github.com/noesskeetit/mlspace-plugin.git`, а плагин `mlspace@mlspace`
|
|
54
|
+
должен быть включён. Если CLI не поддерживает команды plugin, обновите клиент.
|
|
55
|
+
Прямая MCP-регистрация с тем же именем может конфликтовать с нативным плагином;
|
|
56
|
+
мастер сообщает об этом до ввода ключей и не удаляет пользовательский конфиг.
|
|
57
|
+
|
|
58
|
+
## Сборка
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
uv run python scripts/gen_plugin.py --check
|
|
62
|
+
uv build
|
|
63
|
+
uv run python scripts/build_plugin.py
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
ZIP появится в `dist/plugins/`. Генератор проверяет манифесты плагина и оба
|
|
67
|
+
marketplace-манифеста в корне репозитория. Порядок публикации — в [RELEASE.md](../RELEASE.md).
|
|
@@ -6,14 +6,11 @@
|
|
|
6
6
|
"command": "uvx",
|
|
7
7
|
"args": [
|
|
8
8
|
"--from",
|
|
9
|
-
"
|
|
9
|
+
"mlspace-plugin==0.3.1",
|
|
10
10
|
"mlspace-plugin",
|
|
11
11
|
"--transport",
|
|
12
12
|
"stdio"
|
|
13
|
-
]
|
|
14
|
-
"env": {
|
|
15
|
-
"MLSPACE_ENV_FILE": "${PLUGIN_DATA}/.env"
|
|
16
|
-
}
|
|
13
|
+
]
|
|
17
14
|
}
|
|
18
15
|
}
|
|
19
16
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "mlspace",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.1",
|
|
5
5
|
"description": "Cloud.ru MLSpace: training jobs, inference, notebooks, data transfer, registry and compute catalog — an MCP server plus skills.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Cloud.ru"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mlspace-plugin"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.1"
|
|
4
4
|
description = "Cloud.ru MLSpace plugin: MCP server, agent skills and setup"
|
|
5
5
|
keywords = ["mlspace", "mcp", "agent-skills", "cloudru"]
|
|
6
6
|
classifiers = [
|
|
@@ -50,6 +50,7 @@ packages = ["src/mlspace_mcp"]
|
|
|
50
50
|
|
|
51
51
|
[tool.hatch.build.targets.sdist]
|
|
52
52
|
include = [
|
|
53
|
+
"/.agents/plugins/marketplace.json", "/.claude-plugin/marketplace.json",
|
|
53
54
|
"/src", "/tests", "/plugin", "/scripts/gen_plugin.py", "/scripts/build_plugin.py",
|
|
54
55
|
"/scripts/gen_body_schemas.py", "/scripts/demo_multi_workspace.py",
|
|
55
56
|
"/scripts/mcp_call.py", "/scripts/serve_stdio.sh", "/scripts/serve_stdio_dryrun.sh",
|