@naparnik/mcp 0.10.42 → 0.10.43
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 +8 -0
- package/dist/{chunk-5E3UBSQQ.js → chunk-DQDZKXDU.js} +41 -12
- 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,13 @@
|
|
|
1
1
|
# Изменения @naparnik/mcp
|
|
2
2
|
|
|
3
|
+
## 0.10.43 — 2026-09-24. Пять версий для пробного режима
|
|
4
|
+
|
|
5
|
+
Скажи «сделай ещё 5 для пробного режима» — после основного ролика монтаж
|
|
6
|
+
соберёт пять версий. Речь и резы те же, а движение, время вставок и их
|
|
7
|
+
места разные. Цвет меняется, только если попросишь.
|
|
8
|
+
|
|
9
|
+
Монтаж стал быстрее, а компьютер при этом не подвисает.
|
|
10
|
+
|
|
3
11
|
## 0.10.42 — 2026-09-24. Карточка говорит проще
|
|
4
12
|
|
|
5
13
|
Под проверкой пять строк вместо десяти: монтаж, субтитры, графика и
|
|
@@ -728,9 +728,9 @@ function parsePositiveInt(raw, fallback) {
|
|
|
728
728
|
}
|
|
729
729
|
|
|
730
730
|
// src/version.ts
|
|
731
|
-
var VERSION = "0.10.
|
|
731
|
+
var VERSION = "0.10.43";
|
|
732
732
|
var USER_AGENT = `naparnik-mcp/${VERSION}`;
|
|
733
|
-
var MIN_ENGINE = "2026.09.24-
|
|
733
|
+
var MIN_ENGINE = "2026.09.24-466";
|
|
734
734
|
var LAUNCHER_PROTOCOL = 1;
|
|
735
735
|
|
|
736
736
|
// src/contracts/sdk-headers.ts
|
|
@@ -18159,12 +18159,17 @@ function wordsOf(content) {
|
|
|
18159
18159
|
if (typeof content === "string") return content;
|
|
18160
18160
|
return content.map((block) => block.type === "text" ? block.text : "").join("\n");
|
|
18161
18161
|
}
|
|
18162
|
+
var TRIAL_AXES = ["motion", "timing", "place", "camera", "color"];
|
|
18163
|
+
var TRIALS_MAX = 10;
|
|
18162
18164
|
async function startRender(engine, asked, key, tell) {
|
|
18163
18165
|
const place = engine.place();
|
|
18164
18166
|
if (place === null) return toolError(engine.whyNoEngine());
|
|
18165
18167
|
const where = fileOrRefusal(asked.video);
|
|
18166
18168
|
if ("refusal" in where) return toolError(where.refusal);
|
|
18167
|
-
|
|
18169
|
+
const trials = { variants: asked.variants, vary: asked.vary };
|
|
18170
|
+
if (asked.onlyPauses !== true) {
|
|
18171
|
+
return startDocumentRender(engine, where.path, key, tell, trials);
|
|
18172
|
+
}
|
|
18168
18173
|
if (tell !== void 0) for (const line of PAUSES_LADDER) tell(line);
|
|
18169
18174
|
const ask2 = { pauses: {} };
|
|
18170
18175
|
if (asked.tempo !== void 0 && asked.tempo !== 1) ask2["tempo"] = asked.tempo;
|
|
@@ -18175,7 +18180,7 @@ async function startRender(engine, asked, key, tell) {
|
|
|
18175
18180
|
if ("refusal" in agreement) return toolError(agreement.refusal);
|
|
18176
18181
|
return startDocumentRender(engine, reel, key, tell);
|
|
18177
18182
|
}
|
|
18178
|
-
async function startDocumentRender(engine, reel, key, tell) {
|
|
18183
|
+
async function startDocumentRender(engine, reel, key, tell, trials = {}) {
|
|
18179
18184
|
const place = engine.place();
|
|
18180
18185
|
if (place === null) return toolError(engine.whyNoEngine());
|
|
18181
18186
|
const trouble = await engine.pythonTrouble();
|
|
@@ -18184,8 +18189,14 @@ async function startDocumentRender(engine, reel, key, tell) {
|
|
|
18184
18189
|
if (python === null) {
|
|
18185
18190
|
return toolError("\u041E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u043D\u0442\u0430\u0436\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E. \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0442\u044C: \u043F\u043E\u0437\u043E\u0432\u0438 setup.");
|
|
18186
18191
|
}
|
|
18187
|
-
|
|
18188
|
-
const
|
|
18192
|
+
const ladder = trials.variants === void 0 ? RENDER_LADDER : [...RENDER_LADDER, TRIALS_STEP];
|
|
18193
|
+
if (tell !== void 0) for (const line of ladder) tell(line);
|
|
18194
|
+
const what = trials.variants === void 0 ? `\u043C\u043E\u043D\u0442\u0430\u0436 ${basename(reel)}` : `\u043C\u043E\u043D\u0442\u0430\u0436 ${basename(reel)} \u0438 ${trials.variants} \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043B\u044F \u043F\u0440\u043E\u0431\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430`;
|
|
18195
|
+
const more = trials.variants === void 0 ? [] : [
|
|
18196
|
+
"--variants",
|
|
18197
|
+
String(trials.variants),
|
|
18198
|
+
...trials.vary !== void 0 && trials.vary.length > 0 ? ["--vary", trials.vary.join(",")] : []
|
|
18199
|
+
];
|
|
18189
18200
|
const launch = await engine.background({
|
|
18190
18201
|
place,
|
|
18191
18202
|
executable: python,
|
|
@@ -18197,7 +18208,7 @@ async function startDocumentRender(engine, reel, key, tell) {
|
|
|
18197
18208
|
"--what",
|
|
18198
18209
|
what,
|
|
18199
18210
|
"--command",
|
|
18200
|
-
JSON.stringify({ tool: "render", args:
|
|
18211
|
+
JSON.stringify({ tool: "render", args: trials })
|
|
18201
18212
|
],
|
|
18202
18213
|
args: (id) => [
|
|
18203
18214
|
place.consolePy,
|
|
@@ -18207,7 +18218,8 @@ async function startDocumentRender(engine, reel, key, tell) {
|
|
|
18207
18218
|
"--pack",
|
|
18208
18219
|
place.pack,
|
|
18209
18220
|
"--job",
|
|
18210
|
-
id
|
|
18221
|
+
id,
|
|
18222
|
+
...more
|
|
18211
18223
|
],
|
|
18212
18224
|
advice: "\u043F\u043E\u0437\u043E\u0432\u0438 setup \u2014 \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043D\u0435\u043F\u043E\u043B\u043D\u043E\u0435"
|
|
18213
18225
|
});
|
|
@@ -18218,7 +18230,7 @@ async function startDocumentRender(engine, reel, key, tell) {
|
|
|
18218
18230
|
startedJob({
|
|
18219
18231
|
id: launch.id,
|
|
18220
18232
|
what,
|
|
18221
|
-
ahead:
|
|
18233
|
+
ahead: ladder.join(" "),
|
|
18222
18234
|
message: "\u0420\u043E\u043B\u0438\u043A \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F."
|
|
18223
18235
|
})
|
|
18224
18236
|
);
|
|
@@ -18227,6 +18239,7 @@ var RENDER_LADDER = [
|
|
|
18227
18239
|
"\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.",
|
|
18228
18240
|
"\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."
|
|
18229
18241
|
];
|
|
18242
|
+
var TRIALS_STEP = "\u041F\u043E\u0442\u043E\u043C \u0441\u043E\u0431\u0435\u0440\u0443 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0431\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E \u043E\u0434\u043D\u043E\u0439: \u0440\u0435\u0447\u044C \u0438 \u0437\u0432\u0443\u043A \u0442\u0435 \u0436\u0435, \u0434\u0440\u0443\u0433\u043E\u0435 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435, \u043C\u0435\u0441\u0442\u0430 \u0438 \u043A\u0440\u0443\u043F\u043D\u043E\u0441\u0442\u044C.";
|
|
18230
18243
|
async function followWork(engine, asked, pace = realPace, tell) {
|
|
18231
18244
|
const ask2 = () => engine.command(["job", asked.job]);
|
|
18232
18245
|
const seconds2 = waitSeconds(asked.seconds ?? WAIT_LIMIT_SECONDS);
|
|
@@ -18261,7 +18274,7 @@ function renderTool(engine, _passport, key) {
|
|
|
18261
18274
|
return defineTool({
|
|
18262
18275
|
name: "render",
|
|
18263
18276
|
title: "\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0440\u043E\u043B\u0438\u043A",
|
|
18264
|
-
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\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.',
|
|
18277
|
+
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.',
|
|
18265
18278
|
// Полоса хода работы: монтаж идёт минутами, и всё это время в ленте не
|
|
18266
18279
|
// происходило бы ничего. ⚠ Ожидание — у `wait`, и полосы там нет: иначе
|
|
18267
18280
|
// каждая проверка рисовала бы новую поверх этой.
|
|
@@ -18281,6 +18294,12 @@ function renderTool(engine, _passport, key) {
|
|
|
18281
18294
|
).optional(),
|
|
18282
18295
|
style: external_exports.string().describe(
|
|
18283
18296
|
"\u0422\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 only_pauses: \u043F\u0430\u043F\u043A\u0430 \u043F\u0430\u043A\u0430 \u0444\u0438\u0440\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u0442\u0438\u043B\u044F"
|
|
18297
|
+
).optional(),
|
|
18298
|
+
variants: external_exports.number().int().min(1).max(TRIALS_MAX).describe(
|
|
18299
|
+
`\u0415\u0449\u0451 \u0441\u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043B\u044F \u043F\u0440\u043E\u0431\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430 Instagram, 1\u2013${TRIALS_MAX}; \u043E\u0431\u044B\u0447\u043D\u043E 5`
|
|
18300
|
+
).optional(),
|
|
18301
|
+
vary: external_exports.array(external_exports.enum(TRIAL_AXES)).describe(
|
|
18302
|
+
"\u0422\u043E\u043B\u044C\u043A\u043E \u0441 variants: \u0447\u0435\u043C \u0432\u0435\u0440\u0441\u0438\u0438 \u043E\u0442\u043B\u0438\u0447\u0430\u044E\u0442\u0441\u044F. \u0411\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u0432\u0441\u0451, \u043A\u0440\u043E\u043C\u0435 \u0446\u0432\u0435\u0442\u0430 (color)"
|
|
18284
18303
|
).optional()
|
|
18285
18304
|
}).check((ctx) => {
|
|
18286
18305
|
const asked = ctx.value;
|
|
@@ -18296,7 +18315,15 @@ function renderTool(engine, _passport, key) {
|
|
|
18296
18315
|
if (asked.video !== void 0 && asked.reel !== void 0) {
|
|
18297
18316
|
say("\xABvideo\xBB \u0438 \xABreel\xBB \u2014 \u044D\u0442\u043E \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u043C\u0435\u0441\u0442\u043E, \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0434\u0432\u0430\u0436\u0434\u044B. \u041E\u0441\u0442\u0430\u0432\u044C \u043E\u0434\u043D\u043E", "reel");
|
|
18298
18317
|
}
|
|
18299
|
-
if (asked.
|
|
18318
|
+
if (asked.vary !== void 0 && asked.variants === void 0) {
|
|
18319
|
+
say("\xABvary\xBB \u2014 \u043E\u0441\u0438 \u0432\u0435\u0440\u0441\u0438\u0439: \u0431\u0435\u0437 variants \u0432\u0435\u0440\u0441\u0438\u0439 \u043D\u0435\u0442. \u041D\u0430\u0437\u043E\u0432\u0438, \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0438\u0445: variants=5", "vary");
|
|
18320
|
+
}
|
|
18321
|
+
if (asked.only_pauses === true) {
|
|
18322
|
+
if (asked.variants !== void 0) {
|
|
18323
|
+
say("\u0412\u0435\u0440\u0441\u0438\u0438 \u0434\u0435\u043B\u0430\u044E\u0442\u0441\u044F \u0438\u0437 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043C\u043E\u043D\u0442\u0430\u0436\u0430, \u0430 \u043D\u0435 \u0438\u0437 \xAB\u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0430\u0443\u0437\u044B\xBB. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043E\u0431\u0435\u0440\u0438 \u0440\u043E\u043B\u0438\u043A, \u043F\u043E\u0442\u043E\u043C render \u0441 reel \u0438 variants", "variants");
|
|
18324
|
+
}
|
|
18325
|
+
return;
|
|
18326
|
+
}
|
|
18300
18327
|
const extra = ["tempo", "style"].filter((name) => asked[name] !== void 0);
|
|
18301
18328
|
if (extra.length > 0) {
|
|
18302
18329
|
say(
|
|
@@ -18312,7 +18339,9 @@ function renderTool(engine, _passport, key) {
|
|
|
18312
18339
|
video: args.video ?? args.reel ?? "",
|
|
18313
18340
|
onlyPauses: args.only_pauses,
|
|
18314
18341
|
tempo: args.tempo,
|
|
18315
|
-
style: args.style
|
|
18342
|
+
style: args.style,
|
|
18343
|
+
variants: args.variants,
|
|
18344
|
+
vary: args.vary
|
|
18316
18345
|
},
|
|
18317
18346
|
key,
|
|
18318
18347
|
ctx?.emitProgress
|
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, CrashReporter, watchProcessCrashes, McpServer, buildAll, realPace, buildResources, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, Wakefulness, systemBlocker, 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, CrashReporter, watchProcessCrashes, McpServer, buildAll, realPace, buildResources, StdioServerTransport, fromHost, WHERE_TO_GET_KEY, Wakefulness, systemBlocker, updateEngine, installStep, NaparnikApiClient, timeToCheck2, manifestUrlFor, fetchManifest, markChecked2, decide, shellDir, timeToCheck, bundleUrlFor, fetchShellManifest, markChecked, decideShell, installedShell, NaparnikConfigError } from './chunk-DQDZKXDU.js';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { realpathSync, readFileSync } from 'fs';
|
|
5
5
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1534,9 +1534,9 @@ declare class NaparnikConfigError extends NaparnikError {
|
|
|
1534
1534
|
* годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
|
|
1535
1535
|
* стоять чужое число, а обновление начнёт считать оболочку не той.
|
|
1536
1536
|
*/
|
|
1537
|
-
declare const VERSION = "0.10.
|
|
1537
|
+
declare const VERSION = "0.10.43";
|
|
1538
1538
|
/** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
|
|
1539
|
-
declare const USER_AGENT = "naparnik-mcp/0.10.
|
|
1539
|
+
declare const USER_AGENT = "naparnik-mcp/0.10.43";
|
|
1540
1540
|
/**
|
|
1541
1541
|
* Самая старая начинка (движок монтажа), с которой эта оболочка работает.
|
|
1542
1542
|
* Обновление начинки ниже этой версии не ставится, а выше — требует оболочки
|
|
@@ -1573,7 +1573,7 @@ declare const USER_AGENT = "naparnik-mcp/0.10.42";
|
|
|
1573
1573
|
* словами «раздача ещё не обновилась». Номер берётся из УЖЕ СОБРАННОГО
|
|
1574
1574
|
* артефакта этой волны, а не сочиняется по календарю.
|
|
1575
1575
|
*/
|
|
1576
|
-
declare const MIN_ENGINE = "2026.09.24-
|
|
1576
|
+
declare const MIN_ENGINE = "2026.09.24-466";
|
|
1577
1577
|
|
|
1578
1578
|
/**
|
|
1579
1579
|
* Что вышло из установки или отката — одними словами у начинки и у тела.
|
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-DQDZKXDU.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naparnik/mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.43",
|
|
4
4
|
"description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|