zames_pro 2.73.11 → 2.75.0
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 +48 -0
- package/README.md +37 -7
- package/dist/attachments.js +6 -1
- package/dist/banner.js +71 -0
- package/dist/browser.js +84 -27
- package/dist/code-blocks.js +48 -0
- package/dist/commands.js +1 -0
- package/dist/config-live.js +53 -0
- package/dist/config.js +38 -0
- package/dist/goal.js +81 -0
- package/dist/i18n/common.js +35 -0
- package/dist/i18n/config.js +20 -0
- package/dist/i18n/deepseek.js +14 -0
- package/dist/i18n/help.js +30 -2
- package/dist/i18n/qwen.js +4 -0
- package/dist/i18n/self-review.js +8 -0
- package/dist/i18n/spinner.js +6 -0
- package/dist/index.js +487 -65
- package/dist/input/layout.js +19 -0
- package/dist/input/suggest.js +29 -1
- package/dist/input.js +14 -3
- package/dist/net-capture.js +18 -0
- package/dist/qwen-browser.js +43 -20
- package/dist/run-task.js +97 -4
- package/dist/theme.js +16 -1
- package/dist/tool-summary.js +83 -0
- package/dist/tui/ConfigMenu.js +337 -0
- package/dist/tui/ConfirmDialog.js +42 -0
- package/dist/tui/FullScreenApp.js +113 -0
- package/dist/tui/InputLine.js +318 -0
- package/dist/tui/LogView.js +48 -0
- package/dist/tui/LoginForm.js +83 -0
- package/dist/tui/SelectList.js +54 -0
- package/dist/tui/StatusBar.js +170 -0
- package/dist/tui/TextPrompt.js +41 -0
- package/dist/tui/TuiApp.js +29 -0
- package/dist/tui/TuiEditor.js +490 -0
- package/dist/tui/edit.js +317 -0
- package/dist/tui/keys.js +195 -0
- package/dist/tui/log-window.js +93 -0
- package/dist/tui/login-pure.js +20 -0
- package/dist/tui/run-config-menu.js +19 -0
- package/dist/tui/run-confirm.js +22 -0
- package/dist/tui/run-login.js +43 -0
- package/dist/tui/run-select.js +18 -0
- package/dist/tui/store.js +104 -0
- package/dist/tui/types.js +10 -0
- package/dist/tui/useMouseWheel.js +164 -0
- package/dist/tui/widgets.js +60 -0
- package/package.json +7 -3
- package/scripts/coverage-gate.mts +10 -0
- package/scripts/inline-status-driver.mts +31 -0
- package/scripts/inline-status.tsx +33 -0
- package/scripts/mouse-churn.mts +34 -0
- package/scripts/qwen-models-smoke.mts +117 -0
- package/scripts/render-demo.mts +1 -1
- package/scripts/tui-comp-shot.mts +63 -0
- package/scripts/tui-components.tsx +62 -0
- package/scripts/tui-config-driver.mts +82 -0
- package/scripts/tui-config-probe.tsx +74 -0
- package/scripts/tui-edit-driver.mts +100 -0
- package/scripts/tui-edit-probe.tsx +38 -0
- package/scripts/tui-editor-probe.tsx +24 -0
- package/scripts/tui-input-driver.mts +54 -0
- package/scripts/tui-input-shot.tsx +59 -0
- package/scripts/tui-log-driver.mts +35 -0
- package/scripts/tui-log-shot.tsx +48 -0
- package/scripts/tui-longpaste-driver.mts +56 -0
- package/scripts/tui-longpaste.tsx +35 -0
- package/scripts/tui-manyselect-shot.mts +34 -0
- package/scripts/tui-manyselect.tsx +17 -0
- package/scripts/tui-mouse-churn-probe.tsx +28 -0
- package/scripts/tui-paste-driver.mts +88 -0
- package/scripts/tui-paste-kinds.tsx +76 -0
- package/scripts/tui-pastetest.mts +38 -0
- package/scripts/tui-probe.tsx +62 -0
- package/scripts/tui-repro.tsx +64 -0
- package/scripts/tui-resize.mts +70 -0
- package/scripts/tui-scroll-driver.mts +53 -0
- package/scripts/tui-scroll-probe.tsx +46 -0
- package/scripts/tui-shot.mts +106 -0
- package/scripts/tui-status-driver.mts +24 -0
- package/scripts/tui-status-shot.tsx +27 -0
- package/scripts/tui-submit.tsx +57 -0
- package/scripts/tui-wheel-driver.mts +61 -0
- package/scripts/tui-wheel-probe.tsx +48 -0
- package/scripts/tui-widgets-driver.mts +20 -0
- package/scripts/tui-widgets.tsx +44 -0
package/dist/i18n/common.js
CHANGED
|
@@ -64,6 +64,10 @@ export const commonMessages = {
|
|
|
64
64
|
en: 'Working directory: {v}',
|
|
65
65
|
},
|
|
66
66
|
'msg.transcript': { ru: 'Транскрипт: {v}', en: 'Transcript: {v}' },
|
|
67
|
+
'msg.mouse_hint': {
|
|
68
|
+
ru: 'Мышь: колесо листает диалог (история — только стрелки), выделение текста — Shift+протяжка; PgUp/PgDn листают, Home/End — в начало/конец.',
|
|
69
|
+
en: 'Mouse: the wheel scrolls the dialog (history is arrow keys only), select text with Shift+drag; PgUp/PgDn scroll, Home/End jump to top/bottom.',
|
|
70
|
+
},
|
|
67
71
|
'msg.new_chat': { ru: 'Создаю новый чат...', en: 'Creating a new chat...' },
|
|
68
72
|
'msg.new_chat_ok': { ru: 'Новый чат.', en: 'New chat.' },
|
|
69
73
|
'msg.resuming': {
|
|
@@ -80,6 +84,10 @@ export const commonMessages = {
|
|
|
80
84
|
},
|
|
81
85
|
'msg.chat_opened': { ru: 'Чат открыт.', en: 'Chat opened.' },
|
|
82
86
|
'msg.version': { ru: 'Версия: {v}', en: 'Version: {v}' },
|
|
87
|
+
'msg.banner_hint': {
|
|
88
|
+
ru: 'задачу — Enter · команды — /help · выход — /exit',
|
|
89
|
+
en: 'task — Enter · commands — /help · exit — /exit',
|
|
90
|
+
},
|
|
83
91
|
'msg.interactive': {
|
|
84
92
|
ru: 'Интерактивный режим. Введите задачу. Команды — /help. Выход — /exit.',
|
|
85
93
|
en: 'Interactive mode. Enter a task. Commands — /help. Exit — /exit.',
|
|
@@ -112,6 +120,9 @@ export const commonMessages = {
|
|
|
112
120
|
ru: 'Разрешить выполнение?',
|
|
113
121
|
en: 'Allow this call?',
|
|
114
122
|
},
|
|
123
|
+
'perm.title': { ru: 'Подтверждение', en: 'Confirmation' },
|
|
124
|
+
'confirm.yes': { ru: 'Да', en: 'Yes' },
|
|
125
|
+
'confirm.no': { ru: 'Нет', en: 'No' },
|
|
115
126
|
'perm.ask_sub': {
|
|
116
127
|
ru: '⚠ Субагент запрашивает подтверждение: {tool} ({reason})',
|
|
117
128
|
en: '⚠ Subagent approval required: {tool} ({reason})',
|
|
@@ -239,6 +250,30 @@ export const commonMessages = {
|
|
|
239
250
|
ru: 'Не удалось скопировать (нет {tool} или он недоступен).',
|
|
240
251
|
en: 'Could not copy ({tool} missing or unavailable).',
|
|
241
252
|
},
|
|
253
|
+
'copy.no_code': {
|
|
254
|
+
ru: 'В последнем ответе нет блоков кода.',
|
|
255
|
+
en: 'The last answer has no code blocks.',
|
|
256
|
+
},
|
|
257
|
+
'copy.bad_index': {
|
|
258
|
+
ru: 'Нет блока кода #{n}.',
|
|
259
|
+
en: 'No code block #{n}.',
|
|
260
|
+
},
|
|
261
|
+
'copy.code_hint': {
|
|
262
|
+
ru: 'блок кода {n}/{m} · Ctrl+Y — копировать',
|
|
263
|
+
en: 'code block {n}/{m} · Ctrl+Y to copy',
|
|
264
|
+
},
|
|
265
|
+
'copy_code.usage': {
|
|
266
|
+
ru: 'Использование: /copy-code [номер] — копировать блок кода последнего ответа (по умолчанию последний). /copy-code list — список.',
|
|
267
|
+
en: 'Usage: /copy-code [n] — copy a code block from the last answer (default: the last). /copy-code list — list them.',
|
|
268
|
+
},
|
|
269
|
+
'copy_code.list': {
|
|
270
|
+
ru: 'Блоки кода последнего ответа:',
|
|
271
|
+
en: 'Code blocks in the last answer:',
|
|
272
|
+
},
|
|
273
|
+
'copy_code.item': {
|
|
274
|
+
ru: ' #{n} {lang} — {lines} стр.',
|
|
275
|
+
en: ' #{n} {lang} — {lines} lines',
|
|
276
|
+
},
|
|
242
277
|
'retry.running': { ru: 'Повторяю задачу…', en: 'Retrying the task...' },
|
|
243
278
|
'rename.usage': {
|
|
244
279
|
ru: 'Использование: /rename <title>',
|
package/dist/i18n/config.js
CHANGED
|
@@ -32,6 +32,18 @@ export const configMessages = {
|
|
|
32
32
|
ru: 'Ширина контента в колонках: ответы, ввод, инструменты (0 — авто, до 100)',
|
|
33
33
|
en: 'Content width in columns: answers, input, tools (0 = auto, capped at 100)',
|
|
34
34
|
},
|
|
35
|
+
'cfg.f.ui_tui': {
|
|
36
|
+
ru: 'Современный TUI (Ink/React) для ввода и статуса',
|
|
37
|
+
en: 'Modern TUI (Ink/React) for input and status',
|
|
38
|
+
},
|
|
39
|
+
'cfg.f.ui_alternateScreen': {
|
|
40
|
+
ru: 'Полноэкранный режим TUI (альтернативный экран)',
|
|
41
|
+
en: 'Full-screen TUI mode (alternate screen)',
|
|
42
|
+
},
|
|
43
|
+
'cfg.f.ui_mouseScroll': {
|
|
44
|
+
ru: 'Прокрутка лога колесом мыши (выделение текста — Shift+протяжка)',
|
|
45
|
+
en: 'Mouse-wheel log scrolling (select text with Shift+drag)',
|
|
46
|
+
},
|
|
35
47
|
'cfg.f.maxIterations': {
|
|
36
48
|
ru: 'Лимит итераций на задачу',
|
|
37
49
|
en: 'Max agent loop iterations per task',
|
|
@@ -200,4 +212,12 @@ export const configMessages = {
|
|
|
200
212
|
ru: 'Использование: /config lang <ru|en>',
|
|
201
213
|
en: 'Usage: /config lang <ru|en>',
|
|
202
214
|
},
|
|
215
|
+
'cfg.provider_restart': {
|
|
216
|
+
ru: '⚠ Провайдер изменится только после перезапуска (для смены на лету используйте /provider).',
|
|
217
|
+
en: '⚠ Provider changes only after a restart (use /provider to switch live).',
|
|
218
|
+
},
|
|
219
|
+
'cfg.restart_required': {
|
|
220
|
+
ru: 'Этот параметр применится после перезапуска.',
|
|
221
|
+
en: 'This setting takes effect after a restart.',
|
|
222
|
+
},
|
|
203
223
|
};
|
package/dist/i18n/deepseek.js
CHANGED
|
@@ -104,6 +104,20 @@ export const deepseekMessages = {
|
|
|
104
104
|
ru: 'Логин DeepSeek (телефон/email): ',
|
|
105
105
|
en: 'DeepSeek login (phone/email): ',
|
|
106
106
|
},
|
|
107
|
+
// Ink login form (TUI). Kept separate from auth.prompt_* (the readline
|
|
108
|
+
// prompts) so the TUI can be translated without touching the fallback.
|
|
109
|
+
'auth.form.title': { ru: 'Вход в DeepSeek', en: 'DeepSeek sign-in' },
|
|
110
|
+
'auth.form.login': { ru: 'Логин', en: 'Login' },
|
|
111
|
+
'auth.form.password': { ru: 'Пароль', en: 'Password' },
|
|
112
|
+
'auth.form.need_user': { ru: 'Введите логин.', en: 'Enter the login.' },
|
|
113
|
+
'auth.form.need_pass': { ru: 'Введите пароль.', en: 'Enter the password.' },
|
|
114
|
+
'auth.form.hint_field': { ru: 'поле', en: 'field' },
|
|
115
|
+
'auth.form.hint_submit': { ru: 'войти', en: 'sign in' },
|
|
116
|
+
'auth.form.hint_cancel': { ru: 'отмена', en: 'cancel' },
|
|
117
|
+
'auth.form.note_saved': {
|
|
118
|
+
ru: 'Enter — использовать сохранённые логин и пароль.',
|
|
119
|
+
en: 'Enter — use the saved login and password.',
|
|
120
|
+
},
|
|
107
121
|
'auth.prompt_password': {
|
|
108
122
|
ru: 'Пароль DeepSeek: ',
|
|
109
123
|
en: 'DeepSeek password: ',
|
package/dist/i18n/help.js
CHANGED
|
@@ -97,6 +97,14 @@ export const helpMessages = {
|
|
|
97
97
|
ru: 'Esc, Ctrl+C прервать текущую генерацию',
|
|
98
98
|
en: 'Esc, Ctrl+C abort current generation',
|
|
99
99
|
},
|
|
100
|
+
'help.key.scroll': {
|
|
101
|
+
ru: 'PgUp / PgDn листать диалог (Home/End — в начало/конец) [full-screen]',
|
|
102
|
+
en: 'PgUp / PgDn scroll the dialog (Home/End — top/bottom) [full-screen]',
|
|
103
|
+
},
|
|
104
|
+
'help.key.wheel': {
|
|
105
|
+
ru: 'колесо мыши скролл диалога; выделение — Shift+протяжка',
|
|
106
|
+
en: 'mouse wheel scroll the dialog; select text with Shift+drag',
|
|
107
|
+
},
|
|
100
108
|
'help.key.bang': {
|
|
101
109
|
ru: '!команда выполнить shell-команду напрямую (мимо модели)',
|
|
102
110
|
en: '!command run a shell command directly (bypass the model)',
|
|
@@ -197,6 +205,10 @@ export const helpMessages = {
|
|
|
197
205
|
ru: '/copy скопировать последний ответ в буфер обмена',
|
|
198
206
|
en: '/copy copy the last answer to the clipboard',
|
|
199
207
|
},
|
|
208
|
+
'help.cmd.copy_code': {
|
|
209
|
+
ru: '/copy-code [номер] копировать блок кода из последнего ответа (Ctrl+Y)',
|
|
210
|
+
en: '/copy-code [n] copy a code block from the last answer (Ctrl+Y)',
|
|
211
|
+
},
|
|
200
212
|
'help.cmd.cost': { ru: '/cost статистика сессии', en: '/cost session stats' },
|
|
201
213
|
'help.cmd.export': {
|
|
202
214
|
ru: '/export [file] выгрузить сессию в Markdown',
|
|
@@ -283,8 +295,8 @@ export const helpMessages = {
|
|
|
283
295
|
en: '/web [on|off] toggle Smart search (works while the agent is busy)',
|
|
284
296
|
},
|
|
285
297
|
'help.cmd.goal': {
|
|
286
|
-
ru: '/goal
|
|
287
|
-
en: '/goal
|
|
298
|
+
ru: '/goal <условие> задать условие завершения; агент работает, пока оно не выполнено (снимается автоматически)',
|
|
299
|
+
en: '/goal <condition> set a completion condition; the agent works until it is met (auto-cleared)',
|
|
288
300
|
},
|
|
289
301
|
'help.cmd.plan': {
|
|
290
302
|
ru: '/plan [on|off] режим плана: только чтение, без правок и команд',
|
|
@@ -367,6 +379,22 @@ export const helpMessages = {
|
|
|
367
379
|
ru: '🎯 Цель сессии очищена.',
|
|
368
380
|
en: '🎯 Session goal cleared.',
|
|
369
381
|
},
|
|
382
|
+
'goal.met': {
|
|
383
|
+
ru: '✅ Цель достигнута — цель снята автоматически. {reason}',
|
|
384
|
+
en: '✅ Goal met — goal cleared automatically. {reason}',
|
|
385
|
+
},
|
|
386
|
+
'goal.impossible': {
|
|
387
|
+
ru: '⛔ Цель недостижима — снята. {reason}',
|
|
388
|
+
en: '⛔ Goal judged impossible — cleared. {reason}',
|
|
389
|
+
},
|
|
390
|
+
'goal.progress': {
|
|
391
|
+
ru: '◷ Цель пока не достигнута: {reason}',
|
|
392
|
+
en: '◷ Goal not yet met: {reason}',
|
|
393
|
+
},
|
|
394
|
+
'goal.turn_budget': {
|
|
395
|
+
ru: '⏹️ Цель остановлена после {n} авто-ходов (лимит). Уточните условие или /goal clear.',
|
|
396
|
+
en: '⏹️ Goal stopped after {n} auto-turns (budget). Refine the condition or /goal clear.',
|
|
397
|
+
},
|
|
370
398
|
'toggle.thinking': { ru: 'Размышление', en: 'Deep thinking' },
|
|
371
399
|
'toggle.search': { ru: 'Поиск в интернете', en: 'Smart search' },
|
|
372
400
|
'toggle.set': { ru: '{name}: {state}', en: '{name}: {state}' },
|
package/dist/i18n/qwen.js
CHANGED
|
@@ -46,6 +46,10 @@ export const qwenMessages = {
|
|
|
46
46
|
ru: 'Доступные модели Qwen:\n{v}',
|
|
47
47
|
en: 'Available Qwen models:\n{v}',
|
|
48
48
|
},
|
|
49
|
+
'qwen.model_pick_title': {
|
|
50
|
+
ru: 'Выбор модели Qwen',
|
|
51
|
+
en: 'Select a Qwen model',
|
|
52
|
+
},
|
|
49
53
|
'qwen.model_error': {
|
|
50
54
|
ru: 'Не удалось получить список моделей Qwen: {v}',
|
|
51
55
|
en: 'Failed to fetch the Qwen model list: {v}',
|
package/dist/i18n/self-review.js
CHANGED
|
@@ -108,6 +108,10 @@ export const selfReviewMessages = {
|
|
|
108
108
|
ru: 'Последние чаты DeepSeek:',
|
|
109
109
|
en: 'Recent DeepSeek chats:',
|
|
110
110
|
},
|
|
111
|
+
'chats.pick_title': {
|
|
112
|
+
ru: 'Выберите чат (↑/↓, Enter — открыть, Esc — отмена)',
|
|
113
|
+
en: 'Pick a chat (↑/↓, Enter to open, Esc to cancel)',
|
|
114
|
+
},
|
|
111
115
|
'chats.use_resume': {
|
|
112
116
|
ru: '\nИспользуй /resume <n> для продолжения.\n',
|
|
113
117
|
en: '\nUse /resume <n> to continue.\n',
|
|
@@ -186,6 +190,10 @@ export const selfReviewMessages = {
|
|
|
186
190
|
ru: 'Восстановить: /resume-id <id> (полный id) или /resume <n> после /chats.',
|
|
187
191
|
en: 'Restore: /resume-id <id> (full id) or /resume <n> after /chats.',
|
|
188
192
|
},
|
|
193
|
+
'sessions.pick_title': {
|
|
194
|
+
ru: 'Выберите сессию (↑/↓, Enter — открыть, Esc — отмена)',
|
|
195
|
+
en: 'Pick a session (↑/↓, Enter to open, Esc to cancel)',
|
|
196
|
+
},
|
|
189
197
|
'sessions.resume_id_usage': {
|
|
190
198
|
ru: 'Использование: /resume-id <chat id>',
|
|
191
199
|
en: 'Usage: /resume-id <chat id>',
|
package/dist/i18n/spinner.js
CHANGED
|
@@ -24,6 +24,12 @@ export const spinnerMessages = {
|
|
|
24
24
|
en: '(Ctrl+N/Ctrl+P to page, Tab to insert)',
|
|
25
25
|
},
|
|
26
26
|
'editor.answer': { ru: '● Ответ', en: '● Answer' },
|
|
27
|
+
// Shown in the full-screen log viewport before the first turn, so a fresh
|
|
28
|
+
// chat is not a blank screen with no hint of what to do.
|
|
29
|
+
'editor.empty_hint': {
|
|
30
|
+
ru: 'Напишите задачу и нажмите Enter. /help — команды, Ctrl+J — новая строка.',
|
|
31
|
+
en: 'Type a task and press Enter. /help for commands, Ctrl+J for a new line.',
|
|
32
|
+
},
|
|
27
33
|
// Reverse search (Ctrl+R) status line. The query may be empty.
|
|
28
34
|
'editor.search_prompt': {
|
|
29
35
|
ru: '(обратный поиск) `{q}` — Ctrl+R дальше, Enter принять, Esc отмена',
|