Applies when OpenWork Orchestrator launches OpenCode. Off by
default until the integration is fully rolled out.
@@ -2015,7 +2014,7 @@ export default function SettingsView(props: SettingsViewProps) {
-
Developer mode
+
{t("settings.developer_mode")}
Enables debug tools, diagnostics, and the Developer tab.
@@ -2100,7 +2099,7 @@ export default function SettingsView(props: SettingsViewProps) {
setDebugDeepLinkInput(event.currentTarget.value)
}
rows={3}
- placeholder="openwork://..."
+ placeholder={t("settings.scheme_placeholder")}
class="w-full rounded-xl border border-gray-6 bg-gray-1 px-3 py-2 text-xs font-mono text-gray-12 outline-none transition focus:border-blue-8"
/>
diff --git a/apps/app/src/i18n/locales/en.ts b/apps/app/src/i18n/locales/en.ts
index 455c71c29..2720f002c 100644
--- a/apps/app/src/i18n/locales/en.ts
+++ b/apps/app/src/i18n/locales/en.ts
@@ -858,4 +858,380 @@ export default {
"app.error.command_name_template_required": "Command name and instructions are required.",
"app.error.workspace_commands_desktop": "Commands require the desktop app.",
"app.error.command_scope_unknown": "This command can't be managed in this mode.",
+
+ // ==================== Den Settings ====================
+ "den.status_ready": "Ready",
+ "den.status_provisioning": "Provisioning",
+ "den.status_failed": "Failed",
+ "den.status_stopped": "Stopped",
+ "den.status_unknown": "Unknown",
+ "den.summary_needs_attention": "Needs attention",
+ "den.summary_checking": "Checking session",
+ "den.summary_connected": "Connected",
+ "den.summary_signed_out": "Signed out",
+ "den.finish_creation": "Finish account creation in your browser to connect OpenWork.",
+ "den.finish_sign_in": "Finish signing in in your browser to connect OpenWork.",
+ "den.invalid_url": "Enter a valid http:// or https:// Den control plane URL.",
+ "den.url_updated": "Updated the Den control plane URL. Sign in again to continue.",
+ "den.loaded_orgs": "Loaded {count} org(s).",
+ "den.failed_load_orgs": "Failed to load orgs.",
+ "den.loaded_workers": "Loaded {count} worker(s) for {org}.",
+ "den.no_workers_found": "No workers found for {org}.",
+ "den.failed_load_workers": "Failed to load workers.",
+ "den.signed_in_as": "Signed in as {email}.",
+ "den.no_session": "No active Den session found.",
+ "den.connected_as": "Connected OpenWork Den as {email}.",
+ "den.connected": "Connected OpenWork Den.",
+ "den.sign_in_failed": "Failed to finish OpenWork Den sign-in.",
+ "den.signed_out_msg": "Signed out and cleared your OpenWork Den session on this device.",
+ "den.choose_org": "Choose an org before opening a worker.",
+ "den.worker_not_ready": "Worker is not ready to open yet. Try again after provisioning finishes.",
+ "den.failed_open_worker": "Failed to open {name} in OpenWork.",
+ "den.opened_worker": "Opened {name} in OpenWork.",
+ "den.failed_open": "Failed to open {name}.",
+ "den.title": "OpenWork Den",
+ "den.description": "Sign in, pick an org, and open Den workers from Settings.",
+ "den.tagline": "Sign in to OpenWork Den to keep your tasks alive even when your computer sleeps.",
+ "den.control_plane_url_label": "Den control plane URL",
+ "den.control_plane_url_hint": "Developer mode only. Use this to target a local or self-hosted Den control plane. Changing it signs you out so the app can re-hydrate against the new control plane.",
+ "den.reset": "Reset",
+ "den.save_url": "Save URL",
+ "den.open_in_browser": "Open in browser",
+ "den.sign_in_title": "Sign in to OpenWork Den",
+ "den.sign_in": "Sign in",
+ "den.create_account": "Create account",
+ "den.finish_auth": "Finish auth in your browser and OpenWork will reconnect here automatically.",
+ "den.account_title": "Den Account",
+ "den.account_description": "Manage your connected account and organization.",
+ "den.signing_out": "Signing out...",
+ "den.sign_out": "Sign out",
+ "den.active_org": "Active org",
+ "den.workers_scoped": "Workers are scoped to the selected org.",
+ "den.switched_org": "Switched to {org}.",
+ "den.owner_suffix": "(Owner)",
+ "den.member_suffix": "(Member)",
+ "den.workers_title": "Den workers",
+ "den.workers_description": "Open workers directly into OpenWork using the same remote-connect flow.",
+ "den.no_org_selected": "No org selected",
+ "den.refresh": "Refresh",
+ "den.no_workers_visible": "No cloud workers are visible for this org yet. Create one in Den, then refresh this tab.",
+ "den.mine_badge": "Mine",
+ "den.worker_type": "{provider} worker",
+ "den.cloud_worker": "Cloud worker",
+ "den.worker_not_ready_tooltip": "This worker is not ready to open yet.",
+ "den.opening": "Opening...",
+ "den.open": "Open",
+
+ // ==================== Settings (additional) ====================
+ "settings.messaging": "Messaging",
+ "settings.identities_tab_hint": "Manage Telegram/Slack identities and bindings in the Identities tab",
+ "settings.identities": "Identities",
+ "settings.no_authorized_folders": "No external folders authorized",
+ "settings.folder_path_placeholder": "Type a folder path to authorize...",
+ "settings.hide_titlebar": "Hide titlebar",
+ "settings.show_model_reasoning": "Show model reasoning",
+ "settings.model_behavior": "Model behavior",
+ "settings.runtime": "Runtime",
+ "settings.enable_exa_search": "Enable Exa web search",
+ "settings.developer_mode": "Developer mode",
+ "settings.scheme_placeholder": "openwork://...",
+
+ // ==================== Session (additional) ====================
+ "session.workspace_default": "Workspace",
+ "session.kind_sandbox": "Sandbox",
+ "session.kind_remote": "Remote",
+ "session.kind_local": "Local",
+ "session.reveal_finder": "Reveal in Finder",
+ "session.reveal_explorer": "Reveal in Explorer",
+ "session.hide_child_sessions": "Hide child sessions",
+ "session.show_child_sessions": "Show child sessions",
+ "session.session_actions": "Session actions",
+ "session.rename_session": "Rename session",
+ "session.delete_session": "Delete session",
+ "session.status_connecting": "Connecting",
+ "session.status_active": "Active",
+ "session.new_task_label": "New task",
+ "session.workspace_options": "Workspace options",
+ "session.collapse": "Collapse",
+ "session.expand": "Expand",
+ "session.edit_name": "Edit name",
+ "session.share": "Share...",
+ "session.recover": "Recover",
+ "session.test_connection": "Test connection",
+ "session.edit_connection": "Edit connection",
+ "session.remove_workspace": "Remove workspace",
+ "session.no_tasks_yet": "No tasks yet.",
+ "session.new_task_hover": "+ New task",
+ "session.show_more": "Show {count} more",
+ "session.show_more_generic": "Show more",
+ "session.loading_tasks": "Loading tasks...",
+ "session.add_workspace": "Add workspace",
+ "session.create_local_desktop_only": "Create local workspaces in the desktop app.",
+ "session.new_workspace": "New workspace",
+ "session.connect_remote_workspace": "Connect remote workspace",
+ "session.import_config": "Import config",
+ "session.sidebar_new_task": "New task",
+ "session.sidebar_workspaces": "Workspaces",
+ "session.sidebar_no_workspaces": "No workspaces in this session yet. Add one to get started.",
+ "session.sidebar_sandbox": "Sandbox",
+ "session.sidebar_remote": "Remote",
+ "session.sidebar_needs_attention": "Needs attention",
+ "session.sidebar_switch": "Switch",
+ "session.sidebar_active": "Active",
+ "session.sidebar_expand": "Expand",
+ "session.sidebar_collapse": "Collapse",
+ "session.sidebar_drag_reorder": "Drag to reorder",
+ "session.sidebar_edit_connection": "Edit connection",
+ "session.sidebar_test_connection": "Test connection",
+ "session.sidebar_stop_sandbox": "Stop sandbox",
+ "session.sidebar_remove": "Remove",
+ "session.sidebar_no_sessions": "No sessions yet.",
+ "session.sidebar_show_fewer": "Show fewer",
+ "session.sidebar_show_more": "Show {count} more",
+ "session.sidebar_add_workspace": "Add new workspace",
+ "session.sidebar_new_worker": "New worker",
+ "session.sidebar_connect_remote": "Connect remote",
+ "session.sidebar_import_config": "Import config",
+ "session.sidebar_progress": "Progress",
+ "session.sidebar_new_task_menu": "New task",
+ "session.sidebar_delete_session": "Delete session",
+ "session.inbox_share_hint": "Share files with this worker from the app.",
+ "session.inbox_load_failed": "Failed to load shared folder",
+ "session.inbox_connect_to_upload": "Connect to a worker to upload files to the shared folder.",
+ "session.inbox_uploading": "Uploading {label}...",
+ "session.inbox_uploaded": "Uploaded to the shared folder.",
+ "session.inbox_upload_failed": "Shared folder upload failed",
+ "session.inbox_copy_failed": "Copy failed. Your browser may block clipboard access.",
+ "session.inbox_connect_to_download": "Connect to a worker to download shared files.",
+ "session.inbox_missing_file_id": "Missing shared file id.",
+ "session.inbox_download_failed": "Download failed",
+ "session.inbox_shared_folder": "Shared folder",
+ "session.inbox_refresh": "Refresh shared folder",
+ "session.inbox_drop_to_upload": "Drop files here to upload",
+ "session.inbox_connect_upload": "Connect to a worker to upload",
+ "session.inbox_uploading_label": "Uploading...",
+ "session.inbox_drop_or_click": "Drop files or click to upload",
+ "session.inbox_connect_to_see": "Connect to see shared files.",
+ "session.inbox_no_files": "No shared files yet.",
+ "session.inbox_copy_path": "Copy shared folder path",
+ "session.inbox_download": "Download",
+ "session.inbox_showing_first": "Showing first {count}.",
+ "session.ctx_disabled": "Disabled",
+ "session.ctx_disconnected": "Disconnected",
+ "session.ctx_connected": "Connected",
+ "session.ctx_needs_auth": "Needs auth",
+ "session.ctx_register_client": "Register client",
+ "session.ctx_failed": "Failed",
+ "session.ctx_context": "Context",
+ "session.ctx_working_files": "Working files",
+ "session.ctx_none_yet": "None yet.",
+ "session.ctx_plugins": "Plugins",
+ "session.ctx_no_plugins": "No plugins loaded.",
+ "session.ctx_mcp": "MCP",
+ "session.ctx_no_mcp": "No MCP servers loaded.",
+ "session.ctx_skills": "Skills",
+ "session.ctx_no_skills": "No skills loaded.",
+ "session.ctx_authorized_folders": "Authorized folders",
+ "session.tool_run_command": "Run {cmd}",
+ "session.tool_run_command_fallback": "Run command",
+ "session.tool_reviewed_file": "Reviewed {file}",
+ "session.tool_reviewed_file_fallback": "Reviewed file",
+ "session.tool_updated_file": "Updated {file}",
+ "session.tool_updated_file_fallback": "Updated file",
+ "session.tool_update_file": "Update {file}",
+ "session.tool_update_file_fallback": "Update file",
+ "session.tool_searched": "Searched {pattern}",
+ "session.tool_searched_fallback": "Searched code",
+ "session.tool_reviewed_files": "Reviewed {path}",
+ "session.tool_reviewed_files_fallback": "Reviewed files",
+ "session.tool_delegate": "Delegate {agent}",
+ "session.tool_delegate_fallback": "Delegate task",
+ "session.tool_update_todo": "Update todo list",
+ "session.tool_read_todo": "Read todo list",
+ "session.tool_checked_url": "Checked {url}",
+ "session.tool_checked_url_fallback": "Checked web page",
+ "session.tool_load_skill": "Load skill {name}",
+ "session.tool_load_skill_fallback": "Load skill",
+ "session.subagent_session": "Subagent session",
+ "session.loading_transcript": "Loading transcript",
+ "session.subagent_running": "Running",
+ "session.waiting_transcript": "Waiting for transcript",
+ "session.waiting_subagent": "Waiting for the subagent transcript to arrive.",
+ "session.request_label": "Request",
+ "session.result_label": "Result",
+
+ // ==================== Provider ====================
+ "provider.connect_title": "Connect providers",
+ "provider.connect_desc": "Sign in to services you want OpenWork to use.",
+ "provider.loading": "Loading providers...",
+ "provider.filter_placeholder": "Filter providers by name or ID",
+ "provider.no_match": "No providers match your search.",
+ "provider.none_available": "No providers available.",
+ "provider.keyboard_hint": "Arrow keys to navigate, Enter to select.",
+ "provider.choose_connect": "Choose how you'd like to connect.",
+ "provider.api_key_placeholder": "sk-...",
+ "provider.env_vars_label": "Env vars: ",
+ "provider.paste_code_placeholder": "Paste code",
+ "provider.waiting_browser": "Waiting for browser confirmation.",
+ "provider.browser_signin_desc": "Sign in in the browser tab we just opened. We will complete the connection automatically.",
+ "provider.copy_code_desc": "When you're ready, copy the code below, and click \"Open Browser\".",
+ "provider.confirmation_code_label": "Confirmation code",
+ "provider.checking_status": "Checking connection status automatically...",
+ "provider.open_browser": "Open Browser",
+ "provider.browser_close_hint": "This window will close once the provider is connected.",
+ "provider.back": "Back",
+ "provider.oauth_method": "OAuth",
+ "provider.api_key_method": "API key",
+ "provider.connected": "Connected",
+ "provider.close": "Close",
+
+ // ==================== Question Modal ====================
+ "question.fallback_header": "Question",
+ "question.custom_answer_label": "Or type a custom answer",
+ "question.placeholder": "Type your answer here...",
+ "question.navigate_hint": "navigate",
+ "question.select_hint": "select",
+ "question.submit": "Submit",
+ "question.next": "Next",
+
+ // ==================== Model Picker ====================
+ "model_picker.connect_provider": "Connect this provider to browse and save models",
+ "model_picker.model_singular": "model",
+ "model_picker.model_plural": "models",
+ "model_picker.default_label": "Default model",
+ "model_picker.chat_label": "Chat model",
+ "model_picker.default_desc": "Choose the default model for new chats...",
+ "model_picker.chat_desc": "Choose the model for this chat...",
+ "model_picker.recommended": "Recommended",
+ "model_picker.other_connected": "Other connected models",
+ "model_picker.more_providers": "More providers",
+ "model_picker.no_match": "No models match your search.",
+
+ // ==================== Share Workspace ====================
+ "share.title": "Share workspace",
+ "share.tab_template": "Share a template",
+ "share.tab_remote": "Access workspace remotely",
+ "share.password_field": "Password",
+ "share.worker_url_field": "Worker URL",
+ "share.hide_password": "Hide password",
+ "share.reveal_password": "Reveal password",
+ "share.publishing": "Publishing...",
+ "share.back_to_options": "Back to share options",
+ "share.template_section_title": "Workspace template",
+ "share.template_section_desc": "Share the core setup and workspace defaults.",
+ "share.template_desc": "Share your setup and defaults so someone else can start from the same environment.",
+ "share.create_template_link": "Create Template Link",
+ "share.regenerate_link": "Regenerate Link",
+ "share.access_section_title": "Access workspace remotely",
+ "share.access_section_desc": "Copy the connection details needed to reach this live workspace from another machine or messaging surface.",
+ "share.live_access_warning": "Share with trusted people only. These credentials grant live access to this workspace.",
+ "share.reusable_desc": "Share a reusable setup without granting live access to this running workspace.",
+ "share.connect_messaging_title": "Connect messaging",
+ "share.connect_messaging_desc": "Use this workspace from Slack, Telegram, and others.",
+ "share.setup_button": "Setup",
+ "share.collaborator_access": "Optional collaborator access",
+ "share.collaborator_desc": "Routine access without permission approvals.",
+ "share.close": "Close",
+ "share.back": "Back",
+ "share.copy": "Copy",
+ "share.copy_link": "Copy link",
+
+ // ==================== MCP (additional) ====================
+ "mcp.already_connected": "Already Connected",
+ "mcp.auth_link_label": "Authorization link",
+ "mcp.copy_link": "Copy link",
+ "mcp.copied": "Copied",
+ "mcp.step_opening_browser": "Opening your browser",
+ "mcp.step_authorize": "Authorize OpenWork",
+ "mcp.step_return": "Return here when you're done",
+ "mcp.request_timed_out": "Request timed out.",
+ "mcp.server_fallback": "MCP Server",
+
+ // ==================== Dashboard (additional) ====================
+ "dashboard.create_workspace_close": "Close create workspace modal",
+ "dashboard.create_workspace_folder": "Workspace folder",
+ "dashboard.create_workspace_select_folder": "Select folder",
+ "dashboard.create_workspace_sandbox_setup": "Sandbox setup",
+ "dashboard.create_workspace_show_logs": "Show logs",
+ "dashboard.create_workspace_hide_logs": "Hide logs",
+ "dashboard.create_workspace_live_logs": "Live Logs",
+ "dashboard.create_workspace_docker_debug": "Docker debug details",
+ "dashboard.create_workspace_creating": "Creating...",
+
+ // ==================== Session (additional) ====================
+ "session.loading_commands": "Loading commands...",
+ "session.no_commands_found": "No commands found.",
+ "session.no_mentions_match": "No matches found.",
+ "session.task_placeholder": "Describe your task...",
+ "session.upload_shared_folder": "Upload to shared folder",
+ "session.run_task": "Run task",
+ "session.stop": "Stop",
+ "session.agent_label": "Agent",
+ "session.loading_agents": "Loading agents...",
+ "session.default_agent": "Default agent",
+ "session.insert_prompt": "Insert prompt",
+ "session.promo_try_it": "Try it now: set up my CRM in Notion",
+ "session.copy_message": "Copy message",
+ "session.stopping_run": "Stopping the run...",
+ "session.stopped": "Stopped.",
+ "session.resize_workspace_col": "Resize workspace column",
+ "session.quick_actions": "Quick actions (Ctrl/Cmd+K)",
+ "session.search_conversation": "Search conversation (Ctrl/Cmd+F)",
+ "session.undo_message": "Undo last message",
+ "session.redo_message": "Redo last reverted message",
+ "session.open_sidebar": "Open sidebar",
+ "session.search_chat_placeholder": "Search in this chat",
+ "session.close_sidebar": "Close sidebar",
+ "session.collapse_sidebar": "Collapse sidebar",
+ "session.expand_sidebar": "Expand sidebar",
+ "session.sidebar_automations": "Automations",
+ "session.sidebar_extensions": "Extensions",
+ "session.thinking_label": "Thinking",
+ "session.diagnostics_label": "Diagnostics",
+ "session.diff_label": "Diff",
+ "session.raw_read_output": "Raw read output",
+ "session.input_label": "Input",
+
+ // ==================== Reload (additional) ====================
+ "reload.was_removed": "was removed",
+ "reload.was_added": "was added",
+ "reload.was_updated": "was updated",
+ "reload.changed": "changed",
+ "reload.active_tasks": "Active tasks",
+ "reload.will_stop_tasks": "Reloading will stop active tasks.",
+ "reload.blocked_prefix": "Blocked: ",
+
+ // ==================== Onboarding (additional) ====================
+ "onboarding.starter_worker_name": "Starter worker",
+ "onboarding.starter_worker_desc": "Preconfigured to show you how to use plugins, commands, and skills.",
+ "onboarding.empty_worker_name": "Empty worker",
+ "onboarding.empty_worker_desc": "Start with a blank folder and add what you need.",
+ "onboarding.select_folder_step": "Select Folder",
+ "onboarding.choose_button": "Choose",
+ "onboarding.opening": "Opening...",
+ "onboarding.choose_preset_step": "Choose Preset",
+
+ // ==================== App (additional) ====================
+ "app.web_unavailable": "This feature is currently unavailable in OpenWork Web, check OpenWork Desktop for full functionality.",
+ "app.download_desktop": "Download OpenWork Desktop",
+ "app.desktop_only": "Desktop Only",
+
+ // ==================== Settings (additional) ====================
+ "settings.paste_token": "Paste your token",
+ "settings.copy_debug_state": "Copy sanitized runtime state for debugging.",
+ "settings.telegram_bot_token_placeholder": "Paste Telegram bot token from @BotFather",
+ "settings.slack_bot_token_placeholder": "xoxb-...",
+ "settings.slack_app_token_placeholder": "xapp-...",
+ "settings.messaging_instructions_placeholder": "Add messaging behavior instructions...",
+
+ // ==================== Common (additional) ====================
+ "common.copy": "Copy",
+ "common.copied": "Copied",
+
+ // ==================== Scheduled ====================
+ "scheduled.reload_to_activate": "Reload OpenWork to activate automations",
+ "scheduled.reload_activate_scheduler": "...activate opencode-scheduler.",
+ "scheduled.reloading": "Reloading...",
+ "scheduled.reload_button": "Reload OpenWork",
+ "scheduled.choose_folder": "Choose a folder",
} as const;
diff --git a/apps/app/src/i18n/locales/pt-BR.ts b/apps/app/src/i18n/locales/pt-BR.ts
index 81a06fb6b..2424157d3 100644
--- a/apps/app/src/i18n/locales/pt-BR.ts
+++ b/apps/app/src/i18n/locales/pt-BR.ts
@@ -858,4 +858,379 @@ export default {
"app.error.command_name_template_required": "O nome e as instruções do comando são obrigatórios.",
"app.error.workspace_commands_desktop": "Comandos requerem o app desktop.",
"app.error.command_scope_unknown": "Este comando não pode ser gerenciado neste modo.",
+
+ // ==================== Den Settings ====================
+ "den.status_ready": "Pronto",
+ "den.status_provisioning": "Provisionando",
+ "den.status_failed": "Falhou",
+ "den.status_stopped": "Parado",
+ "den.status_unknown": "Desconhecido",
+ "den.summary_needs_attention": "Precisa de atenção",
+ "den.summary_checking": "Verificando sessão",
+ "den.summary_connected": "Conectado",
+ "den.summary_signed_out": "Desconectado",
+ "den.finish_creation": "Conclua a criação da conta no navegador para conectar ao OpenWork.",
+ "den.finish_sign_in": "Conclua o login no navegador para conectar ao OpenWork.",
+ "den.invalid_url": "Digite uma URL válida http:// ou https:// para o control plane do Den.",
+ "den.url_updated": "URL do control plane do Den atualizada. Entre novamente para continuar.",
+ "den.loaded_orgs": "Carregado(s) {count} organização(ões).",
+ "den.failed_load_orgs": "Falha ao carregar organizações.",
+ "den.loaded_workers": "Carregado(s) {count} worker(s) para {org}.",
+ "den.no_workers_found": "Nenhum worker encontrado para {org}.",
+ "den.failed_load_workers": "Falha ao carregar workers.",
+ "den.signed_in_as": "Conectado como {email}.",
+ "den.no_session": "Nenhuma sessão ativa do Den encontrada.",
+ "den.connected_as": "OpenWork Den conectado como {email}.",
+ "den.connected": "OpenWork Den conectado.",
+ "den.sign_in_failed": "Falha ao concluir o login no OpenWork Den.",
+ "den.signed_out_msg": "Sessão do OpenWork Den encerrada e limpa neste dispositivo.",
+ "den.choose_org": "Escolha uma organização antes de abrir um worker.",
+ "den.worker_not_ready": "O worker ainda não está pronto. Tente novamente após o provisionamento.",
+ "den.failed_open_worker": "Falha ao abrir {name} no OpenWork.",
+ "den.opened_worker": "Aberto {name} no OpenWork.",
+ "den.failed_open": "Falha ao abrir {name}.",
+ "den.title": "OpenWork Den",
+ "den.description": "Entre, escolha uma organização e abra workers do Den nas Configurações.",
+ "den.tagline": "Entre no OpenWork Den para manter suas tarefas ativas mesmo quando o computador dorme.",
+ "den.control_plane_url_label": "URL do control plane do Den",
+ "den.control_plane_url_hint": "Apenas modo desenvolvedor. Use para apontar para um control plane local ou auto-hospedado. Alterar isso encerra sua sessão.",
+ "den.reset": "Redefinir",
+ "den.save_url": "Salvar URL",
+ "den.open_in_browser": "Abrir no navegador",
+ "den.sign_in_title": "Entrar no OpenWork Den",
+ "den.sign_in": "Entrar",
+ "den.create_account": "Criar conta",
+ "den.finish_auth": "Conclua a autenticação no navegador e o OpenWork reconectará automaticamente.",
+ "den.account_title": "Conta Den",
+ "den.account_description": "Gerencie sua conta conectada e organização.",
+ "den.signing_out": "Saindo...",
+ "den.sign_out": "Sair",
+ "den.active_org": "Organização ativa",
+ "den.workers_scoped": "Os workers pertencem à organização selecionada.",
+ "den.switched_org": "Alternado para {org}.",
+ "den.owner_suffix": "(Proprietário)",
+ "den.member_suffix": "(Membro)",
+ "den.workers_title": "Workers do Den",
+ "den.workers_description": "Abra workers diretamente no OpenWork usando o fluxo de conexão remota.",
+ "den.no_org_selected": "Nenhuma org selecionada",
+ "den.refresh": "Atualizar",
+ "den.no_workers_visible": "Nenhum worker cloud visível para esta org ainda. Crie um no Den e atualize esta aba.",
+ "den.mine_badge": "Meu",
+ "den.worker_type": "Worker {provider}",
+ "den.cloud_worker": "Worker cloud",
+ "den.worker_not_ready_tooltip": "Este worker ainda não está pronto para abrir.",
+ "den.opening": "Abrindo...",
+ "den.open": "Abrir",
+
+ // ==================== Configurações (adicional) ====================
+ "settings.messaging": "Mensagens",
+ "settings.identities_tab_hint": "Gerencie identidades do Telegram/Slack na aba Identidades",
+ "settings.identities": "Identidades",
+ "settings.no_authorized_folders": "Nenhuma pasta externa autorizada",
+ "settings.folder_path_placeholder": "Digite o caminho de uma pasta para autorizar...",
+ "settings.hide_titlebar": "Ocultar barra de título",
+ "settings.show_model_reasoning": "Mostrar raciocínio do modelo",
+ "settings.model_behavior": "Comportamento do modelo",
+ "settings.runtime": "Runtime",
+ "settings.enable_exa_search": "Ativar busca web Exa",
+ "settings.developer_mode": "Modo desenvolvedor",
+ "settings.scheme_placeholder": "openwork://...",
+
+ // ==================== Sessão (adicional) ====================
+ "session.workspace_default": "Workspace",
+ "session.kind_sandbox": "Sandbox",
+ "session.kind_remote": "Remoto",
+ "session.kind_local": "Local",
+ "session.reveal_finder": "Mostrar no Finder",
+ "session.reveal_explorer": "Mostrar no Explorer",
+ "session.hide_child_sessions": "Ocultar sub-sessões",
+ "session.show_child_sessions": "Exibir sub-sessões",
+ "session.session_actions": "Ações da sessão",
+ "session.rename_session": "Renomear sessão",
+ "session.delete_session": "Excluir sessão",
+ "session.status_connecting": "Conectando",
+ "session.status_active": "Ativo",
+ "session.new_task_label": "Nova tarefa",
+ "session.workspace_options": "Opções do workspace",
+ "session.collapse": "Recolher",
+ "session.expand": "Expandir",
+ "session.edit_name": "Editar nome",
+ "session.share": "Compartilhar...",
+ "session.recover": "Recuperar",
+ "session.test_connection": "Testar conexão",
+ "session.edit_connection": "Editar conexão",
+ "session.remove_workspace": "Remover workspace",
+ "session.no_tasks_yet": "Nenhuma tarefa ainda.",
+ "session.new_task_hover": "+ Nova tarefa",
+ "session.show_more": "Mostrar mais {count}",
+ "session.show_more_generic": "Mostrar mais",
+ "session.loading_tasks": "Carregando tarefas...",
+ "session.add_workspace": "Adicionar workspace",
+ "session.create_local_desktop_only": "Crie workspaces locais no app desktop.",
+ "session.new_workspace": "Novo workspace",
+ "session.connect_remote_workspace": "Conectar workspace remoto",
+ "session.import_config": "Importar configuração",
+ "session.sidebar_new_task": "Nova tarefa",
+ "session.sidebar_workspaces": "Workspaces",
+ "session.sidebar_no_workspaces": "Nenhum workspace nesta sessão ainda. Adicione um para começar.",
+ "session.sidebar_sandbox": "Sandbox",
+ "session.sidebar_remote": "Remoto",
+ "session.sidebar_needs_attention": "Precisa de atenção",
+ "session.sidebar_switch": "Alternar",
+ "session.sidebar_active": "Ativo",
+ "session.sidebar_expand": "Expandir",
+ "session.sidebar_collapse": "Recolher",
+ "session.sidebar_drag_reorder": "Arraste para reordenar",
+ "session.sidebar_edit_connection": "Editar conexão",
+ "session.sidebar_test_connection": "Testar conexão",
+ "session.sidebar_stop_sandbox": "Parar sandbox",
+ "session.sidebar_remove": "Remover",
+ "session.sidebar_no_sessions": "Nenhuma sessão ainda.",
+ "session.sidebar_show_fewer": "Mostrar menos",
+ "session.sidebar_show_more": "Mostrar mais {count}",
+ "session.sidebar_add_workspace": "Adicionar novo workspace",
+ "session.sidebar_new_worker": "Novo worker",
+ "session.sidebar_connect_remote": "Conectar remoto",
+ "session.sidebar_import_config": "Importar configuração",
+ "session.sidebar_progress": "Progresso",
+ "session.sidebar_new_task_menu": "Nova tarefa",
+ "session.sidebar_delete_session": "Excluir sessão",
+ "session.inbox_share_hint": "Compartilhe arquivos com este worker pelo app.",
+ "session.inbox_load_failed": "Falha ao carregar pasta compartilhada",
+ "session.inbox_connect_to_upload": "Conecte a um worker para enviar arquivos à pasta compartilhada.",
+ "session.inbox_uploading": "Enviando {label}...",
+ "session.inbox_uploaded": "Enviado para a pasta compartilhada.",
+ "session.inbox_upload_failed": "Falha no envio para a pasta compartilhada",
+ "session.inbox_copy_failed": "Falha ao copiar. Seu navegador pode bloquear o acesso à área de transferência.",
+ "session.inbox_connect_to_download": "Conecte a um worker para baixar arquivos compartilhados.",
+ "session.inbox_missing_file_id": "ID do arquivo compartilhado ausente.",
+ "session.inbox_download_failed": "Falha no download",
+ "session.inbox_shared_folder": "Pasta compartilhada",
+ "session.inbox_refresh": "Atualizar pasta compartilhada",
+ "session.inbox_drop_to_upload": "Solte arquivos aqui para enviar",
+ "session.inbox_connect_upload": "Conecte a um worker para enviar",
+ "session.inbox_uploading_label": "Enviando...",
+ "session.inbox_drop_or_click": "Solte arquivos ou clique para enviar",
+ "session.inbox_connect_to_see": "Conecte para ver os arquivos compartilhados.",
+ "session.inbox_no_files": "Nenhum arquivo compartilhado ainda.",
+ "session.inbox_copy_path": "Copiar caminho da pasta compartilhada",
+ "session.inbox_download": "Baixar",
+ "session.inbox_showing_first": "Exibindo os primeiros {count}.",
+ "session.ctx_disabled": "Desativado",
+ "session.ctx_disconnected": "Desconectado",
+ "session.ctx_connected": "Conectado",
+ "session.ctx_needs_auth": "Precisa de autenticação",
+ "session.ctx_register_client": "Registrar cliente",
+ "session.ctx_failed": "Falhou",
+ "session.ctx_context": "Contexto",
+ "session.ctx_working_files": "Arquivos em uso",
+ "session.ctx_none_yet": "Nenhum ainda.",
+ "session.ctx_plugins": "Plugins",
+ "session.ctx_no_plugins": "Nenhum plugin carregado.",
+ "session.ctx_mcp": "MCP",
+ "session.ctx_no_mcp": "Nenhum servidor MCP carregado.",
+ "session.ctx_skills": "Skills",
+ "session.ctx_no_skills": "Nenhum skill carregado.",
+ "session.ctx_authorized_folders": "Pastas autorizadas",
+ "session.tool_run_command": "Executar {cmd}",
+ "session.tool_run_command_fallback": "Executar comando",
+ "session.tool_reviewed_file": "Revisado {file}",
+ "session.tool_reviewed_file_fallback": "Arquivo revisado",
+ "session.tool_updated_file": "Atualizado {file}",
+ "session.tool_updated_file_fallback": "Arquivo atualizado",
+ "session.tool_update_file": "Atualizar {file}",
+ "session.tool_update_file_fallback": "Atualizar arquivo",
+ "session.tool_searched": "Buscado {pattern}",
+ "session.tool_searched_fallback": "Código buscado",
+ "session.tool_reviewed_files": "Revisado {path}",
+ "session.tool_reviewed_files_fallback": "Arquivos revisados",
+ "session.tool_delegate": "Delegar para {agent}",
+ "session.tool_delegate_fallback": "Delegar tarefa",
+ "session.tool_update_todo": "Atualizar lista de tarefas",
+ "session.tool_read_todo": "Ler lista de tarefas",
+ "session.tool_checked_url": "Verificado {url}",
+ "session.tool_checked_url_fallback": "Página web verificada",
+ "session.tool_load_skill": "Carregar skill {name}",
+ "session.tool_load_skill_fallback": "Carregar skill",
+ "session.subagent_session": "Sessão do subagente",
+ "session.loading_transcript": "Carregando transcrição",
+ "session.subagent_running": "Em execução",
+ "session.waiting_transcript": "Aguardando transcrição",
+ "session.waiting_subagent": "Aguardando a transcrição do subagente.",
+ "session.request_label": "Solicitação",
+ "session.result_label": "Resultado",
+
+ // ==================== Provider ====================
+ "provider.connect_title": "Conectar provedores",
+ "provider.connect_desc": "Entre nos serviços que você quer que o OpenWork use.",
+ "provider.loading": "Carregando provedores...",
+ "provider.filter_placeholder": "Filtrar provedores por nome ou ID",
+ "provider.no_match": "Nenhum provedor encontrado.",
+ "provider.none_available": "Nenhum provedor disponível.",
+ "provider.keyboard_hint": "Setas para navegar, Enter para selecionar.",
+ "provider.choose_connect": "Escolha como deseja conectar.",
+ "provider.api_key_placeholder": "sk-...",
+ "provider.env_vars_label": "Vars de ambiente: ",
+ "provider.paste_code_placeholder": "Cole o código",
+ "provider.waiting_browser": "Aguardando confirmação do navegador.",
+ "provider.browser_signin_desc": "Entre na aba do navegador que acabamos de abrir. Concluiremos a conexão automaticamente.",
+ "provider.copy_code_desc": "Quando estiver pronto, copie o código abaixo e clique em \"Abrir Navegador\".",
+ "provider.confirmation_code_label": "Código de confirmação",
+ "provider.checking_status": "Verificando status da conexão automaticamente...",
+ "provider.open_browser": "Abrir Navegador",
+ "provider.browser_close_hint": "Esta janela fechará assim que o provedor estiver conectado.",
+ "provider.back": "Voltar",
+ "provider.oauth_method": "OAuth",
+ "provider.api_key_method": "Chave de API",
+ "provider.connected": "Conectado",
+ "provider.close": "Fechar",
+
+ // ==================== Question Modal ====================
+ "question.fallback_header": "Pergunta",
+ "question.custom_answer_label": "Ou digite uma resposta personalizada",
+ "question.placeholder": "Digite sua resposta aqui...",
+ "question.navigate_hint": "navegar",
+ "question.select_hint": "selecionar",
+ "question.submit": "Enviar",
+ "question.next": "Próximo",
+
+ // ==================== Model Picker ====================
+ "model_picker.connect_provider": "Conecte este provedor para explorar e salvar modelos",
+ "model_picker.model_singular": "modelo",
+ "model_picker.model_plural": "modelos",
+ "model_picker.default_label": "Modelo padrão",
+ "model_picker.chat_label": "Modelo do chat",
+ "model_picker.default_desc": "Escolha o modelo padrão para novos chats...",
+ "model_picker.chat_desc": "Escolha o modelo para este chat...",
+ "model_picker.recommended": "Recomendados",
+ "model_picker.other_connected": "Outros modelos conectados",
+ "model_picker.more_providers": "Mais provedores",
+ "model_picker.no_match": "Nenhum modelo encontrado.",
+
+ // ==================== Share Workspace ====================
+ "share.title": "Compartilhar workspace",
+ "share.tab_template": "Compartilhar um template",
+ "share.tab_remote": "Acessar workspace remotamente",
+ "share.password_field": "Senha",
+ "share.worker_url_field": "URL do Worker",
+ "share.hide_password": "Ocultar senha",
+ "share.reveal_password": "Revelar senha",
+ "share.publishing": "Publicando...",
+ "share.back_to_options": "Voltar para opções de compartilhamento",
+ "share.template_section_title": "Template do workspace",
+ "share.template_section_desc": "Compartilhe a configuração base e os padrões do workspace.",
+ "share.template_desc": "Compartilhe sua configuração para que outros comecem no mesmo ambiente.",
+ "share.create_template_link": "Criar Link de Template",
+ "share.regenerate_link": "Regenerar Link",
+ "share.access_section_title": "Acessar workspace remotamente",
+ "share.access_section_desc": "Copie os detalhes de conexão para acessar este workspace de outra máquina.",
+ "share.live_access_warning": "Compartilhe apenas com pessoas de confiança. Essas credenciais concedem acesso ao vivo a este workspace.",
+ "share.reusable_desc": "Compartilhe uma configuração reutilizável sem conceder acesso ao vivo a este workspace.",
+ "share.connect_messaging_title": "Conectar mensagens",
+ "share.connect_messaging_desc": "Use este workspace pelo Slack, Telegram e outros.",
+ "share.setup_button": "Configurar",
+ "share.collaborator_access": "Acesso opcional de colaborador",
+ "share.collaborator_desc": "Acesso rotineiro sem aprovações de permissão.",
+ "share.close": "Fechar",
+ "share.back": "Voltar",
+ "share.copy": "Copiar",
+ "share.copy_link": "Copiar link",
+
+ // ==================== MCP (additional) ====================
+ "mcp.already_connected": "Já Conectado",
+ "mcp.auth_link_label": "Link de autorização",
+ "mcp.copy_link": "Copiar link",
+ "mcp.copied": "Copiado",
+ "mcp.step_opening_browser": "Abrindo seu navegador",
+ "mcp.step_authorize": "Autorizar OpenWork",
+ "mcp.step_return": "Volte aqui quando terminar",
+ "mcp.request_timed_out": "A solicitação expirou.",
+ "mcp.server_fallback": "Servidor MCP",
+
+ // ==================== Dashboard (additional) ====================
+ "dashboard.create_workspace_close": "Fechar modal de criação de workspace",
+ "dashboard.create_workspace_folder": "Pasta do workspace",
+ "dashboard.create_workspace_select_folder": "Selecionar pasta",
+ "dashboard.create_workspace_sandbox_setup": "Configuração do Sandbox",
+ "dashboard.create_workspace_show_logs": "Exibir logs",
+ "dashboard.create_workspace_hide_logs": "Ocultar logs",
+ "dashboard.create_workspace_live_logs": "Logs ao Vivo",
+ "dashboard.create_workspace_docker_debug": "Detalhes de debug do Docker",
+ "dashboard.create_workspace_creating": "Criando...",
+
+ // ==================== Session (additional) ====================
+ "session.loading_commands": "Carregando comandos...",
+ "session.no_commands_found": "Nenhum comando encontrado.",
+ "session.no_mentions_match": "Nenhum resultado encontrado.",
+ "session.task_placeholder": "Descreva sua tarefa...",
+ "session.upload_shared_folder": "Enviar para pasta compartilhada",
+ "session.run_task": "Executar tarefa",
+ "session.stop": "Parar",
+ "session.agent_label": "Agente",
+ "session.loading_agents": "Carregando agentes...",
+ "session.default_agent": "Agente padrão",
+ "session.promo_try_it": "Experimente: configurar meu CRM no Notion",
+ "session.copy_message": "Copiar mensagem",
+ "session.stopping_run": "Parando a execução...",
+ "session.stopped": "Parado.",
+ "session.resize_workspace_col": "Redimensionar coluna do workspace",
+ "session.quick_actions": "Ações rápidas (Ctrl/Cmd+K)",
+ "session.search_conversation": "Buscar na conversa (Ctrl/Cmd+F)",
+ "session.undo_message": "Desfazer última mensagem",
+ "session.redo_message": "Refazer última mensagem desfeita",
+ "session.open_sidebar": "Abrir barra lateral",
+ "session.search_chat_placeholder": "Buscar neste chat",
+ "session.close_sidebar": "Fechar barra lateral",
+ "session.collapse_sidebar": "Recolher barra lateral",
+ "session.expand_sidebar": "Expandir barra lateral",
+ "session.sidebar_automations": "Automações",
+ "session.sidebar_extensions": "Extensões",
+ "session.thinking_label": "Pensando",
+ "session.diagnostics_label": "Diagnósticos",
+ "session.diff_label": "Diff",
+ "session.raw_read_output": "Saída de leitura bruta",
+ "session.input_label": "Entrada",
+
+ // ==================== Reload (additional) ====================
+ "reload.was_removed": "foi removido",
+ "reload.was_added": "foi adicionado",
+ "reload.was_updated": "foi atualizado",
+ "reload.changed": "alterado",
+ "reload.active_tasks": "Tarefas ativas",
+ "reload.will_stop_tasks": "Recarregar vai parar as tarefas ativas.",
+ "reload.blocked_prefix": "Bloqueado: ",
+
+ // ==================== Onboarding (additional) ====================
+ "onboarding.starter_worker_name": "Worker inicial",
+ "onboarding.starter_worker_desc": "Pré-configurado para mostrar como usar plugins, comandos e skills.",
+ "onboarding.empty_worker_name": "Worker vazio",
+ "onboarding.empty_worker_desc": "Comece com uma pasta em branco e adicione o que precisar.",
+ "onboarding.select_folder_step": "Selecionar Pasta",
+ "onboarding.choose_button": "Escolher",
+ "onboarding.opening": "Abrindo...",
+ "onboarding.choose_preset_step": "Escolher Preset",
+
+ // ==================== App (additional) ====================
+ "app.web_unavailable": "Este recurso não está disponível no OpenWork Web. Acesse o OpenWork Desktop para funcionalidade completa.",
+ "app.download_desktop": "Baixar OpenWork Desktop",
+ "app.desktop_only": "Somente Desktop",
+
+ // ==================== Settings (additional) ====================
+ "settings.paste_token": "Cole seu token",
+ "settings.copy_debug_state": "Copiar estado de runtime sanitizado para debug.",
+ "settings.telegram_bot_token_placeholder": "Cole o token do bot Telegram do @BotFather",
+ "settings.slack_bot_token_placeholder": "xoxb-...",
+ "settings.slack_app_token_placeholder": "xapp-...",
+ "settings.messaging_instructions_placeholder": "Adicione instruções de comportamento de mensagens...",
+
+ // ==================== Common (additional) ====================
+ "common.copy": "Copiar",
+ "common.copied": "Copiado",
+
+ // ==================== Scheduled ====================
+ "scheduled.reload_to_activate": "Recarregue o OpenWork para ativar automações",
+ "scheduled.reload_activate_scheduler": "...ativar o opencode-scheduler.",
+ "scheduled.reloading": "Recarregando...",
+ "scheduled.reload_button": "Recarregar OpenWork",
+ "scheduled.choose_folder": "Escolher uma pasta",
} as const;
\ No newline at end of file