@naparnik/mcp 0.10.9 → 0.10.12
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.
- package/CHANGELOG.md +22 -0
- package/dist/{chunk-JBXYRTS4.js → chunk-7OXIVC4A.js} +37 -3
- package/dist/cli.js +23 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Изменения @naparnik/mcp
|
|
2
2
|
|
|
3
|
+
## 0.10.12 — 2026-09-21. Описание говорит о результате и готовых приёмах монтажа
|
|
4
|
+
|
|
5
|
+
Манифест объясняет, что человеку не нужно заранее придумывать монтаж: Claude
|
|
6
|
+
может предложить структуру, оформление и анимацию. В описании перечислены
|
|
7
|
+
субтитры, цветокоррекция, замена фона, музыка, звуковые эффекты, параллельный
|
|
8
|
+
монтаж роликов, карусели и PDF-материалы.
|
|
9
|
+
|
|
10
|
+
## 0.10.11 — 2026-09-20. Полоса хода не висит там, где работы нет
|
|
11
|
+
|
|
12
|
+
Проверка окружения больше не оставляет под ответом пустую полосу с надписью
|
|
13
|
+
«Работаю — Начинаю…». Полоса объявлена у всего инструмента, и программа рисует
|
|
14
|
+
её при любом вызове; теперь, получив ответ без задачи, она уходит с глаз.
|
|
15
|
+
|
|
16
|
+
## 0.10.10 — 2026-09-20. Обновление обновляет, а не отвечает «у вас всё есть»
|
|
17
|
+
|
|
18
|
+
Установка руками теперь дотягивает и начинку: если движок стоит, но вышла
|
|
19
|
+
свежая версия, она ставится тем же заходом. Раньше человек приносил новый файл
|
|
20
|
+
от бота, а ему отвечали, что всё на месте, — и он оставался на прежней сборке.
|
|
21
|
+
|
|
22
|
+
Файл для Codex называет версию, с которой агент обязан сверить установленное, и
|
|
23
|
+
велит обновлять пакет, даже когда он уже стоит.
|
|
24
|
+
|
|
3
25
|
## 0.10.9 — 2026-09-20. Движок доезжает до рабочего сам
|
|
4
26
|
|
|
5
27
|
Скачанная начинка доводится до рабочего состояния тем же путём, которым её
|
|
@@ -720,7 +720,7 @@ function parsePositiveInt(raw, fallback) {
|
|
|
720
720
|
}
|
|
721
721
|
|
|
722
722
|
// src/version.ts
|
|
723
|
-
var VERSION = "0.10.
|
|
723
|
+
var VERSION = "0.10.12";
|
|
724
724
|
var USER_AGENT = `naparnik-mcp/${VERSION}`;
|
|
725
725
|
var MIN_ENGINE = "2026.09.19-355";
|
|
726
726
|
var LAUNCHER_PROTOCOL = 1;
|
|
@@ -15588,6 +15588,11 @@ function runbarWidgetHtml() {
|
|
|
15588
15588
|
|
|
15589
15589
|
/* \u26A0 \u0421\u0412\u041E\u0418\u0425 \u0428\u0420\u0418\u0424\u0422\u041E\u0412 \u0417\u0414\u0415\u0421\u042C \u041D\u0415\u0422 \u0418 \u0411\u042B\u0422\u042C \u041D\u0415 \u0414\u041E\u041B\u0416\u041D\u041E: \u043F\u043E\u043A\u0443\u043F\u0430\u0442\u0435\u043B\u044E \u043E\u043D\u0438 \u043D\u0435 \u0443\u0435\u0437\u0436\u0430\u044E\u0442, \u0430
|
|
15590
15590
|
\u0432\u043D\u0435\u0448\u043D\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0440\u0435\u0436\u0435\u0442 CSP \u0445\u043E\u0441\u0442\u0430. \u0425\u0430\u0440\u0430\u043A\u0442\u0435\u0440 \u043D\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043A\u0435\u0433\u043B\u0435\u043C \u0438 \u0442\u0440\u0435\u043A\u0438\u043D\u0433\u043E\u043C. */
|
|
15591
|
+
/* \u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 \u043F\u043E\u043B\u043E\u0441\u0430 \u043D\u0435 \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 \u0432 \u043B\u0435\u043D\u0442\u0435 \u043D\u0438 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0441\u0442\u0430\u044F \u043F\u043B\u0430\u0448\u043A\u0430
|
|
15592
|
+
\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043F\u043E\u043B\u043E\u043C\u043A\u0430 \u0440\u043E\u0432\u043D\u043E \u0442\u0430\u043A \u0436\u0435, \u043A\u0430\u043A \u0437\u0430\u0441\u0442\u044B\u0432\u0448\u0435\u0435 \xAB\u041D\u0430\u0447\u0438\u043D\u0430\u044E\u2026\xBB. */
|
|
15593
|
+
body.gone { padding: 0; min-block-size: 0; }
|
|
15594
|
+
body.gone > * { display: none; }
|
|
15595
|
+
|
|
15591
15596
|
body {
|
|
15592
15597
|
margin: 0;
|
|
15593
15598
|
padding: 18px 16px 20px;
|
|
@@ -15979,6 +15984,8 @@ function runbarWidgetHtml() {
|
|
|
15979
15984
|
function render(data) {
|
|
15980
15985
|
if (closed) return;
|
|
15981
15986
|
job = data;
|
|
15987
|
+
// \u0414\u0430\u043D\u043D\u044B\u0435 \u043F\u0440\u0438\u0448\u043B\u0438 \u043F\u043E\u0441\u043B\u0435 \u0441\u0432\u0451\u0440\u0442\u043A\u0438 \u2014 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043C\u0441\u044F \u0432 \u043B\u0435\u043D\u0442\u0443.
|
|
15988
|
+
document.body.classList.remove('gone');
|
|
15982
15989
|
var ended = !working(data.status);
|
|
15983
15990
|
|
|
15984
15991
|
show('what', data.what || '\u0420\u0430\u0431\u043E\u0442\u0430\u044E');
|
|
@@ -16074,6 +16081,25 @@ function runbarWidgetHtml() {
|
|
|
16074
16081
|
reportSize();
|
|
16075
16082
|
}
|
|
16076
16083
|
|
|
16084
|
+
/**
|
|
16085
|
+
* \u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E: \u0443\u0431\u0440\u0430\u0442\u044C \u043F\u043E\u043B\u043E\u0441\u0443 \u0441\u043E\u0432\u0441\u0435\u043C \u0438 \u043E\u0442\u0434\u0430\u0442\u044C \u043B\u0435\u043D\u0442\u0435 \u0435\u0451 \u043C\u0435\u0441\u0442\u043E.
|
|
16086
|
+
*
|
|
16087
|
+
* \u26A0 \u041D\u0415 \xAB\u0421\u041A\u0420\u042B\u0422\u042C \u0421\u041E\u0414\u0415\u0420\u0416\u0418\u041C\u041E\u0415\xBB, \u0410 \u0421\u0412\u0415\u0420\u041D\u0423\u0422\u042C \u041E\u041A\u041D\u041E. \u0421\u043F\u0440\u044F\u0442\u0430\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u0440\u0430\u043C\u043A\u0438
|
|
16088
|
+
* \u043E\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0432 \u043B\u0435\u043D\u0442\u0435 \u043F\u0443\u0441\u0442\u0443\u044E \u043F\u043B\u0430\u0448\u043A\u0443 \u2014 \u043E\u043D\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043F\u043E\u043B\u043E\u043C\u043A\u0430 \u043D\u0438\u0447\u0443\u0442\u044C \u043D\u0435
|
|
16089
|
+
* \u043C\u0435\u043D\u044C\u0448\u0435, \u0447\u0435\u043C \u0437\u0430\u0441\u0442\u044B\u0432\u0448\u0435\u0435 \xAB\u041D\u0430\u0447\u0438\u043D\u0430\u044E\u2026\xBB.
|
|
16090
|
+
*/
|
|
16091
|
+
function collapse() {
|
|
16092
|
+
job = null;
|
|
16093
|
+
// \u26A0 \u041D\u0415 \u0425\u041E\u0420\u041E\u041D\u0418\u041C \u0412\u0418\u0414\u0416\u0415\u0422, \u0410 \u0422\u041E\u041B\u042C\u041A\u041E \u0423\u0411\u0418\u0420\u0410\u0415\u041C \u0415\u0413\u041E \u0421 \u0413\u041B\u0410\u0417. \u0421\u0442\u0430\u0432\u044C \u043C\u044B \u0437\u0434\u0435\u0441\u044C
|
|
16094
|
+
// \xAB\u0437\u0430\u043A\u0440\u044B\u0442\u043E\xBB, \u043F\u0440\u0438\u0448\u0435\u0434\u0448\u0430\u044F \u0441\u043B\u0435\u0434\u043E\u043C \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 (\u0445\u043E\u0441\u0442 \u0432\u043F\u0440\u0430\u0432\u0435 \u043F\u0440\u0438\u0441\u043B\u0430\u0442\u044C \u0434\u0432\u0430
|
|
16095
|
+
// \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0440\u044F\u0434) \u043E\u0441\u0442\u0430\u043B\u0430\u0441\u044C \u0431\u044B \u0431\u0435\u0437 \u043E\u043F\u0440\u043E\u0441\u0430 \u2014 \u043F\u043E\u043B\u043E\u0441\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u043B\u0430 \u0431\u044B \u043F\u0435\u0440\u0432\u044B\u0439
|
|
16096
|
+
// \u043A\u0430\u0434\u0440 \u0438 \u0437\u0430\u043C\u0435\u0440\u043B\u0430.
|
|
16097
|
+
var all = ['now', 'rail', 'msg', 'behind', 'ahead', 'clock', 'end', 'note', 'what'];
|
|
16098
|
+
for (var i = 0; i < all.length; i++) { var el = byId(all[i]); if (el) el.hidden = true; }
|
|
16099
|
+
document.body.classList.add('gone');
|
|
16100
|
+
reportSize();
|
|
16101
|
+
}
|
|
16102
|
+
|
|
16077
16103
|
// \u2500\u2500\u2500 \u043C\u0438\u0440 \u0445\u043E\u0441\u0442\u0430 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
16078
16104
|
|
|
16079
16105
|
function applyContext(ctx) {
|
|
@@ -16110,7 +16136,15 @@ function runbarWidgetHtml() {
|
|
|
16110
16136
|
if (m.method === 'ui/notifications/tool-result') {
|
|
16111
16137
|
if (m.params && m.params.isError) { finishWithWords(words(m.params)); return; }
|
|
16112
16138
|
var data = parse(m.params);
|
|
16113
|
-
|
|
16139
|
+
// \u26A0 \u041E\u0422\u0412\u0415\u0422 \u0411\u0415\u0417 \u0417\u0410\u0414\u0410\u0427\u0418 \u2014 \u0421\u0412\u041E\u0420\u0410\u0427\u0418\u0412\u0410\u0415\u041C\u0421\u042F, \u0410 \u041D\u0415 \u0412\u0418\u0421\u0418\u041C \u041D\u0410 \u0417\u0410\u0413\u041B\u0423\u0428\u041A\u0415. \u041F\u043E\u043B\u043E\u0441\u0430
|
|
16140
|
+
// \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0430 \u0443 \u0412\u0421\u0415\u0413\u041E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430, \u0430 \u043D\u0435 \u0443 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u0442\u0432\u0435\u0442\u0430, \u0438 \u0445\u043E\u0441\u0442 \u0440\u0438\u0441\u0443\u0435\u0442
|
|
16141
|
+
// \u0435\u0451 \u043D\u0430 \u043A\u0430\u0436\u0434\u043E\u043C \u0432\u044B\u0437\u043E\u0432\u0435 \u2014 \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0435 setup \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432,
|
|
16142
|
+
// \u0433\u0434\u0435 \u043D\u0438\u043A\u0430\u043A\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0435\u0442 \u0438 \u043D\u043E\u043C\u0435\u0440\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0442\u043E\u0436\u0435. \u0420\u0430\u043D\u044C\u0448\u0435 \u0437\u0434\u0435\u0441\u044C
|
|
16143
|
+
// \u0441\u0442\u043E\u044F\u043B \u043F\u0443\u0441\u0442\u043E\u0439 \u0432\u044B\u0445\u043E\u0434, \u0438
|
|
16144
|
+
// \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043F\u043E\u043B\u0443\u0447\u0430\u043B \u0432\u0435\u0447\u043D\u043E\u0435 \xAB\u0420\u0430\u0431\u043E\u0442\u0430\u044E \u2014 \u041D\u0430\u0447\u0438\u043D\u0430\u044E\u2026\xBB \u043F\u043E\u0434 \u043E\u0442\u0432\u0435\u0442\u043E\u043C \xAB\u0432\u0441\u0451 \u043D\u0430 \u043C\u0435\u0441\u0442\u0435\xBB.
|
|
16145
|
+
// \u0412\u043B\u0430\u0434\u0435\u043B\u0435\u0446 2026-09-20: \xAB\u043F\u043E\u0447\u0435\u043C\u0443 \u0442\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u044E \u2014 \u043D\u0430\u0447\u0438\u043D\u0430\u044E?\xBB \u0421\u043B\u043E\u0432\u0430
|
|
16146
|
+
// \u043E\u0442\u0432\u0435\u0442\u0430 \u0445\u043E\u0441\u0442 \u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0440\u044F\u0434\u043E\u043C \u0441\u0430\u043C, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043D\u0430\u043C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 \u0443\u0445\u043E\u0434\u0438\u043C \u0441 \u0433\u043B\u0430\u0437.
|
|
16147
|
+
if (!data) { collapse(); return; }
|
|
16114
16148
|
render(data);
|
|
16115
16149
|
later();
|
|
16116
16150
|
return;
|
|
@@ -21447,4 +21481,4 @@ ${inTable}`, file2);
|
|
|
21447
21481
|
};
|
|
21448
21482
|
}
|
|
21449
21483
|
|
|
21450
|
-
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSIDE_PYTHON, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, McpServer, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, SOURCES_FILE, START_SEC, StdioServerTransport, TOOL_SEC, USER_AGENT, VERSION, WHERE_TO_GET_KEY, buildAll, buildBlock, buildResources, bundleUrlFor, chooseBody, compare, configPath, currentMachineFingerprint, decide, decideShell, defineTool, deploy, downloadFile, fetchManifest, fetchShellManifest, fileOrRefusal, findBlock, fromHost, fromNpxCache, handOverToBody, inside, install, installPayload, installPython, installStep, installedShell, jsonSchemaOf, keyFromBlock, keyInTable, lastLine, loadConfig, manifestUrlFor, markChecked, markChecked2, markCurrent2 as markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion2 as previousVersion, probe, pythonSource, readConfig, refusalFor, remove, rollback, rollbackShell, shellDir, tarEntries, tidyOld2 as tidyOld, timeToCheck, timeToCheck2, unpackArchive, withArgs };
|
|
21484
|
+
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSIDE_PYTHON, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, McpServer, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, SOURCES_FILE, START_SEC, StdioServerTransport, TOOL_SEC, USER_AGENT, VERSION, WHERE_TO_GET_KEY, buildAll, buildBlock, buildResources, bundleUrlFor, chooseBody, compare, configPath, currentMachineFingerprint, decide, decideShell, defineTool, deploy, downloadFile, fetchManifest, fetchShellManifest, fileOrRefusal, findBlock, fromHost, fromNpxCache, handOverToBody, inside, install, installPayload, installPython, installStep, installedShell, jsonSchemaOf, keyFromBlock, keyInTable, lastLine, loadConfig, manifestUrlFor, markChecked, markChecked2, markCurrent2 as markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion2 as previousVersion, probe, pythonSource, readConfig, refusalFor, remove, rollback, rollbackShell, shellDir, tarEntries, tidyOld2 as tidyOld, timeToCheck, timeToCheck2, unpackArchive, updateEngine, withArgs };
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Engine, chooseBody, handOverToBody, VERSION, rollback, rollbackShell, remove, fromNpxCache, install, keyFromBlock, readConfig, ForeignBlockError, currentMachineFingerprint, McpServer, buildAll, buildResources, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, installStep, NaparnikApiClient, timeToCheck2, manifestUrlFor, fetchManifest, markChecked2, decide, shellDir, timeToCheck, bundleUrlFor, fetchShellManifest, markChecked, decideShell, installedShell, NaparnikConfigError } from './chunk-
|
|
2
|
+
import { Engine, chooseBody, handOverToBody, VERSION, rollback, rollbackShell, remove, fromNpxCache, install, keyFromBlock, readConfig, ForeignBlockError, currentMachineFingerprint, McpServer, buildAll, buildResources, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, updateEngine, installStep, NaparnikApiClient, timeToCheck2, manifestUrlFor, fetchManifest, markChecked2, decide, shellDir, timeToCheck, bundleUrlFor, fetchShellManifest, markChecked, decideShell, installedShell, NaparnikConfigError } from './chunk-7OXIVC4A.js';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { realpathSync, readFileSync } from 'fs';
|
|
5
5
|
|
|
@@ -128,14 +128,27 @@ what=shell \u0438 consent=true. \u041D\u0435 \u043E\u0431\u043D\u043E\u0432\u043
|
|
|
128
128
|
|
|
129
129
|
// src/auto-install.ts
|
|
130
130
|
var NO_AUTO = "NAPARNIK_NO_AUTOINSTALL";
|
|
131
|
+
function decideAuto(state) {
|
|
132
|
+
if (state.off || !state.hasKey || state.byHand) return "nothing";
|
|
133
|
+
if (!state.ready) return "install";
|
|
134
|
+
return state.refresh ? "refresh" : "nothing";
|
|
135
|
+
}
|
|
131
136
|
async function prepareEngine(engine, opts) {
|
|
132
137
|
const say = opts.tell ?? (() => {
|
|
133
138
|
});
|
|
134
139
|
const quiet = { worked: false, ok: true, lines: [] };
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
140
|
+
const off = engine.variable(NO_AUTO) !== void 0;
|
|
141
|
+
const hasKey = opts.key !== void 0 && opts.key !== "";
|
|
142
|
+
const byHand = engine.pathSetByHand();
|
|
143
|
+
const ready = off || !hasKey || byHand ? false : engine.place() !== null && await engine.pythonTrouble() === null;
|
|
144
|
+
const plan = decideAuto({ off, hasKey, byHand, ready, refresh: opts.refresh === true });
|
|
145
|
+
if (plan === "nothing") return quiet;
|
|
146
|
+
if (plan === "refresh") {
|
|
147
|
+
const fresh = await updateEngine(engine, true, opts.key, opts.baseUrl);
|
|
148
|
+
const news = "error" in fresh ? fresh.error : typeof fresh.content === "string" ? fresh.content : "";
|
|
149
|
+
if (news !== "") say(news);
|
|
150
|
+
return { worked: true, ok: !("error" in fresh), lines: news === "" ? [] : [news] };
|
|
151
|
+
}
|
|
139
152
|
say("\u041A\u0430\u0447\u0430\u044E \u0434\u0432\u0438\u0436\u043E\u043A \u043C\u043E\u043D\u0442\u0430\u0436\u0430 \u2014 \u044D\u0442\u043E \u0440\u0430\u0437\u043E\u0432\u0430\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430, \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043D \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u043C\u0430\u0448\u0438\u043D\u0435.");
|
|
140
153
|
const done = await installStep(engine, { step: "all", consent: true }, opts.key, opts.baseUrl, say);
|
|
141
154
|
const text = typeof done === "object" && "error" in done ? done.error : typeof done.content === "string" ? done.content : "";
|
|
@@ -321,7 +334,11 @@ Claude Desktop \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u04
|
|
|
321
334
|
key: forEngine,
|
|
322
335
|
baseUrl: serverAddress(readConfig()),
|
|
323
336
|
tell: (line) => process.stdout.write(`${line}
|
|
324
|
-
`)
|
|
337
|
+
`),
|
|
338
|
+
// Установка руками — значит человек пришёл за новым: если движок стоит,
|
|
339
|
+
// но вышла свежая начинка, тянем и её. Молчаливое «у тебя всё есть» —
|
|
340
|
+
// это то, из-за чего покупатель остаётся на прошлой версии.
|
|
341
|
+
refresh: true
|
|
325
342
|
});
|
|
326
343
|
if (outcome.worked && !outcome.ok) {
|
|
327
344
|
process.stdout.write(
|
package/dist/index.d.ts
CHANGED
|
@@ -1307,9 +1307,9 @@ declare class NaparnikConfigError extends NaparnikError {
|
|
|
1307
1307
|
* годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
|
|
1308
1308
|
* стоять чужое число, а обновление начнёт считать оболочку не той.
|
|
1309
1309
|
*/
|
|
1310
|
-
declare const VERSION = "0.10.
|
|
1310
|
+
declare const VERSION = "0.10.12";
|
|
1311
1311
|
/** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
|
|
1312
|
-
declare const USER_AGENT = "naparnik-mcp/0.10.
|
|
1312
|
+
declare const USER_AGENT = "naparnik-mcp/0.10.12";
|
|
1313
1313
|
/**
|
|
1314
1314
|
* Самая старая начинка (движок монтажа), с которой эта оболочка работает.
|
|
1315
1315
|
* Обновление начинки ниже этой версии не ставится, а выше — требует оболочки
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSIDE_PYTHON, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, SOURCES_FILE, START_SEC, TOOL_SEC, USER_AGENT, VERSION, buildAll, buildBlock, buildResources, compare, configPath, decide, defineTool, deploy, downloadFile, fetchManifest, fileOrRefusal, findBlock, fromNpxCache, inside, install, installPayload, installPython, jsonSchemaOf, keyInTable, lastLine, loadConfig, markChecked2 as markChecked, markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion, probe, pythonSource, refusalFor, remove, rollback, tarEntries, tidyOld, timeToCheck2 as timeToCheck, unpackArchive, withArgs } from './chunk-
|
|
1
|
+
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSIDE_PYTHON, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, SOURCES_FILE, START_SEC, TOOL_SEC, USER_AGENT, VERSION, buildAll, buildBlock, buildResources, compare, configPath, decide, defineTool, deploy, downloadFile, fetchManifest, fileOrRefusal, findBlock, fromNpxCache, inside, install, installPayload, installPython, jsonSchemaOf, keyInTable, lastLine, loadConfig, markChecked2 as markChecked, markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion, probe, pythonSource, refusalFor, remove, rollback, tarEntries, tidyOld, timeToCheck2 as timeToCheck, unpackArchive, withArgs } from './chunk-7OXIVC4A.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naparnik/mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.12",
|
|
4
4
|
"description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|