@naparnik/mcp 0.10.58 → 0.10.59
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-GYEZTFBJ.js → chunk-34J22CC4.js} +27 -8
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +17 -5
- 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.59 — 2026-09-25. Один ролик — одна сборка
|
|
4
|
+
|
|
5
|
+
Попросили собрать ролик ещё раз, пока он собирается, — Напарник не
|
|
6
|
+
начинает заново, а показывает ту же сборку. Поправили ролик и сказали
|
|
7
|
+
«да» — прежняя сборка останавливается, и начинается новая, уже с
|
|
8
|
+
правками. Пять версий для пробного режима — тоже одна сборка.
|
|
9
|
+
|
|
3
10
|
## 0.10.58 — 2026-09-25. Ролик — в вашей папке
|
|
4
11
|
|
|
5
12
|
Видео лежит в «Загрузках», а подключена другая папка — ролик всё равно
|
|
@@ -754,7 +754,7 @@ function parsePositiveInt(raw, fallback) {
|
|
|
754
754
|
}
|
|
755
755
|
|
|
756
756
|
// src/version.ts
|
|
757
|
-
var VERSION = "0.10.
|
|
757
|
+
var VERSION = "0.10.59";
|
|
758
758
|
var USER_AGENT = `naparnik-mcp/${VERSION}`;
|
|
759
759
|
var MIN_ENGINE = "2026.09.24-478";
|
|
760
760
|
var LAUNCHER_PROTOCOL = 1;
|
|
@@ -2074,12 +2074,14 @@ var Engine = class {
|
|
|
2074
2074
|
* по своему, и вместе они давали вдвое больше тяжёлой работы, чем разрешено.
|
|
2075
2075
|
*/
|
|
2076
2076
|
async background(opts) {
|
|
2077
|
-
let
|
|
2077
|
+
let started;
|
|
2078
2078
|
try {
|
|
2079
|
-
|
|
2079
|
+
started = readStarted(await this.asString(opts.place, opts.startJob, opts.key));
|
|
2080
2080
|
} catch (err) {
|
|
2081
2081
|
return { refusal: `\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443: ${details(err)}` };
|
|
2082
2082
|
}
|
|
2083
|
+
if (started.verdict === "same") return started;
|
|
2084
|
+
const id = started.id;
|
|
2083
2085
|
const log = this.openLog(id);
|
|
2084
2086
|
const child = spawn(opts.executable, opts.args(id), {
|
|
2085
2087
|
// Та же развилка, что и в `run`: несуществующая папка пака роняет
|
|
@@ -2110,7 +2112,7 @@ var Engine = class {
|
|
|
2110
2112
|
child.once("error", done);
|
|
2111
2113
|
}
|
|
2112
2114
|
this.watch(child, opts.place, id, opts.advice, log.file);
|
|
2113
|
-
return
|
|
2115
|
+
return started;
|
|
2114
2116
|
}
|
|
2115
2117
|
/**
|
|
2116
2118
|
* Файл, куда фоновая работа пишет свой stderr.
|
|
@@ -2224,6 +2226,14 @@ function parseFailure(err, fallback) {
|
|
|
2224
2226
|
function details(err) {
|
|
2225
2227
|
return parseFailure(err, "").text.trim();
|
|
2226
2228
|
}
|
|
2229
|
+
function readStarted(line) {
|
|
2230
|
+
if (!line.startsWith("{")) return { id: line, verdict: "new", replaced: [] };
|
|
2231
|
+
const said = JSON.parse(line);
|
|
2232
|
+
if (typeof said.id !== "string" || said.id === "") throw new Error(`\u0434\u0432\u0438\u0436\u043E\u043A \u043D\u0435 \u043D\u0430\u0437\u0432\u0430\u043B \u043D\u043E\u043C\u0435\u0440: ${line}`);
|
|
2233
|
+
const verdict = said.verdict === "same" || said.verdict === "replaced" ? said.verdict : "new";
|
|
2234
|
+
const replaced = Array.isArray(said.replaced) ? said.replaced.filter((i) => typeof i === "string") : [];
|
|
2235
|
+
return { id: said.id, verdict, replaced };
|
|
2236
|
+
}
|
|
2227
2237
|
function lastLine(output) {
|
|
2228
2238
|
const lines = output.trim().split("\n");
|
|
2229
2239
|
return (lines[lines.length - 1] ?? "").trim();
|
|
@@ -18604,8 +18614,11 @@ async function startDocumentRender(engine, reel, key, tell, trials = {}) {
|
|
|
18604
18614
|
reel,
|
|
18605
18615
|
"--what",
|
|
18606
18616
|
what,
|
|
18617
|
+
// `reuse` — просьба к движку решить «та же / заменить / новая» по
|
|
18618
|
+
// заданиям на диске (решение владельца 2026-09-25): решает он, потому что
|
|
18619
|
+
// видит и задания соседнего процесса оболочки.
|
|
18607
18620
|
"--command",
|
|
18608
|
-
JSON.stringify({ tool: "render", args: trials })
|
|
18621
|
+
JSON.stringify({ tool: "render", args: trials, reuse: true })
|
|
18609
18622
|
],
|
|
18610
18623
|
args: (id) => [
|
|
18611
18624
|
place.consolePy,
|
|
@@ -18622,8 +18635,8 @@ async function startDocumentRender(engine, reel, key, tell, trials = {}) {
|
|
|
18622
18635
|
});
|
|
18623
18636
|
if ("refusal" in launch) return toolError(launch.refusal);
|
|
18624
18637
|
return toolSuccess(
|
|
18625
|
-
|
|
18626
|
-
\u0414\u0430\u043B\u044C\u0448\u0435 \u043F\u043E\u0437\u043E\u0432\u0438 wait \u0441 \u044D\u0442\u0438\u043C \u043D\u043E\u043C\u0435\u0440\u043E\u043C. ${AWAY_NOTE}
|
|
18638
|
+
`${turnWords(launch)}\u0417\u0430\u0434\u0430\u0447\u0430 ${launch.id}: ${what}
|
|
18639
|
+
` + (launch.verdict === "same" ? "\u0423\u0436\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u044E \u044D\u0442\u043E\u0442 \u0440\u043E\u043B\u0438\u043A \u2014 \u0436\u0434\u0438 wait \u0441 \u044D\u0442\u0438\u043C \u043D\u043E\u043C\u0435\u0440\u043E\u043C, render \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043D\u0435 \u0437\u043E\u0432\u0438." : `\u0414\u0430\u043B\u044C\u0448\u0435 \u043F\u043E\u0437\u043E\u0432\u0438 wait \u0441 \u044D\u0442\u0438\u043C \u043D\u043E\u043C\u0435\u0440\u043E\u043C. ${AWAY_NOTE}`),
|
|
18627
18640
|
startedJob({
|
|
18628
18641
|
id: launch.id,
|
|
18629
18642
|
// Лестница и заголовок — слова человеку: полоса показывает их как есть.
|
|
@@ -18633,6 +18646,12 @@ async function startDocumentRender(engine, reel, key, tell, trials = {}) {
|
|
|
18633
18646
|
})
|
|
18634
18647
|
);
|
|
18635
18648
|
}
|
|
18649
|
+
function turnWords(launch) {
|
|
18650
|
+
const replaced = launch.replaced ?? [];
|
|
18651
|
+
if (launch.verdict !== "replaced" || replaced.length === 0) return "";
|
|
18652
|
+
return `\u041F\u0440\u0435\u0436\u043D\u044E\u044E \u0441\u0431\u043E\u0440\u043A\u0443 (${replaced.join(", ")}) \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B, \u0441\u043E\u0431\u0438\u0440\u0430\u044E \u043F\u043E \u043D\u043E\u0432\u044B\u043C \u043F\u0440\u0430\u0432\u043A\u0430\u043C.
|
|
18653
|
+
`;
|
|
18654
|
+
}
|
|
18636
18655
|
var RENDER_LADDER = [
|
|
18637
18656
|
"\u041F\u0440\u043E\u0432\u0435\u0440\u044E, \u0447\u0442\u043E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D \u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043C\u0438\u043C\u043E plan_edit.",
|
|
18638
18657
|
"\u041F\u043E\u0441\u0447\u0438\u0442\u0430\u044E \u044D\u0444\u0444\u0435\u043A\u0442\u044B \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430 (\u0432\u044B\u0440\u0435\u0437 \u0433\u0435\u0440\u043E\u044F, \u0448\u0443\u043C\u043E\u0434\u0430\u0432) \u0442\u0430\u043C, \u0433\u0434\u0435 \u0438\u0445 \u0432\u0438\u0434\u043D\u043E, \u2014 \u043F\u043E\u0442\u043E\u043C \u0441\u043E\u0431\u0435\u0440\u0443 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0443 \u0438 \u0437\u0432\u0443\u043A."
|
|
@@ -18685,7 +18704,7 @@ function renderTool(engine, _passport, key) {
|
|
|
18685
18704
|
return defineTool({
|
|
18686
18705
|
name: "render",
|
|
18687
18706
|
title: "\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0440\u043E\u043B\u0438\u043A",
|
|
18688
|
-
description: '\u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0440\u043E\u043B\u0438\u043A\u0430 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430: \u044D\u0444\u0444\u0435\u043A\u0442\u044B \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430 (\u0432\u044B\u0440\u0435\u0437 \u0433\u0435\u0440\u043E\u044F, \u0448\u0443\u043C\u043E\u0434\u0430\u0432), \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0443, \u0437\u0432\u0443\u043A, \u0433\u043E\u0442\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B. \u0417\u043E\u0432\u0438 \u041F\u041E\u0421\u041B\u0415 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0441\u043A\u0430\u0437\u0430\u043B \xAB\u0434\u0430\xBB \u043D\u0430 \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u0438\u0437 plan \u0438 \u0442\u044B \u0437\u0430\u043F\u0438\u0441\u0430\u043B \u044D\u0442\u043E plan_edit \u0441 {"op": "agree"}. \u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u0422\u041E\u041B\u042C\u041A\u041E \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442, \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043D\u044B\u0439 \u0447\u0435\u0440\u0435\u0437 plan_edit: \u0444\u0430\u0439\u043B, \u043F\u043E\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043C\u0438\u043C\u043E \u043D\u0435\u0433\u043E, \u0434\u0432\u0438\u0436\u043E\u043A \u043D\u0435 \u0441\u043E\u0431\u0435\u0440\u0451\u0442 \u2014 \xAB\u043F\u0440\u0438\u0448\u043B\u0438 \u043F\u0440\u0430\u0432\u043A\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438\xBB.\n\u041E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043D\u043E\u043C\u0435\u0440\u043E\u043C \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 wait, \u043E\u043D \u043F\u043E\u0434\u043E\u0436\u0434\u0451\u0442 \u0438 \u0440\u0430\u0441\u0441\u043A\u0430\u0436\u0435\u0442 \u0445\u043E\u0434. \u041F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437 \u043F\u0440\u0430\u0432\u043E\u043A \u043E\u0442\u0434\u0430\u0451\u0442 \u0433\u043E\u0442\u043E\u0432\u043E\u0435 \u0441\u0440\u0430\u0437\u0443.\n\u041F\u0440\u043E\u0441\u044F\u0442 \xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u0435\u0449\u0451 5 \u0434\u043B\u044F \u043F\u0440\u043E\u0431\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430\xBB (Instagram) \u2014 variants=5: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0440\u043E\u043B\u0438\u043A (\u0433\u043E\u0442\u043E\u0432\u044B\u0439 \u0432\u043E\u0437\u044C\u043C\u0451\u0442\u0441\u044F \u0441\u0440\u0430\u0437\u0443), \u043F\u043E\u0442\u043E\u043C \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u044F\u0434\u043E\u043C \u0441 \u043D\u0438\u043C \u0444\u0430\u0439\u043B\u0430\u043C\u0438 -trial-1\u2026-trial-5. \u0420\u0435\u0447\u044C, \u0440\u0435\u0437\u044B \u0438 \u0437\u0432\u0443\u043A \u0442\u0435 \u0436\u0435, \u043E\u0442\u043B\u0438\u0447\u0430\u044E\u0442\u0441\u044F \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435, \u0432\u0440\u0435\u043C\u044F \u0432\u0441\u0442\u0430\u0432\u043E\u043A, \u043C\u0435\u0441\u0442\u0430 \u0438 \u043A\u0440\u0443\u043F\u043D\u043E\u0441\u0442\u044C; \u0446\u0432\u0435\u0442 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0441\u043A\u0430\u0437\u0430\u043B \xAB\u0438 \u0446\u0432\u0435\u0442 \u0440\u0430\u0437\u043D\u044B\u0439\xBB: vary \u0441 color. \u041E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xAB\u0434\u0430\xBB \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u043E. \u041C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u043D\u0435\u0447\u0435\u043C\u0443 \u2014 \u0434\u0432\u0438\u0436\u043E\u043A \u0441\u043A\u0430\u0436\u0435\u0442, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0448\u043B\u043E, \u0431\u043B\u0438\u0437\u043D\u0435\u0446\u043E\u0432 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442.\n\u041F\u0440\u043E\u0441\u044F\u0442 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0443\u0431\u0435\u0440\u0438 \u043F\u0430\u0443\u0437\u044B\xBB \u2014 only_pauses=true \u0441 video: \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u0441 \u043E\u0434\u043D\u0438\u043C\u0438 \u043F\u0430\u0443\u0437\u0430\u043C\u0438, \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0438 \u0441\u0431\u043E\u0440\u043A\u0430 \u043E\u0434\u043D\u0438\u043C \u0432\u044B\u0437\u043E\u0432\u043E\u043C; tempo \u0440\u044F\u0434\u043E\u043C \u2014 \xAB\u0438 \u0443\u0441\u043A\u043E\u0440\u044C\xBB. \u041F\u0430\u0443\u0437\u044B \u0443\u0431\u0438\u0440\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u0441\u043B\u043E\u0432\u0430\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043D\u0443\u0436\u043D\u0430 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D\u0430\u044F \u0440\u0435\u0447\u044C.\n\u0420\u0430\u0431\u043E\u0442\u0430 \u0438\u0434\u0451\u0442 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430, \u043A \u043D\u0430\u043C \u0432\u0438\u0434\u0435\u043E \u043D\u0435 \u0443\u0445\u043E\u0434\u0438\u0442 \u2014 \u043D\u0430\u0432\u0435\u0440\u0445 \u0438\u0434\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043F\u043E \u043A\u043B\u044E\u0447\u0443.',
|
|
18707
|
+
description: '\u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0440\u043E\u043B\u0438\u043A\u0430 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430: \u044D\u0444\u0444\u0435\u043A\u0442\u044B \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430 (\u0432\u044B\u0440\u0435\u0437 \u0433\u0435\u0440\u043E\u044F, \u0448\u0443\u043C\u043E\u0434\u0430\u0432), \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0443, \u0437\u0432\u0443\u043A, \u0433\u043E\u0442\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B. \u0417\u043E\u0432\u0438 \u041F\u041E\u0421\u041B\u0415 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0441\u043A\u0430\u0437\u0430\u043B \xAB\u0434\u0430\xBB \u043D\u0430 \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u0438\u0437 plan \u0438 \u0442\u044B \u0437\u0430\u043F\u0438\u0441\u0430\u043B \u044D\u0442\u043E plan_edit \u0441 {"op": "agree"}. \u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u0422\u041E\u041B\u042C\u041A\u041E \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442, \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043D\u044B\u0439 \u0447\u0435\u0440\u0435\u0437 plan_edit: \u0444\u0430\u0439\u043B, \u043F\u043E\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043C\u0438\u043C\u043E \u043D\u0435\u0433\u043E, \u0434\u0432\u0438\u0436\u043E\u043A \u043D\u0435 \u0441\u043E\u0431\u0435\u0440\u0451\u0442 \u2014 \xAB\u043F\u0440\u0438\u0448\u043B\u0438 \u043F\u0440\u0430\u0432\u043A\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438\xBB.\n\u041E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043D\u043E\u043C\u0435\u0440\u043E\u043C \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 wait, \u043E\u043D \u043F\u043E\u0434\u043E\u0436\u0434\u0451\u0442 \u0438 \u0440\u0430\u0441\u0441\u043A\u0430\u0436\u0435\u0442 \u0445\u043E\u0434. \u041F\u043E\u043A\u0430 \u0441\u0431\u043E\u0440\u043A\u0430 \u0438\u0434\u0451\u0442, render \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043D\u0435 \u0437\u043E\u0432\u0438: \u0442\u043E\u0442 \u0436\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u043F\u043E\u0441\u043B\u0435 \u043D\u043E\u0432\u044B\u0445 \u043F\u0440\u0430\u0432\u043E\u043A \u0438 \xAB\u0434\u0430\xBB \u043F\u0440\u0435\u0436\u043D\u044F\u044F \u0441\u0431\u043E\u0440\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u0438 \u043D\u0430\u0447\u043D\u0451\u0442\u0441\u044F \u043D\u043E\u0432\u0430\u044F. \u041F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437 \u043F\u0440\u0430\u0432\u043E\u043A \u043F\u043E\u0441\u043B\u0435 \u043A\u043E\u043D\u0446\u0430 \u043E\u0442\u0434\u0430\u0451\u0442 \u0433\u043E\u0442\u043E\u0432\u043E\u0435 \u0441\u0440\u0430\u0437\u0443.\n\u041F\u0440\u043E\u0441\u044F\u0442 \xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u0435\u0449\u0451 5 \u0434\u043B\u044F \u043F\u0440\u043E\u0431\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430\xBB (Instagram) \u2014 variants=5: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0440\u043E\u043B\u0438\u043A (\u0433\u043E\u0442\u043E\u0432\u044B\u0439 \u0432\u043E\u0437\u044C\u043C\u0451\u0442\u0441\u044F \u0441\u0440\u0430\u0437\u0443), \u043F\u043E\u0442\u043E\u043C \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u044F\u0434\u043E\u043C \u0441 \u043D\u0438\u043C \u0444\u0430\u0439\u043B\u0430\u043C\u0438 -trial-1\u2026-trial-5. \u0420\u0435\u0447\u044C, \u0440\u0435\u0437\u044B \u0438 \u0437\u0432\u0443\u043A \u0442\u0435 \u0436\u0435, \u043E\u0442\u043B\u0438\u0447\u0430\u044E\u0442\u0441\u044F \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435, \u0432\u0440\u0435\u043C\u044F \u0432\u0441\u0442\u0430\u0432\u043E\u043A, \u043C\u0435\u0441\u0442\u0430 \u0438 \u043A\u0440\u0443\u043F\u043D\u043E\u0441\u0442\u044C; \u0446\u0432\u0435\u0442 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0441\u043A\u0430\u0437\u0430\u043B \xAB\u0438 \u0446\u0432\u0435\u0442 \u0440\u0430\u0437\u043D\u044B\u0439\xBB: vary \u0441 color. \u041E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xAB\u0434\u0430\xBB \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u043E. \u041C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u043D\u0435\u0447\u0435\u043C\u0443 \u2014 \u0434\u0432\u0438\u0436\u043E\u043A \u0441\u043A\u0430\u0436\u0435\u0442, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0448\u043B\u043E, \u0431\u043B\u0438\u0437\u043D\u0435\u0446\u043E\u0432 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442.\n\u041F\u0440\u043E\u0441\u044F\u0442 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0443\u0431\u0435\u0440\u0438 \u043F\u0430\u0443\u0437\u044B\xBB \u2014 only_pauses=true \u0441 video: \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u0441 \u043E\u0434\u043D\u0438\u043C\u0438 \u043F\u0430\u0443\u0437\u0430\u043C\u0438, \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0438 \u0441\u0431\u043E\u0440\u043A\u0430 \u043E\u0434\u043D\u0438\u043C \u0432\u044B\u0437\u043E\u0432\u043E\u043C; tempo \u0440\u044F\u0434\u043E\u043C \u2014 \xAB\u0438 \u0443\u0441\u043A\u043E\u0440\u044C\xBB. \u041F\u0430\u0443\u0437\u044B \u0443\u0431\u0438\u0440\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u0441\u043B\u043E\u0432\u0430\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043D\u0443\u0436\u043D\u0430 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D\u0430\u044F \u0440\u0435\u0447\u044C.\n\u0420\u0430\u0431\u043E\u0442\u0430 \u0438\u0434\u0451\u0442 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430, \u043A \u043D\u0430\u043C \u0432\u0438\u0434\u0435\u043E \u043D\u0435 \u0443\u0445\u043E\u0434\u0438\u0442 \u2014 \u043D\u0430\u0432\u0435\u0440\u0445 \u0438\u0434\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043F\u043E \u043A\u043B\u044E\u0447\u0443.',
|
|
18689
18708
|
// Полоса хода работы: монтаж идёт минутами, и всё это время в ленте не
|
|
18690
18709
|
// происходило бы ничего. ⚠ Ожидание — у `wait`, и полосы там нет: иначе
|
|
18691
18710
|
// каждая проверка рисовала бы новую поверх этой.
|
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, McpServer, watchProcessCrashes, reportInstallFaults, noteInstallFault, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, Wakefulness, systemBlocker, updateEngine, installStep, currentMachineFingerprint, CrashReporter, whenNewerReleased, buildAll, realPace, buildResources, shellDir, describeFailure, compare, toolError, NaparnikApiClient, ownSetupJobRunning, forModel, installedShell, startSetupJob, TITLE_UPDATE, runUpdate, setupJobDone, reportJobFaults, setupJobEnding, NaparnikConfigError, installMissing } from './chunk-
|
|
2
|
+
import { Engine, chooseBody, handOverToBody, VERSION, rollback, rollbackShell, remove, fromNpxCache, install, keyFromBlock, readConfig, ForeignBlockError, McpServer, watchProcessCrashes, reportInstallFaults, noteInstallFault, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, Wakefulness, systemBlocker, updateEngine, installStep, currentMachineFingerprint, CrashReporter, whenNewerReleased, buildAll, realPace, buildResources, shellDir, describeFailure, compare, toolError, NaparnikApiClient, ownSetupJobRunning, forModel, installedShell, startSetupJob, TITLE_UPDATE, runUpdate, setupJobDone, reportJobFaults, setupJobEnding, NaparnikConfigError, installMissing } from './chunk-34J22CC4.js';
|
|
3
3
|
import { realpathSync, readFileSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { fileURLToPath, pathToFileURL } from 'url';
|
package/dist/index.d.ts
CHANGED
|
@@ -551,9 +551,7 @@ declare class Engine {
|
|
|
551
551
|
* как уже сделано у скачивания движка (`run`, поле `key`).
|
|
552
552
|
*/
|
|
553
553
|
key: string | undefined;
|
|
554
|
-
}): Promise<{
|
|
555
|
-
id: string;
|
|
556
|
-
} | {
|
|
554
|
+
}): Promise<StartedJob | {
|
|
557
555
|
refusal: string;
|
|
558
556
|
}>;
|
|
559
557
|
/**
|
|
@@ -615,6 +613,20 @@ declare function fileOrRefusal(candidate: string): {
|
|
|
615
613
|
*/
|
|
616
614
|
declare function parseFailure(err: unknown, fallback: string): CommandOutcome;
|
|
617
615
|
/** Последняя непустая строка вывода — там, где команда печатает результат. */
|
|
616
|
+
/**
|
|
617
|
+
* Что ответил `job-create`: номер и решение о повторной сборке.
|
|
618
|
+
*
|
|
619
|
+
* `verdict` бывает, только когда оболочка о нём попросила (`reuse` в
|
|
620
|
+
* `--command`, `render-tool.ts`): тогда движок печатает JSON. Прежний движок
|
|
621
|
+
* про `reuse` не знает и печатает голый номер — это «новая задача», как было.
|
|
622
|
+
*/
|
|
623
|
+
interface StartedJob {
|
|
624
|
+
id: string;
|
|
625
|
+
/** `same` — эта сборка уже идёт, `replaced` — прежние остановлены, `new` — просто новая. */
|
|
626
|
+
verdict?: 'new' | 'same' | 'replaced';
|
|
627
|
+
/** Номера остановленных сборок этого ролика. */
|
|
628
|
+
replaced?: string[];
|
|
629
|
+
}
|
|
618
630
|
declare function lastLine(output: string): string;
|
|
619
631
|
|
|
620
632
|
/**
|
|
@@ -1197,9 +1209,9 @@ declare class NaparnikConfigError extends NaparnikError {
|
|
|
1197
1209
|
* годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
|
|
1198
1210
|
* стоять чужое число, а обновление начнёт считать оболочку не той.
|
|
1199
1211
|
*/
|
|
1200
|
-
declare const VERSION = "0.10.
|
|
1212
|
+
declare const VERSION = "0.10.59";
|
|
1201
1213
|
/** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
|
|
1202
|
-
declare const USER_AGENT = "naparnik-mcp/0.10.
|
|
1214
|
+
declare const USER_AGENT = "naparnik-mcp/0.10.59";
|
|
1203
1215
|
/**
|
|
1204
1216
|
* Самая старая начинка (движок монтажа), с которой эта оболочка работает.
|
|
1205
1217
|
* Обновление начинки ниже этой версии не ставится, а выше — требует оболочки
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LOCK_FILE, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, START_SEC, TOOL_SEC, USER_AGENT, VERSION, bringPython, buildAll, buildBlock, buildResources, compare, configPath, decide, defineTool, depFolderName, deploy, downloadFile, fetchManifest, fileOrRefusal, findBlock, fromNpxCache, inside, install, installPayload, jsonSchemaOf, keyInTable, lastLine, loadConfig, lockedPython, markChecked, markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion, probe, refusalFor, remove, rollback, tarEntries, tidyOld, timeToCheck, unpackArchive, withArgs } from './chunk-
|
|
1
|
+
export { DEFAULT_HOME, DeliveryError, Engine, ForeignBlockError, INSTALL_STEPS, KEEP_COPIES, KEEP_VERSIONS, LOCK_FILE, LONG_STEPS, MANIFEST_TIMEOUT_MS, MANIFEST_URL, MARKER, MIN_ENGINE, NaparnikApiClient, NaparnikAuthError, NaparnikClientError, NaparnikConfigError, NaparnikError, NaparnikInsufficientBalanceError, NaparnikScopeError, NaparnikServerError, NaparnikTimeoutError, PAUSE_HOURS, SERVER_NAME, START_SEC, TOOL_SEC, USER_AGENT, VERSION, bringPython, buildAll, buildBlock, buildResources, compare, configPath, decide, defineTool, depFolderName, deploy, downloadFile, fetchManifest, fileOrRefusal, findBlock, fromNpxCache, inside, install, installPayload, jsonSchemaOf, keyInTable, lastLine, loadConfig, lockedPython, markChecked, markCurrent, parseEngineManifest, parseFailure, path, platformKey, previousVersion, probe, refusalFor, remove, rollback, tarEntries, tidyOld, timeToCheck, unpackArchive, withArgs } from './chunk-34J22CC4.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naparnik/mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.59",
|
|
4
4
|
"description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|