zames_pro 2.73.10 → 2.74.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +13 -7
  3. package/dist/banner.js +71 -0
  4. package/dist/browser.js +84 -27
  5. package/dist/code-blocks.js +48 -0
  6. package/dist/commands.js +1 -0
  7. package/dist/config-live.js +53 -0
  8. package/dist/config.js +38 -0
  9. package/dist/goal.js +81 -0
  10. package/dist/i18n/common.js +31 -0
  11. package/dist/i18n/config.js +20 -0
  12. package/dist/i18n/deepseek.js +14 -0
  13. package/dist/i18n/help.js +22 -2
  14. package/dist/i18n/qwen.js +4 -0
  15. package/dist/i18n/self-review.js +8 -0
  16. package/dist/i18n/spinner.js +6 -0
  17. package/dist/index.js +478 -65
  18. package/dist/input/layout.js +19 -0
  19. package/dist/input/suggest.js +13 -0
  20. package/dist/input.js +14 -3
  21. package/dist/net-capture.js +18 -0
  22. package/dist/qwen-browser.js +43 -20
  23. package/dist/run-task.js +97 -4
  24. package/dist/theme.js +7 -1
  25. package/dist/tool-summary.js +83 -0
  26. package/dist/tui/ConfigMenu.js +304 -0
  27. package/dist/tui/ConfirmDialog.js +42 -0
  28. package/dist/tui/FullScreenApp.js +85 -0
  29. package/dist/tui/InputLine.js +285 -0
  30. package/dist/tui/LogView.js +48 -0
  31. package/dist/tui/LoginForm.js +83 -0
  32. package/dist/tui/SelectList.js +50 -0
  33. package/dist/tui/StatusBar.js +140 -0
  34. package/dist/tui/TextPrompt.js +41 -0
  35. package/dist/tui/TuiApp.js +28 -0
  36. package/dist/tui/TuiEditor.js +490 -0
  37. package/dist/tui/edit.js +297 -0
  38. package/dist/tui/keys.js +162 -0
  39. package/dist/tui/log-window.js +93 -0
  40. package/dist/tui/login-pure.js +20 -0
  41. package/dist/tui/run-config-menu.js +19 -0
  42. package/dist/tui/run-confirm.js +22 -0
  43. package/dist/tui/run-login.js +43 -0
  44. package/dist/tui/run-select.js +18 -0
  45. package/dist/tui/store.js +104 -0
  46. package/dist/tui/types.js +10 -0
  47. package/dist/tui/useMouseWheel.js +113 -0
  48. package/dist/tui/widgets.js +55 -0
  49. package/package.json +6 -4
  50. package/scripts/coverage-gate.mts +10 -0
  51. package/scripts/render-demo.mts +1 -1
  52. package/scripts/tui-probe.tsx +62 -0
@@ -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
@@ -197,6 +197,10 @@ export const helpMessages = {
197
197
  ru: '/copy скопировать последний ответ в буфер обмена',
198
198
  en: '/copy copy the last answer to the clipboard',
199
199
  },
200
+ 'help.cmd.copy_code': {
201
+ ru: '/copy-code [номер] копировать блок кода из последнего ответа (Ctrl+Y)',
202
+ en: '/copy-code [n] copy a code block from the last answer (Ctrl+Y)',
203
+ },
200
204
  'help.cmd.cost': { ru: '/cost статистика сессии', en: '/cost session stats' },
201
205
  'help.cmd.export': {
202
206
  ru: '/export [file] выгрузить сессию в Markdown',
@@ -283,8 +287,8 @@ export const helpMessages = {
283
287
  en: '/web [on|off] toggle Smart search (works while the agent is busy)',
284
288
  },
285
289
  'help.cmd.goal': {
286
- ru: '/goal [текст|clear] задать долгоживущую цель сессии',
287
- en: '/goal [text|clear] set a long-lived session goal',
290
+ ru: '/goal <условие> задать условие завершения; агент работает, пока оно не выполнено (снимается автоматически)',
291
+ en: '/goal <condition> set a completion condition; the agent works until it is met (auto-cleared)',
288
292
  },
289
293
  'help.cmd.plan': {
290
294
  ru: '/plan [on|off] режим плана: только чтение, без правок и команд',
@@ -367,6 +371,22 @@ export const helpMessages = {
367
371
  ru: '🎯 Цель сессии очищена.',
368
372
  en: '🎯 Session goal cleared.',
369
373
  },
374
+ 'goal.met': {
375
+ ru: '✅ Цель достигнута — цель снята автоматически. {reason}',
376
+ en: '✅ Goal met — goal cleared automatically. {reason}',
377
+ },
378
+ 'goal.impossible': {
379
+ ru: '⛔ Цель недостижима — снята. {reason}',
380
+ en: '⛔ Goal judged impossible — cleared. {reason}',
381
+ },
382
+ 'goal.progress': {
383
+ ru: '◷ Цель пока не достигнута: {reason}',
384
+ en: '◷ Goal not yet met: {reason}',
385
+ },
386
+ 'goal.turn_budget': {
387
+ ru: '⏹️ Цель остановлена после {n} авто-ходов (лимит). Уточните условие или /goal clear.',
388
+ en: '⏹️ Goal stopped after {n} auto-turns (budget). Refine the condition or /goal clear.',
389
+ },
370
390
  'toggle.thinking': { ru: 'Размышление', en: 'Deep thinking' },
371
391
  'toggle.search': { ru: 'Поиск в интернете', en: 'Smart search' },
372
392
  '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}',
@@ -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>',
@@ -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 отмена',