@naparnik/mcp 0.10.18 → 0.10.19
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 +7 -0
- package/dist/{chunk-O7XB7YJ5.js → chunk-4WX5APDI.js} +32 -3
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Изменения @naparnik/mcp
|
|
2
2
|
|
|
3
|
+
## 0.10.19 — 2026-09-23. Шумодав голоса ставится сам
|
|
4
|
+
|
|
5
|
+
Вместе с движком расширение теперь ставит шумодав голоса — одну программу
|
|
6
|
+
на 27–39 МБ. Отдельно соглашаться не нужно: хватает «да» на сам движок. Если
|
|
7
|
+
шумодав не скачался, движок всё равно включится, а вы увидите одну строку,
|
|
8
|
+
как поставить его отдельно.
|
|
9
|
+
|
|
3
10
|
## 0.10.18 — 2026-09-23. Для вас ничего не поменялось
|
|
4
11
|
|
|
5
12
|
В пояснениях расширения поправлено, откуда оно берёт шаги установки и место
|
|
@@ -720,9 +720,9 @@ function parsePositiveInt(raw, fallback) {
|
|
|
720
720
|
}
|
|
721
721
|
|
|
722
722
|
// src/version.ts
|
|
723
|
-
var VERSION = "0.10.
|
|
723
|
+
var VERSION = "0.10.19";
|
|
724
724
|
var USER_AGENT = `naparnik-mcp/${VERSION}`;
|
|
725
|
-
var MIN_ENGINE = "2026.09.
|
|
725
|
+
var MIN_ENGINE = "2026.09.23-406";
|
|
726
726
|
var LAUNCHER_PROTOCOL = 1;
|
|
727
727
|
|
|
728
728
|
// src/contracts/sdk-headers.ts
|
|
@@ -14253,12 +14253,39 @@ ${describeFailure(trouble)}`
|
|
|
14253
14253
|
"current \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F \u043D\u0435\u043F\u043E\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u043F\u0435\u0440\u0435\u0434 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u0442\u0438\u0440\u0430\u043B. \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0442\u044C: \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 setup."
|
|
14254
14254
|
);
|
|
14255
14255
|
}
|
|
14256
|
+
const cleaner = await installVoiceCleaner(engine, dir, checked.version, python, finalPlace);
|
|
14256
14257
|
return {
|
|
14257
14258
|
ok: true,
|
|
14258
14259
|
text: `\u041A\u0430\u043D\u0434\u0438\u0434\u0430\u0442 ${manifest.version}: prepared \u2192 ready \u2192 current.
|
|
14259
|
-
\u041F\u0440\u0435\u0436\u043D\u044F\u044F \u0432\u0435\u0440\u0441\u0438\u044F: ${checked.baseCurrent ?? "\u043D\u0435\u0442"}; \u0435\u0451 \u0444\u0430\u0439\u043B\u044B \u0438 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B.`
|
|
14260
|
+
\u041F\u0440\u0435\u0436\u043D\u044F\u044F \u0432\u0435\u0440\u0441\u0438\u044F: ${checked.baseCurrent ?? "\u043D\u0435\u0442"}; \u0435\u0451 \u0444\u0430\u0439\u043B\u044B \u0438 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B.` + (cleaner === "" ? "" : `
|
|
14261
|
+
${cleaner}`)
|
|
14260
14262
|
};
|
|
14261
14263
|
}
|
|
14264
|
+
var VOICE_CLEANER_SINCE = "2026.09.23-406";
|
|
14265
|
+
var VOICE_CLEANER_NOTE = "\u0412\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0432\u0438\u0436\u043A\u043E\u043C \u0432\u0441\u0442\u0430\u043D\u0435\u0442 \u0448\u0443\u043C\u043E\u0434\u0430\u0432 \u0433\u043E\u043B\u043E\u0441\u0430 \u2014 \u0435\u0449\u0451 \u043E\u043A\u043E\u043B\u043E 30 \u041C\u0411 \u0441 GitHub.";
|
|
14266
|
+
async function installVoiceCleaner(engine, dir, version2, python, place) {
|
|
14267
|
+
if (compare(version2, VOICE_CLEANER_SINCE) < 0) return "";
|
|
14268
|
+
try {
|
|
14269
|
+
await runCandidateWith(
|
|
14270
|
+
engine,
|
|
14271
|
+
dir,
|
|
14272
|
+
version2,
|
|
14273
|
+
python,
|
|
14274
|
+
place,
|
|
14275
|
+
["env-install", "--pack", place.pack, "--step", "voice", "--consent"],
|
|
14276
|
+
{ timeout: 30 * 6e4 }
|
|
14277
|
+
);
|
|
14278
|
+
return "";
|
|
14279
|
+
} catch (trouble) {
|
|
14280
|
+
return `\u0428\u0443\u043C\u043E\u0434\u0430\u0432 \u0433\u043E\u043B\u043E\u0441\u0430 \u043D\u0435 \u0432\u0441\u0442\u0430\u043B: ${voiceTrouble(trouble)}. \u0414\u0432\u0438\u0436\u043E\u043A \u0432\u043A\u043B\u044E\u0447\u0451\u043D \u0438 \u043C\u043E\u043D\u0442\u0438\u0440\u0443\u0435\u0442; \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0448\u0443\u043C\u043E\u0434\u0430\u0432 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u2014 setup \u0441 what=voice.`;
|
|
14281
|
+
}
|
|
14282
|
+
}
|
|
14283
|
+
function voiceTrouble(trouble) {
|
|
14284
|
+
const said = trouble?.stdout;
|
|
14285
|
+
const line = typeof said === "string" ? said.split("\n").map((one) => one.trim()).find((one) => one.startsWith("\u0428\u0430\u0433 \xABvoice\xBB:")) : void 0;
|
|
14286
|
+
const why = (line ?? describeFailure(trouble)).replace(/^Шаг «voice»:\s*/, "");
|
|
14287
|
+
return why.split("\n")[0].slice(0, 300);
|
|
14288
|
+
}
|
|
14262
14289
|
async function dryRun(engine, build, expected, trial) {
|
|
14263
14290
|
const consolePy = join(build, "engine", "console.py");
|
|
14264
14291
|
if (!existsSync(consolePy)) return `\u0432 \u0440\u0430\u0441\u043F\u0430\u043A\u043E\u0432\u0430\u043D\u043D\u043E\u043C \u0430\u0440\u0445\u0438\u0432\u0435 \u043D\u0435\u0442 ${consolePy}`;
|
|
@@ -15133,6 +15160,7 @@ async function installPayload(engine, opts, hooks = {}) {
|
|
|
15133
15160
|
ok: false,
|
|
15134
15161
|
text: `\u0414\u0432\u0438\u0436\u043A\u0430 \u043C\u043E\u043D\u0442\u0430\u0436\u0430 \u043D\u0430 \u044D\u0442\u043E\u0439 \u043C\u0430\u0448\u0438\u043D\u0435 \u043D\u0435\u0442 \u2014 \u043D\u0430\u0447\u0438\u043D\u043A\u0443 \u043D\u0430\u0434\u043E \u0441\u043A\u0430\u0447\u0430\u0442\u044C (${mb} \u041C\u0411, \u0432\u0435\u0440\u0441\u0438\u044F ${manifest.version}).
|
|
15135
15162
|
\u041B\u044F\u0436\u0435\u0442 \u043E\u0434\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u043E\u0439 \u0432 ${engine.versionsDir()}; \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F.
|
|
15163
|
+
${VOICE_CLEANER_NOTE}
|
|
15136
15164
|
\u0421\u043F\u0440\u043E\u0441\u0438 \u0443 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0438 \u043F\u043E\u0437\u043E\u0432\u0438 setup \u0435\u0449\u0451 \u0440\u0430\u0437 \u0441 consent=true.`
|
|
15137
15165
|
};
|
|
15138
15166
|
}
|
|
@@ -16679,6 +16707,7 @@ async function updateEngine(engine, consent, key, baseUrl, timeoutMs = ASKED_POI
|
|
|
16679
16707
|
const mb = (decision.manifest.bytes / 1024 / 1024).toFixed(1);
|
|
16680
16708
|
return toolSuccess(
|
|
16681
16709
|
`\u0415\u0441\u0442\u044C \u043D\u043E\u0432\u0430\u044F \u043D\u0430\u0447\u0438\u043D\u043A\u0430: ${engine.freshVersion() ?? "\u043D\u0435\u0442"} \u2192 ${decision.manifest.version}, ${mb} \u041C\u0411.
|
|
16710
|
+
${VOICE_CLEANER_NOTE}
|
|
16682
16711
|
\u0421\u043F\u0440\u043E\u0441\u0438 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430, \u043A\u0430\u0447\u0430\u0442\u044C \u043B\u0438 \u2014 \u044D\u0442\u043E \u0435\u0433\u043E \u0442\u0440\u0430\u0444\u0438\u043A \u0438 \u0435\u0433\u043E \u0434\u0438\u0441\u043A. \u0421\u043E\u0433\u043B\u0430\u0441\u0438\u043B\u0441\u044F \u2014 \u0437\u043E\u0432\u0438 setup \u0441 what=engine \u0438 consent=true.`
|
|
16683
16712
|
);
|
|
16684
16713
|
}
|
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, updateEngine, 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-4WX5APDI.js';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { realpathSync, readFileSync } from 'fs';
|
|
5
5
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1309,9 +1309,9 @@ declare class NaparnikConfigError extends NaparnikError {
|
|
|
1309
1309
|
* годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
|
|
1310
1310
|
* стоять чужое число, а обновление начнёт считать оболочку не той.
|
|
1311
1311
|
*/
|
|
1312
|
-
declare const VERSION = "0.10.
|
|
1312
|
+
declare const VERSION = "0.10.19";
|
|
1313
1313
|
/** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
|
|
1314
|
-
declare const USER_AGENT = "naparnik-mcp/0.10.
|
|
1314
|
+
declare const USER_AGENT = "naparnik-mcp/0.10.19";
|
|
1315
1315
|
/**
|
|
1316
1316
|
* Самая старая начинка (движок монтажа), с которой эта оболочка работает.
|
|
1317
1317
|
* Обновление начинки ниже этой версии не ставится, а выше — требует оболочки
|
|
@@ -1348,7 +1348,7 @@ declare const USER_AGENT = "naparnik-mcp/0.10.18";
|
|
|
1348
1348
|
* словами «раздача ещё не обновилась». Номер берётся из УЖЕ СОБРАННОГО
|
|
1349
1349
|
* артефакта этой волны, а не сочиняется по календарю.
|
|
1350
1350
|
*/
|
|
1351
|
-
declare const MIN_ENGINE = "2026.09.
|
|
1351
|
+
declare const MIN_ENGINE = "2026.09.23-406";
|
|
1352
1352
|
|
|
1353
1353
|
/**
|
|
1354
1354
|
* Что вышло из установки или отката — одними словами у начинки и у тела.
|
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-4WX5APDI.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naparnik/mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.19",
|
|
4
4
|
"description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|