@serjm/deepseek-code 0.4.3 → 0.4.5
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 +61 -0
- package/README.md +72 -109
- package/README.ru.md +73 -109
- package/dist/api/index.d.ts +9 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +65 -2
- package/dist/api/index.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +15 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +65 -3
- package/dist/cli/interactive.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +26 -21
- package/dist/commands/index.js.map +1 -1
- package/dist/config/defaults.js +7 -7
- package/dist/config/defaults.js.map +1 -1
- package/dist/core/agent-loop.d.ts +44 -2
- package/dist/core/agent-loop.d.ts.map +1 -1
- package/dist/core/agent-loop.js +317 -102
- package/dist/core/agent-loop.js.map +1 -1
- package/dist/core/i18n.d.ts +3 -0
- package/dist/core/i18n.d.ts.map +1 -1
- package/dist/core/i18n.js +9 -0
- package/dist/core/i18n.js.map +1 -1
- package/dist/core/metrics.d.ts +3 -1
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +34 -5
- package/dist/core/metrics.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +299 -20
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/glob.d.ts.map +1 -1
- package/dist/tools/glob.js +40 -3
- package/dist/tools/glob.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +69 -13
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +91 -0
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/types.d.ts +21 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +34 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/ui/app.d.ts.map +1 -1
- package/dist/ui/app.js +229 -162
- package/dist/ui/app.js.map +1 -1
- package/dist/ui/chat-view.d.ts +24 -3
- package/dist/ui/chat-view.d.ts.map +1 -1
- package/dist/ui/chat-view.js +116 -58
- package/dist/ui/chat-view.js.map +1 -1
- package/dist/ui/input-bar.d.ts.map +1 -1
- package/dist/ui/input-bar.js +38 -4
- package/dist/ui/input-bar.js.map +1 -1
- package/dist/ui/setup-wizard.js +1 -1
- package/dist/ui/setup-wizard.js.map +1 -1
- package/dist/ui/status-bar.d.ts +5 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +10 -4
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +47 -0
- package/dist/utils/logger.js.map +1 -1
- package/package.json +3 -2
package/dist/api/index.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
-
//
|
|
2
|
+
// Retry helpers
|
|
3
3
|
const MAX_RETRY_ATTEMPTS = 3;
|
|
4
4
|
const STREAM_CHUNK_TIMEOUT_MS = 60_000;
|
|
5
|
+
export class StreamTimeoutError extends Error {
|
|
6
|
+
constructor(timeoutMs) {
|
|
7
|
+
super(`Stream timeout: no data received for ${timeoutMs / 1000}s`);
|
|
8
|
+
this.name = 'StreamTimeoutError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
5
11
|
function sleep(ms) {
|
|
6
12
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
7
13
|
}
|
|
@@ -46,13 +52,20 @@ export class DeepSeekAPI {
|
|
|
46
52
|
...buildMessages(messages),
|
|
47
53
|
];
|
|
48
54
|
const timeoutController = new AbortController();
|
|
55
|
+
let timeoutError;
|
|
49
56
|
let chunkTimer;
|
|
50
57
|
const resetChunkTimer = () => {
|
|
51
58
|
clearTimeout(chunkTimer);
|
|
52
59
|
chunkTimer = setTimeout(() => {
|
|
53
|
-
|
|
60
|
+
timeoutError = new StreamTimeoutError(STREAM_CHUNK_TIMEOUT_MS);
|
|
61
|
+
timeoutController.abort(timeoutError);
|
|
54
62
|
}, STREAM_CHUNK_TIMEOUT_MS);
|
|
55
63
|
};
|
|
64
|
+
// NOTE: user cancellation is cooperative (the agent loop drains this stream
|
|
65
|
+
// to its natural end on Ctrl+C) — we intentionally do NOT abort the request
|
|
66
|
+
// socket here. Abruptly tearing down the streaming socket mid-flight hard-
|
|
67
|
+
// crashed the process on Windows (no JS exit handlers fired). Only the
|
|
68
|
+
// chunk-timeout aborts the socket.
|
|
56
69
|
const stream = await withRetry(() => this.client.chat.completions.create({
|
|
57
70
|
model: this.model,
|
|
58
71
|
messages: fullMessages,
|
|
@@ -151,6 +164,12 @@ export class DeepSeekAPI {
|
|
|
151
164
|
};
|
|
152
165
|
}
|
|
153
166
|
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
if (timeoutError && isAbortLikeError(err)) {
|
|
169
|
+
throw timeoutError;
|
|
170
|
+
}
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
154
173
|
finally {
|
|
155
174
|
clearTimeout(chunkTimer);
|
|
156
175
|
}
|
|
@@ -228,8 +247,40 @@ export class DeepSeekAPI {
|
|
|
228
247
|
}
|
|
229
248
|
}
|
|
230
249
|
// ─── Helper functions ────────────────────────────────────────────────────────
|
|
250
|
+
/**
|
|
251
|
+
* Convert a string that contains data: URLs into ContentBlock[] for vision models.
|
|
252
|
+
* If no data: URLs found, returns the original string.
|
|
253
|
+
* Used to upgrade read_file output (images/PDF as base64) into multimodal input.
|
|
254
|
+
*/
|
|
255
|
+
export function dataUrlsToContentBlocks(text) {
|
|
256
|
+
const DATA_URL_RE = /!?\[.*?\]\(data:([^;]+);base64,([^)]+)\)/g;
|
|
257
|
+
const blocks = [];
|
|
258
|
+
let lastIndex = 0;
|
|
259
|
+
let match;
|
|
260
|
+
while ((match = DATA_URL_RE.exec(text)) !== null) {
|
|
261
|
+
if (match.index > lastIndex) {
|
|
262
|
+
blocks.push({ type: 'text', text: text.slice(lastIndex, match.index).trim() || '\n' });
|
|
263
|
+
}
|
|
264
|
+
const mime = match[1];
|
|
265
|
+
const b64 = match[2];
|
|
266
|
+
blocks.push({ type: 'image_url', image_url: { url: `data:${mime};base64,${b64}` } });
|
|
267
|
+
lastIndex = match.index + match[0].length;
|
|
268
|
+
}
|
|
269
|
+
if (blocks.length === 0)
|
|
270
|
+
return text;
|
|
271
|
+
if (lastIndex < text.length) {
|
|
272
|
+
const remaining = text.slice(lastIndex).trim();
|
|
273
|
+
if (remaining)
|
|
274
|
+
blocks.push({ type: 'text', text: remaining });
|
|
275
|
+
}
|
|
276
|
+
if (!blocks.some(b => b.type === 'text')) {
|
|
277
|
+
blocks.unshift({ type: 'text', text: 'Analyze the following image(s):' });
|
|
278
|
+
}
|
|
279
|
+
return blocks;
|
|
280
|
+
}
|
|
231
281
|
/**
|
|
232
282
|
* Build OpenAI-compatible message array from our internal ChatMessage format.
|
|
283
|
+
* Handles both string content and ContentBlock[] (for vision/multimodal models).
|
|
233
284
|
*/
|
|
234
285
|
function buildMessages(messages) {
|
|
235
286
|
return messages.map(m => {
|
|
@@ -255,6 +306,12 @@ function buildMessages(messages) {
|
|
|
255
306
|
};
|
|
256
307
|
}
|
|
257
308
|
// Content can be string or ContentBlock[] (for vision/multimodal messages)
|
|
309
|
+
if (typeof m.content === 'string') {
|
|
310
|
+
return {
|
|
311
|
+
role: m.role,
|
|
312
|
+
content: m.content,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
258
315
|
return {
|
|
259
316
|
role: m.role,
|
|
260
317
|
content: m.content,
|
|
@@ -272,4 +329,10 @@ function safeParseJSON(str) {
|
|
|
272
329
|
return {};
|
|
273
330
|
}
|
|
274
331
|
}
|
|
332
|
+
function isAbortLikeError(err) {
|
|
333
|
+
const error = err;
|
|
334
|
+
const name = String(error?.name ?? '');
|
|
335
|
+
const message = String(error?.message ?? err);
|
|
336
|
+
return name === 'AbortError' || /abort/i.test(message);
|
|
337
|
+
}
|
|
275
338
|
//# sourceMappingURL=index.js.map
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAgFA,wBAAsB,GAAG,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAgFA,wBAAsB,GAAG,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxD;AAED,wBAAgB,uBAAuB,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAExE"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { dirname, join } from 'node:path';
|
|
5
|
+
import { dirname, join, resolve } from 'node:path';
|
|
6
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = dirname(__filename);
|
|
8
8
|
// Read version from package.json
|
|
@@ -16,7 +16,7 @@ program
|
|
|
16
16
|
.argument('[query...]', 'Optional query to run in non-interactive mode')
|
|
17
17
|
.option('-p, --prompt <text>', 'Run a single prompt and exit (non-interactive)')
|
|
18
18
|
.option('-i, --prompt-interactive <text>', 'Run a prompt then continue in interactive mode')
|
|
19
|
-
.option('-m, --model <model>', 'Model to use (e.g. deepseek-
|
|
19
|
+
.option('-m, --model <model>', 'Model to use (e.g. deepseek-v4-pro)')
|
|
20
20
|
.option('-t, --turbo', 'Enable Turbo mode (auto-approve all actions)')
|
|
21
21
|
.option('--approval-mode <mode>', 'Set approval mode: plan, default, auto-edit, turbo')
|
|
22
22
|
.option('--debug', 'Enable debug logging')
|
|
@@ -80,11 +80,18 @@ export async function run(args) {
|
|
|
80
80
|
}
|
|
81
81
|
// Handle --help passed via commander's parse
|
|
82
82
|
// Commander may intercept --help before action, but we also handle it here
|
|
83
|
-
await program.parseAsync(args, { from:
|
|
83
|
+
await program.parseAsync(args, { from: getCommanderParseSource(args) });
|
|
84
|
+
}
|
|
85
|
+
export function getCommanderParseSource(args) {
|
|
86
|
+
return args.length >= 2 ? 'node' : 'user';
|
|
87
|
+
}
|
|
88
|
+
const isEntrypoint = process.argv[1]
|
|
89
|
+
? resolve(process.argv[1]) === fileURLToPath(import.meta.url)
|
|
90
|
+
: false;
|
|
91
|
+
if (isEntrypoint) {
|
|
92
|
+
run(process.argv).catch((err) => {
|
|
93
|
+
console.error('Fatal error:', err);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
});
|
|
84
96
|
}
|
|
85
|
-
// Always run when this module is loaded
|
|
86
|
-
run(process.argv).catch((err) => {
|
|
87
|
-
console.error('Fatal error:', err);
|
|
88
|
-
process.exit(1);
|
|
89
|
-
});
|
|
90
97
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AAEvC,wBAAsB,uBAAuB,CAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8IrF"}
|
package/dist/cli/interactive.js
CHANGED
|
@@ -5,6 +5,7 @@ import { ErrorBoundary } from '../ui/error-boundary.js';
|
|
|
5
5
|
import { loadConfig } from '../config/loader.js';
|
|
6
6
|
import { themeManager } from '../core/themes.js';
|
|
7
7
|
import { i18n } from '../core/i18n.js';
|
|
8
|
+
import { logCrash, logEvent, debug } from '../utils/logger.js';
|
|
8
9
|
export async function startInteractiveSession(options) {
|
|
9
10
|
const config = await loadConfig();
|
|
10
11
|
// Apply CLI theme/lang overrides
|
|
@@ -15,18 +16,72 @@ export async function startInteractiveSession(options) {
|
|
|
15
16
|
i18n.setLocale(options.lang);
|
|
16
17
|
}
|
|
17
18
|
let cleanup = null;
|
|
18
|
-
//
|
|
19
|
+
// Global crash guard: a stray rejection (e.g. fallout from aborting an
|
|
20
|
+
// in-flight API stream on Ctrl+C) must never drop the user back to the shell
|
|
21
|
+
// mid-session. Abort-like errors are expected during cancellation and ignored;
|
|
22
|
+
// anything else is recorded to ~/.deepseek-code/crash.log and the session
|
|
23
|
+
// keeps running so no work is lost.
|
|
24
|
+
const isAbortLike = (err) => {
|
|
25
|
+
const e = err;
|
|
26
|
+
return e?.name === 'AbortError' || e?.code === 'ABORT_ERR' ||
|
|
27
|
+
/abort|cancel|The operation was aborted/i.test(e?.message ?? '');
|
|
28
|
+
};
|
|
29
|
+
const onUnhandledRejection = (reason) => {
|
|
30
|
+
if (isAbortLike(reason)) {
|
|
31
|
+
debug('ignored abort-like unhandledRejection', reason);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
logCrash('unhandledRejection', reason);
|
|
35
|
+
};
|
|
36
|
+
const onUncaughtException = (err) => {
|
|
37
|
+
if (isAbortLike(err)) {
|
|
38
|
+
debug('ignored abort-like uncaughtException', err);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
logCrash('uncaughtException', err);
|
|
42
|
+
};
|
|
43
|
+
process.on('unhandledRejection', onUnhandledRejection);
|
|
44
|
+
process.on('uncaughtException', onUncaughtException);
|
|
45
|
+
// Diagnostic: log every process exit so we can see WHY the TUI dropped to the
|
|
46
|
+
// shell (clean exit vs signal). Synchronous append survives the exit.
|
|
47
|
+
const onProcessExit = (code) => logEvent('process.exit event', { code });
|
|
48
|
+
const onBeforeExit = (code) => logEvent('beforeExit (event loop drained)', { code });
|
|
49
|
+
process.on('exit', onProcessExit);
|
|
50
|
+
process.on('beforeExit', onBeforeExit);
|
|
51
|
+
logEvent('session start', { platform: process.platform, isTTY: !!process.stdout.isTTY });
|
|
52
|
+
// Keep-alive: hold one ref'd handle so the event loop never drains while the
|
|
53
|
+
// TUI is mounted. Without this, on some Windows terminals the only thing
|
|
54
|
+
// keeping Node alive during an agent turn is the in-flight network socket —
|
|
55
|
+
// so aborting it on Ctrl+C drained the loop and dropped the user to the shell
|
|
56
|
+
// instead of pausing. Cleared in cleanup so real exits still work.
|
|
57
|
+
const keepAlive = setInterval(() => { }, 1 << 30);
|
|
58
|
+
// Double Ctrl+C guard: first Ctrl+C in Ready shows hint, second within 3s exits.
|
|
19
59
|
// App registers process.__agentSoftCancel while isProcessing=true.
|
|
20
60
|
let pendingExitTimer = null;
|
|
21
61
|
const onSIGINT = () => {
|
|
22
62
|
const proc = process;
|
|
63
|
+
logEvent('SIGINT', {
|
|
64
|
+
hasSoftCancel: !!proc.__agentSoftCancel,
|
|
65
|
+
hasAbortController: !!proc.__agentAbortController,
|
|
66
|
+
pendingExit: !!proc.__pendingExit,
|
|
67
|
+
pendingExitTimer: !!pendingExitTimer,
|
|
68
|
+
});
|
|
23
69
|
// 1) Agent is running — soft cancel, never exit
|
|
24
70
|
if (proc.__agentSoftCancel) {
|
|
71
|
+
logEvent('SIGINT -> softCancel');
|
|
25
72
|
proc.__agentSoftCancel();
|
|
26
73
|
return;
|
|
27
74
|
}
|
|
75
|
+
// 1b) Fallback: __agentSoftCancel may not be set yet (useEffect race on Windows),
|
|
76
|
+
// but synchronous AbortController exists from handleSubmit
|
|
77
|
+
if (proc.__agentAbortController) {
|
|
78
|
+
logEvent('SIGINT -> abortController');
|
|
79
|
+
proc.__agentAbortController.abort();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
28
82
|
// 2) Agent just finished (pending exit flag from app.tsx) — exit immediately
|
|
29
83
|
if (proc.__pendingExit) {
|
|
84
|
+
logEvent('SIGINT -> pendingExit -> process.exit(0)');
|
|
30
85
|
proc.__pendingExit = false;
|
|
31
86
|
if (cleanup)
|
|
32
87
|
cleanup();
|
|
@@ -35,7 +90,8 @@ export async function startInteractiveSession(options) {
|
|
|
35
90
|
}
|
|
36
91
|
// 3) Ready state — double Ctrl+C guard
|
|
37
92
|
if (pendingExitTimer) {
|
|
38
|
-
// Second Ctrl+C within
|
|
93
|
+
// Second Ctrl+C within 3s — exit
|
|
94
|
+
logEvent('SIGINT -> doublePress -> process.exit(0)');
|
|
39
95
|
clearTimeout(pendingExitTimer);
|
|
40
96
|
pendingExitTimer = null;
|
|
41
97
|
if (cleanup)
|
|
@@ -43,10 +99,11 @@ export async function startInteractiveSession(options) {
|
|
|
43
99
|
process.exit(0);
|
|
44
100
|
return;
|
|
45
101
|
}
|
|
102
|
+
logEvent('SIGINT -> firstPress hint');
|
|
46
103
|
// First Ctrl+C — show hint, start timer
|
|
47
104
|
pendingExitTimer = setTimeout(() => {
|
|
48
105
|
pendingExitTimer = null;
|
|
49
|
-
},
|
|
106
|
+
}, 3000);
|
|
50
107
|
// Write hint to stderr so it appears even if TUI is rendering
|
|
51
108
|
process.stderr.write(`\n\x1b[33m⚠ ${i18n.t('ctrlCHint')}\x1b[0m\n`);
|
|
52
109
|
};
|
|
@@ -61,6 +118,7 @@ export async function startInteractiveSession(options) {
|
|
|
61
118
|
const { waitUntilExit, clear } = render(React.createElement(ErrorBoundary, null, React.createElement(App, { config, options })), { exitOnCtrlC: false } // App owns Ctrl+C: useInput handles raw-mode, onSIGINT handles signal
|
|
62
119
|
);
|
|
63
120
|
cleanup = () => {
|
|
121
|
+
clearInterval(keepAlive);
|
|
64
122
|
clear();
|
|
65
123
|
if (pendingExitTimer) {
|
|
66
124
|
clearTimeout(pendingExitTimer);
|
|
@@ -68,6 +126,10 @@ export async function startInteractiveSession(options) {
|
|
|
68
126
|
}
|
|
69
127
|
process.removeListener('SIGINT', onSIGINT);
|
|
70
128
|
process.removeListener('SIGTERM', onSIGTERM);
|
|
129
|
+
process.removeListener('unhandledRejection', onUnhandledRejection);
|
|
130
|
+
process.removeListener('uncaughtException', onUncaughtException);
|
|
131
|
+
process.removeListener('exit', onProcessExit);
|
|
132
|
+
process.removeListener('beforeExit', onBeforeExit);
|
|
71
133
|
};
|
|
72
134
|
await waitUntilExit();
|
|
73
135
|
cleanup();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAgBlD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAMnD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAChE,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACvC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAA;IAC/C,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,UAAU,GAAG,SAAS,CAAA;IACxC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK,IAAI,CAAA;CACrD;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAgBlD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAMnD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAChE,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACvC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAA;IAC/C,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,UAAU,GAAG,SAAS,CAAA;IACxC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK,IAAI,CAAA;CACrD;AAqsCD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACvE;AAED,eAAO,MAAM,QAAQ,EAAE,YAAY,EAkClC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,EAA8B,CAAA;AAEhE,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAA;AAgBD,wBAAsB,mBAAmB,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAapG"}
|
package/dist/commands/index.js
CHANGED
|
@@ -18,7 +18,7 @@ import { saveConfig } from '../config/loader.js';
|
|
|
18
18
|
import { getDefaultTools, getToolsForMode } from '../tools/registry.js';
|
|
19
19
|
import { browserTest, getLastBrowserTestResult, browserRealTest } from '../tools/chrome.js';
|
|
20
20
|
import { chromeManager } from '../tools/chrome-manager.js';
|
|
21
|
-
import { AUDIT_BUDGET_PRESET } from '../tools/types.js';
|
|
21
|
+
import { AUDIT_BUDGET_PRESET, LARGE_BUDGET_PRESET, NORMAL_BUDGET_PRESET } from '../tools/types.js';
|
|
22
22
|
import { checkLatestVersion } from './update-checker.js';
|
|
23
23
|
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
24
24
|
function generateFollowups(lastContent) {
|
|
@@ -76,7 +76,7 @@ const RU_DESCRIPTIONS = {
|
|
|
76
76
|
'/browser-real-test': 'Smoke-тест реальных сайтов',
|
|
77
77
|
'/last-browser-test': 'Показать последний отчёт browser-test',
|
|
78
78
|
'/chrome': 'Режим Chrome: --headed|--headless|-s',
|
|
79
|
-
'/budget': 'Бюджет: /budget status|off|audit|small',
|
|
79
|
+
'/budget': 'Бюджет: /budget status|off|audit|small|normal|large',
|
|
80
80
|
'/changelog': 'Показать изменения: /changelog [full|version]',
|
|
81
81
|
'/update-check': 'Проверить новую версию',
|
|
82
82
|
};
|
|
@@ -110,6 +110,7 @@ async function cmdHelp(ctx) {
|
|
|
110
110
|
lines.push('', helpLine('Tab', 'Цикл режимов: plan → default → auto-edit → turbo'));
|
|
111
111
|
lines.push('', helpLine('PageUp / PageDown', 'Прокрутка истории чата'));
|
|
112
112
|
lines.push('', helpLine('End', 'Перейти к последнему сообщению'));
|
|
113
|
+
lines.push('', helpLine('Mouse wheel', 'Не захватывается в TUI; используйте PageUp / PageDown / End'));
|
|
113
114
|
lines.push('', helpLine('Shift+Enter / Alt+Enter', 'Новая строка в поле ввода'));
|
|
114
115
|
}
|
|
115
116
|
else {
|
|
@@ -124,6 +125,7 @@ async function cmdHelp(ctx) {
|
|
|
124
125
|
lines.push('', helpLine('Tab', 'Cycle approval mode: plan → default → auto-edit → turbo'));
|
|
125
126
|
lines.push('', helpLine('PageUp / PageDown', 'Scroll chat history'));
|
|
126
127
|
lines.push('', helpLine('End', 'Jump to latest message'));
|
|
128
|
+
lines.push('', helpLine('Mouse wheel', 'Not captured in TUI; use PageUp / PageDown / End'));
|
|
127
129
|
lines.push('', helpLine('Shift+Enter / Alt+Enter', 'Insert newline in input'));
|
|
128
130
|
}
|
|
129
131
|
ctx.setMessages(prev => [...prev, { role: 'assistant', content: lines.join('\n') }]);
|
|
@@ -994,21 +996,21 @@ async function cmdBudget(ctx, input) {
|
|
|
994
996
|
const notice = ctx.addServiceNotice ?? ((text) => {
|
|
995
997
|
ctx.setMessages(prev => [...prev, { role: 'assistant', content: text }]);
|
|
996
998
|
});
|
|
999
|
+
const formatBudget = (label, budget) => [
|
|
1000
|
+
`Budget: ${label}`,
|
|
1001
|
+
`maxToolCalls: ${budget.maxToolCalls}`,
|
|
1002
|
+
`maxApiCalls: ${budget.maxApiCalls}`,
|
|
1003
|
+
`maxIterations: ${budget.maxIterations}`,
|
|
1004
|
+
`maxReadFiles: ${budget.maxReadFiles}`,
|
|
1005
|
+
`maxShellCommands: ${budget.maxShellCommands}`,
|
|
1006
|
+
].join('\n');
|
|
997
1007
|
if (sub === 'status') {
|
|
998
1008
|
const budget = ctx.getBudget?.();
|
|
999
1009
|
if (!budget) {
|
|
1000
1010
|
notice('Budget: off');
|
|
1001
1011
|
}
|
|
1002
1012
|
else {
|
|
1003
|
-
|
|
1004
|
-
const lines = [
|
|
1005
|
-
prefix,
|
|
1006
|
-
`maxToolCalls: ${budget.maxToolCalls}`,
|
|
1007
|
-
`maxApiCalls: ${budget.maxApiCalls}`,
|
|
1008
|
-
`maxReadFiles: ${budget.maxReadFiles}`,
|
|
1009
|
-
`maxShellCommands: ${budget.maxShellCommands}`,
|
|
1010
|
-
];
|
|
1011
|
-
notice(lines.join('\n'));
|
|
1013
|
+
notice(formatBudget('active', budget));
|
|
1012
1014
|
}
|
|
1013
1015
|
return true;
|
|
1014
1016
|
}
|
|
@@ -1019,17 +1021,20 @@ async function cmdBudget(ctx, input) {
|
|
|
1019
1021
|
}
|
|
1020
1022
|
if (sub === 'audit' || sub === 'small') {
|
|
1021
1023
|
ctx.setBudget?.({ ...AUDIT_BUDGET_PRESET });
|
|
1022
|
-
|
|
1023
|
-
'Budget: audit enabled',
|
|
1024
|
-
`maxToolCalls: ${AUDIT_BUDGET_PRESET.maxToolCalls}`,
|
|
1025
|
-
`maxApiCalls: ${AUDIT_BUDGET_PRESET.maxApiCalls}`,
|
|
1026
|
-
`maxReadFiles: ${AUDIT_BUDGET_PRESET.maxReadFiles}`,
|
|
1027
|
-
`maxShellCommands: ${AUDIT_BUDGET_PRESET.maxShellCommands}`,
|
|
1028
|
-
];
|
|
1029
|
-
notice(lines.join('\n'));
|
|
1024
|
+
notice(formatBudget('audit enabled', AUDIT_BUDGET_PRESET));
|
|
1030
1025
|
return true;
|
|
1031
1026
|
}
|
|
1032
|
-
|
|
1027
|
+
if (sub === 'normal') {
|
|
1028
|
+
ctx.setBudget?.({ ...NORMAL_BUDGET_PRESET });
|
|
1029
|
+
notice(formatBudget('normal enabled', NORMAL_BUDGET_PRESET));
|
|
1030
|
+
return true;
|
|
1031
|
+
}
|
|
1032
|
+
if (sub === 'large') {
|
|
1033
|
+
ctx.setBudget?.({ ...LARGE_BUDGET_PRESET });
|
|
1034
|
+
notice(formatBudget('large enabled', LARGE_BUDGET_PRESET));
|
|
1035
|
+
return true;
|
|
1036
|
+
}
|
|
1037
|
+
notice('Usage: /budget status|off|audit|small|normal|large');
|
|
1033
1038
|
return true;
|
|
1034
1039
|
}
|
|
1035
1040
|
// ─── Changelog and Update Check ──────────────────────────────────────────────
|
|
@@ -1185,7 +1190,7 @@ export const COMMANDS = [
|
|
|
1185
1190
|
{ name: '/browser-real-test', description: 'Smoke test on real websites', handler: cmdBrowserRealTest },
|
|
1186
1191
|
{ name: '/last-browser-test', description: 'Show last browser test report', handler: cmdLastBrowserTest },
|
|
1187
1192
|
{ name: '/chrome', description: 'Chrome mode: --headed|--headless|-s', handler: cmdChrome },
|
|
1188
|
-
{ name: '/budget', description: 'Budget: /budget status|off|audit|small', handler: cmdBudget },
|
|
1193
|
+
{ name: '/budget', description: 'Budget: /budget status|off|audit|small|normal|large', handler: cmdBudget },
|
|
1189
1194
|
{ name: '/changelog', description: 'Show changelog: /changelog [full|version]', handler: cmdChangelog },
|
|
1190
1195
|
{ name: '/update-check', description: 'Check latest npm version', handler: cmdUpdateCheck },
|
|
1191
1196
|
];
|