@naparnik/mcp 0.10.25 → 0.10.40
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 +100 -0
- package/dist/{chunk-F5B2GHZW.js → chunk-QD2NNOLZ.js} +935 -789
- package/dist/cli.js +35 -55
- package/dist/index.d.ts +25 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
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-QD2NNOLZ.js';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { realpathSync, readFileSync } from 'fs';
|
|
5
5
|
|
|
@@ -26,35 +26,28 @@ var WHAT_IS_IT = `
|
|
|
26
26
|
var HOW_MONTAGE_WORKS = `
|
|
27
27
|
\u041A\u0410\u041A \u041C\u041E\u041D\u0422\u0418\u0420\u041E\u0412\u0410\u0422\u042C
|
|
28
28
|
|
|
29
|
-
1. setup \u043F\u0435\u0440\u0432\u044B\u043C, \u0434\u043E \u0432\u0438\u0434\u0435\u043E: \u0447\u0442\u043E \u0441\u0442\u043E\u0438\u0442, \u0447\
|
|
30
|
-
\
|
|
31
|
-
2.
|
|
32
|
-
\
|
|
33
|
-
3. \
|
|
34
|
-
\
|
|
35
|
-
\
|
|
36
|
-
4. \u0421\u0442\u0438\u043B\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u2014 \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
|
|
29
|
+
1. setup \u043F\u0435\u0440\u0432\u044B\u043C, \u0434\u043E \u0432\u0438\u0434\u0435\u043E: \u0447\u0442\u043E \u0441\u0442\u043E\u0438\u0442, \u0447\u0435\u0439 \u0441\u0442\u0438\u043B\u044C \u0438 \u043E\u0433\u043B\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0421\u041F\u0420\u0410\u0412\u041E\u0427\u041D\u0418\u041A\u0410
|
|
30
|
+
\u041C\u041E\u041D\u0422\u0410\u0416\u0401\u0420\u0410. \u0427\u0442\u043E \u0443\u043C\u0435\u0435\u0442 \u043C\u043E\u043D\u0442\u0430\u0436 \u2014 \u0438\u0437 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430, \u043D\u0435 \u0438\u0437 \u043F\u0430\u043C\u044F\u0442\u0438.
|
|
31
|
+
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 \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430\u043C\u0438 \u043F\u0440\u043E\u0447\u0442\u0438 plan \u0441 read
|
|
32
|
+
\u0414\u041E \u043E\u0442\u0432\u0435\u0442\u0430.
|
|
33
|
+
3. plan \u0441 video \u2014 \u0427\u0415\u0420\u041D\u041E\u0412\u0418\u041A: \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0438 \u043F\u0435\u0440\u0435\u0441\u043A\u0430\u0437. \u041F\u0435\u0440\u0435\u0441\u043A\u0430\u0436\u0438 \u041F\u041E\u0421\u0422\u0420\u041E\u0427\u041D\u041E \u0438
|
|
34
|
+
\u043E\u0431\u0441\u0443\u0434\u0438, \u043F\u0440\u0430\u0432\u043A\u0438 \u2014 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 {}
|
|
35
|
+
(\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.
|
|
36
|
+
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
|
|
37
37
|
(\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, \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0441
|
|
38
|
-
\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])
|
|
39
|
-
\
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \xAB\u0437\u0430\u0432\u0438\u0441\u043B\u043E\xBB
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
\u0432\u0435\u0440\u0441\u0438\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442), \u0434\u0430\u043B\u044C\u0448\u0435 plan_edit \u0441\u043E step; \u043A\u0430\u043A \u2014 \u0432 \u0441\u043A\u0438\u043B\u043B\u0435 builder.
|
|
48
|
-
\u0422\u043E\u043B\u044C\u043A\u043E \u043F\u0430\u0443\u0437\u044B \u2014 render \u0441 only_pauses.
|
|
49
|
-
7. \u0422\u044F\u0436\u0451\u043B\u043E\u0435 (\u0432\u044B\u0440\u0435\u0437 \u0433\u0435\u0440\u043E\u044F, \u0447\u0438\u0441\u0442\u043A\u0430 \u0433\u043E\u043B\u043E\u0441\u0430, \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u043D\u0438\u0435 \u0440\u0435\u0447\u0438) \u2014 \u041F\u041E
|
|
50
|
-
\u041F\u0420\u041E\u0421\u042C\u0411\u0415: \u043D\u0430\u0437\u043E\u0432\u0438 \u0432\u0435\u0441 \u0438\u0437 setup, \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB setup \u0441 consent=true. \u0422\u0430\u043A \u0436\u0435
|
|
51
|
-
\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F, \u0432 \u0441\u0438\u043B\u0435 \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430.
|
|
38
|
+
\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]);
|
|
39
|
+
\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.
|
|
40
|
+
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:
|
|
41
|
+
\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),
|
|
42
|
+
\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \xAB\u0437\u0430\u0432\u0438\u0441\u043B\u043E\xBB. \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 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (stamps, document/edits.md):
|
|
44
|
+
\u0431\u0435\u0437 \u043D\u0435\u0451 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.
|
|
45
|
+
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: \u043D\u0430\u0437\u043E\u0432\u0438 \u0432\u0435\u0441
|
|
46
|
+
\u0438\u0437 setup, \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB setup \u0441 consent=true.
|
|
52
47
|
|
|
53
|
-
\u0421\
|
|
54
|
-
\u0434\
|
|
55
|
-
|
|
56
|
-
\u041D\u0435 \u0432\u044B\u0434\u0443\u043C\u044B\u0432\u0430\u0439, \u0447\u0442\u043E \u0443\u043C\u0435\u0435\u0442 \u043C\u043E\u043D\u0442\u0430\u0436, \u0432\u0440\u0435\u043C\u044F \u043D\u0430\u0437\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430.
|
|
57
|
-
\u041A\u0430\u043A \u0443\u0441\u0442\u0440\u043E\u0435\u043D\u043E \u0432\u043D\u0443\u0442\u0440\u0438, \u043D\u0435 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439. \u041B\u0435\u043D\u0442\u0430 \u0438 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0438 \u0443\u0431\u0440\u0430\u043D\u044B.
|
|
48
|
+
\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.
|
|
49
|
+
\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.
|
|
50
|
+
\u041A\u0430\u043A \u0443\u0441\u0442\u0440\u043E\u0435\u043D\u043E \u0432\u043D\u0443\u0442\u0440\u0438, \u043D\u0435 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439.
|
|
58
51
|
`.trim();
|
|
59
52
|
function notConfiguredInstructions(problem, detail) {
|
|
60
53
|
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}`;
|
|
@@ -97,33 +90,22 @@ ${HOW_MONTAGE_WORKS}
|
|
|
97
90
|
\u041C\u043E\u043D\u0442\u0430\u0436 \u041D\u0415 \u0442\u0440\u0430\u0442\u0438\u0442 \u043D\u0438 \u0431\u0430\u043B\u0430\u043D\u0441, \u043D\u0438 \u0442\u043E\u043A\u0435\u043D\u044B.
|
|
98
91
|
`.trim();
|
|
99
92
|
}
|
|
93
|
+
var HOST_CUT = 2048;
|
|
94
|
+
var BASE_CHARS = 1500;
|
|
95
|
+
var NEWS_SEPARATOR = "\n\n";
|
|
96
|
+
var NEWS_LIMIT = Math.floor((HOST_CUT - BASE_CHARS - 2 * NEWS_SEPARATOR.length) / 2);
|
|
100
97
|
function aboutNewPayload(ownDir, fresh, megabytes) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
${ownDir === null ? "\u0414\u0432\u0438\u0436\u043E\u043A \u0435\u0449\u0451 \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" : `\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 ${ownDir}`}, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 ${fresh} (${megabytes.toFixed(1)} \u041C\u0411).
|
|
105
|
-
\u0421\u0430\u043C\u0430 \u043E\u043D\u0430 \u043D\u0435 \u0441\u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F. \u041A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u043E \u043C\u043E\u043D\u0442\u0430\u0436\u0435,
|
|
106
|
-
\u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043E\u0434\u043D\u043E\u0439 \u0444\u0440\u0430\u0437\u043E\u0439 \u0438 \u0441\u043F\u0440\u043E\u0441\u0438, \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u043B\u0438; \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0442\u0441\u044F \u2014 \u0437\u043E\u0432\u0438
|
|
107
|
-
setup \u0441 what=engine \u0438 consent=true. \u041D\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0439 \u043C\u043E\u043B\u0447\u0430 \u0438 \u043D\u0435 \u0431\u0440\u043E\u0441\u0430\u0439 \u0440\u0430\u0434\u0438 \u044D\u0442\u043E\u0433\u043E \u0435\u0433\u043E
|
|
108
|
-
\u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443: \u0441\u0442\u0430\u0440\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043A\u0430\u043A \u0440\u0430\u0431\u043E\u0442\u0430\u043B\u0430.
|
|
109
|
-
`.trim();
|
|
98
|
+
const now = ownDir === null ? "\u0434\u0432\u0438\u0436\u043E\u043A \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" : `\u0441\u0442\u043E\u0438\u0442 ${ownDir}`;
|
|
99
|
+
return `\u0412\u042B\u0428\u041B\u0410 \u041D\u041E\u0412\u0410\u042F \u0412\u0415\u0420\u0421\u0418\u042F \u0414\u0412\u0418\u0416\u041A\u0410: ${now}, \u0435\u0441\u0442\u044C ${fresh} (${megabytes.toFixed(1)} \u041C\u0411). \u0421\u0430\u043C\u0430 \u043D\u0435 \u0441\u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F. \u0417\u0430\u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u043E \u043C\u043E\u043D\u0442\u0430\u0436\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043E\u0434\u043D\u043E\u0439 \u0444\u0440\u0430\u0437\u043E\u0439 \u0438 \u0441\u043F\u0440\u043E\u0441\u0438; \xAB\u0434\u0430\xBB \u2014 setup \u0441 what=engine \u0438 consent=true. \u041C\u043E\u043B\u0447\u0430 \u043D\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0439 \u0438 \u0435\u0433\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0431\u0440\u043E\u0441\u0430\u0439.`;
|
|
110
100
|
}
|
|
111
101
|
function aboutNewShell(installed, fresh, notes) {
|
|
112
|
-
|
|
113
|
-
\
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
${notes}
|
|
120
|
-
`}
|
|
121
|
-
\u0421\u0430\u043C\u0430 \u043E\u043D\u0430 \u043D\u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F. \u041A\u043E\u0433\u0434\u0430 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u043E \u043C\u043E\u043D\u0442\u0430\u0436\u0435, \u0441\u043A\u0430\u0436\u0438
|
|
122
|
-
\u043E\u0431 \u044D\u0442\u043E\u043C \u043E\u0434\u043D\u043E\u0439 \u0444\u0440\u0430\u0437\u043E\u0439 \u0438 \u0441\u043F\u0440\u043E\u0441\u0438, \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u043B\u0438; \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0442\u0441\u044F \u2014 \u0437\u043E\u0432\u0438 setup \u0441
|
|
123
|
-
what=shell \u0438 consent=true. \u041D\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0439 \u043C\u043E\u043B\u0447\u0430 \u0438 \u043D\u0435 \u0431\u0440\u043E\u0441\u0430\u0439 \u0440\u0430\u0434\u0438 \u044D\u0442\u043E\u0433\u043E \u0435\u0433\u043E \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443.
|
|
124
|
-
\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u0441\u0442\u0443\u043F\u0438\u0442 \u0432 \u0441\u0438\u043B\u0443 \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u041A\u043B\u043E\u0434\u0430 \u0438\u043B\u0438 Codex \u2014 \u0441\u043A\u0430\u0436\u0438 \u0438 \u044D\u0442\u043E, \u0438\u043D\u0430\u0447\u0435
|
|
125
|
-
\u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0440\u0435\u0448\u0438\u0442, \u0447\u0442\u043E \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u043E.
|
|
126
|
-
`.trim();
|
|
102
|
+
const head = `\u0412\u042B\u0428\u041B\u0410 \u041D\u041E\u0412\u0410\u042F \u0412\u0415\u0420\u0421\u0418\u042F \u0420\u0410\u0421\u0428\u0418\u0420\u0415\u041D\u0418\u042F: \u0441\u0442\u043E\u0438\u0442 ${installed}, \u0432\u044B\u0448\u043B\u0430 ${fresh}, \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0441\u044E\u0434\u0430.`;
|
|
103
|
+
const tail = "\u0417\u0430\u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u043E \u043C\u043E\u043D\u0442\u0430\u0436\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043E\u0434\u043D\u043E\u0439 \u0444\u0440\u0430\u0437\u043E\u0439 \u0438 \u0441\u043F\u0440\u043E\u0441\u0438; \xAB\u0434\u0430\xBB \u2014 setup \u0441 what=shell \u0438 consent=true. \u0412 \u0441\u0438\u043B\u0435 \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u041A\u043B\u043E\u0434\u0430 \u0438\u043B\u0438 Codex \u2014 \u0441\u043A\u0430\u0436\u0438 \u0438 \u044D\u0442\u043E.";
|
|
104
|
+
if (notes === null || notes.trim() === "") return `${head} ${tail}`;
|
|
105
|
+
const room = NEWS_LIMIT - head.length - tail.length - " \u0427\u0442\u043E \u043D\u043E\u0432\u043E\u0433\u043E: . ".length;
|
|
106
|
+
const said = notes.replace(/\s+/g, " ").trim();
|
|
107
|
+
const cut = said.length <= room ? said : `${said.slice(0, Math.max(0, room - 1)).trimEnd()}\u2026`;
|
|
108
|
+
return `${head} \u0427\u0442\u043E \u043D\u043E\u0432\u043E\u0433\u043E: ${cut}. ${tail}`;
|
|
127
109
|
}
|
|
128
110
|
|
|
129
111
|
// src/auto-install.ts
|
|
@@ -419,9 +401,7 @@ async function start() {
|
|
|
419
401
|
]);
|
|
420
402
|
const news = [aboutUpdate, aboutShell].filter((one) => one !== null);
|
|
421
403
|
const server = new McpServer(void 0, {
|
|
422
|
-
instructions: news.length === 0 ? basics : `${basics}
|
|
423
|
-
|
|
424
|
-
${news.join("\n\n")}`,
|
|
404
|
+
instructions: news.length === 0 ? basics : `${basics}${NEWS_SEPARATOR}${news.join(NEWS_SEPARATOR)}`,
|
|
425
405
|
// ⚠ ПРЕДСТАВЛЯЕМСЯ СВОИМ ИМЕНЕМ, А НЕ ИМЕНЕМ ЯДРА. В Claude Desktop имя
|
|
426
406
|
// берётся из манифеста расширения и подмена незаметна, а в Codex человек
|
|
427
407
|
// видит ровно это — и читал «@naparnik/super-agent-core 0.1.0» вместо
|
package/dist/index.d.ts
CHANGED
|
@@ -631,6 +631,14 @@ declare const INSTALL_STEPS: string[];
|
|
|
631
631
|
interface PackPassport {
|
|
632
632
|
'name': string;
|
|
633
633
|
'title': string;
|
|
634
|
+
/**
|
|
635
|
+
* ⚠ ПОЛЕ ЛЖЁТ: С ПАКЕТА Б1.17 ДВИЖОК ЕГО НЕ ПЕЧАТАЕТ. Вход пака `scripts/edit.py`
|
|
636
|
+
* снесён вместе со старым путём, и `pack-description` (`run/pack_passport.py`,
|
|
637
|
+
* `as_json`) поля `entry` больше не отдаёт: здесь всегда `undefined`. Читает
|
|
638
|
+
* его только мёртвый `startMontage` (`tool-kit.ts`). Снять поле, его читателя и
|
|
639
|
+
* подставу `PACK.entry` в фикстурах тестов — хвост Б1.17 в плане
|
|
640
|
+
* (`docs/plan/one-project-plan.md`, «Ход Б1.17»). Не верь типу до той правки.
|
|
641
|
+
*/
|
|
634
642
|
'entry': string;
|
|
635
643
|
'stages': string[];
|
|
636
644
|
'models': string[];
|
|
@@ -965,6 +973,14 @@ declare function fileOrRefusal(candidate: string): {
|
|
|
965
973
|
* хватает» или «задача не удалась» — это НОРМАЛЬНЫЙ ответ, а не сбой
|
|
966
974
|
* инструмента: подай его ошибкой, и нейросеть начнёт извиняться вместо того,
|
|
967
975
|
* чтобы доставить недостающее.
|
|
976
|
+
*
|
|
977
|
+
* ⚠ ТРАССИРОВКА ПИТОНА ИДЁТ ДАЛЬШЕ ЦЕЛИКОМ, И ЭТО НЕ НЕДОСМОТР. Отказ
|
|
978
|
+
* инструмента разбирает ловушка поломок (`crash-report.ts`, `withCrashReport`
|
|
979
|
+
* на каждом инструменте): по трассировке она шлёт нам отчёт, а человеку
|
|
980
|
+
* отдаёт слова «сломалось на нашей стороне». Сверни трассировку здесь — и
|
|
981
|
+
* отчёта не будет (`tool-registry.test.ts`, «движок упал трейсбеком»).
|
|
982
|
+
* Сворачивают её только те, чей текст ловушка не должна подменять, —
|
|
983
|
+
* `commandWords` в `update.ts`.
|
|
968
984
|
*/
|
|
969
985
|
declare function parseFailure(err: unknown, fallback: string): CommandOutcome;
|
|
970
986
|
/** Последняя непустая строка вывода — там, где команда печатает результат. */
|
|
@@ -1518,9 +1534,9 @@ declare class NaparnikConfigError extends NaparnikError {
|
|
|
1518
1534
|
* годится ли она для новой начинки: разойдись она с пакетом, и в логах будет
|
|
1519
1535
|
* стоять чужое число, а обновление начнёт считать оболочку не той.
|
|
1520
1536
|
*/
|
|
1521
|
-
declare const VERSION = "0.10.
|
|
1537
|
+
declare const VERSION = "0.10.40";
|
|
1522
1538
|
/** Как мы представляемся серверу Напарника. По нему в логах видно оболочку. */
|
|
1523
|
-
declare const USER_AGENT = "naparnik-mcp/0.10.
|
|
1539
|
+
declare const USER_AGENT = "naparnik-mcp/0.10.40";
|
|
1524
1540
|
/**
|
|
1525
1541
|
* Самая старая начинка (движок монтажа), с которой эта оболочка работает.
|
|
1526
1542
|
* Обновление начинки ниже этой версии не ставится, а выше — требует оболочки
|
|
@@ -1557,7 +1573,7 @@ declare const USER_AGENT = "naparnik-mcp/0.10.25";
|
|
|
1557
1573
|
* словами «раздача ещё не обновилась». Номер берётся из УЖЕ СОБРАННОГО
|
|
1558
1574
|
* артефакта этой волны, а не сочиняется по календарю.
|
|
1559
1575
|
*/
|
|
1560
|
-
declare const MIN_ENGINE = "2026.09.
|
|
1576
|
+
declare const MIN_ENGINE = "2026.09.24-446";
|
|
1561
1577
|
|
|
1562
1578
|
/**
|
|
1563
1579
|
* Что вышло из установки или отката — одними словами у начинки и у тела.
|
|
@@ -1606,12 +1622,18 @@ declare function parseEngineManifest(raw: unknown, from: string): ManifestOutcom
|
|
|
1606
1622
|
* Что вышло из разбора: наш объект — или причина, по которой его нет.
|
|
1607
1623
|
* Одна форма на оба указателя.
|
|
1608
1624
|
*/
|
|
1625
|
+
/**
|
|
1626
|
+
* `status` — код раздачи, когда она ответила отказом. Нужен карточке `setup`:
|
|
1627
|
+
* 401 (ключа нет или чужой) и 403 (ключ наш, подписка кончилась) человеку
|
|
1628
|
+
* говорятся разными словами, а в `why` они слиты в одну фразу для модели.
|
|
1629
|
+
*/
|
|
1609
1630
|
type Parsed<T> = {
|
|
1610
1631
|
ok: true;
|
|
1611
1632
|
manifest: T;
|
|
1612
1633
|
} | {
|
|
1613
1634
|
ok: false;
|
|
1614
1635
|
why: string;
|
|
1636
|
+
status?: number;
|
|
1615
1637
|
};
|
|
1616
1638
|
|
|
1617
1639
|
/** Умолчание: раздача прода. Одна правда с адресом API — `config.ts`. */
|
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-QD2NNOLZ.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naparnik/mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.40",
|
|
4
4
|
"description": "MCP-сервер Напарника: монтаж вертикального видео на машине пользователя — паузы, субтитры, герой на новом фоне, звук. Видео никуда не уезжает.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|