@naparnik/mcp 0.10.59 → 0.10.63

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 CHANGED
@@ -1,5 +1,26 @@
1
1
  # Изменения @naparnik/mcp
2
2
 
3
+ ## 0.10.63 — 2026-09-25. Готовый ролик сразу на виду
4
+
5
+ Смонтировал — Claude кладёт файл в Outputs и даёт на него ссылку в ответе.
6
+ Искать по папкам не нужно.
7
+
8
+ ## 0.10.62 — 2026-09-25. Своё не теряется
9
+
10
+ Чего нет в наборе — заставку, анимацию — Claude делает сам и кладёт в папку
11
+ Напарника, а не во временную. В следующий раз находит готовое.
12
+
13
+ ## 0.10.61 — 2026-09-25. Свои шрифты
14
+
15
+ Субтитры и графика рисуются шрифтом вашего стиля. Можно назвать шрифт,
16
+ который стоит у вас на компьютере, или прислать файл шрифта в чат — он
17
+ ляжет к вашим шрифтам.
18
+
19
+ ## 0.10.60 — 2026-09-25. Видно, что происходит
20
+
21
+ На любую долгую работу — монтаж, картинку, что угодно — Claude заводит
22
+ список шагов справа, отмечает каждый и пишет, что сейчас и сколько ждать.
23
+
3
24
  ## 0.10.59 — 2026-09-25. Один ролик — одна сборка
4
25
 
5
26
  Попросили собрать ролик ещё раз, пока он собирается, — Напарник не
@@ -754,7 +754,7 @@ function parsePositiveInt(raw, fallback) {
754
754
  }
755
755
 
756
756
  // src/version.ts
757
- var VERSION = "0.10.59";
757
+ var VERSION = "0.10.63";
758
758
  var USER_AGENT = `naparnik-mcp/${VERSION}`;
759
759
  var MIN_ENGINE = "2026.09.24-478";
760
760
  var LAUNCHER_PROTOCOL = 1;
@@ -18689,7 +18689,16 @@ async function followAny(engine, asked, pace, tell) {
18689
18689
  const job = readJob(state.text);
18690
18690
  return job === null ? toolSuccess(words) : toolSuccess(words, job);
18691
18691
  }
18692
- return asJobResult(state);
18692
+ return shownFile(state);
18693
+ }
18694
+ function shownFile(state) {
18695
+ const job = state.ok ? readJob(state.text) : null;
18696
+ if (job === null || job.status !== "done" || job.file === "") return asJobResult(state);
18697
+ return toolSuccess(
18698
+ `${state.text}
18699
+ \u0413\u043E\u0442\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B: ${job.file}. \u041F\u043E\u043A\u0430\u0436\u0438 \u0435\u0433\u043E \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443: \u043F\u043E\u043B\u043E\u0436\u0438 \u0432 Outputs \u0441\u0432\u043E\u0438\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043E\u043C, \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u0443 \u0442\u0435\u0431\u044F \u0435\u0441\u0442\u044C, \u0438 \u0434\u0430\u0439 \u043F\u0443\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u2014 \u0438\u0441\u043A\u0430\u0442\u044C \u043F\u043E \u043F\u0430\u043F\u043A\u0430\u043C \u0435\u043C\u0443 \u043D\u0435 \u043D\u0430\u0434\u043E.`,
18700
+ job
18701
+ );
18693
18702
  }
18694
18703
  async function listJobs(engine, asked) {
18695
18704
  return asToolResult(
@@ -19503,6 +19512,13 @@ var DOORS = {
19503
19512
  keys: ["fonts", "alphabet"],
19504
19513
  how: "\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u043D\u0430\u0431\u043E\u0440 \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0438\u043C\u0435\u043D\u0430\u043C\u0438; \u0440\u043E\u043B\u0438\u043A \u0435\u043C\u0443 \u043D\u0435 \u043D\u0443\u0436\u0435\u043D"
19505
19514
  },
19515
+ // ⚠ ПУТЬ ДАЁТ ЧЕЛОВЕК, А ДВИЖОК КЛАДЁТ КОПИЮ. В стиль путь не пишется никогда
19516
+ // (запрет пути у вариантов, `choices/form.check_variant_edits`): файл
19517
+ // ложится в свои шрифты, и дальше шрифт зовут ИМЕНЕМ, как шрифт набора.
19518
+ font_file: {
19519
+ keys: ["font_file"],
19520
+ how: "\u043A\u043B\u0430\u0434\u0451\u0442 \u0444\u0430\u0439\u043B \u0448\u0440\u0438\u0444\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0434\u0430\u043B \u0447\u0435\u043B\u043E\u0432\u0435\u043A, \u043A \u0435\u0433\u043E \u0448\u0440\u0438\u0444\u0442\u0430\u043C; \u0440\u043E\u043B\u0438\u043A \u0435\u043C\u0443 \u043D\u0435 \u043D\u0443\u0436\u0435\u043D"
19521
+ },
19506
19522
  style_new: {
19507
19523
  keys: ["style_new"],
19508
19524
  how: "\u0437\u0430\u0432\u043E\u0434\u0438\u0442 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443 \u0441\u0432\u043E\u0439 \u043F\u0430\u043A \u0441\u0442\u0438\u043B\u044F \u0438 \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u0435\u0433\u043E \u0440\u0430\u0431\u043E\u0447\u0438\u043C"
@@ -19527,6 +19543,7 @@ var DOOR_WORDS = {
19527
19543
  cards: "\u043F\u043E\u043A\u0430\u0437 \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A",
19528
19544
  style: "\u0440\u0430\u0441\u0441\u043A\u0430\u0437 \u043E \u0441\u0442\u0438\u043B\u0435",
19529
19545
  fonts: "\u043D\u0430\u0431\u043E\u0440 \u0448\u0440\u0438\u0444\u0442\u043E\u0432",
19546
+ font_file: "\u043F\u0440\u0438\u0451\u043C \u0444\u0430\u0439\u043B\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",
19530
19547
  style_new: "\u0437\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0435\u0433\u043E \u0441\u0442\u0438\u043B\u044F",
19531
19548
  style_use: "\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0441\u0442\u0438\u043B\u044F",
19532
19549
  grade: "\u0446\u0432\u0435\u0442 \u043F\u043E \u0434\u0432\u0443\u043C \u043A\u0430\u0434\u0440\u0430\u043C",
@@ -19535,6 +19552,7 @@ var DOOR_WORDS = {
19535
19552
  function doorOf(given2) {
19536
19553
  const opened = [];
19537
19554
  if (given2["fonts"] !== void 0) opened.push("fonts");
19555
+ if (given2["font_file"] !== void 0) opened.push("font_file");
19538
19556
  if (given2["style_new"] !== void 0) opened.push("style_new");
19539
19557
  if (given2["style_use"] !== void 0) opened.push("style_use");
19540
19558
  if (given2["grade_before"] !== void 0 || given2["grade_after"] !== void 0) opened.push("grade");
@@ -19643,7 +19661,7 @@ function chooseVariantTool(engine, key) {
19643
19661
  return defineTool({
19644
19662
  name: "choose_variant",
19645
19663
  title: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434 \u0438 \u0441\u0442\u0438\u043B\u044C",
19646
- description: '\u041E\u0434\u043D\u0430 \u0434\u0432\u0435\u0440\u044C \u043A\u043E \u0432\u0441\u0435\u043C\u0443, \u043A\u0430\u043A \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0433\u043B\u044F\u0434\u0435\u0442\u044C \u0440\u043E\u043B\u0438\u043A. \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u044E \u2014 \u0440\u0435\u0448\u0430\u044E\u0442 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B. (1) \u0421 video \u2014 \u0444\u043E\u0440\u043C\u0430 \u0432\u044B\u0431\u043E\u0440\u0430: \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0441 \u043E\u0431\u0440\u0430\u0437\u0446\u0430\u043C\u0438 \u041D\u0410 \u041A\u0410\u0414\u0420\u0415 \u0435\u0433\u043E \u0440\u043E\u043B\u0438\u043A\u0430, \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0442\u044B\u043A\u0430\u0435\u0442 \u0438 \u0436\u043C\u0451\u0442 \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB. \u0417\u043E\u0432\u0438 \u0442\u0430\u043A \u043D\u0430 \u043F\u0435\u0440\u0432\u043E\u043C \u0440\u043E\u043B\u0438\u043A\u0435, \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u043D\u0430 \u0442\u0432\u043E\u0439 \u0432\u043E\u043F\u0440\u043E\u0441, \u0447\u0442\u043E \u0435\u043C\u0443 \u043D\u0443\u0436\u043D\u043E (questions \u043F\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C, \u0438\u043C\u0435\u043D\u0430 \u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0435\u0439 \u0438\u0437 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 setup, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 ["captions"]), \u0438 \u043F\u0435\u0440\u0432\u044B\u043C \u043E\u0442\u0432\u0435\u0442\u043E\u043C \u043D\u0430 \xAB\u043F\u043E\u043A\u0430\u0436\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043E\u0432\xBB, \xAB\u043A\u0430\u043A\u0438\u0435 \u0431\u044B\u0432\u0430\u044E\u0442\xBB, \xAB\u043F\u043E\u043A\u0430\u0436\u0438 \u043E\u0431\u0440\u0430\u0437\u0446\u044B\xBB. (2) \u0411\u0415\u0417 \u0410\u0420\u0413\u0423\u041C\u0415\u041D\u0422\u041E\u0412 \u0412\u041E\u041E\u0411\u0429\u0415 \u2014 \u0440\u0430\u0441\u0441\u043A\u0430\u0436\u0443 \u0441\u043B\u043E\u0432\u0430\u043C\u0438, \u043A\u0430\u043A\u0438\u043C \u0441\u0442\u0438\u043B\u0435\u043C \u043F\u043E\u0439\u0434\u0451\u0442 \u043C\u043E\u043D\u0442\u0430\u0436, \u0447\u0442\u043E \u0432 \u043D\u0451\u043C \u0438 \u043A\u0430\u043A\u0438\u0435 \u0435\u0441\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432. \u0417\u043E\u0432\u0438 \u043D\u0430 \xAB\u0430 \u043A\u0430\u043A\u043E\u0439 \u0443 \u043C\u0435\u043D\u044F \u0441\u0442\u0438\u043B\u044C\xBB, \xAB\u0447\u0442\u043E \u0442\u044B \u0443\u043C\u0435\u0435\u0448\u044C \u043C\u0435\u043D\u044F\u0442\u044C\xBB \u0438 \u043F\u0435\u0440\u0435\u0434 \u043F\u0435\u0440\u0432\u044B\u043C \u043C\u043E\u043D\u0442\u0430\u0436\u043E\u043C \u0443 \u043D\u043E\u0432\u043E\u0433\u043E \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430. (3) fonts=true \u2014 \u043D\u0430\u0431\u043E\u0440 \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u043E\u043C: \u0438\u043C\u044F \u0414\u041B\u042F \u0421\u0422\u0418\u041B\u042F, \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u044B, \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044F. \u0417\u043E\u0432\u0438 \u043D\u0430 \xAB\u043A\u0430\u043A\u0438\u0435 \u0435\u0441\u0442\u044C \u0448\u0440\u0438\u0444\u0442\u044B\xBB \u0438 \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043D\u0430\u0437\u0432\u0430\u043B \u0448\u0440\u0438\u0444\u0442, \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u0442\u044B \u043D\u0435 \u0437\u043D\u0430\u0435\u0448\u044C: \u0438\u043C\u044F \u0431\u0435\u0440\u0451\u0442\u0441\u044F \u041E\u0422\u0421\u042E\u0414\u0410, \u0430 \u043D\u0435 \u0438\u0437 \u0442\u0432\u043E\u0435\u0439 \u043F\u0430\u043C\u044F\u0442\u0438. \u0420\u043E\u043B\u0438\u043A \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u0435\u043D. (4) style_new="\u0438\u043C\u044F" \u2014 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443 \u0441\u0432\u043E\u0439 \u043F\u0430\u043A \u0441\u0442\u0438\u043B\u044F (\xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u043C\u043E\u0439 \u0441\u0442\u0438\u043B\u044C\xBB). style_use="\u043F\u0430\u043F\u043A\u0430" \u2014 \u043C\u043E\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0433\u043E\u0442\u043E\u0432\u044B\u043C \u043F\u0430\u043A\u043E\u043C; \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 video \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u044D\u0442\u0438\u043C \u0440\u043E\u043B\u0438\u043A\u043E\u043C. (5) grade_before \u0438 grade_after \u2014 \u0441\u043D\u044F\u0442\u044C \u0426\u0412\u0415\u0422\u041E\u041A\u041E\u0420 \u0441 \u043F\u0430\u0440\u044B \u043A\u0430\u0434\u0440\u043E\u0432 \u0438 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440 \u0432 \u0441\u0442\u0438\u043B\u044C (\xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u0442\u0430\u043A\u043E\u0439 \u0436\u0435 \u0446\u0432\u0435\u0442\xBB, \xAB\u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0438 \u043C\u043E\u0439 \u0433\u0440\u0435\u0439\u0434 \u0438\u0437 CapCut\xBB). \u041D\u0443\u0436\u043D\u044B \u0434\u0432\u0430 \u043A\u0430\u0434\u0440\u0430: \xAB\u043A\u0430\u043A \u0441\u043D\u044F\u0442\u043E\xBB \u0438\u0437 \u0435\u0433\u043E \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430 \u0438 \xAB\u043A\u0430\u043A \u0445\u043E\u0447\u0443\xBB \u2014 \u0442\u043E\u0442 \u0436\u0435 \u043A\u0430\u0434\u0440 \u043F\u043E\u0441\u043B\u0435 \u0446\u0432\u0435\u0442\u043E\u043A\u043E\u0440\u0440\u0435\u043A\u0446\u0438\u0438; \u0432\u044B\u043D\u0443\u0442\u044C \u043A\u0430\u0434\u0440 \u0443\u043C\u0435\u0435\u0442 preview. \u0427\u0443\u0436\u043E\u0439 \u043A\u0440\u0430\u0441\u0438\u0432\u044B\u0439 \u043A\u0430\u0434\u0440 \u0432\u043C\u0435\u0441\u0442\u043E \u0441\u0432\u043E\u0435\u0433\u043E \u2014 grade_mode="reference". \u042D\u0442\u043E \u0415\u0414\u0418\u041D\u0421\u0422\u0412\u0415\u041D\u041D\u0410\u042F \u043F\u043B\u0430\u0442\u043D\u0430\u044F \u0432\u0435\u0442\u043A\u0430: \u0431\u0435\u0437 \u0436\u0438\u0432\u043E\u0439 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u0434\u0432\u0438\u0436\u043E\u043A \u043E\u0442\u043A\u0430\u0436\u0435\u0442 \u0441\u043B\u043E\u0432\u0430\u043C\u0438. \u26A0 \u0417\u0410 \u041E\u0414\u0418\u041D \u0412\u042B\u0417\u041E\u0412 \u2014 \u041E\u0414\u041D\u041E \u0414\u0415\u041B\u041E. \u0414\u0432\u0430 \u0441\u0440\u0430\u0437\u0443 \u043E\u0442\u043E\u0431\u044C\u044E \u0441\u043B\u043E\u0432\u0430\u043C\u0438. \u26A0 \u041F\u041E\u041A\u0410\u0417\u042B\u0412\u0410\u0419 \u0422\u041E\u041B\u042C\u041A\u041E \u0412\u042B\u0411\u0420\u0410\u041D\u041D\u041E\u0415 \u0418\u041B\u0418 \u0421\u041F\u0420\u041E\u0428\u0415\u041D\u041D\u041E\u0415. \u0412\u044B\u0431\u0440\u0430\u043B \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044B \u2014 questions=["captions"], \u043F\u0440\u043E\u0441\u0438\u043B \u043F\u0440\u043E \u043F\u0430\u0443\u0437\u044B \u2014 questions=["pauses"]. \u0427\u0435\u0433\u043E \u043E\u043D \u043D\u0435 \u0432\u044B\u0431\u0438\u0440\u0430\u043B \u0438 \u043D\u0435 \u043F\u0440\u043E\u0441\u0438\u043B, \u0442\u043E\u0433\u043E \u043D\u0435 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0439: \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0432\u044B\u0431\u043E\u0440 \u043F\u043E\u043C\u043D\u0438\u0442 \u0435\u0433\u043E \u0441\u0442\u0438\u043B\u044C, \u0438 \u043C\u043E\u043D\u0442\u0430\u0436 \u0432\u043E\u0437\u044C\u043C\u0451\u0442 \u043E\u0442\u0442\u0443\u0434\u0430 \u0441\u0430\u043C. \u0411\u0435\u0437 questions \u043F\u0440\u0438\u0434\u0443\u0442 \u0412\u0421\u0415 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043F\u0430\u043A\u0430. \u26A0 \u0421\u041D\u0410\u0427\u0410\u041B\u0410 \u0423\u0411\u0415\u0414\u0418\u0421\u042C, \u0427\u0422\u041E \u0414\u0412\u0418\u0416\u041E\u041A \u0421\u0422\u041E\u0418\u0422: \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u043D\u0435 \u0431\u0443\u0434\u0435\u0442. \u041D\u0435\u0442 \u0434\u0432\u0438\u0436\u043A\u0430 \u2014 \u0441\u043F\u0435\u0440\u0432\u0430 setup (\u0441\u043F\u0440\u043E\u0441\u0438 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0441\u043B\u043E\u0432\u0430\u043C\u0438), \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0442\u043E\u043C \u0437\u043E\u0432\u0438 \u044D\u0442\u043E. \u0412\u044B\u0431\u043E\u0440 \u0417\u0410\u041F\u041E\u041C\u0418\u041D\u0410\u0415\u0422\u0421\u042F \u0438 \u0438\u0434\u0451\u0442 \u0432 \u043C\u043E\u043D\u0442\u0430\u0436: \u0444\u043E\u0440\u043C\u0430 \u0437\u0430\u043F\u0438\u0448\u0435\u0442 \u0435\u0433\u043E \u0432 \u0441\u0442\u0438\u043B\u044C \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0438 \u0432 \u0435\u0433\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u0438 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437 \u043E\u0431 \u044D\u0442\u043E\u043C \u043D\u0435 \u0441\u043F\u0440\u043E\u0441\u044F\u0442. \u0412\u044B\u0431\u0440\u0430\u0432, \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043F\u0440\u0438\u0448\u043B\u0451\u0442 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \xAB\u0412\u044B\u0431\u0438\u0440\u0430\u044E: \u2026\xBB \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438 \u0441\u043B\u043E\u0432\u0430\u043C\u0438, \u0447\u0442\u043E \u0438\u043C\u0435\u043D\u043D\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u0441\u043E\u0431\u0440\u0430\u0442\u044C \u0440\u043E\u043B\u0438\u043A. \u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0432 \u043B\u0435\u043D\u0442\u0435 \u043D\u0435\u0442 (\u0445\u043E\u0441\u0442 \u0431\u0435\u0437 \u0432\u0438\u0434\u0436\u0435\u0442\u043E\u0432, \u043E\u0442\u0432\u0435\u0442 \u043F\u0440\u0438\u0448\u0451\u043B \u0442\u0435\u043A\u0441\u0442\u043E\u043C) \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0438 \u0437\u0430\u043F\u0438\u0448\u0438 \u043E\u0442\u0432\u0435\u0442 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0441\u0430\u043C, variant_chosen.',
19664
+ description: '\u041E\u0434\u043D\u0430 \u0434\u0432\u0435\u0440\u044C \u043A\u043E \u0432\u0441\u0435\u043C\u0443, \u043A\u0430\u043A \u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u0433\u043B\u044F\u0434\u0435\u0442\u044C \u0440\u043E\u043B\u0438\u043A. \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u044E \u2014 \u0440\u0435\u0448\u0430\u044E\u0442 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B. (1) \u0421 video \u2014 \u0444\u043E\u0440\u043C\u0430 \u0432\u044B\u0431\u043E\u0440\u0430: \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0441 \u043E\u0431\u0440\u0430\u0437\u0446\u0430\u043C\u0438 \u041D\u0410 \u041A\u0410\u0414\u0420\u0415 \u0435\u0433\u043E \u0440\u043E\u043B\u0438\u043A\u0430, \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0442\u044B\u043A\u0430\u0435\u0442 \u0438 \u0436\u043C\u0451\u0442 \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB. \u0417\u043E\u0432\u0438 \u0442\u0430\u043A \u043D\u0430 \u043F\u0435\u0440\u0432\u043E\u043C \u0440\u043E\u043B\u0438\u043A\u0435, \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u043D\u0430 \u0442\u0432\u043E\u0439 \u0432\u043E\u043F\u0440\u043E\u0441, \u0447\u0442\u043E \u0435\u043C\u0443 \u043D\u0443\u0436\u043D\u043E (questions \u043F\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C, \u0438\u043C\u0435\u043D\u0430 \u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0435\u0439 \u0438\u0437 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 setup, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 ["captions"]), \u0438 \u043F\u0435\u0440\u0432\u044B\u043C \u043E\u0442\u0432\u0435\u0442\u043E\u043C \u043D\u0430 \xAB\u043F\u043E\u043A\u0430\u0436\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043E\u0432\xBB, \xAB\u043A\u0430\u043A\u0438\u0435 \u0431\u044B\u0432\u0430\u044E\u0442\xBB, \xAB\u043F\u043E\u043A\u0430\u0436\u0438 \u043E\u0431\u0440\u0430\u0437\u0446\u044B\xBB. (2) \u0411\u0415\u0417 \u0410\u0420\u0413\u0423\u041C\u0415\u041D\u0422\u041E\u0412 \u0412\u041E\u041E\u0411\u0429\u0415 \u2014 \u0440\u0430\u0441\u0441\u043A\u0430\u0436\u0443 \u0441\u043B\u043E\u0432\u0430\u043C\u0438, \u043A\u0430\u043A\u0438\u043C \u0441\u0442\u0438\u043B\u0435\u043C \u043F\u043E\u0439\u0434\u0451\u0442 \u043C\u043E\u043D\u0442\u0430\u0436, \u0447\u0442\u043E \u0432 \u043D\u0451\u043C \u0438 \u043A\u0430\u043A\u0438\u0435 \u0435\u0441\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432. \u0417\u043E\u0432\u0438 \u043D\u0430 \xAB\u0430 \u043A\u0430\u043A\u043E\u0439 \u0443 \u043C\u0435\u043D\u044F \u0441\u0442\u0438\u043B\u044C\xBB, \xAB\u0447\u0442\u043E \u0442\u044B \u0443\u043C\u0435\u0435\u0448\u044C \u043C\u0435\u043D\u044F\u0442\u044C\xBB \u0438 \u043F\u0435\u0440\u0435\u0434 \u043F\u0435\u0440\u0432\u044B\u043C \u043C\u043E\u043D\u0442\u0430\u0436\u043E\u043C \u0443 \u043D\u043E\u0432\u043E\u0433\u043E \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430. (3) fonts=true \u2014 \u043D\u0430\u0431\u043E\u0440 \u0448\u0440\u0438\u0444\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u043E\u043C: \u0438\u043C\u044F \u0414\u041B\u042F \u0421\u0422\u0418\u041B\u042F, \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u044B, \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044F. \u0417\u043E\u0432\u0438 \u043D\u0430 \xAB\u043A\u0430\u043A\u0438\u0435 \u0435\u0441\u0442\u044C \u0448\u0440\u0438\u0444\u0442\u044B\xBB \u0438 \u043A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043D\u0430\u0437\u0432\u0430\u043B \u0448\u0440\u0438\u0444\u0442, \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u0442\u044B \u043D\u0435 \u0437\u043D\u0430\u0435\u0448\u044C: \u0438\u043C\u044F \u0431\u0435\u0440\u0451\u0442\u0441\u044F \u041E\u0422\u0421\u042E\u0414\u0410, \u0430 \u043D\u0435 \u0438\u0437 \u0442\u0432\u043E\u0435\u0439 \u043F\u0430\u043C\u044F\u0442\u0438. \u0420\u043E\u043B\u0438\u043A \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u0435\u043D. \u0412 \u0441\u043F\u0438\u0441\u043A\u0435 \u0438 \u0448\u0440\u0438\u0444\u0442\u044B, \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u043D\u0430 \u0415\u0413\u041E \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435, \u0438 \u0435\u0433\u043E \u0441\u0432\u043E\u0438 \u0444\u0430\u0439\u043B\u044B \u2014 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439. font_file="\u043F\u0443\u0442\u044C" \u2014 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0434\u0430\u043B \u0444\u0430\u0439\u043B \u0448\u0440\u0438\u0444\u0442\u0430 (\xAB\u0432\u043E\u0442 \u0448\u0440\u0438\u0444\u0442, \u0434\u0430\u0432\u0430\u0439 \u0435\u0433\u043E\xBB): \u043F\u043E\u043B\u043E\u0436\u0443 \u043A \u0435\u0433\u043E \u0448\u0440\u0438\u0444\u0442\u0430\u043C \u0438 \u043D\u0430\u0437\u043E\u0432\u0443 \u0438\u043C\u044F; \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044B \u0438\u043C \u2014 variant_chosen, \u043A\u0430\u043A \u0441\u043A\u0430\u0436\u0443. (4) style_new="\u0438\u043C\u044F" \u2014 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443 \u0441\u0432\u043E\u0439 \u043F\u0430\u043A \u0441\u0442\u0438\u043B\u044F (\xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u043C\u043E\u0439 \u0441\u0442\u0438\u043B\u044C\xBB). style_use="\u043F\u0430\u043F\u043A\u0430" \u2014 \u043C\u043E\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0433\u043E\u0442\u043E\u0432\u044B\u043C \u043F\u0430\u043A\u043E\u043C; \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 video \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u044D\u0442\u0438\u043C \u0440\u043E\u043B\u0438\u043A\u043E\u043C. (5) grade_before \u0438 grade_after \u2014 \u0441\u043D\u044F\u0442\u044C \u0426\u0412\u0415\u0422\u041E\u041A\u041E\u0420 \u0441 \u043F\u0430\u0440\u044B \u043A\u0430\u0434\u0440\u043E\u0432 \u0438 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440 \u0432 \u0441\u0442\u0438\u043B\u044C (\xAB\u0441\u0434\u0435\u043B\u0430\u0439 \u0442\u0430\u043A\u043E\u0439 \u0436\u0435 \u0446\u0432\u0435\u0442\xBB, \xAB\u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0438 \u043C\u043E\u0439 \u0433\u0440\u0435\u0439\u0434 \u0438\u0437 CapCut\xBB). \u041D\u0443\u0436\u043D\u044B \u0434\u0432\u0430 \u043A\u0430\u0434\u0440\u0430: \xAB\u043A\u0430\u043A \u0441\u043D\u044F\u0442\u043E\xBB \u0438\u0437 \u0435\u0433\u043E \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430 \u0438 \xAB\u043A\u0430\u043A \u0445\u043E\u0447\u0443\xBB \u2014 \u0442\u043E\u0442 \u0436\u0435 \u043A\u0430\u0434\u0440 \u043F\u043E\u0441\u043B\u0435 \u0446\u0432\u0435\u0442\u043E\u043A\u043E\u0440\u0440\u0435\u043A\u0446\u0438\u0438; \u0432\u044B\u043D\u0443\u0442\u044C \u043A\u0430\u0434\u0440 \u0443\u043C\u0435\u0435\u0442 preview. \u0427\u0443\u0436\u043E\u0439 \u043A\u0440\u0430\u0441\u0438\u0432\u044B\u0439 \u043A\u0430\u0434\u0440 \u0432\u043C\u0435\u0441\u0442\u043E \u0441\u0432\u043E\u0435\u0433\u043E \u2014 grade_mode="reference". \u042D\u0442\u043E \u0415\u0414\u0418\u041D\u0421\u0422\u0412\u0415\u041D\u041D\u0410\u042F \u043F\u043B\u0430\u0442\u043D\u0430\u044F \u0432\u0435\u0442\u043A\u0430: \u0431\u0435\u0437 \u0436\u0438\u0432\u043E\u0439 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u0434\u0432\u0438\u0436\u043E\u043A \u043E\u0442\u043A\u0430\u0436\u0435\u0442 \u0441\u043B\u043E\u0432\u0430\u043C\u0438. \u26A0 \u0417\u0410 \u041E\u0414\u0418\u041D \u0412\u042B\u0417\u041E\u0412 \u2014 \u041E\u0414\u041D\u041E \u0414\u0415\u041B\u041E. \u0414\u0432\u0430 \u0441\u0440\u0430\u0437\u0443 \u043E\u0442\u043E\u0431\u044C\u044E \u0441\u043B\u043E\u0432\u0430\u043C\u0438. \u26A0 \u041F\u041E\u041A\u0410\u0417\u042B\u0412\u0410\u0419 \u0422\u041E\u041B\u042C\u041A\u041E \u0412\u042B\u0411\u0420\u0410\u041D\u041D\u041E\u0415 \u0418\u041B\u0418 \u0421\u041F\u0420\u041E\u0428\u0415\u041D\u041D\u041E\u0415. \u0412\u044B\u0431\u0440\u0430\u043B \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044B \u2014 questions=["captions"], \u043F\u0440\u043E\u0441\u0438\u043B \u043F\u0440\u043E \u043F\u0430\u0443\u0437\u044B \u2014 questions=["pauses"]. \u0427\u0435\u0433\u043E \u043E\u043D \u043D\u0435 \u0432\u044B\u0431\u0438\u0440\u0430\u043B \u0438 \u043D\u0435 \u043F\u0440\u043E\u0441\u0438\u043B, \u0442\u043E\u0433\u043E \u043D\u0435 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0439: \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0432\u044B\u0431\u043E\u0440 \u043F\u043E\u043C\u043D\u0438\u0442 \u0435\u0433\u043E \u0441\u0442\u0438\u043B\u044C, \u0438 \u043C\u043E\u043D\u0442\u0430\u0436 \u0432\u043E\u0437\u044C\u043C\u0451\u0442 \u043E\u0442\u0442\u0443\u0434\u0430 \u0441\u0430\u043C. \u0411\u0435\u0437 questions \u043F\u0440\u0438\u0434\u0443\u0442 \u0412\u0421\u0415 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043F\u0430\u043A\u0430. \u26A0 \u0421\u041D\u0410\u0427\u0410\u041B\u0410 \u0423\u0411\u0415\u0414\u0418\u0421\u042C, \u0427\u0422\u041E \u0414\u0412\u0418\u0416\u041E\u041A \u0421\u0422\u041E\u0418\u0422: \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u043D\u0435 \u0431\u0443\u0434\u0435\u0442. \u041D\u0435\u0442 \u0434\u0432\u0438\u0436\u043A\u0430 \u2014 \u0441\u043F\u0435\u0440\u0432\u0430 setup (\u0441\u043F\u0440\u043E\u0441\u0438 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0441\u043B\u043E\u0432\u0430\u043C\u0438), \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0442\u043E\u043C \u0437\u043E\u0432\u0438 \u044D\u0442\u043E. \u0412\u044B\u0431\u043E\u0440 \u0417\u0410\u041F\u041E\u041C\u0418\u041D\u0410\u0415\u0422\u0421\u042F \u0438 \u0438\u0434\u0451\u0442 \u0432 \u043C\u043E\u043D\u0442\u0430\u0436: \u0444\u043E\u0440\u043C\u0430 \u0437\u0430\u043F\u0438\u0448\u0435\u0442 \u0435\u0433\u043E \u0432 \u0441\u0442\u0438\u043B\u044C \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0438 \u0432 \u0435\u0433\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u0438 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437 \u043E\u0431 \u044D\u0442\u043E\u043C \u043D\u0435 \u0441\u043F\u0440\u043E\u0441\u044F\u0442. \u0412\u044B\u0431\u0440\u0430\u0432, \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043F\u0440\u0438\u0448\u043B\u0451\u0442 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \xAB\u0412\u044B\u0431\u0438\u0440\u0430\u044E: \u2026\xBB \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438 \u0441\u043B\u043E\u0432\u0430\u043C\u0438, \u0447\u0442\u043E \u0438\u043C\u0435\u043D\u043D\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u0441\u043E\u0431\u0440\u0430\u0442\u044C \u0440\u043E\u043B\u0438\u043A. \u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0432 \u043B\u0435\u043D\u0442\u0435 \u043D\u0435\u0442 (\u0445\u043E\u0441\u0442 \u0431\u0435\u0437 \u0432\u0438\u0434\u0436\u0435\u0442\u043E\u0432, \u043E\u0442\u0432\u0435\u0442 \u043F\u0440\u0438\u0448\u0451\u043B \u0442\u0435\u043A\u0441\u0442\u043E\u043C) \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0438 \u0437\u0430\u043F\u0438\u0448\u0438 \u043E\u0442\u0432\u0435\u0442 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0441\u0430\u043C, variant_chosen.',
19647
19665
  args: external_exports.object({
19648
19666
  video: external_exports.string().describe(
19649
19667
  "\u041F\u0443\u0442\u044C \u043A \u0440\u043E\u043B\u0438\u043A\u0443 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u2014 \u043E\u0431\u0440\u0430\u0437\u0446\u044B \u043F\u0435\u0447\u0430\u0442\u0430\u044E\u0442\u0441\u044F \u043D\u0430 \u0415\u0413\u041E \u043A\u0430\u0434\u0440\u0435. \u0411\u0435\u0437 \u043D\u0435\u0433\u043E \u0440\u0430\u0441\u0441\u043A\u0430\u0436\u0443 \u043F\u0440\u043E \u0441\u0442\u0438\u043B\u044C \u0441\u043B\u043E\u0432\u0430\u043C\u0438"
@@ -19685,6 +19703,9 @@ function chooseVariantTool(engine, key) {
19685
19703
  alphabet: external_exports.enum(["ru", "en"]).optional().describe(
19686
19704
  "\u0422\u043E\u043B\u044C\u043A\u043E \u043A fonts: \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0442\u0435, \u0447\u0442\u043E \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0442 \u044D\u0442\u043E\u0442 \u0430\u043B\u0444\u0430\u0432\u0438\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C. \u0420\u0435\u0447\u044C \u043F\u043E-\u0440\u0443\u0441\u0441\u043A\u0438 \u2014 \u0431\u0435\u0440\u0438 ru: \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0439 \u0448\u0440\u0438\u0444\u0442 \u043F\u043E\u0434 \u0440\u0443\u0441\u0441\u043A\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044B \u0434\u0430\u0451\u0442 \u043E\u0442\u043A\u0430\u0437 \u043D\u0430 \u0437\u0430\u043C\u0435\u0440\u0435"
19687
19705
  ),
19706
+ font_file: external_exports.string().optional().describe(
19707
+ "\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0440\u0438\u0444\u0442\u0430 .ttf \u0438\u043B\u0438 .otf, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0434\u0430\u043B \u0432 \u0447\u0430\u0442\u0435. \u041F\u043E\u043B\u043E\u0436\u0443 \u043A\u043E\u043F\u0438\u044E \u043A \u0435\u0433\u043E \u0448\u0440\u0438\u0444\u0442\u0430\u043C \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u0448\u0440\u0438\u0444\u0442 \u0437\u043E\u0432\u0443\u0442 \u043F\u043E \u0438\u043C\u0435\u043D\u0438, \u043F\u0443\u0442\u044C \u0432 \u0441\u0442\u0438\u043B\u044C \u043D\u0435 \u043F\u0438\u0448\u0435\u0442\u0441\u044F"
19708
+ ),
19688
19709
  // ─── свой пак стиля ───────────────────────────────────────────────────
19689
19710
  style_new: external_exports.string().optional().describe(
19690
19711
  "\u0417\u0430\u0432\u0435\u0441\u0442\u0438 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443 \u0441\u0432\u043E\u0439 \u043F\u0430\u043A \u0441\u0442\u0438\u043B\u044F \u0441 \u044D\u0442\u0438\u043C \u0438\u043C\u0435\u043D\u0435\u043C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \xAB\u0421\u0442\u0443\u0434\u0438\u044F \u0420\u043E\u043C\u0430\u0448\u043A\u0430\xBB. \u041B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 \u0434\u043E\u043C \u041D\u0430\u043F\u0430\u0440\u043D\u0438\u043A\u0430 \u2014 \u0442\u0443\u0434\u0430 \u0436\u0435, \u043A\u0443\u0434\u0430 \u0444\u043E\u0440\u043C\u0430 \u043F\u0438\u0448\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435"
@@ -19727,6 +19748,7 @@ function chooseVariantTool(engine, key) {
19727
19748
  limit: input.limit,
19728
19749
  fonts: input.fonts === true ? true : void 0,
19729
19750
  alphabet: input.alphabet,
19751
+ font_file: input.font_file,
19730
19752
  style_new: input.style_new,
19731
19753
  style_use: input.style_use,
19732
19754
  grade_before: input.grade_before,
@@ -19742,6 +19764,8 @@ function chooseVariantTool(engine, key) {
19742
19764
  return styleInWords(engine);
19743
19765
  case "fonts":
19744
19766
  return fontsBranch(engine, input.alphabet);
19767
+ case "font_file":
19768
+ return fontFile(engine, input.font_file ?? "");
19745
19769
  case "style_new":
19746
19770
  return styleNew(engine, input.style_new ?? "");
19747
19771
  case "style_use":
@@ -19841,6 +19865,13 @@ async function styleNew(engine, name) {
19841
19865
  if (!answer.ok) return toolError(answer.text);
19842
19866
  return inWords("\u0421\u0432\u043E\u0439 \u0441\u0442\u0438\u043B\u044C", answer.text);
19843
19867
  }
19868
+ async function fontFile(engine, file2) {
19869
+ const where = fileOrRefusal(file2);
19870
+ if ("refusal" in where) return toolError(where.refusal);
19871
+ const answer = await engine.command(["font-add", where.path]);
19872
+ if (!answer.ok) return toolError(answer.text);
19873
+ return inWords("\u0422\u0432\u043E\u0439 \u0448\u0440\u0438\u0444\u0442", answer.text);
19874
+ }
19844
19875
  async function styleUse(engine, folder, video) {
19845
19876
  const answer = await engine.command([
19846
19877
  "style-choose",
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-34J22CC4.js';
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-462VNZIW.js';
3
3
  import { realpathSync, readFileSync } from 'fs';
4
4
  import { join } from 'path';
5
5
  import { fileURLToPath, pathToFileURL } from 'url';
@@ -27,28 +27,29 @@ var WHAT_IS_IT = `
27
27
  var HOW_MONTAGE_WORKS = `
28
28
  \u041A\u0410\u041A \u041C\u041E\u041D\u0422\u0418\u0420\u041E\u0412\u0410\u0422\u042C
29
29
 
30
- 1. setup \u041F\u0415\u0420\u0412\u042B\u041C \u043D\u0430 \u043B\u044E\u0431\u0443\u044E \u043F\u0440\u043E\u0441\u044C\u0431\u0443 \u0438 \xAB\u0443\u043C\u0435\u0435\u0448\u044C \u043B\u0438\xBB: \u0447\u0442\u043E \u0441\u0442\u043E\u0438\u0442, \u0447\u0435\u0439 \u0441\u0442\u0438\u043B\u044C,
31
- \u043E\u0433\u043B\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0421\u041F\u0420\u0410\u0412\u041E\u0427\u041D\u0418\u041A\u0410 \u041C\u041E\u041D\u0422\u0410\u0416\u0401\u0420\u0410. \u0427\u0442\u043E \u0443\u043C\u0435\u0435\u0448\u044C \u2014 \u0438\u0437 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430,
32
- \u043D\u0435 \u0438\u0437 \u043F\u0430\u043C\u044F\u0442\u0438: \xAB\u043D\u0435 \u0443\u043C\u0435\u044E\xBB \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u043D\u0435 \u0433\u043E\u0432\u043E\u0440\u0438.
33
- 2. \u0421\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u043E\u0433\u043B\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043F\u0440\u043E\u0447\u0442\u0438 plan \u0441 read
34
- \u0414\u041E \u043E\u0442\u0432\u0435\u0442\u0430.
30
+ 1. setup \u041F\u0415\u0420\u0412\u042B\u041C \u043D\u0430 \u043B\u044E\u0431\u0443\u044E \u043F\u0440\u043E\u0441\u044C\u0431\u0443 \u0438 \xAB\u0443\u043C\u0435\u0435\u0448\u044C \u043B\u0438\xBB: \u0447\u0442\u043E \u0441\u0442\u043E\u0438\u0442,
31
+ \u043E\u0433\u043B\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0421\u041F\u0420\u0410\u0412\u041E\u0427\u041D\u0418\u041A\u0410 \u041C\u041E\u041D\u0422\u0410\u0416\u0401\u0420\u0410. \u0423\u043C\u0435\u043D\u0438\u044F \u043D\u0435 \u0438\u0437 \u043F\u0430\u043C\u044F\u0442\u0438:
32
+ \xAB\u043D\u0435 \u0443\u043C\u0435\u044E\xBB \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u043D\u0435 \u0433\u043E\u0432\u043E\u0440\u0438.
33
+ 2. \u0421\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0440\u043E\u0447\u0442\u0438 plan \u0441 read \u0414\u041E \u043E\u0442\u0432\u0435\u0442\u0430.
35
34
  3. plan \u0441 video \u2014 \u0427\u0415\u0420\u041D\u041E\u0412\u0418\u041A: \u043F\u0435\u0440\u0435\u0441\u043A\u0430\u0436\u0438 \u041F\u041E\u0421\u0422\u0420\u041E\u0427\u041D\u041E \u0438 \u043E\u0431\u0441\u0443\u0434\u0438, \u043F\u0440\u0430\u0432\u043A\u0438 \u2014
36
35
  plan_edit. \u041F\u0440\u043E\u0441\u044C\u0431\u0430 \u043F\u0440\u043E \u043E\u0434\u043D\u043E \u2014 ask \u0435\u0451 \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C\u0438 \u0438\u043B\u0438 {}
37
- (\u0441\u043B\u043E\u0432\u043E, \u043E\u0433\u043E\u0432\u043E\u0440\u043A\u0430 \u2014 {"speech":{}}): \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u043D\u0430.
38
- 4. \u0421\u0442\u0438\u043B\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u2014 \u0414\u041E \xAB\u0434\u0430\xBB \u0441\u043F\u0440\u043E\u0441\u0438 \u041E\u0414\u0418\u041D \u0440\u0430\u0437, \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430\u043C\u0438 \u043F\u043E \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C
39
- (\u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044B, \u0446\u0432\u0435\u0442, \u043F\u0430\u0443\u0437\u044B, \u0441\u0432\u043E\u0439 \u0441\u0442\u0438\u043B\u044C): AskUserQuestion, \u0438\u043D\u0430\u0447\u0435 \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0441
40
- \u043D\u043E\u043C\u0435\u0440\u0430\u043C\u0438. \u0412\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435 \u2014 choose_variant(questions=[\u0440\u0430\u0437\u0434\u0435\u043B\u044B]);
41
- \u043D\u0438\u0447\u0435\u0433\u043E \u2014 variant_chosen \u0441 keep=true. \u0421\u0442\u0438\u043B\u044C \u0443\u0436\u0435 \u0441\u0432\u043E\u0439 \u2014 \u043D\u0435 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0439.
36
+ (\u0441\u043B\u043E\u0432\u043E, \u043E\u0433\u043E\u0432\u043E\u0440\u043A\u0430 \u2014 {"speech":{}}).
37
+ 4. \u0421\u0442\u0438\u043B\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u2014 \u0414\u041E \xAB\u0434\u0430\xBB \u0441\u043F\u0440\u043E\u0441\u0438 \u041E\u0414\u0418\u041D \u0440\u0430\u0437 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430\u043C\u0438 \u043F\u043E \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C
38
+ (\u0438 \u0441\u0432\u043E\u0439 \u0441\u0442\u0438\u043B\u044C): AskUserQuestion \u0438\u043B\u0438 \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0441 \u043D\u043E\u043C\u0435\u0440\u0430\u043C\u0438. \u0412\u044B\u0431\u043E\u0440 \u2014
39
+ choose_variant(questions=[\u0440\u0430\u0437\u0434\u0435\u043B\u044B]); \u043D\u0438\u0447\u0435\u0433\u043E \u2014
40
+ variant_chosen \u0441 keep=true. \u0421\u0442\u0438\u043B\u044C \u0441\u0432\u043E\u0439 \u2014 \u043D\u0435 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0439.
42
41
  5. \u0411\u0435\u0437 \xAB\u0434\u0430\xBB \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439; \u0441\u043A\u0430\u0437\u0430\u043B \u2014 plan_edit \u0441 agree, \u043F\u043E\u0442\u043E\u043C render:
43
- \u0432\u0435\u0440\u043D\u0451\u0442 \u041D\u041E\u041C\u0415\u0420 \u0417\u0410\u0414\u0410\u0427\u0418, \u0436\u0434\u0438 wait, \u043F\u0435\u0440\u0435\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439 \u0448\u0430\u0433\u0438 \u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 (TaskUpdate),
44
- \u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u2014 \xAB\u0437\u0430\u0432\u0438\u0441\u043B\u043E\xBB. \u0413\u043E\u0442\u043E\u0432\u043E \u2014 preview.
45
- 6. \u041F\u0440\u0430\u0432\u043A\u0430 \u0436\u0434\u0451\u0442 \u043F\u0435\u0447\u0430\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (stamps, document/edits.md), \u0438\u043D\u0430\u0447\u0435
46
- plan_edit \u043E\u0442\u043A\u0430\u0436\u0435\u0442 \u0438 \u043F\u0440\u0438\u0448\u043B\u0451\u0442 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443.
42
+ \u0432\u0435\u0440\u043D\u0451\u0442 \u041D\u041E\u041C\u0415\u0420 \u0417\u0410\u0414\u0410\u0427\u0418, \u0436\u0434\u0438 wait. \u0413\u043E\u0442\u043E\u0432\u043E \u2014 preview.
43
+ 6. \u041F\u0440\u0430\u0432\u043A\u0430 \u0436\u0434\u0451\u0442 \u043F\u0435\u0447\u0430\u0442\u044C (stamps), \u0438\u043D\u0430\u0447\u0435 plan_edit \u043E\u0442\u043A\u0430\u0436\u0435\u0442 \u0438 \u043F\u0440\u0438\u0448\u043B\u0451\u0442 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443.
47
44
  7. \u0422\u044F\u0436\u0451\u043B\u043E\u0435 (\u0432\u044B\u0440\u0435\u0437 \u0433\u0435\u0440\u043E\u044F, \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u043D\u0438\u0435 \u0440\u0435\u0447\u0438) \u2014 \u041F\u041E \u041F\u0420\u041E\u0421\u042C\u0411\u0415, \u0432\u0435\u0441 \u0438\u0437 setup.
48
45
  \xAB\u0414\u0430\xBB, \xAB\u043E\u0431\u043D\u043E\u0432\u0438\xBB \u2014 \u041E\u0414\u0418\u041D install, \u0434\u0430\u043B\u044C\u0448\u0435 wait.
46
+ 8. \u041D\u0435\u0442 \u0433\u043E\u0442\u043E\u0432\u043E\u0433\u043E \u2014 \u0441\u0432\u043E\u0451 \u043F\u0430\u043A\u0435\u0442\u043E\u043C \u0438\u043B\u0438 \u0448\u0430\u0433\u043E\u043C \u0432 \u043F\u0430\u043F\u043A\u0443 \u0440\u043E\u043B\u0438\u043A\u0430, \u043D\u0435
47
+ \u0441\u043A\u0440\u0438\u043F\u0442\u043E\u043C; \u0441\u0434\u0435\u043B\u0430\u043B \u2014 remember \u0438 notes.
49
48
 
49
+ \u041B\u044E\u0431\u0430\u044F \u0440\u0430\u0431\u043E\u0442\u0430, \u0438 \u0447\u0443\u0436\u0430\u044F, \u2014 \u043F\u043B\u0430\u043D \u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 (TaskUpdate);
50
+ \u043F\u0435\u0440\u0435\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439, \u0447\u0442\u043E \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0436\u0434\u0430\u0442\u044C. \u041C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u2014 \xAB\u0437\u0430\u0432\u0438\u0441\u043B\u043E\xBB.
50
51
  \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0433\u043E\u0434\u0438\u0442\u0441\u044F \u0438 \u0431\u0435\u0437 \u0440\u043E\u043B\u0438\u043A\u0430: \u043F\u0440\u0435\u0437\u0435\u043D\u0442\u0430\u0446\u0438\u044F.
51
- \u041D\u0435 \u0432\u044B\u0434\u0443\u043C\u044B\u0432\u0430\u0439; \u0432\u0440\u0435\u043C\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430; \u043A\u0430\u043A \u0443\u0441\u0442\u0440\u043E\u0435\u043D\u043E \u2014 \u043D\u0435 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439.
52
+ \u041D\u0435 \u0432\u044B\u0434\u0443\u043C\u044B\u0432\u0430\u0439; \u0432\u0440\u0435\u043C\u044F \u2014 \u043E\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430; \u043A\u0430\u043A \u0443\u0441\u0442\u0440\u043E\u0435\u043D\u043E \u2014 \u043D\u0435 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439.
52
53
  `.trim();
53
54
  function notConfiguredInstructions(problem, detail) {
54
55
  const diagnosis = problem === "missing_key" ? "\u041A\u043B\u044E\u0447 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D." : `\u041A\u043B\u044E\u0447 \u0437\u0430\u0434\u0430\u043D, \u043D\u043E \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E. ${detail}`;
package/dist/index.d.ts CHANGED
@@ -1209,9 +1209,9 @@ declare class NaparnikConfigError extends NaparnikError {
1209
1209
  * годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
1210
1210
  * стоять чужое число, а обновление начнёт считать оболочку не той.
1211
1211
  */
1212
- declare const VERSION = "0.10.59";
1212
+ declare const VERSION = "0.10.63";
1213
1213
  /** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
1214
- declare const USER_AGENT = "naparnik-mcp/0.10.59";
1214
+ declare const USER_AGENT = "naparnik-mcp/0.10.63";
1215
1215
  /**
1216
1216
  * Самая старая начинка (движок монтажа), с которой эта оболочка работает.
1217
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-34J22CC4.js';
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-462VNZIW.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naparnik/mcp",
3
- "version": "0.10.59",
3
+ "version": "0.10.63",
4
4
  "description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,