kin: KIN-108-frontend_dev

This commit is contained in:
Gros Frumos 2026-03-18 07:57:15 +02:00
parent 8b409fd7db
commit 353416ead1
16 changed files with 799 additions and 212 deletions

View file

@ -0,0 +1,229 @@
{
"common": {
"settings": "Settings",
"subtitle": "multi-agent orchestrator",
"loading": "Loading...",
"saving": "Saving...",
"saved": "Saved",
"cancel": "Cancel",
"save": "Save",
"delete": "Delete",
"close": "Close",
"error": "Error",
"yes_delete": "Yes, delete",
"add": "Add",
"create": "Create"
},
"dashboard": {
"title": "Dashboard",
"cost_this_week": "Cost this week",
"bootstrap": "Bootstrap",
"new_project": "+ New Project",
"blank": "+ Blank",
"loading": "Loading...",
"delete_confirm": "Delete project \"{name}\"? This action is irreversible.",
"delete_project_title": "Confirm delete",
"cancel_delete_title": "Cancel delete",
"task_count": "{n} tasks",
"active_tasks": "{n} active",
"awaiting_review": "{n} awaiting review",
"blocked_tasks": "{n} blocked",
"done_tasks": "{n} done",
"pending_tasks": "{n} pending",
"add_project_title": "Add Project",
"project_type_label": "Project type:",
"create_btn": "Create",
"new_project_title": "New Project — Start Research",
"project_description_placeholder": "Project description (free text for agents)",
"research_stages": "Research stages (Architect is added automatically last):",
"architect_hint": "blueprint based on approved research",
"role_error": "Select at least one role",
"start_research": "Start Research",
"starting": "Starting...",
"bootstrap_title": "Bootstrap Project",
"bootstrap_btn": "Bootstrap",
"ssh_alias_hint": "Alias from ~/.ssh/config on the Kin server",
"path_placeholder": "Path (e.g. ~/projects/myproj)",
"name_placeholder": "Name",
"id_placeholder": "ID (e.g. vdol)",
"tech_stack_placeholder": "Tech stack (comma-separated)",
"priority_placeholder": "Priority (1-10)",
"ssh_host_placeholder": "SSH host (e.g. 192.168.1.1)",
"ssh_user_placeholder": "SSH user (e.g. root)",
"ssh_key_placeholder": "Key path (e.g. ~/.ssh/id_rsa)",
"proxy_jump_placeholder": "ProxyJump (optional, e.g. jumpt)",
"path_required": "Path is required",
"ssh_host_required": "SSH host is required for operations projects",
"bootstrap_path_placeholder": "Project path (e.g. ~/projects/vdolipoperek)",
"roles": {
"business_analyst": {
"label": "Business Analyst",
"hint": "business model, audience, monetization"
},
"market_researcher": {
"label": "Market Researcher",
"hint": "competitors, niche, strengths/weaknesses"
},
"legal_researcher": {
"label": "Legal Researcher",
"hint": "jurisdiction, licenses, KYC/AML, GDPR"
},
"tech_researcher": {
"label": "Tech Researcher",
"hint": "APIs, limitations, costs, alternatives"
},
"ux_designer": {
"label": "UX Designer",
"hint": "UX analysis, user journey, wireframes"
},
"marketer": {
"label": "Marketer",
"hint": "promotion strategy, SEO, conversion patterns"
},
"architect": {
"label": "Architect"
}
}
},
"chat": {
"back_to_project": "← Project",
"chat_label": "— chat",
"loading": "Loading...",
"server_unavailable": "Server unavailable. Check your connection.",
"empty_hint": "Describe a task or ask about the project status",
"input_placeholder": "Describe a task or question... (Enter — send, Shift+Enter — newline)",
"send": "Send",
"sending": "..."
},
"settings": {
"title": "Settings",
"obsidian_vault_path": "Obsidian Vault Path",
"test_command": "Test Command",
"test_command_hint": "Test run command, executed via shell in the project directory.",
"save_test": "Save Test",
"saving_test": "Saving…",
"deploy_config": "Deploy Config",
"server_host": "Server host",
"project_path_on_server": "Project path on server",
"runtime": "Runtime",
"select_runtime": "— select runtime —",
"restart_command": "Restart command (optional override)",
"fallback_command": "Fallback command (legacy, used when runtime not set)",
"save_deploy_config": "Save Deploy Config",
"saving_deploy": "Saving…",
"project_links": "Project Links",
"add_link": "+ Add Link",
"links_loading": "Loading...",
"no_links": "No links",
"select_project": "— select project —",
"auto_test": "Auto-test",
"auto_test_hint": "— run tests automatically after pipeline",
"worktrees": "Worktrees",
"worktrees_hint": "— agents run in isolated git worktrees",
"save_vault": "Save Vault",
"saving_vault": "Saving…",
"sync_obsidian": "Sync Obsidian",
"syncing": "Syncing…",
"saving_link": "Saving...",
"cancel_link": "Cancel",
"delete_link_confirm": "Delete link?",
"select_project_error": "Select a project"
},
"taskDetail": {
"pipeline_already_running": "Pipeline already running",
"mark_resolved_confirm": "Mark task as manually resolved?",
"requires_manual": "⚠ Requires manual resolution",
"acceptance_criteria": "Acceptance criteria",
"autopilot_failed": "Autopilot could not complete this automatically. Take action manually and click \"Resolve manually\".",
"dangerously_skipped": "--dangerously-skip-permissions was used in this task",
"dangerously_skipped_hint": "The agent executed commands bypassing permission checks. Review pipeline steps and changes made.",
"loading": "Loading...",
"pipeline": "Pipeline",
"running": "running...",
"no_pipeline": "No pipeline steps yet.",
"approve_task": "✓ Approve",
"revise_task": "🔄 Revise",
"reject_task": "✗ Reject",
"edit": "✒ Edit",
"run_pipeline": "▶ Run Pipeline",
"pipeline_running": "Pipeline running...",
"deploying": "Deploying...",
"deploy": "🚀 Deploy",
"deploy_succeeded": "Deploy succeeded",
"deploy_failed": "Deploy failed",
"resolve_manually": "✓ Resolve manually",
"resolving": "Saving...",
"send_to_revision": "🔄 Send for revision",
"revise_placeholder": "What to revise or clarify...",
"autopilot_active": "Autopilot active",
"attachments": "Attachments",
"more_details": "↓ more details",
"terminal_login_hint": "Open a terminal and run:",
"login_after_hint": "After login, retry the pipeline.",
"dependent_projects": "Dependent projects:",
"decision_title_placeholder": "Decision title (optional)",
"description_placeholder": "Description",
"brief_label": "Brief",
"priority_label": "Priority (110)",
"title_label": "Title",
"acceptance_criteria_label": "Acceptance criteria",
"acceptance_criteria_placeholder": "What should the output be? What result counts as success?"
},
"projectView": {
"tasks_tab": "Tasks",
"phases_tab": "Phases",
"decisions_tab": "Decisions",
"modules_tab": "Modules",
"kanban_tab": "Kanban",
"links_tab": "Links",
"add_task": "+ Task",
"audit_backlog": "Audit backlog",
"back": "← back",
"deploy": "Deploy",
"kanban_pending": "Pending",
"kanban_in_progress": "In Progress",
"kanban_review": "Review",
"kanban_blocked": "Blocked",
"kanban_done": "Done",
"chat": "Chat",
"dependent_projects": "Dependent projects:",
"environments": "Environments",
"auto_test_label": "Auto-test",
"worktrees_on": "Worktrees: on",
"worktrees_off": "Worktrees: off",
"all_statuses": "All",
"search_placeholder": "Search tasks...",
"manual_escalations_warn": "⚠ Require manual resolution",
"comment_required": "Comment required",
"select_project": "Select project",
"delete_env_confirm": "Delete environment?",
"delete_link_confirm": "Delete link?",
"run_pipeline_confirm": "Run pipeline for {n} tasks?",
"pipeline_already_running": "Pipeline already running",
"no_tasks": "No tasks.",
"loading_phases": "Loading phases...",
"revise_modal_title": "Revise phase",
"reject_modal_title": "Reject phase",
"add_link_title": "Add link"
},
"escalation": {
"watchdog_blocked": "Watchdog: task {task_id} blocked — {reason}",
"escalations": "Escalations",
"escalations_panel_title": "Escalations — action required",
"dismiss_all": "Dismiss all",
"dismiss": "Dismiss"
},
"liveConsole": {
"hide_log": "▲ Hide log",
"show_log": "▼ Show log",
"no_records": "No records...",
"error_prefix": "Error:"
},
"attachments": {
"images_only": "Only images are supported",
"uploading": "Uploading...",
"drop_hint": "Drop an image or",
"click_to_select": "click to select",
"delete_title": "Delete"
}
}

View file

@ -0,0 +1,229 @@
{
"common": {
"settings": "Настройки",
"subtitle": "мультиагентный оркестратор",
"loading": "Загрузка...",
"saving": "Сохраняем...",
"saved": "Сохранено",
"cancel": "Отмена",
"save": "Сохранить",
"delete": "Удалить",
"close": "Закрыть",
"error": "Ошибка",
"yes_delete": "Да, удалить",
"add": "Добавить",
"create": "Создать"
},
"dashboard": {
"title": "Dashboard",
"cost_this_week": "Расходы за неделю",
"bootstrap": "Bootstrap",
"new_project": "+ Новый проект",
"blank": "+ Пустой",
"loading": "Загрузка...",
"delete_confirm": "Удалить проект «{name}»? Это действие необратимо.",
"delete_project_title": "Подтвердить удаление",
"cancel_delete_title": "Отмена удаления",
"task_count": "{n} задач",
"active_tasks": "{n} активных",
"awaiting_review": "{n} ожидают проверки",
"blocked_tasks": "{n} заблокированы",
"done_tasks": "{n} выполнены",
"pending_tasks": "{n} ожидают",
"add_project_title": "Добавить проект",
"project_type_label": "Тип проекта:",
"create_btn": "Создать",
"new_project_title": "Новый проект — Запустить исследование",
"project_description_placeholder": "Описание проекта (свободный текст для агентов)",
"research_stages": "Этапы research (Architect добавляется автоматически последним):",
"architect_hint": "blueprint на основе одобренных исследований",
"role_error": "Выберите хотя бы одну роль",
"start_research": "Запустить исследование",
"starting": "Запускаем...",
"bootstrap_title": "Bootstrap проекта",
"bootstrap_btn": "Bootstrap",
"ssh_alias_hint": "Алиас из ~/.ssh/config на сервере Kin",
"path_placeholder": "Путь (например ~/projects/myproj)",
"name_placeholder": "Название",
"id_placeholder": "ID (например vdol)",
"tech_stack_placeholder": "Стек (через запятую)",
"priority_placeholder": "Приоритет (1-10)",
"ssh_host_placeholder": "SSH хост (например 192.168.1.1)",
"ssh_user_placeholder": "SSH пользователь (например root)",
"ssh_key_placeholder": "Путь к ключу (например ~/.ssh/id_rsa)",
"proxy_jump_placeholder": "ProxyJump (опционально, например jumpt)",
"path_required": "Путь обязателен",
"ssh_host_required": "SSH хост обязателен для операционных проектов",
"bootstrap_path_placeholder": "Путь к проекту (например ~/projects/vdolipoperek)",
"roles": {
"business_analyst": {
"label": "Бизнес-аналитик",
"hint": "бизнес-модель, аудитория, монетизация"
},
"market_researcher": {
"label": "Маркет-ресёрчер",
"hint": "конкуренты, ниша, сильные/слабые стороны"
},
"legal_researcher": {
"label": "Правовой аналитик",
"hint": "юрисдикция, лицензии, KYC/AML, GDPR"
},
"tech_researcher": {
"label": "Тех-ресёрчер",
"hint": "API, ограничения, стоимость, альтернативы"
},
"ux_designer": {
"label": "UX-дизайнер",
"hint": "анализ UX конкурентов, user journey, wireframes"
},
"marketer": {
"label": "Маркетолог",
"hint": "стратегия продвижения, SEO, conversion-паттерны"
},
"architect": {
"label": "Архитектор"
}
}
},
"chat": {
"back_to_project": "← Проект",
"chat_label": "— чат",
"loading": "Загрузка...",
"server_unavailable": "Сервер недоступен. Проверьте подключение.",
"empty_hint": "Опишите задачу или спросите о статусе проекта",
"input_placeholder": "Опишите задачу или вопрос... (Enter — отправить, Shift+Enter — перенос)",
"send": "Отправить",
"sending": "..."
},
"settings": {
"title": "Настройки",
"obsidian_vault_path": "Путь к Obsidian Vault",
"test_command": "Команда тестирования",
"test_command_hint": "Команда запуска тестов, выполняется через shell в директории проекта.",
"save_test": "Сохранить тест",
"saving_test": "Сохраняем…",
"deploy_config": "Конфигурация деплоя",
"server_host": "Хост сервера",
"project_path_on_server": "Путь к проекту на сервере",
"runtime": "Runtime",
"select_runtime": "— выберите runtime —",
"restart_command": "Команда перезапуска (опциональный override)",
"fallback_command": "Fallback команда (legacy, используется если runtime не задан)",
"save_deploy_config": "Сохранить конфиг деплоя",
"saving_deploy": "Сохраняем…",
"project_links": "Связи проекта",
"add_link": "+ Добавить связь",
"links_loading": "Загрузка...",
"no_links": "Нет связей",
"select_project": "— выберите проект —",
"auto_test": "Автотест",
"auto_test_hint": "— запускать тесты автоматически после pipeline",
"worktrees": "Worktrees",
"worktrees_hint": "— агенты запускаются в изолированных git worktrees",
"save_vault": "Сохранить Vault",
"saving_vault": "Сохраняем…",
"sync_obsidian": "Синхронизировать Obsidian",
"syncing": "Синхронизируем…",
"saving_link": "Сохраняем...",
"cancel_link": "Отмена",
"delete_link_confirm": "Удалить связь?",
"select_project_error": "Выберите проект"
},
"taskDetail": {
"pipeline_already_running": "Pipeline уже запущен",
"mark_resolved_confirm": "Пометить задачу как решённую вручную?",
"requires_manual": "⚠ Требует ручного решения",
"acceptance_criteria": "Критерии приёмки",
"autopilot_failed": "Автопилот не смог выполнить это автоматически. Примите меры вручную и нажмите «Решить вручную».",
"dangerously_skipped": "--dangerously-skip-permissions использовался в этой задаче",
"dangerously_skipped_hint": "Агент выполнял команды с обходом проверок разрешений. Проверьте pipeline-шаги и сделанные изменения.",
"loading": "Загрузка...",
"pipeline": "Pipeline",
"running": "выполняется...",
"no_pipeline": "Нет шагов pipeline.",
"approve_task": "✓ Подтвердить",
"revise_task": "🔄 Доработать",
"reject_task": "✗ Отклонить",
"edit": "✒ Редактировать",
"run_pipeline": "▶ Запустить Pipeline",
"pipeline_running": "Pipeline выполняется...",
"deploying": "Деплоим...",
"deploy": "🚀 Деплой",
"deploy_succeeded": "Деплой успешен",
"deploy_failed": "Деплой не удался",
"resolve_manually": "✓ Решить вручную",
"resolving": "Сохраняем...",
"send_to_revision": "🔄 Отправить на доработку",
"revise_placeholder": "Что доработать / уточнить...",
"autopilot_active": "Автопилот активен",
"attachments": "Вложения",
"more_details": "↓ подробнее",
"terminal_login_hint": "Откройте терминал и выполните:",
"login_after_hint": "После входа повторите запуск pipeline.",
"dependent_projects": "Зависимые проекты:",
"decision_title_placeholder": "Заголовок решения (опционально)",
"description_placeholder": "Описание",
"brief_label": "Описание",
"priority_label": "Приоритет (110)",
"title_label": "Заголовок",
"acceptance_criteria_label": "Критерии приёмки",
"acceptance_criteria_placeholder": "Что должно быть на выходе? Какой результат считается успешным?"
},
"projectView": {
"tasks_tab": "Задачи",
"phases_tab": "Фазы",
"decisions_tab": "Решения",
"modules_tab": "Модули",
"kanban_tab": "Kanban",
"links_tab": "Связи",
"add_task": "+ Задача",
"audit_backlog": "Аудит бэклога",
"back": "← назад",
"deploy": "Деплой",
"kanban_pending": "Ожидает",
"kanban_in_progress": "В работе",
"kanban_review": "Проверка",
"kanban_blocked": "Заблокирован",
"kanban_done": "Выполнено",
"chat": "Чат",
"dependent_projects": "Зависимые проекты:",
"environments": "Среды",
"auto_test_label": "Автотест",
"worktrees_on": "Worktrees: вкл",
"worktrees_off": "Worktrees: выкл",
"all_statuses": "Все",
"search_placeholder": "Поиск по задачам...",
"manual_escalations_warn": "⚠ Требуют ручного решения",
"comment_required": "Комментарий обязателен",
"select_project": "Выберите проект",
"delete_env_confirm": "Удалить среду?",
"delete_link_confirm": "Удалить связь?",
"run_pipeline_confirm": "Запустить pipeline для {n} задач?",
"pipeline_already_running": "Pipeline уже запущен",
"no_tasks": "Нет задач.",
"loading_phases": "Загрузка фаз...",
"revise_modal_title": "Доработать фазу",
"reject_modal_title": "Отклонить фазу",
"add_link_title": "Добавить связь"
},
"escalation": {
"watchdog_blocked": "Watchdog: задача {task_id} заблокирована — {reason}",
"escalations": "Эскалации",
"escalations_panel_title": "Эскалации — требуется решение",
"dismiss_all": "Принять все",
"dismiss": "Принято"
},
"liveConsole": {
"hide_log": "▲ Скрыть лог",
"show_log": "▼ Показать лог",
"no_records": "Нет записей...",
"error_prefix": "Ошибка:"
},
"attachments": {
"images_only": "Поддерживаются только изображения",
"uploading": "Загрузка...",
"drop_hint": "Перетащите изображение или",
"click_to_select": "нажмите для выбора",
"delete_title": "Удалить"
}
}