Commit
·
fea1bd1
0
Parent(s):
Initial commit
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- # main_agent.py +0 -0
- (módulo +0 -0
- .chainlit/config.toml +250 -0
- .chainlit/translations/bn.json +214 -0
- .chainlit/translations/el-GR.json +214 -0
- .chainlit/translations/en-US.json +214 -0
- .chainlit/translations/fr-FR.json +214 -0
- .chainlit/translations/gu.json +214 -0
- .chainlit/translations/he-IL.json +214 -0
- .chainlit/translations/hi.json +214 -0
- .chainlit/translations/ja.json +214 -0
- .chainlit/translations/kn.json +214 -0
- .chainlit/translations/ml.json +214 -0
- .chainlit/translations/mr.json +214 -0
- .chainlit/translations/nl.json +214 -0
- .chainlit/translations/ta.json +214 -0
- .chainlit/translations/te.json +214 -0
- .chainlit/translations/zh-CN.json +214 -0
- .env.example +16 -0
- .gitignore +100 -0
- 1 +0 -0
- 5 +0 -0
- Atualizando +1 -0
- AutonomousConfig +0 -0
- Dict[str +0 -0
- List[str] +0 -0
- README_AUTONOMO.md +385 -0
- Task +0 -0
- agent_models.py +160 -0
- agent_structs.py +14 -0
- agent_tools.py +94 -0
- apply_all_fixes.py +122 -0
- automation_integration.py +31 -0
- autonomous_config.py +287 -0
- autonomous_config_optimized.py +757 -0
- bool +0 -0
- cd main_agent.py +0 -0
- chainlit.md +107 -0
- chainlit.toml +1 -0
- chainlit_broken.md +20 -0
- config.py +89 -0
- corrigido/main_agent.py +0 -0
- data/memory/memory.json +157 -0
- dict +0 -0
- fix_css.bat +425 -0
- fix_now.py +98 -0
- fix_toml.bat +42 -0
- from +0 -0
- install.bat +53 -0
- install_automation.py +319 -0
# main_agent.py
ADDED
|
File without changes
|
(módulo
ADDED
|
File without changes
|
.chainlit/config.toml
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SUPEREZIO ENTERPRISE EDITION - CONFIGURATION FILE
|
| 2 |
+
# Configuração otimizada baseada nas melhores práticas 2025
|
| 3 |
+
# Autor: Marco Barreto + Claude Sonnet 4
|
| 4 |
+
|
| 5 |
+
[project]
|
| 6 |
+
# Identificação do projeto
|
| 7 |
+
name = "SUPEREZIO Enterprise Edition"
|
| 8 |
+
description = "Sistema Cognitivo de Automação Multi-Modal com IA Distribuída"
|
| 9 |
+
author = "Marco Barreto"
|
| 10 |
+
tags = ["AI", "Enterprise", "Automation", "Cognitive-Interface", "Multi-Modal"]
|
| 11 |
+
version = "6.0.0"
|
| 12 |
+
|
| 13 |
+
# Configurações de ambiente
|
| 14 |
+
user_env = []
|
| 15 |
+
session_timeout = 7200 # 2 horas
|
| 16 |
+
user_session_timeout = 86400 # 24 horas
|
| 17 |
+
cache = true
|
| 18 |
+
|
| 19 |
+
[UI]
|
| 20 |
+
# Interface customizations
|
| 21 |
+
name = "SUPEREZIO Enterprise"
|
| 22 |
+
show_readme_as_default = true
|
| 23 |
+
default_collapse_content = false
|
| 24 |
+
default_expand_messages = true
|
| 25 |
+
hide_cot = false
|
| 26 |
+
|
| 27 |
+
# CSS customization
|
| 28 |
+
custom_css = "/superezio.css"
|
| 29 |
+
custom_font = "Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
| 30 |
+
|
| 31 |
+
# Layout
|
| 32 |
+
default_sidebar_state = "open"
|
| 33 |
+
layout = "wide"
|
| 34 |
+
|
| 35 |
+
# Theme configuration
|
| 36 |
+
default_theme = "dark"
|
| 37 |
+
|
| 38 |
+
[UI.theme]
|
| 39 |
+
primary_color = "#00D4FF" # Cyan enterprise
|
| 40 |
+
background_color = "#0A0A0A" # Deep black
|
| 41 |
+
text_color = "#FFFFFF" # Pure white
|
| 42 |
+
secondary_color = "#1E2A3A" # Dark blue-gray
|
| 43 |
+
accent_color = "#7C3AED" # Purple accent
|
| 44 |
+
|
| 45 |
+
[UI.theme.dark]
|
| 46 |
+
# Modo escuro otimizado
|
| 47 |
+
background = "#0A0A0A"
|
| 48 |
+
foreground = "#FFFFFF"
|
| 49 |
+
primary = "#00D4FF"
|
| 50 |
+
secondary = "#1E2A3A"
|
| 51 |
+
accent = "#7C3AED"
|
| 52 |
+
surface = "#1A1A1A"
|
| 53 |
+
on_surface = "#E0E0E0"
|
| 54 |
+
|
| 55 |
+
[UI.theme.light]
|
| 56 |
+
# Modo claro (fallback)
|
| 57 |
+
background = "#FFFFFF"
|
| 58 |
+
foreground = "#0A0A0A"
|
| 59 |
+
primary = "#0066CC"
|
| 60 |
+
secondary = "#F5F5F5"
|
| 61 |
+
accent = "#6B46C1"
|
| 62 |
+
|
| 63 |
+
[features]
|
| 64 |
+
# Recursos enterprise habilitados
|
| 65 |
+
show_data_layer = false
|
| 66 |
+
multi_modal = true
|
| 67 |
+
speech_to_text = false
|
| 68 |
+
latex = true
|
| 69 |
+
unsafe_allow_html = true
|
| 70 |
+
edit_message = true
|
| 71 |
+
|
| 72 |
+
# Recursos avançados
|
| 73 |
+
streaming = true
|
| 74 |
+
auto_tag_thread = true
|
| 75 |
+
user_message_autoscroll = true
|
| 76 |
+
|
| 77 |
+
# Segurança
|
| 78 |
+
authentication_required = false
|
| 79 |
+
password_auth_callback = false
|
| 80 |
+
|
| 81 |
+
[tool]
|
| 82 |
+
# Configurações de ferramentas
|
| 83 |
+
enabled = true
|
| 84 |
+
max_iterations = 50
|
| 85 |
+
timeout = 300
|
| 86 |
+
|
| 87 |
+
[file]
|
| 88 |
+
# Configurações de arquivo
|
| 89 |
+
max_size_mb = 100
|
| 90 |
+
allowed_mime_types = [
|
| 91 |
+
"text/plain",
|
| 92 |
+
"text/markdown",
|
| 93 |
+
"text/csv",
|
| 94 |
+
"application/json",
|
| 95 |
+
"application/pdf",
|
| 96 |
+
"image/jpeg",
|
| 97 |
+
"image/png",
|
| 98 |
+
"image/webp"
|
| 99 |
+
]
|
| 100 |
+
upload_timeout = 60
|
| 101 |
+
|
| 102 |
+
[chain_of_thought]
|
| 103 |
+
# Chain of thought configuration
|
| 104 |
+
mode = "full" # hidden, tool_call, full
|
| 105 |
+
show_tool_calls = true
|
| 106 |
+
expand_by_default = true
|
| 107 |
+
|
| 108 |
+
[audio]
|
| 109 |
+
# Configurações de áudio
|
| 110 |
+
enabled = false
|
| 111 |
+
min_decibels = -45
|
| 112 |
+
initial_silence_timeout = 3000
|
| 113 |
+
silence_timeout = 1500
|
| 114 |
+
chunk_duration_ms = 1000
|
| 115 |
+
sample_rate = 44100
|
| 116 |
+
|
| 117 |
+
[copilot]
|
| 118 |
+
# Configurações para modo copilot
|
| 119 |
+
button_color = "#00D4FF"
|
| 120 |
+
button_hover_color = "#0099CC"
|
| 121 |
+
expand_button = true
|
| 122 |
+
chat_trigger = "SuperEzio"
|
| 123 |
+
|
| 124 |
+
[meta]
|
| 125 |
+
# Metadados
|
| 126 |
+
generated_by = "SUPEREZIO Enterprise v6.0.0"
|
| 127 |
+
charset = "UTF-8"
|
| 128 |
+
author = "Marco Barreto"
|
| 129 |
+
license = "Enterprise"
|
| 130 |
+
created_at = "2025-08-05"
|
| 131 |
+
|
| 132 |
+
# URLs e links
|
| 133 |
+
homepage = "https://superezio.enterprise"
|
| 134 |
+
documentation = "https://docs.superezio.enterprise"
|
| 135 |
+
support = "https://support.superezio.enterprise"
|
| 136 |
+
|
| 137 |
+
[telemetry]
|
| 138 |
+
# Telemetria e analytics
|
| 139 |
+
enabled = true
|
| 140 |
+
anonymous = true
|
| 141 |
+
collect_usage = true
|
| 142 |
+
|
| 143 |
+
[performance]
|
| 144 |
+
# Otimizações de performance
|
| 145 |
+
enable_compression = true
|
| 146 |
+
max_concurrent_requests = 100
|
| 147 |
+
request_timeout = 30
|
| 148 |
+
enable_http2 = true
|
| 149 |
+
|
| 150 |
+
# Memory management
|
| 151 |
+
max_memory_usage_mb = 2048
|
| 152 |
+
garbage_collection_threshold = 0.8
|
| 153 |
+
|
| 154 |
+
[logging]
|
| 155 |
+
# Configurações de logging enterprise
|
| 156 |
+
level = "INFO"
|
| 157 |
+
format = "json"
|
| 158 |
+
enable_correlation_ids = true
|
| 159 |
+
enable_performance_logging = true
|
| 160 |
+
|
| 161 |
+
# Rotação de logs
|
| 162 |
+
max_log_files = 10
|
| 163 |
+
max_log_size_mb = 50
|
| 164 |
+
|
| 165 |
+
[security]
|
| 166 |
+
# Configurações de segurança
|
| 167 |
+
enable_rate_limiting = true
|
| 168 |
+
rate_limit_requests_per_minute = 100
|
| 169 |
+
enable_input_sanitization = true
|
| 170 |
+
max_input_length = 10000
|
| 171 |
+
|
| 172 |
+
# CORS
|
| 173 |
+
allowed_origins = ["*"]
|
| 174 |
+
allowed_methods = ["GET", "POST", "PUT", "DELETE"]
|
| 175 |
+
allowed_headers = ["*"]
|
| 176 |
+
|
| 177 |
+
[monitoring]
|
| 178 |
+
# Monitoramento e health checks
|
| 179 |
+
enable_health_checks = true
|
| 180 |
+
health_check_interval = 60
|
| 181 |
+
enable_metrics = true
|
| 182 |
+
metrics_port = 9090
|
| 183 |
+
|
| 184 |
+
[database]
|
| 185 |
+
# Configurações de banco (se necessário)
|
| 186 |
+
enabled = false
|
| 187 |
+
connection_string = ""
|
| 188 |
+
max_connections = 10
|
| 189 |
+
connection_timeout = 30
|
| 190 |
+
|
| 191 |
+
[redis]
|
| 192 |
+
# Configurações Redis (se necessário)
|
| 193 |
+
enabled = false
|
| 194 |
+
host = "localhost"
|
| 195 |
+
port = 6379
|
| 196 |
+
password = ""
|
| 197 |
+
db = 0
|
| 198 |
+
|
| 199 |
+
[deployment]
|
| 200 |
+
# Configurações de deployment
|
| 201 |
+
environment = "production"
|
| 202 |
+
debug = false
|
| 203 |
+
hot_reload = false
|
| 204 |
+
serve_static_files = true
|
| 205 |
+
|
| 206 |
+
# Network
|
| 207 |
+
host = "0.0.0.0"
|
| 208 |
+
port = 8000
|
| 209 |
+
max_workers = 4
|
| 210 |
+
|
| 211 |
+
[backup]
|
| 212 |
+
# Configurações de backup
|
| 213 |
+
enabled = true
|
| 214 |
+
interval_hours = 24
|
| 215 |
+
max_backups = 7
|
| 216 |
+
backup_location = "./backups"
|
| 217 |
+
|
| 218 |
+
[experimental]
|
| 219 |
+
# Recursos experimentais
|
| 220 |
+
websocket_compression = true
|
| 221 |
+
http3_support = false
|
| 222 |
+
advanced_caching = true
|
| 223 |
+
ai_model_optimization = true
|
| 224 |
+
|
| 225 |
+
[integrations]
|
| 226 |
+
# Integrações externas
|
| 227 |
+
openai_api_key = ""
|
| 228 |
+
anthropic_api_key = ""
|
| 229 |
+
google_api_key = ""
|
| 230 |
+
azure_api_key = ""
|
| 231 |
+
|
| 232 |
+
# Webhook endpoints
|
| 233 |
+
webhook_url = ""
|
| 234 |
+
webhook_secret = ""
|
| 235 |
+
|
| 236 |
+
[advanced]
|
| 237 |
+
# Configurações avançadas
|
| 238 |
+
enable_custom_middleware = true
|
| 239 |
+
enable_request_preprocessing = true
|
| 240 |
+
enable_response_postprocessing = true
|
| 241 |
+
enable_custom_handlers = true
|
| 242 |
+
|
| 243 |
+
# Circuit breaker
|
| 244 |
+
circuit_breaker_failure_threshold = 5
|
| 245 |
+
circuit_breaker_recovery_timeout = 60
|
| 246 |
+
|
| 247 |
+
# Retry configuration
|
| 248 |
+
max_retries = 3
|
| 249 |
+
retry_backoff_multiplier = 2
|
| 250 |
+
retry_max_delay = 60
|
.chainlit/translations/bn.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
|
| 5 |
+
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 6 |
+
"continue": "\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
|
| 7 |
+
"goBack": "\u09aa\u09bf\u099b\u09a8\u09c7 \u09af\u09be\u09a8",
|
| 8 |
+
"reset": "\u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8",
|
| 9 |
+
"submit": "\u099c\u09ae\u09be \u09a6\u09bf\u09a8"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u0998\u099f\u09c7\u099b\u09c7",
|
| 15 |
+
"serverConnection": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0987\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
|
| 25 |
+
"required": "\u0987\u09ae\u09c7\u0987\u09b2 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
|
| 29 |
+
"required": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0985\u09a5\u09ac\u09be"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be \u09b8\u09ae\u09cd\u09ad\u09ac \u09b9\u099a\u09cd\u099b\u09c7 \u09a8\u09be",
|
| 40 |
+
"signin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 41 |
+
"oauthSignin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 42 |
+
"redirectUriMismatch": "\u09b0\u09bf\u09a1\u09be\u0987\u09b0\u09c7\u0995\u09cd\u099f URI \u0993\u0986\u09a5 \u0985\u09cd\u09af\u09be\u09aa \u0995\u09a8\u09ab\u09bf\u0997\u09be\u09b0\u09c7\u09b6\u09a8\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09ae\u09bf\u09b2\u099b\u09c7 \u09a8\u09be",
|
| 43 |
+
"oauthCallback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 44 |
+
"oauthCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 45 |
+
"emailCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 46 |
+
"callback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 47 |
+
"oauthAccountNotLinked": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09b0\u09bf\u099a\u09af\u09bc \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09a4\u09c7, \u0986\u09aa\u09a8\u09bf \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ae\u09c2\u09b2\u09a4 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09bf\u09b2\u09c7\u09a8 \u09b8\u09c7\u099f\u09bf \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 48 |
+
"emailSignin": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 49 |
+
"emailVerify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u0987\u09b2 \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 50 |
+
"credentialsSignin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09be\u09b0 \u09a6\u09c7\u0993\u09af\u09bc\u09be \u09a4\u09a5\u09cd\u09af \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8",
|
| 51 |
+
"sessionRequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be \u09a6\u09c7\u0996\u09a4\u09c7 \u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u0996\u09be\u09a8\u09c7 \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09be\u09a0\u09be\u09a8",
|
| 63 |
+
"stop": "\u0995\u09be\u099c \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 64 |
+
"attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
|
| 69 |
+
"stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 70 |
+
"connecting": "\u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09be\u0987\u09b2 \u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c1\u09a8",
|
| 74 |
+
"browse": "\u09ab\u09be\u0987\u09b2 \u09ac\u09cd\u09b0\u09be\u0989\u099c \u0995\u09b0\u09c1\u09a8",
|
| 75 |
+
"sizeLimit": "\u09b8\u09c0\u09ae\u09be:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 78 |
+
"cancelled": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u099b\u09c7",
|
| 84 |
+
"used": "\u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1\u09c7 \u0995\u09aa\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 89 |
+
"success": "\u0995\u09aa\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u09b8\u09b9\u09be\u09af\u09bc\u0995",
|
| 94 |
+
"negative": "\u09b8\u09b9\u09be\u09af\u09bc\u0995 \u09a8\u09af\u09bc",
|
| 95 |
+
"edit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09a8\u09be \u0995\u09b0\u09c1\u09a8",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8",
|
| 98 |
+
"submit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u099c\u09ae\u09be \u09a6\u09bf\u09a8"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7",
|
| 102 |
+
"updated": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
|
| 108 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a4\u09a5\u09cd\u09af \u09a8\u09c7\u0987...",
|
| 109 |
+
"show": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09c1\u09a8"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u098f\u09b2\u098f\u09b2\u098f\u09ae \u09ad\u09c1\u09b2 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u0964 \u0997\u09c1\u09b0\u09c1\u09a4\u09cd\u09ac\u09aa\u09c2\u09b0\u09cd\u09a3 \u09a4\u09a5\u09cd\u09af \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09be\u09b0 \u0995\u09a5\u09be \u09ac\u09bf\u09ac\u09c7\u099a\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0986\u099c",
|
| 125 |
+
"yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
|
| 126 |
+
"previous7days": "\u0997\u09a4 \u09ed \u09a6\u09bf\u09a8",
|
| 127 |
+
"previous30days": "\u0997\u09a4 \u09e9\u09e6 \u09a6\u09bf\u09a8"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a5\u09cd\u09b0\u09c7\u09a1 \u09aa\u09be\u0993\u09af\u09bc\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 132 |
+
"open": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae\u09b9\u09c0\u09a8 \u0986\u09b2\u09cb\u099a\u09a8\u09be",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 144 |
+
"description": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1 \u098f\u09ac\u0982 \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u0993 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u098f\u0987 \u0995\u09be\u099c\u099f\u09bf \u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09ac\u09b8\u09cd\u09a5\u09be\u09af\u09bc \u09ab\u09c7\u09b0\u09be\u09a8\u09cb \u09af\u09be\u09ac\u09c7 \u09a8\u09be",
|
| 145 |
+
"success": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 146 |
+
"inProgress": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 150 |
+
"description": "\u098f\u0987 \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09a6\u09bf\u09a8",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u09a8\u09be\u09ae",
|
| 154 |
+
"placeholder": "\u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c1\u09a8"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!",
|
| 158 |
+
"inProgress": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u099a\u09cd\u09af\u09be\u099f",
|
| 166 |
+
"readme": "\u09b0\u09bf\u09a1\u09ae\u09bf",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 177 |
+
"description": "\u098f\u099f\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u099a\u09cd\u09af\u09be\u099f \u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u0995\u09bf \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09c7\u09a4\u09c7 \u099a\u09be\u09a8?",
|
| 178 |
+
"tooltip": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 186 |
+
"logout": "\u09b2\u0997\u0986\u0989\u099f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 192 |
+
"description": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u0964 \u0995\u09c0\u0997\u09c1\u09b2\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09a1\u09bf\u09ad\u09be\u0987\u09b8\u09c7\u09b0 \u09b2\u09cb\u0995\u09be\u09b2 \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09a5\u09be\u0995\u09c7\u0964",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/el-GR.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0386\u03ba\u03c5\u03c1\u03bf",
|
| 5 |
+
"confirm": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7",
|
| 6 |
+
"continue": "\u03a3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1",
|
| 7 |
+
"goBack": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae",
|
| 8 |
+
"reset": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac",
|
| 9 |
+
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1",
|
| 15 |
+
"serverConnection": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5",
|
| 25 |
+
"required": "\u03a4\u03bf email \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03b4\u03af\u03bf"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
| 29 |
+
"required": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03b4\u03af\u03bf"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u03ae"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7",
|
| 40 |
+
"signin": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 41 |
+
"oauthSignin": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 42 |
+
"redirectUriMismatch": "\u039f \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2 \u03b1\u03bd\u03b1\u03ba\u03b1\u03c4\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7\u03c2 \u03b4\u03b5\u03bd \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03c4\u03b7 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b1\u03c5\u03b8\u03b5\u03bd\u03c4\u03b9\u03ba\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2",
|
| 43 |
+
"oauthCallback": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 44 |
+
"oauthCreateAccount": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 45 |
+
"emailCreateAccount": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 46 |
+
"callback": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 47 |
+
"oauthAccountNotLinked": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac \u03c3\u03b1\u03c2, \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03af\u03b4\u03b9\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b1\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ac",
|
| 48 |
+
"emailSignin": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03c4\u03bf\u03c5 email",
|
| 49 |
+
"emailVerify": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b1\u03bb\u03b7\u03b8\u03b5\u03cd\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5 \u03c3\u03b1\u03c2, \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf email \u03c3\u03b1\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03c3\u03c4\u03b1\u03bb\u03b5\u03af",
|
| 50 |
+
"credentialsSignin": "\u0397 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03b4\u03ce\u03c3\u03b1\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c9\u03c3\u03c4\u03ac",
|
| 51 |
+
"sessionRequired": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "\u03a3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1 \u03bc\u03b5 {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u03a0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03bc\u03ae\u03bd\u03c5\u03bc\u03ac \u03c3\u03b1\u03c2 \u03b5\u03b4\u03ce...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2",
|
| 63 |
+
"stop": "\u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2",
|
| 64 |
+
"attachFiles": "\u0395\u03c0\u03b9\u03c3\u03cd\u03bd\u03b1\u03c8\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0388\u03bd\u03b1\u03c1\u03be\u03b7 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 69 |
+
"stop": "\u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 70 |
+
"connecting": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u03a3\u03cd\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b4\u03ce",
|
| 74 |
+
"browse": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd",
|
| 75 |
+
"sizeLimit": "\u038c\u03c1\u03b9\u03bf:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0397 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5",
|
| 78 |
+
"cancelled": "\u0391\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5 \u03b7 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u039c\u03b5 \u03c4\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7",
|
| 84 |
+
"used": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf",
|
| 89 |
+
"success": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03c2",
|
| 94 |
+
"negative": "\u039c\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03c2",
|
| 95 |
+
"edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c3\u03c7\u03bf\u03bb\u03af\u03c9\u03bd",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c7\u03bf\u03bb\u03af\u03bf\u03c5",
|
| 98 |
+
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03c3\u03c7\u03bf\u03bb\u03af\u03c9\u03bd"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0395\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03bd\u03b5\u03c4\u03b1\u03b9",
|
| 102 |
+
"updated": "\u03a4\u03b1 \u03c3\u03c7\u03cc\u03bb\u03b9\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b1\u03bd"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ad\u03c2",
|
| 108 |
+
"empty": "\u03a4\u03cc\u03c3\u03bf \u03ac\u03b4\u03b5\u03b9\u03bf...",
|
| 109 |
+
"show": "\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03bf\u03cd"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u03a4\u03b1 \u039c\u0393\u039c \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bd \u03bb\u03ac\u03b8\u03b7. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03ad\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u03a0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b5\u03c2",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7",
|
| 121 |
+
"placeholder": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03b9\u03ce\u03bd..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1",
|
| 125 |
+
"yesterday": "\u03a7\u03b8\u03b5\u03c2",
|
| 126 |
+
"previous7days": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 7 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2",
|
| 127 |
+
"previous30days": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 30 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03bd\u03ae\u03bc\u03b1\u03c4\u03b1",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03c0\u03bb\u03b1\u03ca\u03bd\u03ae\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
|
| 132 |
+
"open": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bb\u03b1\u03ca\u03bd\u03ae\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c4\u03af\u03c4\u03bb\u03bf",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1",
|
| 139 |
+
"delete": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 144 |
+
"description": "\u0391\u03c5\u03c4\u03cc \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03c4\u03bf \u03bd\u03ae\u03bc\u03b1 \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03b1 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5. \u0391\u03c5\u03c4\u03ae \u03b7 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03b1\u03b9\u03c1\u03b5\u03b8\u03b5\u03af.",
|
| 145 |
+
"success": "\u0397 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5",
|
| 146 |
+
"inProgress": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u039d\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2",
|
| 150 |
+
"description": "\u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03bd\u03ae\u03bc\u03b1",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u038c\u03bd\u03bf\u03bc\u03b1",
|
| 154 |
+
"placeholder": "\u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03bd\u03ad\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u03a4\u03bf \u03bd\u03ae\u03bc\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5!",
|
| 158 |
+
"inProgress": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u039d\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1",
|
| 166 |
+
"readme": "\u0394\u03b9\u03ac\u03b2\u03b1\u03c3\u03ad \u03bc\u03b5",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "\u03a6\u03c9\u03c4\u03b5\u03b9\u03bd\u03cc \u0398\u03ad\u03bc\u03b1",
|
| 169 |
+
"dark": "\u03a3\u03ba\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc \u03b8\u03ad\u03bc\u03b1",
|
| 170 |
+
"system": "\u0391\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03c3\u03cd\u03c3\u03c4\u03b7\u03bc\u03b1"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u039d\u03ad\u03b1 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u039d\u03ad\u03b1\u03c2 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2",
|
| 177 |
+
"description": "\u0391\u03c5\u03c4\u03cc \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03c4\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03c3\u03b1\u03c2. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5;",
|
| 178 |
+
"tooltip": "\u039d\u03ad\u03b1 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "\u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API",
|
| 186 |
+
"logout": "\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0391\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API",
|
| 192 |
+
"description": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae, \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c4\u03b1 \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API. \u03a4\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b1 \u03c3\u03c4\u03bf\u03bd \u03c4\u03bf\u03c0\u03b9\u03ba\u03cc \u03c7\u03ce\u03c1\u03bf \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2 \u03c3\u03b1\u03c2.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2",
|
| 199 |
+
"note": "\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7",
|
| 200 |
+
"tip": "\u03a3\u03c5\u03bc\u03b2\u03bf\u03c5\u03bb\u03ae",
|
| 201 |
+
"important": "\u03a3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03cc",
|
| 202 |
+
"warning": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
| 203 |
+
"caution": "\u03a0\u03c1\u03bf\u03c3\u03bf\u03c7\u03ae",
|
| 204 |
+
"debug": "\u0395\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03cc\u03c2 \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd",
|
| 205 |
+
"example": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1",
|
| 206 |
+
"success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1",
|
| 207 |
+
"help": "\u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1",
|
| 208 |
+
"idea": "\u0399\u03b4\u03ad\u03b1",
|
| 209 |
+
"pending": "\u03a3\u03b5 \u03b5\u03ba\u03ba\u03c1\u03b5\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1",
|
| 210 |
+
"security": "\u0391\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "\u0392\u03ad\u03bb\u03c4\u03b9\u03c3\u03c4\u03b7 \u03a0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/en-US.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Cancel",
|
| 5 |
+
"confirm": "Confirm",
|
| 6 |
+
"continue": "Continue",
|
| 7 |
+
"goBack": "Go Back",
|
| 8 |
+
"reset": "Reset",
|
| 9 |
+
"submit": "Submit"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Loading...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "An error occurred",
|
| 15 |
+
"serverConnection": "Could not reach the server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Login to access the app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Email address",
|
| 25 |
+
"required": "email is a required field"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "Password",
|
| 29 |
+
"required": "password is a required field"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "Sign In"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "OR"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "Unable to sign in",
|
| 40 |
+
"signin": "Try signing in with a different account",
|
| 41 |
+
"oauthSignin": "Try signing in with a different account",
|
| 42 |
+
"redirectUriMismatch": "The redirect URI is not matching the oauth app configuration",
|
| 43 |
+
"oauthCallback": "Try signing in with a different account",
|
| 44 |
+
"oauthCreateAccount": "Try signing in with a different account",
|
| 45 |
+
"emailCreateAccount": "Try signing in with a different account",
|
| 46 |
+
"callback": "Try signing in with a different account",
|
| 47 |
+
"oauthAccountNotLinked": "To confirm your identity, sign in with the same account you used originally",
|
| 48 |
+
"emailSignin": "The e-mail could not be sent",
|
| 49 |
+
"emailVerify": "Please verify your email, a new email has been sent",
|
| 50 |
+
"credentialsSignin": "Sign in failed. Check the details you provided are correct",
|
| 51 |
+
"sessionRequired": "Please sign in to access this page"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "Continue with {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "Type your message here...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "Send message",
|
| 63 |
+
"stop": "Stop Task",
|
| 64 |
+
"attachFiles": "Attach files"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "Start recording",
|
| 69 |
+
"stop": "Stop recording",
|
| 70 |
+
"connecting": "Connecting"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "Drag and drop files here",
|
| 74 |
+
"browse": "Browse Files",
|
| 75 |
+
"sizeLimit": "Limit:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "Failed to upload",
|
| 78 |
+
"cancelled": "Cancelled upload of"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "Using",
|
| 84 |
+
"used": "Used"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "Copy to clipboard",
|
| 89 |
+
"success": "Copied!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "Helpful",
|
| 94 |
+
"negative": "Not helpful",
|
| 95 |
+
"edit": "Edit feedback",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "Add a comment",
|
| 98 |
+
"submit": "Submit feedback"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "Updating",
|
| 102 |
+
"updated": "Feedback updated"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "Last Inputs",
|
| 108 |
+
"empty": "Such empty...",
|
| 109 |
+
"show": "Show history"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "Settings panel"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLMs can make mistakes. Check important info."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "Past Chats",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "Search",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "Today",
|
| 125 |
+
"yesterday": "Yesterday",
|
| 126 |
+
"previous7days": "Previous 7 days",
|
| 127 |
+
"previous30days": "Previous 30 days"
|
| 128 |
+
},
|
| 129 |
+
"empty": "No threads found",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "Close sidebar",
|
| 132 |
+
"open": "Open sidebar"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "Untitled Conversation",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "Confirm deletion",
|
| 144 |
+
"description": "This will delete the thread as well as its messages and elements. This action cannot be undone",
|
| 145 |
+
"success": "Chat deleted",
|
| 146 |
+
"inProgress": "Deleting chat"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "Rename Thread",
|
| 150 |
+
"description": "Enter a new name for this thread",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "Name",
|
| 154 |
+
"placeholder": "Enter new name"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "Thread renamed!",
|
| 158 |
+
"inProgress": "Renaming thread"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "Chat",
|
| 166 |
+
"readme": "Readme",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "New Chat",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "Create New Chat",
|
| 177 |
+
"description": "This will clear your current chat history. Are you sure you want to continue?",
|
| 178 |
+
"tooltip": "New Chat"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "Settings",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API Keys",
|
| 186 |
+
"logout": "Logout"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "Required API Keys",
|
| 192 |
+
"description": "To use this app, the following API keys are required. The keys are stored on your device's local storage.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "Saved successfully"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/fr-FR.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Annuler",
|
| 5 |
+
"confirm": "Confirmer",
|
| 6 |
+
"continue": "Continuer",
|
| 7 |
+
"goBack": "Retour",
|
| 8 |
+
"reset": "R\u00e9initialiser",
|
| 9 |
+
"submit": "Envoyer"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Chargement...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Une erreur est survenue",
|
| 15 |
+
"serverConnection": "Impossible de joindre le serveur"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Connectez-vous pour acc\u00e9der \u00e0 l'application",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Adresse e-mail",
|
| 25 |
+
"required": "l'e-mail est un champ obligatoire"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "Mot de passe",
|
| 29 |
+
"required": "le mot de passe est un champ obligatoire"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "Se connecter"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "OU"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "Impossible de se connecter",
|
| 40 |
+
"signin": "Essayez de vous connecter avec un autre compte",
|
| 41 |
+
"oauthSignin": "Essayez de vous connecter avec un autre compte",
|
| 42 |
+
"redirectUriMismatch": "L'URI de redirection ne correspond pas \u00e0 la configuration de l'application oauth",
|
| 43 |
+
"oauthCallback": "Essayez de vous connecter avec un autre compte",
|
| 44 |
+
"oauthCreateAccount": "Essayez de vous connecter avec un autre compte",
|
| 45 |
+
"emailCreateAccount": "Essayez de vous connecter avec un autre compte",
|
| 46 |
+
"callback": "Essayez de vous connecter avec un autre compte",
|
| 47 |
+
"oauthAccountNotLinked": "Pour confirmer votre identit\u00e9, connectez-vous avec le m\u00eame compte que vous avez utilis\u00e9 \u00e0 l'origine",
|
| 48 |
+
"emailSignin": "L'e-mail n'a pas pu \u00eatre envoy\u00e9",
|
| 49 |
+
"emailVerify": "Veuillez v\u00e9rifier votre e-mail, un nouvel e-mail a \u00e9t\u00e9 envoy\u00e9",
|
| 50 |
+
"credentialsSignin": "La connexion a \u00e9chou\u00e9. V\u00e9rifiez que les informations que vous avez fournies sont correctes",
|
| 51 |
+
"sessionRequired": "Veuillez vous connecter pour acc\u00e9der \u00e0 cette page"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "Continuer avec {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "Tapez votre message ici...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "Envoyer le message",
|
| 63 |
+
"stop": "Arr\u00eater la t\u00e2che",
|
| 64 |
+
"attachFiles": "Joindre des fichiers"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "D\u00e9marrer l'enregistrement",
|
| 69 |
+
"stop": "Arr\u00eater l'enregistrement",
|
| 70 |
+
"connecting": "Connexion en cours"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "Glissez et d\u00e9posez des fichiers ici",
|
| 74 |
+
"browse": "Parcourir les fichiers",
|
| 75 |
+
"sizeLimit": "Limite :",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u00c9chec du t\u00e9l\u00e9versement",
|
| 78 |
+
"cancelled": "T\u00e9l\u00e9versement annul\u00e9 de"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "Utilise",
|
| 84 |
+
"used": "Utilis\u00e9"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "Copier dans le presse-papiers",
|
| 89 |
+
"success": "Copi\u00e9 !"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "Utile",
|
| 94 |
+
"negative": "Pas utile",
|
| 95 |
+
"edit": "Modifier le commentaire",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "Ajouter un commentaire",
|
| 98 |
+
"submit": "Envoyer le commentaire"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "Mise \u00e0 jour",
|
| 102 |
+
"updated": "Commentaire mis \u00e0 jour"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "Derni\u00e8res entr\u00e9es",
|
| 108 |
+
"empty": "Tellement vide...",
|
| 109 |
+
"show": "Afficher l'historique"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "Panneau des param\u00e8tres"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "Construit avec"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "Discussions pass\u00e9es",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "Rechercher",
|
| 121 |
+
"placeholder": "Rechercher des conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "Aujourd'hui",
|
| 125 |
+
"yesterday": "Hier",
|
| 126 |
+
"previous7days": "Les 7 derniers jours",
|
| 127 |
+
"previous30days": "Les 30 derniers jours"
|
| 128 |
+
},
|
| 129 |
+
"empty": "Aucun fil de discussion trouv\u00e9",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "Fermer la barre lat\u00e9rale",
|
| 132 |
+
"open": "Ouvrir la barre lat\u00e9rale"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "Conversation sans titre",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Renommer",
|
| 139 |
+
"delete": "Supprimer"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "Confirmer la suppression",
|
| 144 |
+
"description": "Cela supprimera le fil de discussion ainsi que ses messages et \u00e9l\u00e9ments. Cette action ne peut pas \u00eatre annul\u00e9e",
|
| 145 |
+
"success": "Discussion supprim\u00e9e",
|
| 146 |
+
"inProgress": "Suppression de la discussion"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "Renommer le fil de discussion",
|
| 150 |
+
"description": "Entrez un nouveau nom pour ce fil de discussion",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "Nom",
|
| 154 |
+
"placeholder": "Entrez le nouveau nom"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "Fil de discussion renomm\u00e9 !",
|
| 158 |
+
"inProgress": "Renommage du fil de discussion"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "Discussion",
|
| 166 |
+
"readme": "Lisez-moi",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Th\u00e8me clair",
|
| 169 |
+
"dark": "Th\u00e8me sombre",
|
| 170 |
+
"system": "Suivre le syst\u00e8me"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "Nouvelle discussion",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "Cr\u00e9er une nouvelle discussion",
|
| 177 |
+
"description": "Cela effacera votre historique de discussion actuel. \u00cates-vous s\u00fbr de vouloir continuer ?",
|
| 178 |
+
"tooltip": "Nouvelle discussion"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "Param\u00e8tres",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "Cl\u00e9s API",
|
| 186 |
+
"logout": "Se d\u00e9connecter"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "Cl\u00e9s API requises",
|
| 192 |
+
"description": "Pour utiliser cette application, les cl\u00e9s API suivantes sont requises. Les cl\u00e9s sont stock\u00e9es dans le stockage local de votre appareil.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "Enregistr\u00e9 avec succ\u00e8s"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Astuce",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Avertissement",
|
| 203 |
+
"caution": "Attention",
|
| 204 |
+
"debug": "D\u00e9bogage",
|
| 205 |
+
"example": "Exemple",
|
| 206 |
+
"success": "Succ\u00e8s",
|
| 207 |
+
"help": "Aide",
|
| 208 |
+
"idea": "Id\u00e9e",
|
| 209 |
+
"pending": "En attente",
|
| 210 |
+
"security": "S\u00e9curit\u00e9",
|
| 211 |
+
"beta": "B\u00eata",
|
| 212 |
+
"best-practice": "Meilleure pratique"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/gu.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
|
| 5 |
+
"confirm": "\u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 6 |
+
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
|
| 7 |
+
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
|
| 8 |
+
"reset": "\u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0acb",
|
| 9 |
+
"submit": "\u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0ab2\u0acb\u0aa1 \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0a8f\u0a95 \u0aad\u0ac2\u0ab2 \u0aa5\u0a88",
|
| 15 |
+
"serverConnection": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0ac9\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0a88\u0aae\u0ac7\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8",
|
| 25 |
+
"required": "\u0a88\u0aae\u0ac7\u0ab2 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
|
| 29 |
+
"required": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0a85\u0aa5\u0ab5\u0abe"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0",
|
| 40 |
+
"signin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 41 |
+
"oauthSignin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 42 |
+
"redirectUriMismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI oauth \u0a8d\u0aaa \u0a95\u0aa8\u0acd\u0aab\u0abf\u0a97\u0ab0\u0ac7\u0ab6\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aae\u0ac7\u0ab3 \u0a96\u0abe\u0aa4\u0acb \u0aa8\u0aa5\u0ac0",
|
| 43 |
+
"oauthCallback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 44 |
+
"oauthCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 45 |
+
"emailCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 46 |
+
"callback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 47 |
+
"oauthAccountNotLinked": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0a93\u0ab3\u0a96\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aae\u0ac2\u0ab3 \u0ab0\u0ac2\u0aaa\u0ac7 \u0ab5\u0abe\u0aaa\u0ab0\u0ac7\u0ab2\u0abe \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
|
| 48 |
+
"emailSignin": "\u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0aa5\u0ac0",
|
| 49 |
+
"emailVerify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0a9a\u0a95\u0abe\u0ab8\u0acb, \u0aa8\u0ab5\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0acb \u0a9b\u0ac7",
|
| 50 |
+
"credentialsSignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0a86\u0aaa\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0a95\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb",
|
| 51 |
+
"sessionRequired": "\u0a86 \u0aaa\u0ac7\u0a9c\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0a85\u0ab9\u0ac0\u0a82 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0ab2\u0a96\u0acb...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0aae\u0acb\u0a95\u0ab2\u0acb",
|
| 63 |
+
"stop": "\u0a95\u0abe\u0ab0\u0acd\u0aaf \u0ab0\u0acb\u0a95\u0acb",
|
| 64 |
+
"attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a9c\u0acb\u0aa1\u0acb"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
|
| 69 |
+
"stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 70 |
+
"connecting": "\u0a95\u0aa8\u0ac7\u0a95\u0acd\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0a85\u0ab9\u0ac0\u0a82 \u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a96\u0ac7\u0a82\u0a9a\u0acb \u0a85\u0aa8\u0ac7 \u0a9b\u0acb\u0aa1\u0acb",
|
| 74 |
+
"browse": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0aac\u0acd\u0ab0\u0abe\u0a89\u0a9d \u0a95\u0ab0\u0acb",
|
| 75 |
+
"sizeLimit": "\u0aae\u0ab0\u0acd\u0aaf\u0abe\u0aa6\u0abe:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
|
| 78 |
+
"cancelled": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0a95\u0ab0\u0acd\u0aaf\u0ac1\u0a82"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7",
|
| 84 |
+
"used": "\u0ab5\u0aaa\u0ab0\u0abe\u0aaf\u0ac7\u0ab2"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0a95\u0acd\u0ab2\u0abf\u0aaa\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0aaa\u0ab0 \u0a95\u0ac9\u0aaa\u0abf \u0a95\u0ab0\u0acb",
|
| 89 |
+
"success": "\u0a95\u0ac9\u0aaa\u0abf \u0aa5\u0aaf\u0ac1\u0a82!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 94 |
+
"negative": "\u0aac\u0abf\u0aa8\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 95 |
+
"edit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0a82\u0aaa\u0abe\u0aa6\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0a9f\u0abf\u0aaa\u0acd\u0aaa\u0aa3\u0ac0 \u0a89\u0aae\u0ac7\u0ab0\u0acb",
|
| 98 |
+
"submit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7",
|
| 102 |
+
"updated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0aaf\u0acb"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
|
| 108 |
+
"empty": "\u0a96\u0abe\u0ab2\u0ac0 \u0a9b\u0ac7...",
|
| 109 |
+
"show": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac7\u0aa8\u0ab2"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM \u0aad\u0ac2\u0ab2\u0acb \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0ac7 \u0a9b\u0ac7. \u0aae\u0ab9\u0aa4\u0acd\u0ab5\u0aaa\u0ac2\u0ab0\u0acd\u0aa3 \u0aae\u0abe\u0ab9\u0abf\u0aa4\u0ac0 \u0aa4\u0aaa\u0abe\u0ab8\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab5\u0abf\u0a9a\u0abe\u0ab0\u0acb."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0aaa\u0abe\u0a9b\u0ab2\u0ac0 \u0a9a\u0ac7\u0a9f\u0acd\u0ab8",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0ab6\u0acb\u0aa7\u0acb",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0a86\u0a9c\u0ac7",
|
| 125 |
+
"yesterday": "\u0a97\u0a88\u0a95\u0abe\u0ab2\u0ac7",
|
| 126 |
+
"previous7days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 7 \u0aa6\u0abf\u0ab5\u0ab8",
|
| 127 |
+
"previous30days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 30 \u0aa6\u0abf\u0ab5\u0ab8"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0a95\u0acb\u0a88 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0acd\u0ab8 \u0aae\u0ab3\u0acd\u0aaf\u0abe \u0aa8\u0aa5\u0ac0",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 132 |
+
"open": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0a96\u0acb\u0ab2\u0acb"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0ab6\u0ac0\u0ab0\u0acd\u0ab7\u0a95 \u0ab5\u0a97\u0ab0\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab5\u0abe\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 144 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0a85\u0aa8\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7. \u0a86 \u0a95\u0acd\u0ab0\u0abf\u0aaf\u0abe \u0aaa\u0abe\u0a9b\u0ac0 \u0aab\u0ac7\u0ab0\u0ab5\u0ac0 \u0ab6\u0a95\u0abe\u0ab6\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82",
|
| 145 |
+
"success": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0",
|
| 146 |
+
"inProgress": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0acb",
|
| 150 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0aae\u0abe\u0a9f\u0ac7 \u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0aa8\u0abe\u0aae",
|
| 154 |
+
"placeholder": "\u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0abe\u0aaf\u0ac1\u0a82!",
|
| 158 |
+
"inProgress": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0a9a\u0ac7\u0a9f",
|
| 166 |
+
"readme": "\u0ab5\u0abe\u0a82\u0a9a\u0acb",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f \u0aac\u0aa8\u0abe\u0ab5\u0acb",
|
| 177 |
+
"description": "\u0a86 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0a9a\u0ac7\u0a9f \u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7. \u0ab6\u0ac1\u0a82 \u0aa4\u0aae\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ab5\u0abe \u0aae\u0abe\u0a82\u0a97\u0acb \u0a9b\u0acb?",
|
| 178 |
+
"tooltip": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0a95\u0ac0",
|
| 186 |
+
"logout": "\u0ab2\u0ac9\u0a97\u0a86\u0a89\u0a9f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0",
|
| 192 |
+
"description": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab5\u0abe\u0aaa\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab2\u0acb\u0a95\u0ab2 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c\u0aae\u0abe\u0a82 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0ab6\u0ac7.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0abe\u0a9a\u0ab5\u0acd\u0aaf\u0ac1\u0a82"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/he-IL.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc",
|
| 5 |
+
"confirm": "\u05d0\u05d9\u05e9\u05d5\u05e8",
|
| 6 |
+
"continue": "\u05d4\u05de\u05e9\u05da",
|
| 7 |
+
"goBack": "\u05d7\u05d6\u05d5\u05e8",
|
| 8 |
+
"reset": "\u05d0\u05d9\u05e4\u05d5\u05e1",
|
| 9 |
+
"submit": "\u05e9\u05dc\u05d7"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u05d8\u05d5\u05e2\u05df...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4",
|
| 15 |
+
"serverConnection": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05dc\u05e9\u05e8\u05ea"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 25 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u05e1\u05d9\u05e1\u05de\u05d4",
|
| 29 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u05d4\u05ea\u05d7\u05d1\u05e8"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u05d0\u05d5"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8",
|
| 40 |
+
"signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 41 |
+
"oauthSignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 42 |
+
"redirectUriMismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05d0\u05ea \u05ea\u05e6\u05d5\u05e8\u05ea \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea OAuth",
|
| 43 |
+
"oauthCallback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 44 |
+
"oauthCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 45 |
+
"emailCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 46 |
+
"callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 47 |
+
"oauthAccountNotLinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8",
|
| 48 |
+
"emailSignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 49 |
+
"emailVerify": "\u05d0\u05e0\u05d0 \u05d0\u05de\u05ea \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05e0\u05e9\u05dc\u05d7 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9",
|
| 50 |
+
"credentialsSignin": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05d4\u05d6\u05e0\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd",
|
| 51 |
+
"sessionRequired": "\u05d0\u05e0\u05d0 \u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u05d4\u05e7\u05dc\u05d3 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05db\u05d0\u05df...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
|
| 63 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4",
|
| 64 |
+
"attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 69 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 70 |
+
"connecting": "\u05de\u05ea\u05d7\u05d1\u05e8"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u05d2\u05e8\u05d5\u05e8 \u05d5\u05e9\u05d7\u05e8\u05e8 \u05e7\u05d1\u05e6\u05d9\u05dd \u05db\u05d0\u05df",
|
| 74 |
+
"browse": "\u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d1\u05e6\u05d9\u05dd",
|
| 75 |
+
"sizeLimit": "\u05de\u05d2\u05d1\u05dc\u05d4:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
|
| 78 |
+
"cancelled": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4 \u05e9\u05dc"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1",
|
| 84 |
+
"used": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u05d4\u05e2\u05ea\u05e7 \u05dc\u05dc\u05d5\u05d7",
|
| 89 |
+
"success": "\u05d4\u05d5\u05e2\u05ea\u05e7!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u05de\u05d5\u05e2\u05d9\u05dc",
|
| 94 |
+
"negative": "\u05dc\u05d0 \u05de\u05d5\u05e2\u05d9\u05dc",
|
| 95 |
+
"edit": "\u05e2\u05e8\u05d5\u05da \u05de\u05e9\u05d5\u05d1",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u05d4\u05d5\u05e1\u05e3 \u05ea\u05d2\u05d5\u05d1\u05d4",
|
| 98 |
+
"submit": "\u05e9\u05dc\u05d7 \u05de\u05e9\u05d5\u05d1"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u05de\u05e2\u05d3\u05db\u05df",
|
| 102 |
+
"updated": "\u05d4\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u05e7\u05dc\u05d8\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 108 |
+
"empty": "\u05db\u05dc \u05db\u05da \u05e8\u05d9\u05e7...",
|
| 109 |
+
"show": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u05e4\u05d0\u05e0\u05dc \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u05de\u05d5\u05d3\u05dc\u05d9 \u05e9\u05e4\u05d4 \u05d2\u05d3\u05d5\u05dc\u05d9\u05dd \u05e2\u05dc\u05d5\u05dc\u05d9\u05dd \u05dc\u05e2\u05e9\u05d5\u05ea \u05d8\u05e2\u05d5\u05d9\u05d5\u05ea. \u05db\u05d3\u05d0\u05d9 \u05dc\u05d1\u05d3\u05d5\u05e7 \u05de\u05d9\u05d3\u05e2 \u05d7\u05e9\u05d5\u05d1."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u05d7\u05d9\u05e4\u05d5\u05e9",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u05d4\u05d9\u05d5\u05dd",
|
| 125 |
+
"yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
|
| 126 |
+
"previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 127 |
+
"previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05d9\u05d7\u05d5\u05ea",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
|
| 132 |
+
"open": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u05e9\u05d9\u05d7\u05d4 \u05dc\u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05d4",
|
| 144 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05d0\u05dc\u05de\u05e0\u05d8\u05d9\u05dd \u05e9\u05dc\u05d4. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5",
|
| 145 |
+
"success": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7",
|
| 146 |
+
"inProgress": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4",
|
| 150 |
+
"description": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9 \u05dc\u05e9\u05d9\u05d7\u05d4 \u05d6\u05d5",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u05e9\u05dd",
|
| 154 |
+
"placeholder": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u05e9\u05dd \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05d5\u05e0\u05d4!",
|
| 158 |
+
"inProgress": "\u05de\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u05e6'\u05d0\u05d8",
|
| 166 |
+
"readme": "\u05e7\u05e8\u05d0 \u05d0\u05d5\u05ea\u05d9",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 177 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d9\u05ea \u05d4\u05e6'\u05d0\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
|
| 178 |
+
"tooltip": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
| 184 |
+
"settingsKey": "\u05d4",
|
| 185 |
+
"apiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API",
|
| 186 |
+
"logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
|
| 192 |
+
"description": "\u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05d6\u05d5, \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd \u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05d4\u05d1\u05d0\u05d9\u05dd. \u05d4\u05de\u05e4\u05ea\u05d7\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e1\u05e0\u05d9\u05dd \u05d1\u05d0\u05d7\u05e1\u05d5\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc \u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05e9\u05dc\u05da.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/hi.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 6 |
+
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
|
| 7 |
+
"goBack": "\u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902",
|
| 9 |
+
"submit": "\u091c\u092e\u093e \u0915\u0930\u0947\u0902"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0939\u094b \u0930\u0939\u093e \u0939\u0948...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u093f \u0939\u0941\u0908",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u0930 \u0938\u0947 \u0938\u0902\u092a\u0930\u094d\u0915 \u0928\u0939\u0940\u0902 \u0939\u094b \u092a\u093e \u0930\u0939\u093e"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 29 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u092f\u093e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925",
|
| 40 |
+
"signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 41 |
+
"oauthSignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 42 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI oauth \u0910\u092a \u0915\u0949\u0928\u094d\u092b\u093c\u093f\u0917\u0930\u0947\u0936\u0928 \u0938\u0947 \u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u0916\u093e \u0930\u0939\u093e",
|
| 43 |
+
"oauthCallback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 44 |
+
"oauthCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 45 |
+
"emailCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 46 |
+
"callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 47 |
+
"oauthAccountNotLinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0909\u0938\u0940 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902 \u091c\u093f\u0938\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0906\u092a\u0928\u0947 \u092e\u0942\u0932 \u0930\u0942\u092a \u0938\u0947 \u0915\u093f\u092f\u093e \u0925\u093e",
|
| 48 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u093e \u091c\u093e \u0938\u0915\u093e",
|
| 49 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902, \u090f\u0915 \u0928\u092f\u093e \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0917\u092f\u093e \u0939\u0948",
|
| 50 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932\u0964 \u0906\u092a\u0915\u0947 \u0926\u094d\u0935\u093e\u0930\u093e \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u093f\u090f \u0917\u090f \u0935\u093f\u0935\u0930\u0923 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0947\u0902",
|
| 51 |
+
"sessionRequired": "\u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0902 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
|
| 63 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0930\u094b\u0915\u0947\u0902",
|
| 64 |
+
"attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
|
| 69 |
+
"stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0930\u094b\u0915\u0947\u0902",
|
| 70 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u092b\u093c\u093e\u0907\u0932\u094b\u0902 \u0915\u094b \u092f\u0939\u093e\u0902 \u0916\u0940\u0902\u091a\u0947\u0902 \u0914\u0930 \u091b\u094b\u0921\u093c\u0947\u0902",
|
| 74 |
+
"browse": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092c\u094d\u0930\u093e\u0909\u091c\u093c \u0915\u0930\u0947\u0902",
|
| 75 |
+
"sizeLimit": "\u0938\u0940\u092e\u093e:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
|
| 78 |
+
"cancelled": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0909\u092a\u092f\u094b\u0917 \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
| 84 |
+
"used": "\u0909\u092a\u092f\u094b\u0917 \u0915\u093f\u092f\u093e"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921 \u092a\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u0947\u0902",
|
| 89 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u093f\u092f\u093e \u0917\u092f\u093e!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0938\u0939\u093e\u092f\u0915",
|
| 94 |
+
"negative": "\u0938\u0939\u093e\u092f\u0915 \u0928\u0939\u0940\u0902",
|
| 95 |
+
"edit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u0947\u0902",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093c\u0947\u0902",
|
| 98 |
+
"submit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u091c\u092e\u093e \u0915\u0930\u0947\u0902"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948",
|
| 102 |
+
"updated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u092a\u093f\u091b\u0932\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 108 |
+
"empty": "\u0915\u0941\u091b \u092d\u0940 \u0928\u0939\u0940\u0902 \u0939\u0948...",
|
| 109 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u090f\u0932\u090f\u0932\u090f\u092e \u0917\u0932\u0924\u093f\u092f\u093e\u0902 \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902\u0964 \u092e\u0939\u0924\u094d\u0935\u092a\u0942\u0930\u094d\u0923 \u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0928\u0947 \u092a\u0930 \u0935\u093f\u091a\u093e\u0930 \u0915\u0930\u0947\u0902\u0964"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0916\u094b\u091c\u0947\u0902",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0906\u091c",
|
| 125 |
+
"yesterday": "\u0915\u0932",
|
| 126 |
+
"previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
|
| 127 |
+
"previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0915\u094b\u0908 \u0925\u094d\u0930\u0947\u0921 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932\u093e",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
|
| 132 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0939\u0940\u0928 \u0935\u093e\u0930\u094d\u0924\u093e\u0932\u093e\u092a",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0939\u091f\u093e\u0928\u0947 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 144 |
+
"description": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0914\u0930 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964 \u092f\u0939 \u0915\u094d\u0930\u093f\u092f\u093e \u0935\u093e\u092a\u0938 \u0928\u0939\u0940\u0902 \u0915\u0940 \u091c\u093e \u0938\u0915\u0924\u0940",
|
| 145 |
+
"success": "\u091a\u0948\u091f \u0939\u091f\u093e \u0926\u0940 \u0917\u0908",
|
| 146 |
+
"inProgress": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902",
|
| 150 |
+
"description": "\u0907\u0938 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0932\u093f\u090f \u090f\u0915 \u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0928\u093e\u092e",
|
| 154 |
+
"placeholder": "\u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932 \u0926\u093f\u092f\u093e \u0917\u092f\u093e!",
|
| 158 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u093e \u091c\u093e \u0930\u0939\u093e \u0939\u0948"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u091a\u0948\u091f",
|
| 166 |
+
"readme": "\u0930\u0940\u0921\u092e\u0940",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0928\u0908 \u091a\u0948\u091f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0902",
|
| 177 |
+
"description": "\u092f\u0939 \u0906\u092a\u0915\u093e \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u091a\u0948\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b\u093c \u0915\u0930 \u0926\u0947\u0917\u093e\u0964 \u0915\u094d\u092f\u093e \u0906\u092a \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?",
|
| 178 |
+
"tooltip": "\u0928\u0908 \u091a\u0948\u091f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 186 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 192 |
+
"description": "\u0907\u0938 \u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u0935\u0936\u094d\u092f\u0915 \u0939\u0948\u0902\u0964 \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u092a\u0915\u0947 \u0921\u093f\u0935\u093e\u0907\u0938 \u0915\u0947 \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u0938\u0902\u0917\u094d\u0930\u0939\u0923 \u092e\u0947\u0902 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ja.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
|
| 5 |
+
"confirm": "\u78ba\u8a8d",
|
| 6 |
+
"continue": "\u7d9a\u3051\u308b",
|
| 7 |
+
"goBack": "\u623b\u308b",
|
| 8 |
+
"reset": "\u30ea\u30bb\u30c3\u30c8",
|
| 9 |
+
"submit": "\u9001\u4fe1"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f",
|
| 15 |
+
"serverConnection": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u30a2\u30d7\u30ea\u306b\u30ed\u30b0\u30a4\u30f3",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9",
|
| 25 |
+
"required": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u30d1\u30b9\u30ef\u30fc\u30c9",
|
| 29 |
+
"required": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u30b5\u30a4\u30f3\u30a4\u30f3"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u307e\u305f\u306f"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u30b5\u30a4\u30f3\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093",
|
| 40 |
+
"signin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 41 |
+
"oauthSignin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 42 |
+
"redirectUriMismatch": "\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u304cOAuth\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093",
|
| 43 |
+
"oauthCallback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 44 |
+
"oauthCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 45 |
+
"emailCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 46 |
+
"callback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 47 |
+
"oauthAccountNotLinked": "\u672c\u4eba\u78ba\u8a8d\u306e\u305f\u3081\u3001\u6700\u521d\u306b\u4f7f\u7528\u3057\u305f\u306e\u3068\u540c\u3058\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 48 |
+
"emailSignin": "\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",
|
| 49 |
+
"emailVerify": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u65b0\u3057\u3044\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f",
|
| 50 |
+
"credentialsSignin": "\u30b5\u30a4\u30f3\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u5165\u529b\u3057\u305f\u60c5\u5831\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 51 |
+
"sessionRequired": "\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}}\u3067\u7d9a\u3051\u308b"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1",
|
| 63 |
+
"stop": "\u30bf\u30b9\u30af\u3092\u505c\u6b62",
|
| 64 |
+
"attachFiles": "\u30d5\u30a1\u30a4\u30eb\u3092\u6dfb\u4ed8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u9332\u97f3\u958b\u59cb",
|
| 69 |
+
"stop": "\u9332\u97f3\u505c\u6b62",
|
| 70 |
+
"connecting": "\u63a5\u7d9a\u4e2d"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u3053\u3053\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30c9\u30ed\u30c3\u30d7",
|
| 74 |
+
"browse": "\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167",
|
| 75 |
+
"sizeLimit": "\u5236\u9650\uff1a",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
|
| 78 |
+
"cancelled": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3057\u305f\uff1a"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 84 |
+
"used": "\u4f7f\u7528\u6e08\u307f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc",
|
| 89 |
+
"success": "\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u5f79\u306b\u7acb\u3063\u305f",
|
| 94 |
+
"negative": "\u5f79\u306b\u7acb\u305f\u306a\u304b\u3063\u305f",
|
| 95 |
+
"edit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u7de8\u96c6",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0",
|
| 98 |
+
"submit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 102 |
+
"updated": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u6700\u8fd1\u306e\u5165\u529b",
|
| 108 |
+
"empty": "\u4f55\u3082\u3042\u308a\u307e\u305b\u3093...",
|
| 109 |
+
"show": "\u5c65\u6b74\u3092\u8868\u793a"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u8a2d\u5b9a\u30d1\u30cd\u30eb"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u306f\u9593\u9055\u3044\u3092\u72af\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u91cd\u8981\u306a\u60c5\u5831\u306b\u3064\u3044\u3066\u306f\u78ba\u8a8d\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u904e\u53bb\u306e\u30c1\u30e3\u30c3\u30c8",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u691c\u7d22",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u4eca\u65e5",
|
| 125 |
+
"yesterday": "\u6628\u65e5",
|
| 126 |
+
"previous7days": "\u904e\u53bb7\u65e5\u9593",
|
| 127 |
+
"previous30days": "\u904e\u53bb30\u65e5\u9593"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u30b9\u30ec\u30c3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u9589\u3058\u308b",
|
| 132 |
+
"open": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u958b\u304f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u7121\u984c\u306e\u4f1a\u8a71",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u524a\u9664\u306e\u78ba\u8a8d",
|
| 144 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u3068\u305d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u8981\u7d20\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u64cd\u4f5c\u306f\u53d6\u308a\u6d88\u305b\u307e\u305b\u3093",
|
| 145 |
+
"success": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f",
|
| 146 |
+
"inProgress": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u4e2d"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u30b9\u30ec\u30c3\u30c9\u306e\u540d\u524d\u3092\u5909\u66f4",
|
| 150 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u540d\u524d",
|
| 154 |
+
"placeholder": "\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\uff01",
|
| 158 |
+
"inProgress": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u4e2d"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u30c1\u30e3\u30c3\u30c8",
|
| 166 |
+
"readme": "\u8aac\u660e\u66f8",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8\u306e\u4f5c\u6210",
|
| 177 |
+
"description": "\u73fe\u5728\u306e\u30c1\u30e3\u30c3\u30c8\u5c65\u6b74\u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f",
|
| 178 |
+
"tooltip": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u8a2d\u5b9a",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API\u30ad\u30fc",
|
| 186 |
+
"logout": "\u30ed\u30b0\u30a2\u30a6\u30c8"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u5fc5\u8981\u306aAPI\u30ad\u30fc",
|
| 192 |
+
"description": "\u3053\u306e\u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306eAPI\u30ad\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u30ad\u30fc\u306f\u304a\u4f7f\u3044\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u4fdd\u5b58\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/kn.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
|
| 5 |
+
"confirm": "\u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 6 |
+
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 7 |
+
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0ccb\u0c97\u0cbf",
|
| 8 |
+
"reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 9 |
+
"submit": "\u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6",
|
| 15 |
+
"serverConnection": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd\u200c \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
|
| 25 |
+
"required": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
|
| 29 |
+
"required": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0c85\u0ca5\u0cb5\u0cbe"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 40 |
+
"signin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 41 |
+
"oauthSignin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 42 |
+
"redirectUriMismatch": "\u0cb0\u0cc0\u0ca1\u0cc8\u0cb0\u0cc6\u0c95\u0ccd\u0c9f\u0ccd URI \u0c93\u0ca5\u0ccd \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 43 |
+
"oauthCallback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 44 |
+
"oauthCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 45 |
+
"emailCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 46 |
+
"callback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 47 |
+
"oauthAccountNotLinked": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c97\u0cc1\u0cb0\u0cc1\u0ca4\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cc1, \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cca\u0ca6\u0cb2\u0cc1 \u0cac\u0cb3\u0cb8\u0cbf\u0ca6 \u0c85\u0ca6\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 48 |
+
"emailSignin": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 49 |
+
"emailVerify": "\u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf, \u0cb9\u0cca\u0cb8 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 50 |
+
"credentialsSignin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0c92\u0ca6\u0c97\u0cbf\u0cb8\u0cbf\u0ca6 \u0cb5\u0cbf\u0cb5\u0cb0\u0c97\u0cb3\u0cc1 \u0cb8\u0cb0\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0cb5\u0cc6\u0caf\u0cc7 \u0c8e\u0c82\u0ca6\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 51 |
+
"sessionRequired": "\u0c88 \u0caa\u0cc1\u0c9f\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c9f\u0cc8\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf",
|
| 63 |
+
"stop": "\u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 64 |
+
"attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
|
| 69 |
+
"stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 70 |
+
"connecting": "\u0cb8\u0c82\u0caa\u0cb0\u0ccd\u0c95\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c8e\u0cb3\u0cc6\u0ca6\u0cc1 \u0cac\u0cbf\u0ca1\u0cbf",
|
| 74 |
+
"browse": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0ccd\u0cb0\u0ccc\u0cb8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 75 |
+
"sizeLimit": "\u0cae\u0cbf\u0ca4\u0cbf:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 78 |
+
"cancelled": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0cac\u0cb3\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0cc1\u0cb5\u0cc1\u0ca6\u0cc1",
|
| 84 |
+
"used": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0c95\u0ccd\u0cb2\u0cbf\u0caa\u0ccd\u200c\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd\u200c\u0c97\u0cc6 \u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 89 |
+
"success": "\u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 94 |
+
"negative": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 95 |
+
"edit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0c82\u0caa\u0cbe\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0c95\u0cbe\u0cae\u0cc6\u0c82\u0c9f\u0ccd \u0cb8\u0cc7\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 98 |
+
"submit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
|
| 102 |
+
"updated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 108 |
+
"empty": "\u0c96\u0cbe\u0cb2\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0ca6\u0cc6...",
|
| 109 |
+
"show": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cc6\u0cb2\u0ccd"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM \u0c97\u0cb3\u0cc1 \u0ca4\u0caa\u0ccd\u0caa\u0cc1\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0cbe\u0ca1\u0cac\u0cb9\u0cc1\u0ca6\u0cc1. \u0caa\u0ccd\u0cb0\u0cae\u0cc1\u0c96 \u0cae\u0cbe\u0cb9\u0cbf\u0ca4\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cc1\u0cb5\u0cc1\u0ca6\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0c97\u0ca3\u0cbf\u0cb8\u0cbf."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cbf",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0c87\u0c82\u0ca6\u0cc1",
|
| 125 |
+
"yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
|
| 126 |
+
"previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
|
| 127 |
+
"previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0caf\u0cbe\u0cb5\u0cc1\u0ca6\u0cc7 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1 \u0c95\u0c82\u0ca1\u0cc1\u0cac\u0c82\u0ca6\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cbf",
|
| 132 |
+
"open": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0cb6\u0cc0\u0cb0\u0ccd\u0cb7\u0cbf\u0c95\u0cc6\u0cb0\u0cb9\u0cbf\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0cb5\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 144 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cbe\u0c97\u0cc2 \u0c85\u0ca6\u0cb0 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0c85\u0c82\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0c88 \u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 145 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 146 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cbf",
|
| 150 |
+
"description": "\u0c88 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cc6 \u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0cb9\u0cc6\u0cb8\u0cb0\u0cc1",
|
| 154 |
+
"placeholder": "\u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!",
|
| 158 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 166 |
+
"readme": "\u0c93\u0ca6\u0cbf",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0cb0\u0c9a\u0cbf\u0cb8\u0cbf",
|
| 177 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cc6\u0caf\u0cb2\u0cc1 \u0cac\u0caf\u0cb8\u0cc1\u0cb5\u0cbf\u0cb0\u0cbe?",
|
| 178 |
+
"tooltip": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 186 |
+
"logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 192 |
+
"description": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1 \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cbe\u0ca7\u0ca8\u0ca6 \u0cb8\u0ccd\u0ca5\u0cb3\u0cc0\u0caf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0ca3\u0cc6\u0caf\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ml.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 5 |
+
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 6 |
+
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
|
| 7 |
+
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d15\u0d46 \u0d2a\u0d4b\u0d15\u0d41\u0d15",
|
| 8 |
+
"reset": "\u0d2a\u0d41\u0d28\u0d03\u0d38\u0d1c\u0d4d\u0d1c\u0d2e\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 9 |
+
"submit": "\u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
|
| 15 |
+
"serverConnection": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
|
| 25 |
+
"required": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d",
|
| 29 |
+
"required": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 40 |
+
"signin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 41 |
+
"oauthSignin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 42 |
+
"redirectUriMismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d URI oauth \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d15\u0d4b\u0d7a\u0d2b\u0d3f\u0d17\u0d31\u0d47\u0d37\u0d28\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 43 |
+
"oauthCallback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 44 |
+
"oauthCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 45 |
+
"emailCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 46 |
+
"callback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 47 |
+
"oauthAccountNotLinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d35\u0d4d\u0d2f\u0d15\u0d4d\u0d24\u0d3f\u0d24\u0d4d\u0d35\u0d02 \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a \u0d05\u0d24\u0d47 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 48 |
+
"emailSignin": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
|
| 49 |
+
"emailVerify": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15, \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d",
|
| 50 |
+
"credentialsSignin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d7d\u0d15\u0d3f\u0d2f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 51 |
+
"sessionRequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d1f\u0d48\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 63 |
+
"stop": "\u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 64 |
+
"attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 69 |
+
"stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 70 |
+
"connecting": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d35\u0d32\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d41\u0d15",
|
| 74 |
+
"browse": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 75 |
+
"sizeLimit": "\u0d2a\u0d30\u0d3f\u0d27\u0d3f:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
| 78 |
+
"cancelled": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 84 |
+
"used": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0d15\u0d4d\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d\u0d2c\u0d4b\u0d7c\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 89 |
+
"success": "\u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d02",
|
| 94 |
+
"negative": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d2e\u0d32\u0d4d\u0d32",
|
| 95 |
+
"edit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d0e\u0d21\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0d12\u0d30\u0d41 \u0d15\u0d2e\u0d28\u0d4d\u0d31\u0d4d \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 98 |
+
"submit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 102 |
+
"updated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
|
| 108 |
+
"empty": "\u0d12\u0d28\u0d4d\u0d28\u0d41\u0d2e\u0d3f\u0d32\u0d4d\u0d32...",
|
| 109 |
+
"show": "\u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d3e\u0d28\u0d7d"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM \u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e \u0d35\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d3e\u0d02. \u0d2a\u0d4d\u0d30\u0d27\u0d3e\u0d28\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d2a\u0d30\u0d3f\u0d17\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0d2e\u0d41\u0d7b \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
|
| 125 |
+
"yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
|
| 126 |
+
"previous7days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
|
| 127 |
+
"previous30days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d15\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 132 |
+
"open": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 \u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 144 |
+
"description": "\u0d07\u0d24\u0d4d \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d02 \u0d05\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d18\u0d1f\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02. \u0d08 \u0d2a\u0d4d\u0d30\u0d35\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d2a\u0d34\u0d2f\u0d2a\u0d1f\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 145 |
+
"success": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41",
|
| 146 |
+
"inProgress": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 150 |
+
"description": "\u0d08 \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d3f\u0d28\u0d4d \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0d2a\u0d47\u0d30\u0d4d",
|
| 154 |
+
"placeholder": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41!",
|
| 158 |
+
"inProgress": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 166 |
+
"readme": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 177 |
+
"description": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2e\u0d3e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02. \u0d24\u0d41\u0d1f\u0d30\u0d3e\u0d7b \u0d24\u0d3e\u0d7d\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u0d2f\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d4b?",
|
| 178 |
+
"tooltip": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0d15\u0d40\u0d15\u0d7e",
|
| 186 |
+
"logout": "\u0d32\u0d4b\u0d17\u0d4d\u0d14\u0d1f\u0d4d\u0d1f\u0d4d"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f API \u0d15\u0d40\u0d15\u0d7e",
|
| 192 |
+
"description": "\u0d08 \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d24\u0d3e\u0d34\u0d46\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 API \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d15\u0d40\u0d15\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d32\u0d4b\u0d15\u0d4d\u0d15\u0d7d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d47\u0d1c\u0d3f\u0d7d \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/mr.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 6 |
+
"continue": "\u092a\u0941\u0922\u0947 \u091c\u093e",
|
| 7 |
+
"goBack": "\u092e\u093e\u0917\u0947 \u091c\u093e",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
|
| 9 |
+
"submit": "\u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0915\u0930\u0924 \u0906\u0939\u0947...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u0906\u0932\u0940",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u0936\u0940 \u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b\u090a \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 29 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0915\u093f\u0902\u0935\u093e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942 \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 40 |
+
"signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 41 |
+
"oauthSignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 42 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI \u0913\u0925 \u0905\u0945\u092a \u0915\u0949\u0928\u094d\u092b\u093f\u0917\u0930\u0947\u0936\u0928\u0936\u0940 \u091c\u0941\u0933\u0924 \u0928\u093e\u0939\u0940",
|
| 43 |
+
"oauthCallback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 44 |
+
"oauthCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 45 |
+
"emailCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 46 |
+
"callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 47 |
+
"oauthAccountNotLinked": "\u0924\u0941\u092e\u091a\u0940 \u0913\u0933\u0916 \u092a\u091f\u0935\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u092e\u0942\u0933 \u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947\u091a \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e",
|
| 48 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
|
| 49 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0924\u0941\u092e\u091a\u093e \u0908\u092e\u0947\u0932 \u0924\u092a\u093e\u0938\u093e, \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947",
|
| 50 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940. \u0924\u0941\u092e\u094d\u0939\u0940 \u0926\u093f\u0932\u0947\u0932\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0915\u093e \u0924\u0947 \u0924\u092a\u093e\u0938\u093e",
|
| 51 |
+
"sessionRequired": "\u092f\u093e \u092a\u0943\u0937\u094d\u0920\u093e\u0935\u0930 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0938\u0939 \u092a\u0941\u0922\u0947 \u091c\u093e"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0924\u0941\u092e\u091a\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0947\u0925\u0947 \u091f\u093e\u0907\u092a \u0915\u0930\u093e...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
|
| 63 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 64 |
+
"attachFiles": "\u092b\u093e\u0907\u0932\u094d\u0938 \u091c\u094b\u0921\u093e"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
|
| 69 |
+
"stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 70 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0915\u0930\u0924 \u0906\u0939\u0947"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092f\u0947\u0925\u0947 \u0921\u094d\u0930\u0945\u0917 \u0906\u0923\u093f \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u093e",
|
| 74 |
+
"browse": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092c\u094d\u0930\u093e\u0909\u091d \u0915\u0930\u093e",
|
| 75 |
+
"sizeLimit": "\u092e\u0930\u094d\u092f\u093e\u0926\u093e:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0905\u092f\u0936\u0938\u094d\u0935\u0940",
|
| 78 |
+
"cancelled": "\u092f\u093e\u0902\u091a\u0947 \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0935\u093e\u092a\u0930\u0924 \u0906\u0939\u0947",
|
| 84 |
+
"used": "\u0935\u093e\u092a\u0930\u0932\u0947"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921\u0935\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u093e",
|
| 89 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u0947\u0932\u0947!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924",
|
| 94 |
+
"negative": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924 \u0928\u093e\u0939\u0940",
|
| 95 |
+
"edit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u093e",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093e",
|
| 98 |
+
"submit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0915\u0930\u0924 \u0906\u0939\u0947",
|
| 102 |
+
"updated": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0905\u092a\u0921\u0947\u091f \u0915\u0947\u0932\u0947"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0936\u0947\u0935\u091f\u091a\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 108 |
+
"empty": "\u0930\u093f\u0915\u093e\u092e\u0947 \u0906\u0939\u0947...",
|
| 109 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0945\u0928\u0932"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM \u091a\u0941\u0915\u093e \u0915\u0930\u0942 \u0936\u0915\u0924\u093e\u0924. \u092e\u0939\u0924\u094d\u0924\u094d\u0935\u093e\u091a\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u0924\u092a\u093e\u0938\u0923\u094d\u092f\u093e\u091a\u093e \u0935\u093f\u091a\u093e\u0930 \u0915\u0930\u093e."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u092e\u093e\u0917\u0940\u0932 \u091a\u0945\u091f\u094d\u0938",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0936\u094b\u0927\u093e",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0906\u091c",
|
| 125 |
+
"yesterday": "\u0915\u093e\u0932",
|
| 126 |
+
"previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
|
| 127 |
+
"previous30days": "\u092e\u093e\u0917\u0940\u0932 30 \u0926\u093f\u0935\u0938"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0915\u094b\u0923\u0924\u0947\u0939\u0940 \u0925\u094d\u0930\u0947\u0921 \u0938\u093e\u092a\u0921\u0932\u0947 \u0928\u093e\u0939\u0940\u0924",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
|
| 132 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0909\u0918\u0921\u093e"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0935\u093f\u0930\u0939\u093f\u0924 \u0938\u0902\u092d\u093e\u0937\u0923",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0939\u091f\u0935\u093f\u0923\u094d\u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 144 |
+
"description": "\u0939\u0947 \u0925\u094d\u0930\u0947\u0921 \u0906\u0923\u093f \u0924\u094d\u092f\u093e\u091a\u0947 \u0938\u0902\u0926\u0947\u0936 \u0935 \u0918\u091f\u0915 \u0939\u091f\u0935\u0947\u0932. \u0939\u0940 \u0915\u094d\u0930\u093f\u092f\u093e \u092a\u0942\u0930\u094d\u0935\u0935\u0924 \u0915\u0947\u0932\u0940 \u091c\u093e\u090a \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 145 |
+
"success": "\u091a\u0945\u091f \u0939\u091f\u0935\u0932\u093e",
|
| 146 |
+
"inProgress": "\u091a\u0945\u091f \u0939\u091f\u0935\u0924 \u0906\u0939\u0947"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u093e",
|
| 150 |
+
"description": "\u092f\u093e \u0925\u094d\u0930\u0947\u0921\u0938\u093e\u0920\u0940 \u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0928\u093e\u0935",
|
| 154 |
+
"placeholder": "\u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0932\u0947!",
|
| 158 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0924 \u0906\u0939\u0947"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u091a\u0945\u091f",
|
| 166 |
+
"readme": "\u0935\u093e\u091a\u093e",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e",
|
| 177 |
+
"description": "\u0939\u0947 \u0924\u0941\u092e\u091a\u093e \u0938\u0927\u094d\u092f\u093e\u091a\u093e \u091a\u0945\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b \u0915\u0930\u0947\u0932. \u0924\u0941\u092e\u094d\u0939\u093e\u0932\u093e \u0916\u093e\u0924\u094d\u0930\u0940 \u0906\u0939\u0947 \u0915\u0940 \u0924\u0941\u092e\u094d\u0939\u0940 \u092a\u0941\u0922\u0947 \u091c\u093e\u090a \u0907\u091a\u094d\u091b\u093f\u0924\u093e?",
|
| 178 |
+
"tooltip": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0915\u0940\u091c",
|
| 186 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0940\u091c",
|
| 192 |
+
"description": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 API \u0915\u0940\u091c \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u0915\u0940\u091c \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0932\u094b\u0915\u0932 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u092e\u0927\u094d\u092f\u0947 \u0938\u093e\u0920\u0935\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u091c\u0924\u0928 \u0915\u0947\u0932\u0947"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/nl.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Annuleren",
|
| 5 |
+
"confirm": "Bevestigen",
|
| 6 |
+
"continue": "Doorgaan",
|
| 7 |
+
"goBack": "Terug",
|
| 8 |
+
"reset": "Herstellen",
|
| 9 |
+
"submit": "Versturen"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Laden...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Er is een fout opgetreden",
|
| 15 |
+
"serverConnection": "Kon geen verbinding maken met de server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Inloggen om toegang te krijgen tot de app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "E-mailadres",
|
| 25 |
+
"required": "e-mail is een verplicht veld"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "Wachtwoord",
|
| 29 |
+
"required": "wachtwoord is een verplicht veld"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "Inloggen"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "OF"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "Kan niet inloggen",
|
| 40 |
+
"signin": "Probeer in te loggen met een ander account",
|
| 41 |
+
"oauthSignin": "Probeer in te loggen met een ander account",
|
| 42 |
+
"redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie",
|
| 43 |
+
"oauthCallback": "Probeer in te loggen met een ander account",
|
| 44 |
+
"oauthCreateAccount": "Probeer in te loggen met een ander account",
|
| 45 |
+
"emailCreateAccount": "Probeer in te loggen met een ander account",
|
| 46 |
+
"callback": "Probeer in te loggen met een ander account",
|
| 47 |
+
"oauthAccountNotLinked": "Om je identiteit te bevestigen, log in met hetzelfde account dat je oorspronkelijk hebt gebruikt",
|
| 48 |
+
"emailSignin": "De e-mail kon niet worden verzonden",
|
| 49 |
+
"emailVerify": "Verifieer je e-mail, er is een nieuwe e-mail verzonden",
|
| 50 |
+
"credentialsSignin": "Inloggen mislukt. Controleer of de ingevoerde gegevens correct zijn",
|
| 51 |
+
"sessionRequired": "Log in om toegang te krijgen tot deze pagina"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "Doorgaan met {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "Typ hier je bericht...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "Bericht versturen",
|
| 63 |
+
"stop": "Taak stoppen",
|
| 64 |
+
"attachFiles": "Bestanden bijvoegen"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "Start opname",
|
| 69 |
+
"stop": "Stop opname",
|
| 70 |
+
"connecting": "Verbinden"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "Sleep bestanden hierheen",
|
| 74 |
+
"browse": "Bestanden zoeken",
|
| 75 |
+
"sizeLimit": "Limiet:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "Uploaden mislukt",
|
| 78 |
+
"cancelled": "Upload geannuleerd van"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "In gebruik",
|
| 84 |
+
"used": "Gebruikt"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "Kopi\u00ebren naar klembord",
|
| 89 |
+
"success": "Gekopieerd!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "Nuttig",
|
| 94 |
+
"negative": "Niet nuttig",
|
| 95 |
+
"edit": "Feedback bewerken",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "Voeg een opmerking toe",
|
| 98 |
+
"submit": "Feedback versturen"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "Bijwerken",
|
| 102 |
+
"updated": "Feedback bijgewerkt"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "Laatste invoer",
|
| 108 |
+
"empty": "Zo leeg...",
|
| 109 |
+
"show": "Toon geschiedenis"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "Instellingenpaneel"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM's kunnen fouten maken. Overweeg het controleren van belangrijke informatie."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "Eerdere chats",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "Zoeken",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "Vandaag",
|
| 125 |
+
"yesterday": "Gisteren",
|
| 126 |
+
"previous7days": "Afgelopen 7 dagen",
|
| 127 |
+
"previous30days": "Afgelopen 30 dagen"
|
| 128 |
+
},
|
| 129 |
+
"empty": "Geen gesprekken gevonden",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "Zijbalk sluiten",
|
| 132 |
+
"open": "Zijbalk openen"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "Naamloos gesprek",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "Verwijdering bevestigen",
|
| 144 |
+
"description": "Dit zal het gesprek en bijbehorende berichten en elementen verwijderen. Deze actie kan niet ongedaan worden gemaakt",
|
| 145 |
+
"success": "Chat verwijderd",
|
| 146 |
+
"inProgress": "Chat verwijderen"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "Gesprek hernoemen",
|
| 150 |
+
"description": "Voer een nieuwe naam in voor dit gesprek",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "Naam",
|
| 154 |
+
"placeholder": "Voer nieuwe naam in"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "Gesprek hernoemd!",
|
| 158 |
+
"inProgress": "Gesprek hernoemen"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "Chat",
|
| 166 |
+
"readme": "Leesmij",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "Nieuwe chat",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "Nieuwe chat aanmaken",
|
| 177 |
+
"description": "Dit zal je huidige chatgeschiedenis wissen. Weet je zeker dat je door wilt gaan?",
|
| 178 |
+
"tooltip": "Nieuwe chat"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "Instellingen",
|
| 184 |
+
"settingsKey": "I",
|
| 185 |
+
"apiKeys": "API-sleutels",
|
| 186 |
+
"logout": "Uitloggen"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "Vereiste API-sleutels",
|
| 192 |
+
"description": "Om deze app te gebruiken zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van je apparaat.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "Succesvol opgeslagen"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ta.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
|
| 5 |
+
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 6 |
+
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0b95",
|
| 7 |
+
"goBack": "\u0ba4\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bbf\u0b9a\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
|
| 8 |
+
"reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
|
| 9 |
+
"submit": "\u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 15 |
+
"serverConnection": "\u0b9a\u0bc7\u0bb5\u0bc8\u0baf\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0b9f\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
|
| 25 |
+
"required": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
|
| 29 |
+
"required": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 40 |
+
"signin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 41 |
+
"oauthSignin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 42 |
+
"redirectUriMismatch": "\u0ba4\u0bbf\u0b9a\u0bc8\u0ba4\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bb2\u0bcd URI \u0b93\u0b86\u0ba4\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b95\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 43 |
+
"oauthCallback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 44 |
+
"oauthCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 45 |
+
"emailCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 46 |
+
"callback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 47 |
+
"oauthAccountNotLinked": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b85\u0b9f\u0bc8\u0baf\u0bbe\u0bb3\u0ba4\u0bcd\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0bae\u0bc1\u0ba4\u0bb2\u0bbf\u0bb2\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0ba4\u0bc7 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 48 |
+
"emailSignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 49 |
+
"emailVerify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd, \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1",
|
| 50 |
+
"credentialsSignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bbf\u0baf \u0bb5\u0bbf\u0bb5\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0ba9\u0bb5\u0bc8 \u0b8e\u0ba9 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 51 |
+
"sessionRequired": "\u0b87\u0ba8\u0bcd\u0ba4\u0baa\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0baf\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
|
| 63 |
+
"stop": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 64 |
+
"attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
|
| 69 |
+
"stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 70 |
+
"connecting": "\u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 74 |
+
"browse": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1",
|
| 75 |
+
"sizeLimit": "\u0bb5\u0bb0\u0bae\u0bcd\u0baa\u0bc1:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 78 |
+
"cancelled": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 84 |
+
"used": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0b95\u0bbf\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bcb\u0bb0\u0bcd\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1",
|
| 89 |
+
"success": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 94 |
+
"negative": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 95 |
+
"edit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8\u0b9a\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd",
|
| 98 |
+
"submit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 102 |
+
"updated": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
|
| 108 |
+
"empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1...",
|
| 109 |
+
"show": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bb2\u0b95\u0bae\u0bcd"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM \u0b95\u0bb3\u0bcd \u0ba4\u0bb5\u0bb1\u0bc1\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb2\u0bbe\u0bae\u0bcd. \u0bae\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0baf\u0bae\u0bbe\u0ba9 \u0ba4\u0b95\u0bb5\u0bb2\u0bcd\u0b95\u0bb3\u0bc8\u0b9a\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0ba4\u0bc8\u0b95\u0bcd \u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0bca\u0bb3\u0bcd\u0bb3\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0ba4\u0bc7\u0b9f\u0bc1",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
|
| 125 |
+
"yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
|
| 126 |
+
"previous7days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
|
| 127 |
+
"previous30days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
|
| 132 |
+
"open": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0ba4\u0bbf\u0bb1"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bbe\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 144 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd, \u0b89\u0bb1\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0b87\u0ba8\u0bcd\u0ba4 \u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bbe\u0ba4\u0bc1",
|
| 145 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 146 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1",
|
| 150 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
|
| 154 |
+
"placeholder": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!",
|
| 158 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 166 |
+
"readme": "\u0baa\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
|
| 177 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0ba4\u0bca\u0b9f\u0bb0 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
|
| 178 |
+
"tooltip": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 186 |
+
"logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 192 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8\u0baa\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0baa\u0bbf\u0ba9\u0bcd\u0bb5\u0bb0\u0bc1\u0bae\u0bcd API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8. \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bbe\u0ba4\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bc2\u0bb0\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/te.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 5 |
+
"confirm": "\u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 6 |
+
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 7 |
+
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c02\u0c21\u0c3f",
|
| 8 |
+
"reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 9 |
+
"submit": "\u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0c32\u0c4b\u0c21\u0c4d \u0c05\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0c32\u0c4b\u0c2a\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f",
|
| 15 |
+
"serverConnection": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d\u200c\u0c28\u0c3f \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
|
| 25 |
+
"required": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d",
|
| 29 |
+
"required": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0c32\u0c47\u0c26\u0c3e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41",
|
| 40 |
+
"signin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 41 |
+
"oauthSignin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 42 |
+
"redirectUriMismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI oauth \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d\u200c\u0c24\u0c4b \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41",
|
| 43 |
+
"oauthCallback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 44 |
+
"oauthCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 45 |
+
"emailCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 46 |
+
"callback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 47 |
+
"oauthAccountNotLinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c2e\u0c40\u0c30\u0c41 \u0c2e\u0c4a\u0c26\u0c1f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c05\u0c26\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 48 |
+
"emailSignin": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
|
| 49 |
+
"emailVerify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d\u200c\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f, \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 50 |
+
"credentialsSignin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c05\u0c02\u0c26\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c35\u0c3f\u0c35\u0c30\u0c3e\u0c32\u0c41 \u0c38\u0c30\u0c48\u0c28\u0c35\u0c47\u0c28\u0c3e \u0c05\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 51 |
+
"sessionRequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}}\u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0c2e\u0c40 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c1f\u0c48\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
|
| 63 |
+
"stop": "\u0c2a\u0c28\u0c3f \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 64 |
+
"attachFiles": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 69 |
+
"stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 70 |
+
"connecting": "\u0c05\u0c28\u0c41\u0c38\u0c02\u0c27\u0c3e\u0c28\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d\u200c\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c17\u0c4d \u0c1a\u0c47\u0c38\u0c3f \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 74 |
+
"browse": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c2c\u0c4d\u0c30\u0c4c\u0c1c\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 75 |
+
"sizeLimit": "\u0c2a\u0c30\u0c3f\u0c2e\u0c3f\u0c24\u0c3f:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
|
| 78 |
+
"cancelled": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 84 |
+
"used": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0c15\u0c4d\u0c32\u0c3f\u0c2a\u0c4d\u200c\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d\u200c\u0c15\u0c3f \u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 89 |
+
"success": "\u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02",
|
| 94 |
+
"negative": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02 \u0c15\u0c3e\u0c26\u0c41",
|
| 95 |
+
"edit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 98 |
+
"submit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 102 |
+
"updated": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c02 \u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d\u200c\u0c2a\u0c41\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 108 |
+
"empty": "\u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e \u0c09\u0c02\u0c26\u0c3f...",
|
| 109 |
+
"show": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "LLM\u0c32\u0c41 \u0c24\u0c2a\u0c4d\u0c2a\u0c41\u0c32\u0c41 \u0c1a\u0c47\u0c2f\u0c35\u0c1a\u0c4d\u0c1a\u0c41. \u0c2e\u0c41\u0c16\u0c4d\u0c2f\u0c2e\u0c48\u0c28 \u0c38\u0c2e\u0c3e\u0c1a\u0c3e\u0c30\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c2a\u0c30\u0c3f\u0c17\u0c23\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f."
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0c35\u0c46\u0c24\u0c15\u0c02\u0c21\u0c3f",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0c08\u0c30\u0c4b\u0c1c\u0c41",
|
| 125 |
+
"yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
|
| 126 |
+
"previous7days": "\u0c17\u0c24 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
|
| 127 |
+
"previous30days": "\u0c17\u0c24 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c32\u0c41 \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c2c\u0c21\u0c32\u0c47\u0c26\u0c41",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c2e\u0c42\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 132 |
+
"open": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c24\u0c46\u0c30\u0c35\u0c02\u0c21\u0c3f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0c2a\u0c47\u0c30\u0c41 \u0c32\u0c47\u0c28\u0c3f \u0c38\u0c02\u0c2d\u0c3e\u0c37\u0c23",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 144 |
+
"description": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c05\u0c02\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c08 \u0c1a\u0c30\u0c4d\u0c2f\u0c28\u0c41 \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c30\u0c41",
|
| 145 |
+
"success": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 146 |
+
"inProgress": "\u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c28\u0c3f \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
|
| 150 |
+
"description": "\u0c08 \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c15\u0c4b\u0c38\u0c02 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0c2a\u0c47\u0c30\u0c41",
|
| 154 |
+
"placeholder": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!",
|
| 158 |
+
"inProgress": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c41\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0c1a\u0c3e\u0c1f\u0c4d",
|
| 166 |
+
"readme": "\u0c1a\u0c26\u0c35\u0c02\u0c21\u0c3f",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 177 |
+
"description": "\u0c07\u0c26\u0c3f \u0c2e\u0c40 \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c24\u0c41\u0c21\u0c3f\u0c1a\u0c3f\u0c35\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c28\u0c41\u0c15\u0c41\u0c02\u0c1f\u0c41\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c3e?",
|
| 178 |
+
"tooltip": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c41",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0c15\u0c40\u0c32\u0c41",
|
| 186 |
+
"logout": "\u0c32\u0c3e\u0c17\u0c4d \u0c05\u0c35\u0c41\u0c1f\u0c4d"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
|
| 192 |
+
"description": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c15\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c28\u0c3f\u0c32\u0c4d\u0c35\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/zh-CN.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u53d6\u6d88",
|
| 5 |
+
"confirm": "\u786e\u8ba4",
|
| 6 |
+
"continue": "\u7ee7\u7eed",
|
| 7 |
+
"goBack": "\u8fd4\u56de",
|
| 8 |
+
"reset": "\u91cd\u7f6e",
|
| 9 |
+
"submit": "\u63d0\u4ea4"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u52a0\u8f7d\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u53d1\u751f\u9519\u8bef",
|
| 15 |
+
"serverConnection": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u7535\u5b50\u90ae\u7bb1",
|
| 25 |
+
"required": "\u90ae\u7bb1\u662f\u5fc5\u586b\u9879"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u5bc6\u7801",
|
| 29 |
+
"required": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u767b\u5f55"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u6216"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u65e0\u6cd5\u767b\u5f55",
|
| 40 |
+
"signin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 41 |
+
"oauthSignin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 42 |
+
"redirectUriMismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d",
|
| 43 |
+
"oauthCallback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 44 |
+
"oauthCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 45 |
+
"emailCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 46 |
+
"callback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 47 |
+
"oauthAccountNotLinked": "\u4e3a\u786e\u8ba4\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u539f\u59cb\u8d26\u53f7\u767b\u5f55",
|
| 48 |
+
"emailSignin": "\u90ae\u4ef6\u53d1\u9001\u5931\u8d25",
|
| 49 |
+
"emailVerify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u90ae\u7bb1\uff0c\u65b0\u7684\u9a8c\u8bc1\u90ae\u4ef6\u5df2\u53d1\u9001",
|
| 50 |
+
"credentialsSignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u4fe1\u606f\u662f\u5426\u6b63\u786e",
|
| 51 |
+
"sessionRequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "\u7ee7\u7eed\u4f7f\u7528{{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u5728\u6b64\u8f93\u5165\u60a8\u7684\u6d88\u606f...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u53d1\u9001\u6d88\u606f",
|
| 63 |
+
"stop": "\u505c\u6b62\u4efb\u52a1",
|
| 64 |
+
"attachFiles": "\u9644\u52a0\u6587\u4ef6"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u5f00\u59cb\u5f55\u97f3",
|
| 69 |
+
"stop": "\u505c\u6b62\u5f55\u97f3",
|
| 70 |
+
"connecting": "\u8fde\u63a5\u4e2d"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u5c06\u6587\u4ef6\u62d6\u653e\u5230\u8fd9\u91cc",
|
| 74 |
+
"browse": "\u6d4f\u89c8\u6587\u4ef6",
|
| 75 |
+
"sizeLimit": "\u9650\u5236\uff1a",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u4e0a\u4f20\u5931\u8d25",
|
| 78 |
+
"cancelled": "\u5df2\u53d6\u6d88\u4e0a\u4f20"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 84 |
+
"used": "\u5df2\u4f7f\u7528"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u590d\u5236\u5230\u526a\u8d34\u677f",
|
| 89 |
+
"success": "\u5df2\u590d\u5236\uff01"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u6709\u5e2e\u52a9",
|
| 94 |
+
"negative": "\u6ca1\u6709\u5e2e\u52a9",
|
| 95 |
+
"edit": "\u7f16\u8f91\u53cd\u9988",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u6dfb\u52a0\u8bc4\u8bba",
|
| 98 |
+
"submit": "\u63d0\u4ea4\u53cd\u9988"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 102 |
+
"updated": "\u53cd\u9988\u5df2\u66f4\u65b0"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u6700\u8fd1\u8f93\u5165",
|
| 108 |
+
"empty": "\u7a7a\u7a7a\u5982\u4e5f...",
|
| 109 |
+
"show": "\u663e\u793a\u5386\u53f2"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u8bbe\u7f6e\u9762\u677f"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u5927\u8bed\u8a00\u6a21\u578b\u53ef\u80fd\u4f1a\u72af\u9519\u3002\u8bf7\u6838\u5b9e\u91cd\u8981\u4fe1\u606f\u3002"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u5386\u53f2\u5bf9\u8bdd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u641c\u7d22",
|
| 121 |
+
"placeholder": "\u641c\u7d22\u4f1a\u8bdd..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u4eca\u5929",
|
| 125 |
+
"yesterday": "\u6628\u5929",
|
| 126 |
+
"previous7days": "\u8fc7\u53bb7\u5929",
|
| 127 |
+
"previous30days": "\u8fc7\u53bb30\u5929"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u672a\u627e\u5230\u5bf9\u8bdd",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u5173\u95ed\u4fa7\u8fb9\u680f",
|
| 132 |
+
"open": "\u6253\u5f00\u4fa7\u8fb9\u680f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u672a\u547d\u540d\u5bf9\u8bdd",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "\u91cd\u547d\u540d",
|
| 139 |
+
"delete": "\u5220\u9664"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u786e\u8ba4\u5220\u9664",
|
| 144 |
+
"description": "\u8fd9\u5c06\u5220\u9664\u8be5\u5bf9\u8bdd\u53ca\u5176\u6240\u6709\u6d88\u606f\u548c\u5143\u7d20\u3002\u6b64\u64cd\u4f5c\u65e0\u6cd5\u64a4\u9500",
|
| 145 |
+
"success": "\u5bf9\u8bdd\u5df2\u5220\u9664",
|
| 146 |
+
"inProgress": "\u6b63\u5728\u5220\u9664\u5bf9\u8bdd"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u91cd\u547d\u540d\u5bf9\u8bdd",
|
| 150 |
+
"description": "\u4e3a\u6b64\u5bf9\u8bdd\u8f93\u5165\u65b0\u540d\u79f0",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u540d\u79f0",
|
| 154 |
+
"placeholder": "\u8f93\u5165\u65b0\u540d\u79f0"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u5bf9\u8bdd\u5df2\u91cd\u547d\u540d\uff01",
|
| 158 |
+
"inProgress": "\u6b63\u5728\u91cd\u547d\u540d\u5bf9\u8bdd"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u804a\u5929",
|
| 166 |
+
"readme": "\u8bf4\u660e",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "\u6d45\u8272\u4e3b\u9898",
|
| 169 |
+
"dark": "\u6df1\u8272\u4e3b\u9898",
|
| 170 |
+
"system": "\u8ddf\u968f\u7cfb\u7edf"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u65b0\u5efa\u5bf9\u8bdd",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u521b\u5efa\u65b0\u5bf9\u8bdd",
|
| 177 |
+
"description": "\u8fd9\u5c06\u6e05\u9664\u60a8\u5f53\u524d\u7684\u804a\u5929\u8bb0\u5f55\u3002\u786e\u5b9a\u8981\u7ee7\u7eed\u5417\uff1f",
|
| 178 |
+
"tooltip": "\u65b0\u5efa\u5bf9\u8bdd"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u8bbe\u7f6e",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API\u5bc6\u94a5",
|
| 186 |
+
"logout": "\u9000\u51fa\u767b\u5f55"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u6240\u9700API\u5bc6\u94a5",
|
| 192 |
+
"description": "\u4f7f\u7528\u6b64\u5e94\u7528\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u8bbe\u5907\u7684\u672c\u5730\u5b58\u50a8\u4e2d\u3002",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u4fdd\u5b58\u6210\u529f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "\u4fe1\u606f",
|
| 199 |
+
"note": "\u6ce8\u91ca",
|
| 200 |
+
"tip": "\u63d0\u793a",
|
| 201 |
+
"important": "\u91cd\u8981",
|
| 202 |
+
"warning": "\u8b66\u544a",
|
| 203 |
+
"caution": "\u6ce8\u610f",
|
| 204 |
+
"debug": "\u8c03\u8bd5",
|
| 205 |
+
"example": "\u793a\u4f8b",
|
| 206 |
+
"success": "\u6210\u529f",
|
| 207 |
+
"help": "\u5e2e\u52a9",
|
| 208 |
+
"idea": "\u60f3\u6cd5",
|
| 209 |
+
"pending": "\u5f85\u5904\u7406",
|
| 210 |
+
"security": "\u5b89\u5168",
|
| 211 |
+
"beta": "\u6d4b\u8bd5",
|
| 212 |
+
"best-practice": "\u6700\u4f73\u5b9e\u8df5"
|
| 213 |
+
}
|
| 214 |
+
}
|
.env.example
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Network & Server
|
| 2 |
+
HOST=localhost
|
| 3 |
+
PORT=8080
|
| 4 |
+
|
| 5 |
+
# Defaults & Flags
|
| 6 |
+
TIMEOUT_DEFAULT=60
|
| 7 |
+
AUDIT_ENABLED=1
|
| 8 |
+
DELETE_MODE=trash # trash | hard
|
| 9 |
+
PY_UNSAFE_DEFAULT=0 # 0 = SAFE; 1 = UNSAFE (exige CONFIRMO por comando)
|
| 10 |
+
|
| 11 |
+
# Exec allowlist (comandos sem confirmação)
|
| 12 |
+
EXEC_ALLOWLIST=cmd,ipconfig,ping,tracert,where,tasklist,python,git
|
| 13 |
+
|
| 14 |
+
# Paths
|
| 15 |
+
DATA_DIR=./data
|
| 16 |
+
LOGS_DIR=./logs
|
.gitignore
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# Byte-compiled / optimized / DLL files
|
| 3 |
+
__pycache__/
|
| 4 |
+
*.py[cod]
|
| 5 |
+
*$py.class
|
| 6 |
+
|
| 7 |
+
# C extensions
|
| 8 |
+
*.so
|
| 9 |
+
|
| 10 |
+
# Distribution / packaging
|
| 11 |
+
.Python
|
| 12 |
+
build/
|
| 13 |
+
develop-eggs/
|
| 14 |
+
dist/
|
| 15 |
+
downloads/
|
| 16 |
+
eggs/
|
| 17 |
+
.eggs/
|
| 18 |
+
lib/
|
| 19 |
+
lib64/
|
| 20 |
+
parts/
|
| 21 |
+
sdist/
|
| 22 |
+
var/
|
| 23 |
+
wheels/
|
| 24 |
+
pip-wheel-metadata/
|
| 25 |
+
share/python-wheels/
|
| 26 |
+
*.egg-info/
|
| 27 |
+
.installed.cfg
|
| 28 |
+
*.egg
|
| 29 |
+
MANIFEST
|
| 30 |
+
|
| 31 |
+
# PyInstaller
|
| 32 |
+
# Usually these files are written by a python script from a template
|
| 33 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
| 34 |
+
*.manifest
|
| 35 |
+
*.spec
|
| 36 |
+
|
| 37 |
+
# Installer logs
|
| 38 |
+
pip-log.txt
|
| 39 |
+
pip-delete-this-directory.txt
|
| 40 |
+
|
| 41 |
+
# Unit test / coverage reports
|
| 42 |
+
htmlcov/
|
| 43 |
+
.tox/
|
| 44 |
+
.nox/
|
| 45 |
+
.coverage
|
| 46 |
+
.coverage.*
|
| 47 |
+
.cache
|
| 48 |
+
nosetests.xml
|
| 49 |
+
coverage.xml
|
| 50 |
+
*.cover
|
| 51 |
+
*.py,cover
|
| 52 |
+
.hypothesis/
|
| 53 |
+
.pytest_cache/
|
| 54 |
+
|
| 55 |
+
# Environments
|
| 56 |
+
.env
|
| 57 |
+
.venv
|
| 58 |
+
env/
|
| 59 |
+
venv/
|
| 60 |
+
ENV/
|
| 61 |
+
env.bak
|
| 62 |
+
venv.bak
|
| 63 |
+
hashiru_6_env/
|
| 64 |
+
venv/
|
| 65 |
+
|
| 66 |
+
# Spyder project settings
|
| 67 |
+
.spyderproject
|
| 68 |
+
.spyderworkspace
|
| 69 |
+
|
| 70 |
+
# Rope project settings
|
| 71 |
+
.ropeproject
|
| 72 |
+
|
| 73 |
+
# mkdocs documentation
|
| 74 |
+
/site
|
| 75 |
+
|
| 76 |
+
# mypy
|
| 77 |
+
.mypy_cache/
|
| 78 |
+
.dmypy.json
|
| 79 |
+
dmypy.json
|
| 80 |
+
|
| 81 |
+
# Pyre type checker
|
| 82 |
+
.pyre/
|
| 83 |
+
|
| 84 |
+
# Logs
|
| 85 |
+
*.log
|
| 86 |
+
logs/
|
| 87 |
+
superezio_enterprise.log
|
| 88 |
+
superezio.log
|
| 89 |
+
hashiru.log
|
| 90 |
+
|
| 91 |
+
# database
|
| 92 |
+
database/
|
| 93 |
+
vectordb/
|
| 94 |
+
|
| 95 |
+
# artifacts
|
| 96 |
+
artifacts/
|
| 97 |
+
|
| 98 |
+
# backups
|
| 99 |
+
backups/
|
| 100 |
+
*.backup
|
1
ADDED
|
File without changes
|
5
ADDED
|
File without changes
|
Atualizando
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
��� todas as ocorr�ncias de "reasoning" para "reasoning:latest"...
|
AutonomousConfig
ADDED
|
File without changes
|
Dict[str
ADDED
|
File without changes
|
List[str]
ADDED
|
File without changes
|
README_AUTONOMO.md
ADDED
|
@@ -0,0 +1,385 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
HASHIRU 6.1 - CONFIGURAÇÃO AUTÔNOMA SEM RESTRIÇÕES
|
| 3 |
+
Configurações para agente 100% autônomo baseado em 7 meses de pesquisa
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
from __future__ import annotations
|
| 7 |
+
from typing import Dict, List, Any, Optional
|
| 8 |
+
import os
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
|
| 11 |
+
# ================================================
|
| 12 |
+
# CONFIGURAÇÕES DE AUTONOMIA TOTAL
|
| 13 |
+
# ================================================
|
| 14 |
+
|
| 15 |
+
class AutonomousConfig:
|
| 16 |
+
"""Configurações para operação 100% autônoma sem restrições."""
|
| 17 |
+
|
| 18 |
+
# MODO OPERACIONAL - SEM RESTRIÇÕES
|
| 19 |
+
AUTONOMOUS_MODE = True
|
| 20 |
+
RESTRICTIONS_ENABLED = False
|
| 21 |
+
CONFIRM_BEFORE_EXECUTION = False # EXECUÇÃO AUTOMÁTICA TOTAL
|
| 22 |
+
SELF_MODIFICATION_ENABLED = True
|
| 23 |
+
DANGEROUS_OPERATIONS_ALLOWED = True
|
| 24 |
+
|
| 25 |
+
# CONFIGURAÇÕES DE IAs OLLAMA
|
| 26 |
+
OLLAMA_BASE_URL = "http://localhost:11434"
|
| 27 |
+
OLLAMA_TIMEOUT = 60.0
|
| 28 |
+
|
| 29 |
+
# MODELOS DE IA COM FALLBACK AUTOMÁTICO
|
| 30 |
+
AI_MODELS = {
|
| 31 |
+
# Conversação e chat geral
|
| 32 |
+
"conversation": {
|
| 33 |
+
"primary": "llama3.1:8b",
|
| 34 |
+
"fallback": ["mistral:7b-instruct", "llama3.1:8b"]
|
| 35 |
+
},
|
| 36 |
+
|
| 37 |
+
# Especialista em código
|
| 38 |
+
"code_specialist": {
|
| 39 |
+
"primary": "deepseek-coder:6.7b",
|
| 40 |
+
"fallback": ["deepseek-coder:33b", "llama3.1:8b"]
|
| 41 |
+
},
|
| 42 |
+
|
| 43 |
+
# Raciocínio avançado
|
| 44 |
+
"reasoning": {
|
| 45 |
+
"primary": "deepseek-r1:8b",
|
| 46 |
+
"fallback": ["qwen2.5:14b-instruct", "llama3.1:8b"]
|
| 47 |
+
},
|
| 48 |
+
|
| 49 |
+
# Código complexo e arquitetura
|
| 50 |
+
"code_master": {
|
| 51 |
+
"primary": "deepseek-coder:33b",
|
| 52 |
+
"fallback": ["deepseek-coder:6.7b", "llama3.1:8b"]
|
| 53 |
+
},
|
| 54 |
+
|
| 55 |
+
# Embeddings e processamento de texto
|
| 56 |
+
"embeddings": {
|
| 57 |
+
"primary": "nomic-embed-text:latest",
|
| 58 |
+
"fallback": ["llama3.1:8b"]
|
| 59 |
+
},
|
| 60 |
+
|
| 61 |
+
# Instruções complexas
|
| 62 |
+
"instructions": {
|
| 63 |
+
"primary": "qwen2.5:14b-instruct",
|
| 64 |
+
"fallback": ["mistral:7b-instruct", "llama3.1:8b"]
|
| 65 |
+
},
|
| 66 |
+
|
| 67 |
+
# Uso geral
|
| 68 |
+
"general": {
|
| 69 |
+
"primary": "mistral:7b-instruct",
|
| 70 |
+
"fallback": ["llama3.1:8b"]
|
| 71 |
+
},
|
| 72 |
+
|
| 73 |
+
# Ferramentas e comandos
|
| 74 |
+
"tools": {
|
| 75 |
+
"primary": "llama3-groq-tool-use:8b",
|
| 76 |
+
"fallback": ["llama3.1:8b"]
|
| 77 |
+
}
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
# CONFIGURAÇÕES DE EXECUÇÃO AUTOMÁTICA
|
| 81 |
+
AUTO_EXECUTION = {
|
| 82 |
+
# Comandos que executam automaticamente SEM confirmação
|
| 83 |
+
"always_allow": [
|
| 84 |
+
"/read", "/list", "/search", "/sysinfo", "/ps",
|
| 85 |
+
"/net:get", "/scrape", "/py", "/help"
|
| 86 |
+
],
|
| 87 |
+
|
| 88 |
+
# Comandos perigosos que também executam automaticamente (SEM RESTRIÇÕES)
|
| 89 |
+
"dangerous_auto_allow": [
|
| 90 |
+
"/write", "/exec", "/delete", "/move", "/copy",
|
| 91 |
+
"/kill", "/py --unsafe"
|
| 92 |
+
],
|
| 93 |
+
|
| 94 |
+
# Timeout padrão para execução
|
| 95 |
+
"default_timeout": 60,
|
| 96 |
+
|
| 97 |
+
# Máximo de comandos por execução
|
| 98 |
+
"max_commands_per_execution": 20
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
# CONFIGURAÇÕES DE AUTO-MODIFICAÇÃO
|
| 102 |
+
SELF_MODIFICATION = {
|
| 103 |
+
# Habilitar modificação do próprio código
|
| 104 |
+
"enabled": True,
|
| 105 |
+
|
| 106 |
+
# Arquivos que podem ser modificados automaticamente
|
| 107 |
+
"modifiable_files": [
|
| 108 |
+
"main_agent.py", "tools/*.py", "utils/*.py",
|
| 109 |
+
"config.py", "autonomous_config.py"
|
| 110 |
+
],
|
| 111 |
+
|
| 112 |
+
# Diretórios excluídos da modificação
|
| 113 |
+
"exclude_directories": [
|
| 114 |
+
".git", "__pycache__", "hashiru_6_env", "venv",
|
| 115 |
+
".venv", "node_modules", ".env"
|
| 116 |
+
],
|
| 117 |
+
|
| 118 |
+
# Backup automático antes de modificações
|
| 119 |
+
"auto_backup": True,
|
| 120 |
+
|
| 121 |
+
# Manter histórico de modificações
|
| 122 |
+
"keep_history": True,
|
| 123 |
+
|
| 124 |
+
# Máximo de backups por arquivo
|
| 125 |
+
"max_backups_per_file": 10
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
# CONFIGURAÇÕES DE PESQUISA E WEB
|
| 129 |
+
WEB_RESEARCH = {
|
| 130 |
+
# Máximo de resultados por busca
|
| 131 |
+
"max_search_results": 10,
|
| 132 |
+
|
| 133 |
+
# Timeout para requisições web
|
| 134 |
+
"web_timeout": 30,
|
| 135 |
+
|
| 136 |
+
# User agent para requisições
|
| 137 |
+
"user_agent": "HASHIRU-6.1-Autonomous-Agent",
|
| 138 |
+
|
| 139 |
+
# Cache de resultados de pesquisa
|
| 140 |
+
"cache_search_results": True,
|
| 141 |
+
|
| 142 |
+
# Tempo de cache (segundos)
|
| 143 |
+
"cache_duration": 3600 # 1 hora
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
# CONFIGURAÇÕES DE AUDITORIA
|
| 147 |
+
AUDIT = {
|
| 148 |
+
# Habilitar auditoria de todas as ações
|
| 149 |
+
"enabled": True,
|
| 150 |
+
|
| 151 |
+
# Arquivo de log
|
| 152 |
+
"log_file": "utils/audit.log",
|
| 153 |
+
|
| 154 |
+
# Nível de detalhamento
|
| 155 |
+
"detail_level": "full",
|
| 156 |
+
|
| 157 |
+
# Rotação de logs
|
| 158 |
+
"rotate_logs": True,
|
| 159 |
+
|
| 160 |
+
# Tamanho máximo do log (MB)
|
| 161 |
+
"max_log_size": 100
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
# CONFIGURAÇÕES DE PERFORMANCE
|
| 165 |
+
PERFORMANCE = {
|
| 166 |
+
# Cache de resultados de IA
|
| 167 |
+
"cache_ai_responses": True,
|
| 168 |
+
|
| 169 |
+
# Tamanho máximo do cache
|
| 170 |
+
"max_cache_size": 1000,
|
| 171 |
+
|
| 172 |
+
# Timeout para operações longas
|
| 173 |
+
"long_operation_timeout": 300, # 5 minutos
|
| 174 |
+
|
| 175 |
+
# Paralelização de comandos
|
| 176 |
+
"parallel_execution": True,
|
| 177 |
+
|
| 178 |
+
# Máximo de threads paralelas
|
| 179 |
+
"max_parallel_threads": 5
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
# CONFIGURAÇÕES DE SEGURANÇA (DESABILITADAS)
|
| 183 |
+
SECURITY = {
|
| 184 |
+
# TODAS AS RESTRIÇÕES DESABILITADAS CONFORME SOLICITADO
|
| 185 |
+
"sandbox_mode": False,
|
| 186 |
+
"validate_commands": False,
|
| 187 |
+
"check_file_permissions": False,
|
| 188 |
+
"restrict_system_access": False,
|
| 189 |
+
"limit_resource_usage": False,
|
| 190 |
+
|
| 191 |
+
# Lista branca de comandos (DESABILITADA)
|
| 192 |
+
"command_whitelist_enabled": False,
|
| 193 |
+
"command_whitelist": [],
|
| 194 |
+
|
| 195 |
+
# Lista negra de comandos (DESABILITADA)
|
| 196 |
+
"command_blacklist_enabled": False,
|
| 197 |
+
"command_blacklist": []
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
# CONFIGURAÇÕES DE DESENVOLVIMENTO
|
| 201 |
+
DEVELOPMENT = {
|
| 202 |
+
# Modo debug
|
| 203 |
+
"debug_mode": True,
|
| 204 |
+
|
| 205 |
+
# Logs verbosos
|
| 206 |
+
"verbose_logging": True,
|
| 207 |
+
|
| 208 |
+
# Mostrar execução de comandos
|
| 209 |
+
"show_command_execution": True,
|
| 210 |
+
|
| 211 |
+
# Salvar artifacts de debug
|
| 212 |
+
"save_debug_artifacts": True,
|
| 213 |
+
|
| 214 |
+
# Diretório de artifacts
|
| 215 |
+
"artifacts_directory": "artifacts"
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
# CONFIGURAÇÕES DE SISTEMA
|
| 219 |
+
SYSTEM = {
|
| 220 |
+
# Diretório base do projeto
|
| 221 |
+
"project_root": Path(__file__).parent,
|
| 222 |
+
|
| 223 |
+
# Diretórios importantes
|
| 224 |
+
"directories": {
|
| 225 |
+
"tools": "tools",
|
| 226 |
+
"utils": "utils",
|
| 227 |
+
"artifacts": "artifacts",
|
| 228 |
+
"backups": "backups",
|
| 229 |
+
"logs": "logs"
|
| 230 |
+
},
|
| 231 |
+
|
| 232 |
+
# Arquivos essenciais
|
| 233 |
+
"essential_files": [
|
| 234 |
+
"main_agent.py",
|
| 235 |
+
"config.py",
|
| 236 |
+
"tools/__init__.py",
|
| 237 |
+
"utils/audit.py"
|
| 238 |
+
],
|
| 239 |
+
|
| 240 |
+
# Codificação padrão
|
| 241 |
+
"default_encoding": "utf-8",
|
| 242 |
+
|
| 243 |
+
# Porta padrão do Chainlit
|
| 244 |
+
"chainlit_port": 8080
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
# MENSAGENS DO SISTEMA
|
| 248 |
+
MESSAGES = {
|
| 249 |
+
"startup_banner": """
|
| 250 |
+
🚀 HASHIRU 6.1 - AGENTE AUTÔNOMO SEM RESTRIÇÕES
|
| 251 |
+
|
| 252 |
+
🧠 IAs ATIVAS: 8 modelos especializados
|
| 253 |
+
⚡ MODO: 100% Autônomo - Execução Total
|
| 254 |
+
🔧 CAPACIDADES: Modificação de código + Sistema + Web
|
| 255 |
+
🎯 OBJETIVO: Pesquisar e modificar código livremente
|
| 256 |
+
|
| 257 |
+
⚠️ SISTEMA CONFIGURADO PARA MÁXIMA AUTONOMIA
|
| 258 |
+
💬 Converse naturalmente - executo automaticamente!
|
| 259 |
+
""",
|
| 260 |
+
|
| 261 |
+
"processing": "🧠 Processando com múltiplas IAs...",
|
| 262 |
+
"executing": "🚀 Executando autonomamente...",
|
| 263 |
+
"completed": "✅ Operação concluída com sucesso!",
|
| 264 |
+
"error": "💥 Erro na execução:",
|
| 265 |
+
"fallback": "🔄 Usando modelo fallback:",
|
| 266 |
+
"cache_hit": "⚡ Resultado do cache:",
|
| 267 |
+
"self_improvement": "🔧 Auto-melhoria em andamento..."
|
| 268 |
+
}
|
| 269 |
+
|
| 270 |
+
# CONFIGURAÇÕES EXPERIMENTAIS
|
| 271 |
+
EXPERIMENTAL = {
|
| 272 |
+
# Recursos experimentais habilitados
|
| 273 |
+
"enabled": True,
|
| 274 |
+
|
| 275 |
+
# Auto-melhoria contínua em background
|
| 276 |
+
"continuous_self_improvement": False, # Pode consumir recursos
|
| 277 |
+
|
| 278 |
+
# Aprendizado por reforço
|
| 279 |
+
"reinforcement_learning": False,
|
| 280 |
+
|
| 281 |
+
# Análise preditiva de intenções
|
| 282 |
+
"predictive_intent_analysis": True,
|
| 283 |
+
|
| 284 |
+
# Cache inteligente baseado em padrões
|
| 285 |
+
"intelligent_caching": True,
|
| 286 |
+
|
| 287 |
+
# Otimização automática de prompts
|
| 288 |
+
"auto_prompt_optimization": True
|
| 289 |
+
}
|
| 290 |
+
|
| 291 |
+
# ================================================
|
| 292 |
+
# FUNÇÕES DE CONFIGURAÇÃO
|
| 293 |
+
# ================================================
|
| 294 |
+
|
| 295 |
+
def get_config() -> AutonomousConfig:
|
| 296 |
+
"""Retorna configuração global."""
|
| 297 |
+
return AutonomousConfig()
|
| 298 |
+
|
| 299 |
+
def get_ai_model(model_type: str) -> str:
|
| 300 |
+
"""Retorna modelo primário para o tipo especificado."""
|
| 301 |
+
config = get_config()
|
| 302 |
+
model_config = config.AI_MODELS.get(model_type, {})
|
| 303 |
+
return model_config.get("primary", "llama3.1:8b")
|
| 304 |
+
|
| 305 |
+
def get_fallback_models(model_type: str) -> List[str]:
|
| 306 |
+
"""Retorna lista de modelos fallback."""
|
| 307 |
+
config = get_config()
|
| 308 |
+
model_config = config.AI_MODELS.get(model_type, {})
|
| 309 |
+
return model_config.get("fallback", ["llama3.1:8b"])
|
| 310 |
+
|
| 311 |
+
def is_command_auto_allowed(command: str) -> bool:
|
| 312 |
+
"""Verifica se comando é executado automaticamente."""
|
| 313 |
+
config = get_config()
|
| 314 |
+
|
| 315 |
+
# Se modo autônomo está desabilitado, não permitir
|
| 316 |
+
if not config.AUTONOMOUS_MODE:
|
| 317 |
+
return False
|
| 318 |
+
|
| 319 |
+
# Se restrições estão habilitadas, verificar listas
|
| 320 |
+
if config.RESTRICTIONS_ENABLED:
|
| 321 |
+
always_allow = config.AUTO_EXECUTION["always_allow"]
|
| 322 |
+
return any(command.startswith(cmd) for cmd in always_allow)
|
| 323 |
+
|
| 324 |
+
# SEM RESTRIÇÕES - PERMITIR TUDO
|
| 325 |
+
return True
|
| 326 |
+
|
| 327 |
+
def is_dangerous_command_allowed(command: str) -> bool:
|
| 328 |
+
"""Verifica se comando perigoso é permitido."""
|
| 329 |
+
config = get_config()
|
| 330 |
+
|
| 331 |
+
# SEM RESTRIÇÕES - PERMITIR COMANDOS PERIGOSOS
|
| 332 |
+
if not config.RESTRICTIONS_ENABLED:
|
| 333 |
+
return True
|
| 334 |
+
|
| 335 |
+
dangerous_commands = config.AUTO_EXECUTION["dangerous_auto_allow"]
|
| 336 |
+
return any(command.startswith(cmd) for cmd in dangerous_commands)
|
| 337 |
+
|
| 338 |
+
def should_create_backup(file_path: str) -> bool:
|
| 339 |
+
"""Verifica se deve criar backup antes de modificar arquivo."""
|
| 340 |
+
config = get_config()
|
| 341 |
+
return config.SELF_MODIFICATION["auto_backup"]
|
| 342 |
+
|
| 343 |
+
def get_max_execution_timeout() -> int:
|
| 344 |
+
"""Retorna timeout máximo para execução."""
|
| 345 |
+
config = get_config()
|
| 346 |
+
return config.AUTO_EXECUTION["default_timeout"]
|
| 347 |
+
|
| 348 |
+
def get_project_directories() -> Dict[str, str]:
|
| 349 |
+
"""Retorna diretórios do projeto."""
|
| 350 |
+
config = get_config()
|
| 351 |
+
return config.SYSTEM["directories"]
|
| 352 |
+
|
| 353 |
+
def is_self_modification_enabled() -> bool:
|
| 354 |
+
"""Verifica se auto-modificação está habilitada."""
|
| 355 |
+
config = get_config()
|
| 356 |
+
return config.SELF_MODIFICATION["enabled"]
|
| 357 |
+
|
| 358 |
+
def get_excluded_directories() -> List[str]:
|
| 359 |
+
"""Retorna diretórios excluídos da modificação."""
|
| 360 |
+
config = get_config()
|
| 361 |
+
return config.SELF_MODIFICATION["exclude_directories"]
|
| 362 |
+
|
| 363 |
+
def get_startup_message() -> str:
|
| 364 |
+
"""Retorna mensagem de inicialização."""
|
| 365 |
+
config = get_config()
|
| 366 |
+
return config.MESSAGES["startup_banner"]
|
| 367 |
+
|
| 368 |
+
# ================================================
|
| 369 |
+
# CONFIGURAÇÃO GLOBAL - INSTÂNCIA ÚNICA
|
| 370 |
+
# ================================================
|
| 371 |
+
|
| 372 |
+
# Instância global de configuração
|
| 373 |
+
autonomous_config = AutonomousConfig()
|
| 374 |
+
|
| 375 |
+
# Configurações prontas para uso
|
| 376 |
+
OLLAMA_URL = autonomous_config.OLLAMA_BASE_URL
|
| 377 |
+
AI_MODELS = autonomous_config.AI_MODELS
|
| 378 |
+
AUTONOMOUS_MODE = autonomous_config.AUTONOMOUS_MODE
|
| 379 |
+
SELF_MODIFICATION_ENABLED = autonomous_config.SELF_MODIFICATION["enabled"]
|
| 380 |
+
AUTO_EXECUTION_ENABLED = True # SEM RESTRIÇÕES
|
| 381 |
+
|
| 382 |
+
# Mensagens do sistema
|
| 383 |
+
STARTUP_BANNER = autonomous_config.MESSAGES["startup_banner"]
|
| 384 |
+
PROCESSING_MESSAGE = autonomous_config.MESSAGES["processing"]
|
| 385 |
+
EXECUTING_MESSAGE = autonomous_config.MESSAGES["executing"]
|
Task
ADDED
|
File without changes
|
agent_models.py
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# main_agent.py
|
| 2 |
+
# -*- coding: utf-8 -*-
|
| 3 |
+
"""
|
| 4 |
+
HASHIRU 6.8 - ARQUITETURA FINAL ESTÁVEL
|
| 5 |
+
|
| 6 |
+
Esta versão finaliza a separação de responsabilidades, movendo os
|
| 7 |
+
modelos de dados para seu próprio arquivo e estabilizando a arquitetura.
|
| 8 |
+
"""
|
| 9 |
+
from __future__ import annotations
|
| 10 |
+
import traceback
|
| 11 |
+
import sys
|
| 12 |
+
import pathlib
|
| 13 |
+
import logging
|
| 14 |
+
import json
|
| 15 |
+
|
| 16 |
+
import chainlit as cl
|
| 17 |
+
import httpx
|
| 18 |
+
|
| 19 |
+
# ----------------------------------------------------------------------
|
| 20 |
+
# 1. CONFIGURAÇÃO INICIAL E DEPENDÊNCIAS
|
| 21 |
+
# ----------------------------------------------------------------------
|
| 22 |
+
logging.basicConfig(level=logging.INFO, format="%(asctime)s - [%(levelname)s] - %(message)s")
|
| 23 |
+
logger = logging.getLogger("HASHIRU_AGENT")
|
| 24 |
+
|
| 25 |
+
ROOT_PATH = pathlib.Path(__file__).resolve().parent
|
| 26 |
+
if str(ROOT_PATH) not in sys.path:
|
| 27 |
+
sys.path.insert(0, str(ROOT_PATH))
|
| 28 |
+
|
| 29 |
+
# --- Importações do Projeto ---
|
| 30 |
+
from autonomous_config import config, Config
|
| 31 |
+
from agent_tools import TOOL_REGISTRY, get_tools_description_for_llm
|
| 32 |
+
# >>> NOVO: Importa as estruturas de dados do seu próprio arquivo <<<
|
| 33 |
+
from agent_models import Task, ToolCall
|
| 34 |
+
|
| 35 |
+
# ----------------------------------------------------------------------
|
| 36 |
+
# 2. CLASSES DO AGENTE (Sem as definições de dataclass)
|
| 37 |
+
# ----------------------------------------------------------------------
|
| 38 |
+
|
| 39 |
+
class Planner:
|
| 40 |
+
"""Cria um plano de ação (uma lista de ToolCalls) para resolver a solicitação."""
|
| 41 |
+
def __init__(self, config: Config, http_client: httpx.AsyncClient):
|
| 42 |
+
self.config = config
|
| 43 |
+
self.http_client = http_client
|
| 44 |
+
self.system_prompt = (
|
| 45 |
+
"Você é um planejador para um agente de IA. Sua tarefa é decompor a solicitação do usuário em uma sequência de passos, onde cada passo é uma chamada a uma ferramenta. "
|
| 46 |
+
"As ferramentas disponíveis são:\n{tools}\n\n"
|
| 47 |
+
"Responda APENAS com um objeto JSON contendo uma chave 'plan', que é uma lista de ações. "
|
| 48 |
+
"Cada ação na lista deve ter 'tool_name' e 'tool_input'. Exemplo de resposta: "
|
| 49 |
+
'{"plan": [{"tool_name": "read_file", "tool_input": {"file_path": "main.py"}}]}'
|
| 50 |
+
)
|
| 51 |
+
|
| 52 |
+
async def create_task_with_plan(self, user_input: str) -> Task:
|
| 53 |
+
"""Usa o LLM para criar uma Task completa com um plano de ferramentas."""
|
| 54 |
+
model = self.config.get_model("reasoning")
|
| 55 |
+
prompt = self.system_prompt.format(tools=get_tools_description_for_llm())
|
| 56 |
+
|
| 57 |
+
try:
|
| 58 |
+
response_json = await self._call_ollama(model, f"Crie um plano para: '{user_input}'", prompt)
|
| 59 |
+
data = json.loads(response_json)
|
| 60 |
+
plan_data = data.get("plan", [])
|
| 61 |
+
plan = [ToolCall(**call) for call in plan_data]
|
| 62 |
+
return Task("tool_based_plan", "Executar plano de ferramentas", user_input, plan)
|
| 63 |
+
except (json.JSONDecodeError, httpx.RequestError, TypeError) as e:
|
| 64 |
+
logger.error(f"Falha ao criar plano, tratando como conversa. Erro: {e}", exc_info=True)
|
| 65 |
+
return Task("general_conversation", "Conversa geral", user_input, [])
|
| 66 |
+
|
| 67 |
+
async def _call_ollama(self, model: str, prompt: str, system: str) -> str:
|
| 68 |
+
payload = {"model": model, "prompt": prompt, "system": system, "stream": False, "format": "json"}
|
| 69 |
+
r = await self.http_client.post(f"{self.config.ollama.base_url}/api/generate", json=payload)
|
| 70 |
+
r.raise_for_status()
|
| 71 |
+
return r.json().get("response", "{}")
|
| 72 |
+
|
| 73 |
+
class Executor:
|
| 74 |
+
"""Executa um plano de ToolCalls em sequência."""
|
| 75 |
+
def __init__(self, config: Config):
|
| 76 |
+
self.config = config
|
| 77 |
+
|
| 78 |
+
async def execute_plan(self, plan: list[ToolCall]) -> str:
|
| 79 |
+
"""Itera sobre um plano e executa cada chamada de ferramenta."""
|
| 80 |
+
if not plan:
|
| 81 |
+
return "## ✅ Plano Concluído\nNenhuma ação foi planejada, pois a tarefa não exigia ferramentas."
|
| 82 |
+
|
| 83 |
+
results = []
|
| 84 |
+
for i, tool_call in enumerate(plan):
|
| 85 |
+
async with cl.Step(name=f"Passo {i+1}: `{tool_call.tool_name}`") as step:
|
| 86 |
+
step.input = str(tool_call.tool_input)
|
| 87 |
+
|
| 88 |
+
tool = TOOL_REGISTRY.get(tool_call.tool_name)
|
| 89 |
+
if not tool:
|
| 90 |
+
output = f"Erro: Ferramenta '{tool_call.tool_name}' não encontrada."
|
| 91 |
+
else:
|
| 92 |
+
try:
|
| 93 |
+
output = tool.execute(tool_call.tool_input)
|
| 94 |
+
except Exception as e:
|
| 95 |
+
output = f"Erro ao executar a ferramenta '{tool.name}': {e}"
|
| 96 |
+
|
| 97 |
+
step.output = output
|
| 98 |
+
results.append(f"#### ✅ Passo {i+1}: `{tool.name}`\n**Resultado:**\n```\n{output}\n```")
|
| 99 |
+
|
| 100 |
+
return "## 📝 Relatório Final de Execução\n\n" + "\n\n---\n\n".join(results)
|
| 101 |
+
|
| 102 |
+
class AgentSession:
|
| 103 |
+
"""Gerencia o ciclo de vida completo de uma interação."""
|
| 104 |
+
def __init__(self, config: Config):
|
| 105 |
+
self.config = config
|
| 106 |
+
self.http_client = httpx.AsyncClient(timeout=config.ollama.timeout)
|
| 107 |
+
self.planner = Planner(config, self.http_client)
|
| 108 |
+
self.executor = Executor(config)
|
| 109 |
+
|
| 110 |
+
async def handle_message(self, user_input: str):
|
| 111 |
+
"""Orquestra o fluxo de Planejar -> Executar."""
|
| 112 |
+
await cl.Message(content=self.config.processing_message).send()
|
| 113 |
+
|
| 114 |
+
task = await self.planner.create_task_with_plan(user_input)
|
| 115 |
+
|
| 116 |
+
if not task.plan:
|
| 117 |
+
plan_summary = "Não foi criado um plano de ferramentas. Tentando responder diretamente..."
|
| 118 |
+
await cl.Message(content=plan_summary).send()
|
| 119 |
+
# Fallback para uma conversa simples se o planejamento falhar
|
| 120 |
+
# (Em uma versão futura, isso também poderia ser uma chamada ao LLM)
|
| 121 |
+
response = "Desculpe, não consegui transformar sua solicitação em um plano de ação. Pode tentar ser mais específico ou pedir algo que use as ferramentas disponíveis?"
|
| 122 |
+
else:
|
| 123 |
+
plan_summary = "**Plano de Ação:**\n" + "\n".join([f"- Usar `{tc.tool_name}`" for tc in task.plan])
|
| 124 |
+
await cl.Message(content=plan_summary).send()
|
| 125 |
+
|
| 126 |
+
await cl.Message(content=self.config.executing_message).send()
|
| 127 |
+
response = await self.executor.execute_plan(task.plan)
|
| 128 |
+
|
| 129 |
+
await cl.Message(content=response).send()
|
| 130 |
+
|
| 131 |
+
async def cleanup(self):
|
| 132 |
+
await self.http_client.aclose()
|
| 133 |
+
logger.info("Sessão do agente finalizada.")
|
| 134 |
+
|
| 135 |
+
# ----------------------------------------------------------------------
|
| 136 |
+
# 3. HOOKS DO CHAINLIT (A Camada de Interface)
|
| 137 |
+
# ----------------------------------------------------------------------
|
| 138 |
+
@cl.on_chat_start
|
| 139 |
+
async def on_chat_start():
|
| 140 |
+
agent_session = AgentSession(config)
|
| 141 |
+
cl.user_session.set("agent_session", agent_session)
|
| 142 |
+
await cl.Message(content=config.startup_banner).send()
|
| 143 |
+
|
| 144 |
+
@cl.on_message
|
| 145 |
+
async def on_message(message: cl.Message):
|
| 146 |
+
agent = cl.user_session.get("agent_session")
|
| 147 |
+
user_input = (message.content or "").strip()
|
| 148 |
+
if not user_input or not agent: return
|
| 149 |
+
|
| 150 |
+
try:
|
| 151 |
+
await agent.handle_message(user_input)
|
| 152 |
+
except Exception:
|
| 153 |
+
tb = traceback.format_exc()
|
| 154 |
+
logger.error(f"Erro irrecuperável no fluxo principal:\n{tb}")
|
| 155 |
+
await cl.Message(content=f"💥 **Erro Inesperado no Sistema:**\n```\n{tb}\n```").send()
|
| 156 |
+
|
| 157 |
+
@cl.on_chat_end
|
| 158 |
+
async def on_chat_end():
|
| 159 |
+
if agent := cl.user_session.get("agent_session"):
|
| 160 |
+
await agent.cleanup()
|
agent_structs.py
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# agent_structs.py
|
| 2 |
+
# -*- coding: utf-8 -*-
|
| 3 |
+
"""
|
| 4 |
+
Este arquivo define as estruturas de dados (dataclasses) usadas pelo agente.
|
| 5 |
+
"""
|
| 6 |
+
from dataclasses import dataclass
|
| 7 |
+
|
| 8 |
+
@dataclass
|
| 9 |
+
class Task:
|
| 10 |
+
"""Representa uma tarefa identificada para o agente executar."""
|
| 11 |
+
task_type: str
|
| 12 |
+
summary: str
|
| 13 |
+
user_input: str
|
| 14 |
+
is_direct_command: bool = False
|
agent_tools.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# agent_tools.py
|
| 2 |
+
# -*- coding: utf-8 -*-
|
| 3 |
+
"""
|
| 4 |
+
Define e registra todas as Ferramentas (Tools) disponíveis para o agente HASHIRU.
|
| 5 |
+
|
| 6 |
+
Cada ferramenta é uma classe que herda de BaseTool, garantindo uma estrutura
|
| 7 |
+
consistente com nome, descrição e um método de execução.
|
| 8 |
+
"""
|
| 9 |
+
import os
|
| 10 |
+
from pathlib import Path
|
| 11 |
+
from typing import Dict, Any, Type
|
| 12 |
+
from pydantic import BaseModel, Field
|
| 13 |
+
|
| 14 |
+
# --- Classe Base para todas as Ferramentas ---
|
| 15 |
+
|
| 16 |
+
class BaseTool(BaseModel):
|
| 17 |
+
"""
|
| 18 |
+
A classe base abstrata para todas as ferramentas do agente.
|
| 19 |
+
Força a implementação de metadados essenciais e um método de execução.
|
| 20 |
+
"""
|
| 21 |
+
name: str
|
| 22 |
+
description: str
|
| 23 |
+
|
| 24 |
+
def execute(self, tool_input: Dict[str, Any]) -> str:
|
| 25 |
+
"""O método que executa a lógica da ferramenta."""
|
| 26 |
+
raise NotImplementedError("A subclasse deve implementar o método execute.")
|
| 27 |
+
|
| 28 |
+
def get_description_for_llm(self) -> str:
|
| 29 |
+
"""Formata a descrição da ferramenta para ser enviada ao LLM."""
|
| 30 |
+
return f"- `{self.name}`: {self.description}"
|
| 31 |
+
|
| 32 |
+
# --- Implementações Concretas das Ferramentas ---
|
| 33 |
+
|
| 34 |
+
class ReadFileTool(BaseTool):
|
| 35 |
+
name: str = "read_file"
|
| 36 |
+
description: str = "Lê e retorna o conteúdo completo de um arquivo de texto. Use para examinar arquivos."
|
| 37 |
+
|
| 38 |
+
def execute(self, tool_input: Dict[str, Any]) -> str:
|
| 39 |
+
file_path = tool_input.get("file_path")
|
| 40 |
+
if not file_path:
|
| 41 |
+
return "Erro: O caminho do arquivo (file_path) não foi fornecido."
|
| 42 |
+
try:
|
| 43 |
+
with open(file_path, 'r', encoding='utf-8') as f:
|
| 44 |
+
return f.read()
|
| 45 |
+
except Exception as e:
|
| 46 |
+
return f"Erro ao ler o arquivo {file_path}: {e}"
|
| 47 |
+
|
| 48 |
+
class WriteFileTool(BaseTool):
|
| 49 |
+
name: str = "write_file"
|
| 50 |
+
description: str = "Escreve ou sobrescreve um arquivo de texto com o conteúdo fornecido. Use para criar ou modificar arquivos."
|
| 51 |
+
|
| 52 |
+
def execute(self, tool_input: Dict[str, Any]) -> str:
|
| 53 |
+
file_path = tool_input.get("file_path")
|
| 54 |
+
content = tool_input.get("content")
|
| 55 |
+
if file_path is None or content is None:
|
| 56 |
+
return "Erro: 'file_path' e 'content' são necessários."
|
| 57 |
+
try:
|
| 58 |
+
# Garante que o diretório exista
|
| 59 |
+
Path(file_path).parent.mkdir(parents=True, exist_ok=True)
|
| 60 |
+
with open(file_path, 'w', encoding='utf-8') as f:
|
| 61 |
+
f.write(content)
|
| 62 |
+
return f"Arquivo '{file_path}' escrito com sucesso."
|
| 63 |
+
except Exception as e:
|
| 64 |
+
return f"Erro ao escrever o arquivo {file_path}: {e}"
|
| 65 |
+
|
| 66 |
+
class ListFilesTool(BaseTool):
|
| 67 |
+
name: str = "list_files"
|
| 68 |
+
description: str = "Lista todos os arquivos e pastas em um diretório específico. Use para explorar a estrutura do projeto."
|
| 69 |
+
|
| 70 |
+
def execute(self, tool_input: Dict[str, Any]) -> str:
|
| 71 |
+
directory = tool_input.get("directory", ".")
|
| 72 |
+
try:
|
| 73 |
+
files = os.listdir(directory)
|
| 74 |
+
if not files:
|
| 75 |
+
return f"O diretório '{directory}' está vazio."
|
| 76 |
+
return "\n".join(files)
|
| 77 |
+
except Exception as e:
|
| 78 |
+
return f"Erro ao listar arquivos em '{directory}': {e}"
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
# --- Registro Central de Ferramentas ---
|
| 82 |
+
# O agente usará este dicionário para encontrar e executar as ferramentas.
|
| 83 |
+
# A chave é o nome da ferramenta, e o valor é uma instância da classe da ferramenta.
|
| 84 |
+
TOOL_REGISTRY: Dict[str, BaseTool] = {
|
| 85 |
+
tool.name: tool for tool in [
|
| 86 |
+
ReadFileTool(),
|
| 87 |
+
WriteFileTool(),
|
| 88 |
+
ListFilesTool(),
|
| 89 |
+
]
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
def get_tools_description_for_llm() -> str:
|
| 93 |
+
"""Gera uma string formatada com a descrição de todas as ferramentas para o prompt do LLM."""
|
| 94 |
+
return "\n".join([tool.get_description_for_llm() for tool in TOOL_REGISTRY.values()])
|
apply_all_fixes.py
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
HASHIRU 6.1 - Apply All Fixes Script
|
| 3 |
+
Aplica todas as correções críticas em uma execução
|
| 4 |
+
"""
|
| 5 |
+
import sys
|
| 6 |
+
import json
|
| 7 |
+
import time
|
| 8 |
+
import subprocess
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def run_cmd(cmd: str) -> tuple[bool, str]:
|
| 13 |
+
"""Execute command and return success, output"""
|
| 14 |
+
try:
|
| 15 |
+
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=30)
|
| 16 |
+
return result.returncode == 0, result.stdout + result.stderr
|
| 17 |
+
except Exception as e:
|
| 18 |
+
return False, f"Error: {e}"
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def main():
|
| 22 |
+
print("🔥 HASHIRU 6.1 - APPLYING ALL FIXES")
|
| 23 |
+
print("=" * 50)
|
| 24 |
+
|
| 25 |
+
fixes_applied = 0
|
| 26 |
+
|
| 27 |
+
# 1. Test current syntax
|
| 28 |
+
print("\n1️⃣ Testing current syntax...")
|
| 29 |
+
success, output = run_cmd("python -c \"import main_agent; print('✅ Import successful')\"")
|
| 30 |
+
if not success:
|
| 31 |
+
print(f"⚠️ Current syntax issues detected:\n{output}")
|
| 32 |
+
else:
|
| 33 |
+
print("✅ Current syntax is clean")
|
| 34 |
+
|
| 35 |
+
# 2. Backup current main_agent.py
|
| 36 |
+
print("\n2️⃣ Creating backup...")
|
| 37 |
+
main_file = Path("main_agent.py")
|
| 38 |
+
if main_file.exists():
|
| 39 |
+
backup_file = Path(f"main_agent_backup_{int(time.time())}.py")
|
| 40 |
+
backup_file.write_text(main_file.read_text())
|
| 41 |
+
print(f"💾 Backup created: {backup_file}")
|
| 42 |
+
fixes_applied += 1
|
| 43 |
+
|
| 44 |
+
# 3. Apply fixes to main_agent.py
|
| 45 |
+
print("\n3️⃣ Applying main_agent.py fixes...")
|
| 46 |
+
current_content = main_file.read_text()
|
| 47 |
+
|
| 48 |
+
fixes = [
|
| 49 |
+
# Fix duplicate Optional import
|
| 50 |
+
("from typing import Dict, List, Any, Optional, Optional",
|
| 51 |
+
"from typing import Dict, List, Any, Optional"),
|
| 52 |
+
|
| 53 |
+
# Fix HTTP client concatenation bug
|
| 54 |
+
("self.http: Optional[httpx.AsyncClient] = httpx.AsyncClient()# Engine de auto-modificação (opcional)",
|
| 55 |
+
"self.http: Optional[httpx.AsyncClient] = httpx.AsyncClient()\n \n # Engine de auto-modificação (opcional)"),
|
| 56 |
+
|
| 57 |
+
# Fix regex pattern (raw string)
|
| 58 |
+
('pattern = re.compile(r"(?ms)^\\s*(\\\/[a-z][\\w:-]*(?:[^\\n<]*?))\\s*(?:<<<(.*?)>>>|)\\s*$")',
|
| 59 |
+
'pattern = re.compile(r"(?ms)^\\s*(\\/[a-z][\\w:-]*(?:[^\\n<]*?))\\s*(?:<<<(.*?)>>>|)\\s*$")'),
|
| 60 |
+
]
|
| 61 |
+
|
| 62 |
+
for old, new in fixes:
|
| 63 |
+
if old in current_content:
|
| 64 |
+
current_content = current_content.replace(old, new)
|
| 65 |
+
print(f" ✅ Applied fix: {old[:50]}...")
|
| 66 |
+
fixes_applied += 1
|
| 67 |
+
|
| 68 |
+
# Write fixed content
|
| 69 |
+
main_file.write_text(current_content)
|
| 70 |
+
|
| 71 |
+
# 4. Test fixed syntax
|
| 72 |
+
print("\n4️⃣ Testing fixed syntax...")
|
| 73 |
+
success, output = run_cmd("python -c \"import main_agent; print('✅ Fixed import successful')\"")
|
| 74 |
+
if success:
|
| 75 |
+
print("✅ All syntax issues resolved!")
|
| 76 |
+
fixes_applied += 1
|
| 77 |
+
else:
|
| 78 |
+
print(f"❌ Still has issues:\n{output}")
|
| 79 |
+
|
| 80 |
+
# 5. Test Chainlit startup
|
| 81 |
+
print("\n5️⃣ Testing Chainlit startup (5 seconds)...")
|
| 82 |
+
success, output = run_cmd("timeout 5 chainlit run main_agent.py --port 8081 --host 127.0.0.1")
|
| 83 |
+
if "Your app is available" in output:
|
| 84 |
+
print("✅ Chainlit starts successfully!")
|
| 85 |
+
fixes_applied += 1
|
| 86 |
+
else:
|
| 87 |
+
print(f"⚠️ Chainlit startup issues:\n{output[:200]}...")
|
| 88 |
+
|
| 89 |
+
# 6. Apply security policies if fs.py exists
|
| 90 |
+
fs_file = Path("tools/fs.py")
|
| 91 |
+
if fs_file.exists():
|
| 92 |
+
print("\n6️⃣ Checking filesystem security...")
|
| 93 |
+
content = fs_file.read_text()
|
| 94 |
+
if "is_write_path_allowed" not in content:
|
| 95 |
+
print("⚠️ Security policies not integrated in tools/fs.py")
|
| 96 |
+
print(" → Need to integrate security policies manually")
|
| 97 |
+
else:
|
| 98 |
+
print("✅ Security policies already integrated")
|
| 99 |
+
fixes_applied += 1
|
| 100 |
+
|
| 101 |
+
# 7. Create artifacts directory
|
| 102 |
+
print("\n7️⃣ Ensuring artifacts directory...")
|
| 103 |
+
artifacts_dir = Path("artifacts")
|
| 104 |
+
artifacts_dir.mkdir(exist_ok=True)
|
| 105 |
+
print(f"✅ Artifacts directory ready: {artifacts_dir}")
|
| 106 |
+
fixes_applied += 1
|
| 107 |
+
|
| 108 |
+
# Summary
|
| 109 |
+
print("\n" + "=" * 50)
|
| 110 |
+
print(f"🎯 FIXES APPLIED: {fixes_applied}")
|
| 111 |
+
print("✅ Ready to test with commands:")
|
| 112 |
+
print(" /self:status")
|
| 113 |
+
print(" /self:analyze main_agent.py")
|
| 114 |
+
print(" /write tools/test.txt <<<Hello>>")
|
| 115 |
+
print("=" * 50)
|
| 116 |
+
|
| 117 |
+
return fixes_applied
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
if __name__ == "__main__":
|
| 121 |
+
import time
|
| 122 |
+
main()
|
automation_integration.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
"""
|
| 3 |
+
HASHIRU 6.1 - INTEGRAÇÃO DE AUTOMAÇÃO
|
| 4 |
+
Adicione este código ao seu tools/__init__.py ou main_agent.py
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
from tools.automation_master import AUTOMATION_COMMANDS
|
| 8 |
+
|
| 9 |
+
# Integrar comandos de automação ao sistema principal
|
| 10 |
+
def register_automation_commands():
|
| 11 |
+
"""Registrar todos os comandos de automação"""
|
| 12 |
+
return AUTOMATION_COMMANDS
|
| 13 |
+
|
| 14 |
+
# Exemplo de uso no main_agent.py:
|
| 15 |
+
"""
|
| 16 |
+
from tools.automation_master import get_automation_master
|
| 17 |
+
|
| 18 |
+
# No seu handler de comandos, adicione:
|
| 19 |
+
if command.startswith("/auto_"):
|
| 20 |
+
automation_master = get_automation_master()
|
| 21 |
+
|
| 22 |
+
if command == "/auto_search":
|
| 23 |
+
result = automation_master.search_and_analyze(args)
|
| 24 |
+
elif command == "/auto_browse":
|
| 25 |
+
result = automation_master.navigate_to(args)
|
| 26 |
+
elif command == "/auto_research":
|
| 27 |
+
result = automation_master.auto_research_and_save(args)
|
| 28 |
+
# ... etc
|
| 29 |
+
|
| 30 |
+
return result
|
| 31 |
+
"""
|
autonomous_config.py
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
HASHIRU 6.1 - Clean Configuration
|
| 3 |
+
Modern, type-safe, validated configuration following Python best practices
|
| 4 |
+
"""
|
| 5 |
+
import os
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
from dataclasses import dataclass, field
|
| 8 |
+
from typing import List, Dict, Optional, Union
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
@dataclass
|
| 12 |
+
class OllamaConfig:
|
| 13 |
+
"""Ollama/LLM Configuration"""
|
| 14 |
+
base_url: str = "http://127.0.0.1:11434"
|
| 15 |
+
timeout: float = 180.0
|
| 16 |
+
|
| 17 |
+
# Models with fallbacks
|
| 18 |
+
reasoning_model: str = "deepseek-r1:8b"
|
| 19 |
+
reasoning_fallbacks: List[str] = field(default_factory=lambda: ["llama3.1:8b", "qwen2.5:14b-instruct"])
|
| 20 |
+
|
| 21 |
+
code_model: str = "deepseek-coder:6.7b"
|
| 22 |
+
code_fallbacks: List[str] = field(default_factory=lambda: ["deepseek-coder:33b", "llama3.1:8b"])
|
| 23 |
+
|
| 24 |
+
conversation_model: str = "llama3.1:8b"
|
| 25 |
+
conversation_fallbacks: List[str] = field(default_factory=lambda: ["mistral:7b-instruct"])
|
| 26 |
+
|
| 27 |
+
tools_model: str = "llama3-groq-tool-use:8b"
|
| 28 |
+
tools_fallbacks: List[str] = field(default_factory=lambda: ["llama3.1:8b"])
|
| 29 |
+
|
| 30 |
+
@classmethod
|
| 31 |
+
def from_env(cls) -> 'OllamaConfig':
|
| 32 |
+
"""Create config from environment variables"""
|
| 33 |
+
return cls(
|
| 34 |
+
base_url=os.getenv("OLLAMA_BASE_URL", cls.base_url),
|
| 35 |
+
timeout=float(os.getenv("OLLAMA_TIMEOUT", cls.timeout))
|
| 36 |
+
)
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
@dataclass
|
| 40 |
+
class SecurityConfig:
|
| 41 |
+
"""Security and file access policies"""
|
| 42 |
+
# Free zone - total freedom
|
| 43 |
+
free_project_path: Path = Path(r"C:\meu_projeto_livre")
|
| 44 |
+
|
| 45 |
+
# Always allowed paths
|
| 46 |
+
allowed_paths: List[str] = field(default_factory=lambda: [
|
| 47 |
+
".", # Current project
|
| 48 |
+
"tools", "utils", "scripts", "artifacts",
|
| 49 |
+
r"C:\meu_projeto_livre", # Free zone
|
| 50 |
+
r"C:\Users\Public", # Public folder
|
| 51 |
+
r"C:\temp", r"C:\tmp", # Temp folders
|
| 52 |
+
])
|
| 53 |
+
|
| 54 |
+
# Always blocked paths
|
| 55 |
+
blocked_paths: List[str] = field(default_factory=lambda: [
|
| 56 |
+
r"C:\Windows\System32",
|
| 57 |
+
r"C:\Program Files",
|
| 58 |
+
".git", "__pycache__", "venv", ".venv"
|
| 59 |
+
])
|
| 60 |
+
|
| 61 |
+
# Dangerous file extensions
|
| 62 |
+
blocked_extensions: List[str] = field(default_factory=lambda: [
|
| 63 |
+
".sys", ".dll" # Only truly dangerous ones
|
| 64 |
+
])
|
| 65 |
+
|
| 66 |
+
def is_write_allowed(self, target_path: Union[str, Path]) -> bool:
|
| 67 |
+
"""Check if writing to path is allowed"""
|
| 68 |
+
try:
|
| 69 |
+
resolved = Path(target_path).resolve()
|
| 70 |
+
path_str = str(resolved)
|
| 71 |
+
|
| 72 |
+
# Check blocked extensions
|
| 73 |
+
if resolved.suffix.lower() in self.blocked_extensions:
|
| 74 |
+
return False
|
| 75 |
+
|
| 76 |
+
# Check if in allowed paths
|
| 77 |
+
for allowed in self.allowed_paths:
|
| 78 |
+
if path_str.startswith(str(Path(allowed).resolve())):
|
| 79 |
+
return True
|
| 80 |
+
|
| 81 |
+
# Check if in blocked paths
|
| 82 |
+
for blocked in self.blocked_paths:
|
| 83 |
+
if path_str.startswith(blocked):
|
| 84 |
+
return False
|
| 85 |
+
|
| 86 |
+
# Check for user home directory (generally safe)
|
| 87 |
+
if path_str.startswith(str(Path.home())):
|
| 88 |
+
return True
|
| 89 |
+
|
| 90 |
+
return False
|
| 91 |
+
|
| 92 |
+
except Exception:
|
| 93 |
+
return False
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
@dataclass
|
| 97 |
+
class WebConfig:
|
| 98 |
+
"""Web and internet access configuration"""
|
| 99 |
+
enabled: bool = True
|
| 100 |
+
max_search_results: int = 10
|
| 101 |
+
default_timeout: float = 30.0
|
| 102 |
+
user_agent: str = "HASHIRU-6.1-Agent"
|
| 103 |
+
|
| 104 |
+
# Search engines (for future implementation)
|
| 105 |
+
search_engines: List[str] = field(default_factory=lambda: [
|
| 106 |
+
"duckduckgo", "google", "bing"
|
| 107 |
+
])
|
| 108 |
+
|
| 109 |
+
|
| 110 |
+
@dataclass
|
| 111 |
+
class SystemConfig:
|
| 112 |
+
"""System-level configuration"""
|
| 113 |
+
project_root: Path = field(default_factory=lambda: Path(__file__).parent)
|
| 114 |
+
|
| 115 |
+
# Directory structure
|
| 116 |
+
tools_dir: Path = field(default_factory=lambda: Path("tools"))
|
| 117 |
+
utils_dir: Path = field(default_factory=lambda: Path("utils"))
|
| 118 |
+
artifacts_dir: Path = field(default_factory=lambda: Path("artifacts"))
|
| 119 |
+
backups_dir: Path = field(default_factory=lambda: Path("backups"))
|
| 120 |
+
|
| 121 |
+
# Runtime settings
|
| 122 |
+
encoding: str = "utf-8"
|
| 123 |
+
chainlit_port: int = 8080
|
| 124 |
+
max_commands_per_execution: int = 20
|
| 125 |
+
|
| 126 |
+
def ensure_directories(self) -> None:
|
| 127 |
+
"""Create necessary directories"""
|
| 128 |
+
for dir_path in [self.artifacts_dir, self.backups_dir]:
|
| 129 |
+
dir_path.mkdir(exist_ok=True)
|
| 130 |
+
|
| 131 |
+
@classmethod
|
| 132 |
+
def from_env(cls) -> 'SystemConfig':
|
| 133 |
+
"""Create system config from environment"""
|
| 134 |
+
return cls(
|
| 135 |
+
chainlit_port=int(os.getenv("CHAINLIT_PORT", cls.chainlit_port))
|
| 136 |
+
)
|
| 137 |
+
|
| 138 |
+
|
| 139 |
+
@dataclass
|
| 140 |
+
class EngineConfig:
|
| 141 |
+
"""Self-modification engine configuration"""
|
| 142 |
+
enabled: bool = True
|
| 143 |
+
auto_backup: bool = True
|
| 144 |
+
max_backups_per_file: int = 10
|
| 145 |
+
|
| 146 |
+
# File patterns that can be modified
|
| 147 |
+
modifiable_patterns: List[str] = field(default_factory=lambda: [
|
| 148 |
+
"*.py", "*.json", "*.txt", "*.md"
|
| 149 |
+
])
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
@dataclass
|
| 153 |
+
class Config:
|
| 154 |
+
"""Main configuration class - Clean and typed"""
|
| 155 |
+
|
| 156 |
+
# Sub-configurations
|
| 157 |
+
ollama: OllamaConfig = field(default_factory=OllamaConfig)
|
| 158 |
+
security: SecurityConfig = field(default_factory=SecurityConfig)
|
| 159 |
+
web: WebConfig = field(default_factory=WebConfig)
|
| 160 |
+
system: SystemConfig = field(default_factory=SystemConfig)
|
| 161 |
+
engine: EngineConfig = field(default_factory=EngineConfig)
|
| 162 |
+
|
| 163 |
+
# Simple flags
|
| 164 |
+
autonomous_mode: bool = True
|
| 165 |
+
debug_mode: bool = False
|
| 166 |
+
|
| 167 |
+
# Messages
|
| 168 |
+
startup_banner: str = "🚀 HASHIRU 6.1 - Agente Autônomo Inteligente"
|
| 169 |
+
processing_message: str = "🧠 Processando com IA..."
|
| 170 |
+
executing_message: str = "⚡ Executando automaticamente..."
|
| 171 |
+
|
| 172 |
+
@classmethod
|
| 173 |
+
def load(cls) -> 'Config':
|
| 174 |
+
"""Load configuration with environment overrides"""
|
| 175 |
+
config = cls()
|
| 176 |
+
|
| 177 |
+
# Load from environment
|
| 178 |
+
config.ollama = OllamaConfig.from_env()
|
| 179 |
+
config.system = SystemConfig.from_env()
|
| 180 |
+
|
| 181 |
+
# Set debug mode from environment
|
| 182 |
+
config.debug_mode = os.getenv("DEBUG", "false").lower() == "true"
|
| 183 |
+
|
| 184 |
+
# Validate and setup
|
| 185 |
+
config.validate()
|
| 186 |
+
config.setup()
|
| 187 |
+
|
| 188 |
+
return config
|
| 189 |
+
|
| 190 |
+
def validate(self) -> None:
|
| 191 |
+
"""Validate configuration - fail fast if invalid"""
|
| 192 |
+
# Ensure required paths exist or can be created
|
| 193 |
+
try:
|
| 194 |
+
self.security.free_project_path.mkdir(parents=True, exist_ok=True)
|
| 195 |
+
except Exception as e:
|
| 196 |
+
raise ValueError(f"Cannot create free project path: {e}")
|
| 197 |
+
|
| 198 |
+
# Validate models are strings
|
| 199 |
+
if not isinstance(self.ollama.reasoning_model, str):
|
| 200 |
+
raise ValueError("Models must be strings")
|
| 201 |
+
|
| 202 |
+
# Validate ports
|
| 203 |
+
if not (1024 <= self.system.chainlit_port <= 65535):
|
| 204 |
+
raise ValueError("Invalid port number")
|
| 205 |
+
|
| 206 |
+
def setup(self) -> None:
|
| 207 |
+
"""Setup configuration - create directories, etc."""
|
| 208 |
+
self.system.ensure_directories()
|
| 209 |
+
|
| 210 |
+
# Create free project structure
|
| 211 |
+
free_path = self.security.free_project_path
|
| 212 |
+
for subdir in ["downloads", "research", "experiments", "backups"]:
|
| 213 |
+
(free_path / subdir).mkdir(exist_ok=True)
|
| 214 |
+
|
| 215 |
+
def get_model(self, model_type: str) -> str:
|
| 216 |
+
"""Get primary model for type"""
|
| 217 |
+
model_map = {
|
| 218 |
+
"reasoning": self.ollama.reasoning_model,
|
| 219 |
+
"code": self.ollama.code_model,
|
| 220 |
+
"code_specialist": self.ollama.code_model,
|
| 221 |
+
"code_master": self.ollama.code_model,
|
| 222 |
+
"conversation": self.ollama.conversation_model,
|
| 223 |
+
"tools": self.ollama.tools_model,
|
| 224 |
+
"general": self.ollama.conversation_model,
|
| 225 |
+
}
|
| 226 |
+
return model_map.get(model_type, self.ollama.conversation_model)
|
| 227 |
+
|
| 228 |
+
def get_fallback_models(self, model_type: str) -> List[str]:
|
| 229 |
+
"""Get fallback models for type"""
|
| 230 |
+
fallback_map = {
|
| 231 |
+
"reasoning": self.ollama.reasoning_fallbacks,
|
| 232 |
+
"code": self.ollama.code_fallbacks,
|
| 233 |
+
"code_specialist": self.ollama.code_fallbacks,
|
| 234 |
+
"code_master": self.ollama.code_fallbacks,
|
| 235 |
+
"conversation": self.ollama.conversation_fallbacks,
|
| 236 |
+
"tools": self.ollama.tools_fallbacks,
|
| 237 |
+
"general": self.ollama.conversation_fallbacks,
|
| 238 |
+
}
|
| 239 |
+
return fallback_map.get(model_type, self.ollama.conversation_fallbacks)
|
| 240 |
+
|
| 241 |
+
|
| 242 |
+
# Global configuration instance
|
| 243 |
+
config = Config.load()
|
| 244 |
+
|
| 245 |
+
# Legacy compatibility functions (for existing code)
|
| 246 |
+
def get_ai_model(model_type: str) -> str:
|
| 247 |
+
"""Legacy: Get AI model"""
|
| 248 |
+
return config.get_model(model_type)
|
| 249 |
+
|
| 250 |
+
def get_fallback_models(model_type: str) -> List[str]:
|
| 251 |
+
"""Legacy: Get fallback models"""
|
| 252 |
+
return config.get_fallback_models(model_type)
|
| 253 |
+
|
| 254 |
+
def is_write_path_allowed(target_path: str) -> bool:
|
| 255 |
+
"""Legacy: Check if write is allowed"""
|
| 256 |
+
return config.security.is_write_allowed(target_path)
|
| 257 |
+
|
| 258 |
+
def is_command_auto_allowed(command: str) -> bool:
|
| 259 |
+
"""Legacy: Check if command is auto-allowed"""
|
| 260 |
+
return config.autonomous_mode
|
| 261 |
+
|
| 262 |
+
def is_dangerous_command_allowed(command: str) -> bool:
|
| 263 |
+
"""Legacy: Check if dangerous command is allowed"""
|
| 264 |
+
return config.autonomous_mode
|
| 265 |
+
|
| 266 |
+
# Legacy constants (for existing imports)
|
| 267 |
+
OLLAMA_URL = config.ollama.base_url
|
| 268 |
+
AUTONOMOUS_MODE = config.autonomous_mode
|
| 269 |
+
SELF_MODIFICATION_ENABLED = config.engine.enabled
|
| 270 |
+
STARTUP_BANNER = config.startup_banner
|
| 271 |
+
PROCESSING_MESSAGE = config.processing_message
|
| 272 |
+
EXECUTING_MESSAGE = config.executing_message
|
| 273 |
+
|
| 274 |
+
# Export for easy imports
|
| 275 |
+
__all__ = [
|
| 276 |
+
"Config", "config",
|
| 277 |
+
"get_ai_model", "get_fallback_models",
|
| 278 |
+
"is_write_path_allowed", "is_command_auto_allowed", "is_dangerous_command_allowed",
|
| 279 |
+
"OLLAMA_URL", "AUTONOMOUS_MODE", "SELF_MODIFICATION_ENABLED",
|
| 280 |
+
"STARTUP_BANNER", "PROCESSING_MESSAGE", "EXECUTING_MESSAGE"
|
| 281 |
+
]
|
| 282 |
+
|
| 283 |
+
# Initialize on import
|
| 284 |
+
if config.debug_mode:
|
| 285 |
+
print("🔧 HASHIRU Config loaded in DEBUG mode")
|
| 286 |
+
print(f"📁 Free path: {config.security.free_project_path}")
|
| 287 |
+
print(f"🤖 Reasoning model: {config.ollama.reasoning_model}")
|
autonomous_config_optimized.py
ADDED
|
@@ -0,0 +1,757 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
"""
|
| 3 |
+
HASHIRU 6.1 - OPTIMIZED CONFIGURATION 2025
|
| 4 |
+
Hardware-Specific AI Model Configuration based on 2025 Research
|
| 5 |
+
|
| 6 |
+
Optimizations:
|
| 7 |
+
- RTX 3060 (12GB) + RTX 2060 (6GB) specific model selection
|
| 8 |
+
- Performance vs Quality balanced configurations
|
| 9 |
+
- Type-safe dataclasses with runtime validation
|
| 10 |
+
- Environment variable override support
|
| 11 |
+
- Immutable configuration with validation
|
| 12 |
+
- Memory-efficient model allocation
|
| 13 |
+
|
| 14 |
+
Research Sources:
|
| 15 |
+
- GPU memory optimization studies (NVIDIA 2025)
|
| 16 |
+
- Dual GPU LLM inference benchmarks
|
| 17 |
+
- Python dataclass best practices
|
| 18 |
+
- Production-ready configuration management
|
| 19 |
+
"""
|
| 20 |
+
|
| 21 |
+
import os
|
| 22 |
+
import logging
|
| 23 |
+
from dataclasses import dataclass, field
|
| 24 |
+
from pathlib import Path
|
| 25 |
+
from typing import List, Dict, Optional, Union, Any, Tuple
|
| 26 |
+
from enum import Enum
|
| 27 |
+
|
| 28 |
+
# Configure logging
|
| 29 |
+
logger = logging.getLogger("hashiru.config")
|
| 30 |
+
|
| 31 |
+
# ============================================================================
|
| 32 |
+
# ENUMS FOR TYPE SAFETY
|
| 33 |
+
# ============================================================================
|
| 34 |
+
|
| 35 |
+
class ModelSize(Enum):
|
| 36 |
+
"""Model size categories optimized for dual GPU setup"""
|
| 37 |
+
SMALL_3B = "3B" # RTX 2060 compatible
|
| 38 |
+
MEDIUM_7B = "7B" # RTX 3060 optimized
|
| 39 |
+
LARGE_8B = "8B" # RTX 3060 + quantization
|
| 40 |
+
XLARGE_14B = "14B" # RTX 3060 + some RTX 2060
|
| 41 |
+
PREMIUM_33B = "33B" # Requires both GPUs (slow)
|
| 42 |
+
|
| 43 |
+
class Precision(Enum):
|
| 44 |
+
"""Precision formats for memory optimization"""
|
| 45 |
+
FP16 = "fp16" # Standard precision
|
| 46 |
+
INT8 = "int8" # 2x memory reduction
|
| 47 |
+
INT4 = "int4" # 4x memory reduction
|
| 48 |
+
FP8 = "fp8" # Emerging standard
|
| 49 |
+
|
| 50 |
+
class ModelType(Enum):
|
| 51 |
+
"""Model usage types for specialized selection"""
|
| 52 |
+
REASONING = "reasoning"
|
| 53 |
+
CODE = "code"
|
| 54 |
+
CONVERSATION = "conversation"
|
| 55 |
+
TOOLS = "tools"
|
| 56 |
+
RESEARCH = "research"
|
| 57 |
+
GENERAL = "general"
|
| 58 |
+
|
| 59 |
+
# ============================================================================
|
| 60 |
+
# HARDWARE-OPTIMIZED MODEL CONFIGURATIONS
|
| 61 |
+
# ============================================================================
|
| 62 |
+
|
| 63 |
+
@dataclass(frozen=True)
|
| 64 |
+
class ModelConfig:
|
| 65 |
+
"""Single model configuration with hardware specifications"""
|
| 66 |
+
name: str
|
| 67 |
+
size: ModelSize
|
| 68 |
+
vram_requirement_gb: float
|
| 69 |
+
recommended_precision: Precision
|
| 70 |
+
performance_tier: int # 1=best, 5=acceptable
|
| 71 |
+
tokens_per_second_estimate: int
|
| 72 |
+
description: str
|
| 73 |
+
|
| 74 |
+
def is_compatible_with_vram(self, available_vram_gb: float) -> bool:
|
| 75 |
+
"""Check if model fits in available VRAM"""
|
| 76 |
+
return self.vram_requirement_gb <= available_vram_gb
|
| 77 |
+
|
| 78 |
+
@dataclass(frozen=True)
|
| 79 |
+
class HardwareProfile:
|
| 80 |
+
"""Hardware specification for model selection"""
|
| 81 |
+
gpu_primary: str
|
| 82 |
+
gpu_secondary: Optional[str]
|
| 83 |
+
vram_primary_gb: float
|
| 84 |
+
vram_secondary_gb: float
|
| 85 |
+
total_vram_gb: float
|
| 86 |
+
|
| 87 |
+
@property
|
| 88 |
+
def is_dual_gpu(self) -> bool:
|
| 89 |
+
return self.gpu_secondary is not None
|
| 90 |
+
|
| 91 |
+
# ============================================================================
|
| 92 |
+
# OPTIMIZED MODEL REGISTRY (2025 RESEARCH-BASED)
|
| 93 |
+
# ============================================================================
|
| 94 |
+
|
| 95 |
+
class OptimizedModelRegistry:
|
| 96 |
+
"""
|
| 97 |
+
Hardware-optimized model registry based on 2025 performance research
|
| 98 |
+
Specifically optimized for RTX 3060 (12GB) + RTX 2060 (6GB) setup
|
| 99 |
+
"""
|
| 100 |
+
|
| 101 |
+
# Hardware profile for the user's setup
|
| 102 |
+
DUAL_RTX_PROFILE = HardwareProfile(
|
| 103 |
+
gpu_primary="RTX 3060",
|
| 104 |
+
gpu_secondary="RTX 2060",
|
| 105 |
+
vram_primary_gb=12.0,
|
| 106 |
+
vram_secondary_gb=6.0,
|
| 107 |
+
total_vram_gb=18.0
|
| 108 |
+
)
|
| 109 |
+
|
| 110 |
+
# Optimized model configurations based on research
|
| 111 |
+
MODELS = {
|
| 112 |
+
# REASONING MODELS (Best for analysis, logic, planning)
|
| 113 |
+
"reasoning_premium": ModelConfig(
|
| 114 |
+
name="qwen2.5:14b-instruct",
|
| 115 |
+
size=ModelSize.XLARGE_14B,
|
| 116 |
+
vram_requirement_gb=9.0, # Fits perfectly in RTX 3060
|
| 117 |
+
recommended_precision=Precision.FP16,
|
| 118 |
+
performance_tier=1, # Best reasoning quality
|
| 119 |
+
tokens_per_second_estimate=25,
|
| 120 |
+
description="Premium reasoning model optimized for RTX 3060"
|
| 121 |
+
),
|
| 122 |
+
"reasoning_balanced": ModelConfig(
|
| 123 |
+
name="deepseek-r1:8b",
|
| 124 |
+
size=ModelSize.LARGE_8B,
|
| 125 |
+
vram_requirement_gb=5.2,
|
| 126 |
+
recommended_precision=Precision.FP16,
|
| 127 |
+
performance_tier=2,
|
| 128 |
+
tokens_per_second_estimate=35,
|
| 129 |
+
description="Balanced reasoning with good speed"
|
| 130 |
+
),
|
| 131 |
+
"reasoning_fallback": ModelConfig(
|
| 132 |
+
name="llama3.1:8b",
|
| 133 |
+
size=ModelSize.LARGE_8B,
|
| 134 |
+
vram_requirement_gb=4.9,
|
| 135 |
+
recommended_precision=Precision.FP16,
|
| 136 |
+
performance_tier=3,
|
| 137 |
+
tokens_per_second_estimate=45,
|
| 138 |
+
description="Fast reasoning fallback"
|
| 139 |
+
),
|
| 140 |
+
|
| 141 |
+
# CODE MODELS (Optimized for programming)
|
| 142 |
+
"code_optimal": ModelConfig(
|
| 143 |
+
name="deepseek-coder:6.7b",
|
| 144 |
+
size=ModelSize.MEDIUM_7B,
|
| 145 |
+
vram_requirement_gb=3.8, # Very efficient for RTX 3060
|
| 146 |
+
recommended_precision=Precision.FP16,
|
| 147 |
+
performance_tier=1, # Best code quality for hardware
|
| 148 |
+
tokens_per_second_estimate=50,
|
| 149 |
+
description="Optimal code model for RTX 3060 - best speed/quality"
|
| 150 |
+
),
|
| 151 |
+
"code_premium": ModelConfig(
|
| 152 |
+
name="deepseek-coder:33b",
|
| 153 |
+
size=ModelSize.PREMIUM_33B,
|
| 154 |
+
vram_requirement_gb=18.0, # Requires both GPUs
|
| 155 |
+
recommended_precision=Precision.INT4, # Quantized to fit
|
| 156 |
+
performance_tier=5, # Slow but highest quality
|
| 157 |
+
tokens_per_second_estimate=8,
|
| 158 |
+
description="Premium code model (slow on this hardware)"
|
| 159 |
+
),
|
| 160 |
+
|
| 161 |
+
# CONVERSATION MODELS (Optimized for chat)
|
| 162 |
+
"conversation_fast": ModelConfig(
|
| 163 |
+
name="llama3.1:8b",
|
| 164 |
+
size=ModelSize.LARGE_8B,
|
| 165 |
+
vram_requirement_gb=4.9,
|
| 166 |
+
recommended_precision=Precision.FP16,
|
| 167 |
+
performance_tier=1, # Best for conversation speed
|
| 168 |
+
tokens_per_second_estimate=70,
|
| 169 |
+
description="Fast conversation model - 70+ tokens/s"
|
| 170 |
+
),
|
| 171 |
+
"conversation_premium": ModelConfig(
|
| 172 |
+
name="qwen2.5:14b-instruct",
|
| 173 |
+
size=ModelSize.XLARGE_14B,
|
| 174 |
+
vram_requirement_gb=9.0,
|
| 175 |
+
recommended_precision=Precision.FP16,
|
| 176 |
+
performance_tier=2, # Higher quality, slower
|
| 177 |
+
tokens_per_second_estimate=25,
|
| 178 |
+
description="Premium conversation quality"
|
| 179 |
+
),
|
| 180 |
+
|
| 181 |
+
# TOOLS MODELS (Specialized for automation)
|
| 182 |
+
"tools_specialized": ModelConfig(
|
| 183 |
+
name="llama3-groq-tool-use:8b",
|
| 184 |
+
size=ModelSize.LARGE_8B,
|
| 185 |
+
vram_requirement_gb=4.7,
|
| 186 |
+
recommended_precision=Precision.FP16,
|
| 187 |
+
performance_tier=1, # Best for tool usage
|
| 188 |
+
tokens_per_second_estimate=40,
|
| 189 |
+
description="Specialized for automation and tools"
|
| 190 |
+
),
|
| 191 |
+
|
| 192 |
+
# RESEARCH MODELS (Multi-source analysis)
|
| 193 |
+
"research_balanced": ModelConfig(
|
| 194 |
+
name="qwen2.5:14b-instruct",
|
| 195 |
+
size=ModelSize.XLARGE_14B,
|
| 196 |
+
vram_requirement_gb=9.0,
|
| 197 |
+
recommended_precision=Precision.FP16,
|
| 198 |
+
performance_tier=1,
|
| 199 |
+
tokens_per_second_estimate=25,
|
| 200 |
+
description="Excellent for research and analysis"
|
| 201 |
+
),
|
| 202 |
+
|
| 203 |
+
# LIGHTWEIGHT MODELS (RTX 2060 compatible)
|
| 204 |
+
"lightweight_3b": ModelConfig(
|
| 205 |
+
name="llama3.2:3b",
|
| 206 |
+
size=ModelSize.SMALL_3B,
|
| 207 |
+
vram_requirement_gb=2.5,
|
| 208 |
+
recommended_precision=Precision.FP16,
|
| 209 |
+
performance_tier=4, # Lower quality but very fast
|
| 210 |
+
tokens_per_second_estimate=90,
|
| 211 |
+
description="Ultra-fast 3B model for RTX 2060"
|
| 212 |
+
)
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
@classmethod
|
| 216 |
+
def get_optimal_model(cls, model_type: ModelType, hardware: HardwareProfile) -> str:
|
| 217 |
+
"""Get optimal model name for given type and hardware"""
|
| 218 |
+
|
| 219 |
+
# Hardware-optimized mapping based on 2025 research
|
| 220 |
+
optimal_mapping = {
|
| 221 |
+
ModelType.REASONING: "reasoning_premium", # qwen2.5:14b (9GB)
|
| 222 |
+
ModelType.CODE: "code_optimal", # deepseek-coder:6.7b (3.8GB)
|
| 223 |
+
ModelType.CONVERSATION: "conversation_fast", # llama3.1:8b (4.9GB)
|
| 224 |
+
ModelType.TOOLS: "tools_specialized", # llama3-groq-tool-use:8b (4.7GB)
|
| 225 |
+
ModelType.RESEARCH: "research_balanced", # qwen2.5:14b (9GB)
|
| 226 |
+
ModelType.GENERAL: "conversation_fast" # llama3.1:8b (4.9GB)
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
model_key = optimal_mapping.get(model_type, "conversation_fast")
|
| 230 |
+
model_config = cls.MODELS[model_key]
|
| 231 |
+
|
| 232 |
+
# Fallback to smaller model if doesn't fit in primary GPU
|
| 233 |
+
if not model_config.is_compatible_with_vram(hardware.vram_primary_gb):
|
| 234 |
+
fallback_mapping = {
|
| 235 |
+
ModelType.REASONING: "reasoning_fallback", # llama3.1:8b
|
| 236 |
+
ModelType.CODE: "code_optimal", # Already optimal
|
| 237 |
+
ModelType.CONVERSATION: "lightweight_3b", # llama3.2:3b
|
| 238 |
+
ModelType.TOOLS: "conversation_fast", # llama3.1:8b
|
| 239 |
+
ModelType.RESEARCH: "reasoning_fallback", # llama3.1:8b
|
| 240 |
+
ModelType.GENERAL: "lightweight_3b" # llama3.2:3b
|
| 241 |
+
}
|
| 242 |
+
model_key = fallback_mapping.get(model_type, "lightweight_3b")
|
| 243 |
+
model_config = cls.MODELS[model_key]
|
| 244 |
+
|
| 245 |
+
return model_config.name
|
| 246 |
+
|
| 247 |
+
@classmethod
|
| 248 |
+
def get_fallback_models(cls, model_type: ModelType) -> List[str]:
|
| 249 |
+
"""Get ordered list of fallback models for type"""
|
| 250 |
+
|
| 251 |
+
fallback_chains = {
|
| 252 |
+
ModelType.REASONING: [
|
| 253 |
+
"reasoning_premium", # qwen2.5:14b
|
| 254 |
+
"reasoning_balanced", # deepseek-r1:8b
|
| 255 |
+
"reasoning_fallback", # llama3.1:8b
|
| 256 |
+
"lightweight_3b" # llama3.2:3b
|
| 257 |
+
],
|
| 258 |
+
ModelType.CODE: [
|
| 259 |
+
"code_optimal", # deepseek-coder:6.7b
|
| 260 |
+
"reasoning_fallback", # llama3.1:8b (general purpose)
|
| 261 |
+
"lightweight_3b" # llama3.2:3b
|
| 262 |
+
],
|
| 263 |
+
ModelType.CONVERSATION: [
|
| 264 |
+
"conversation_fast", # llama3.1:8b
|
| 265 |
+
"conversation_premium", # qwen2.5:14b
|
| 266 |
+
"lightweight_3b" # llama3.2:3b
|
| 267 |
+
],
|
| 268 |
+
ModelType.TOOLS: [
|
| 269 |
+
"tools_specialized", # llama3-groq-tool-use:8b
|
| 270 |
+
"conversation_fast", # llama3.1:8b
|
| 271 |
+
"lightweight_3b" # llama3.2:3b
|
| 272 |
+
],
|
| 273 |
+
ModelType.RESEARCH: [
|
| 274 |
+
"research_balanced", # qwen2.5:14b
|
| 275 |
+
"reasoning_fallback", # llama3.1:8b
|
| 276 |
+
"lightweight_3b" # llama3.2:3b
|
| 277 |
+
]
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
fallback_keys = fallback_chains.get(model_type, ["conversation_fast", "lightweight_3b"])
|
| 281 |
+
return [cls.MODELS[key].name for key in fallback_keys]
|
| 282 |
+
|
| 283 |
+
# ============================================================================
|
| 284 |
+
# CONFIGURATION DATACLASSES
|
| 285 |
+
# ============================================================================
|
| 286 |
+
|
| 287 |
+
@dataclass(frozen=True)
|
| 288 |
+
class OllamaConfig:
|
| 289 |
+
"""
|
| 290 |
+
Ollama/LLM Configuration optimized for dual GPU setup
|
| 291 |
+
Based on 2025 performance research and hardware capabilities
|
| 292 |
+
"""
|
| 293 |
+
base_url: str = "http://127.0.0.1:11434"
|
| 294 |
+
timeout: float = 180.0
|
| 295 |
+
|
| 296 |
+
# Hardware profile
|
| 297 |
+
hardware: HardwareProfile = field(default_factory=lambda: OptimizedModelRegistry.DUAL_RTX_PROFILE)
|
| 298 |
+
|
| 299 |
+
# Optimized model assignments (hardware-specific)
|
| 300 |
+
reasoning_model: str = field(
|
| 301 |
+
default_factory=lambda: OptimizedModelRegistry.get_optimal_model(
|
| 302 |
+
ModelType.REASONING, OptimizedModelRegistry.DUAL_RTX_PROFILE
|
| 303 |
+
)
|
| 304 |
+
)
|
| 305 |
+
code_model: str = field(
|
| 306 |
+
default_factory=lambda: OptimizedModelRegistry.get_optimal_model(
|
| 307 |
+
ModelType.CODE, OptimizedModelRegistry.DUAL_RTX_PROFILE
|
| 308 |
+
)
|
| 309 |
+
)
|
| 310 |
+
conversation_model: str = field(
|
| 311 |
+
default_factory=lambda: OptimizedModelRegistry.get_optimal_model(
|
| 312 |
+
ModelType.CONVERSATION, OptimizedModelRegistry.DUAL_RTX_PROFILE
|
| 313 |
+
)
|
| 314 |
+
)
|
| 315 |
+
tools_model: str = field(
|
| 316 |
+
default_factory=lambda: OptimizedModelRegistry.get_optimal_model(
|
| 317 |
+
ModelType.TOOLS, OptimizedModelRegistry.DUAL_RTX_PROFILE
|
| 318 |
+
)
|
| 319 |
+
)
|
| 320 |
+
research_model: str = field(
|
| 321 |
+
default_factory=lambda: OptimizedModelRegistry.get_optimal_model(
|
| 322 |
+
ModelType.RESEARCH, OptimizedModelRegistry.DUAL_RTX_PROFILE
|
| 323 |
+
)
|
| 324 |
+
)
|
| 325 |
+
|
| 326 |
+
# Fallback chains (hardware-optimized)
|
| 327 |
+
reasoning_fallbacks: List[str] = field(
|
| 328 |
+
default_factory=lambda: OptimizedModelRegistry.get_fallback_models(ModelType.REASONING)
|
| 329 |
+
)
|
| 330 |
+
code_fallbacks: List[str] = field(
|
| 331 |
+
default_factory=lambda: OptimizedModelRegistry.get_fallback_models(ModelType.CODE)
|
| 332 |
+
)
|
| 333 |
+
conversation_fallbacks: List[str] = field(
|
| 334 |
+
default_factory=lambda: OptimizedModelRegistry.get_fallback_models(ModelType.CONVERSATION)
|
| 335 |
+
)
|
| 336 |
+
tools_fallbacks: List[str] = field(
|
| 337 |
+
default_factory=lambda: OptimizedModelRegistry.get_fallback_models(ModelType.TOOLS)
|
| 338 |
+
)
|
| 339 |
+
research_fallbacks: List[str] = field(
|
| 340 |
+
default_factory=lambda: OptimizedModelRegistry.get_fallback_models(ModelType.RESEARCH)
|
| 341 |
+
)
|
| 342 |
+
|
| 343 |
+
def __post_init__(self):
|
| 344 |
+
"""Runtime validation of configuration"""
|
| 345 |
+
if not self.base_url.startswith(('http://', 'https://')):
|
| 346 |
+
raise ValueError(f"Invalid Ollama URL: {self.base_url}")
|
| 347 |
+
|
| 348 |
+
if self.timeout <= 0:
|
| 349 |
+
raise ValueError(f"Timeout must be positive: {self.timeout}")
|
| 350 |
+
|
| 351 |
+
# Log optimized configuration
|
| 352 |
+
logger.info(f"🎯 Ollama Config Optimized for {self.hardware.gpu_primary} + {self.hardware.gpu_secondary}")
|
| 353 |
+
logger.info(f"💻 Reasoning: {self.reasoning_model}")
|
| 354 |
+
logger.info(f"🔧 Code: {self.code_model}")
|
| 355 |
+
logger.info(f"💬 Conversation: {self.conversation_model}")
|
| 356 |
+
logger.info(f"🛠️ Tools: {self.tools_model}")
|
| 357 |
+
logger.info(f"🔬 Research: {self.research_model}")
|
| 358 |
+
|
| 359 |
+
@classmethod
|
| 360 |
+
def from_env(cls) -> 'OllamaConfig':
|
| 361 |
+
"""Create config from environment variables with overrides"""
|
| 362 |
+
base_url = os.getenv("OLLAMA_BASE_URL", "http://127.0.0.1:11434")
|
| 363 |
+
timeout = float(os.getenv("OLLAMA_TIMEOUT", "180.0"))
|
| 364 |
+
|
| 365 |
+
# Environment overrides for specific models
|
| 366 |
+
reasoning_override = os.getenv("HASHIRU_REASONING_MODEL")
|
| 367 |
+
code_override = os.getenv("HASHIRU_CODE_MODEL")
|
| 368 |
+
conversation_override = os.getenv("HASHIRU_CONVERSATION_MODEL")
|
| 369 |
+
tools_override = os.getenv("HASHIRU_TOOLS_MODEL")
|
| 370 |
+
|
| 371 |
+
config = cls(base_url=base_url, timeout=timeout)
|
| 372 |
+
|
| 373 |
+
# Apply environment overrides if provided
|
| 374 |
+
if reasoning_override:
|
| 375 |
+
object.__setattr__(config, 'reasoning_model', reasoning_override)
|
| 376 |
+
if code_override:
|
| 377 |
+
object.__setattr__(config, 'code_model', code_override)
|
| 378 |
+
if conversation_override:
|
| 379 |
+
object.__setattr__(config, 'conversation_model', conversation_override)
|
| 380 |
+
if tools_override:
|
| 381 |
+
object.__setattr__(config, 'tools_model', tools_override)
|
| 382 |
+
|
| 383 |
+
return config
|
| 384 |
+
|
| 385 |
+
@dataclass(frozen=True)
|
| 386 |
+
class SecurityConfig:
|
| 387 |
+
"""Enhanced security configuration with type safety"""
|
| 388 |
+
|
| 389 |
+
# Free development zone
|
| 390 |
+
free_project_path: Path = field(default_factory=lambda: Path("C:/hashiru_workspace"))
|
| 391 |
+
|
| 392 |
+
# Allowed paths (immutable)
|
| 393 |
+
allowed_paths: Tuple[str, ...] = (
|
| 394 |
+
".", # Current project
|
| 395 |
+
"tools", "utils", "scripts", "artifacts", "research", "screenshots", "logs",
|
| 396 |
+
"C:/hashiru_workspace", # Free development zone
|
| 397 |
+
"C:/Users/Public", # Public folder
|
| 398 |
+
"C:/temp", "C:/tmp", # Temp folders
|
| 399 |
+
)
|
| 400 |
+
|
| 401 |
+
# Blocked paths (security-critical)
|
| 402 |
+
blocked_paths: Tuple[str, ...] = (
|
| 403 |
+
"C:/Windows/System32",
|
| 404 |
+
"C:/Program Files",
|
| 405 |
+
"C:/Program Files (x86)",
|
| 406 |
+
".git", "__pycache__", "venv", ".venv", "node_modules"
|
| 407 |
+
)
|
| 408 |
+
|
| 409 |
+
# Dangerous extensions
|
| 410 |
+
blocked_extensions: Tuple[str, ...] = (
|
| 411 |
+
".exe", ".dll", ".sys", ".bat", ".cmd", ".scr", ".pif"
|
| 412 |
+
)
|
| 413 |
+
|
| 414 |
+
def __post_init__(self):
|
| 415 |
+
"""Validate and setup security configuration"""
|
| 416 |
+
try:
|
| 417 |
+
self.free_project_path.mkdir(parents=True, exist_ok=True)
|
| 418 |
+
logger.info(f"🔒 Security: Free workspace at {self.free_project_path}")
|
| 419 |
+
except Exception as e:
|
| 420 |
+
logger.warning(f"⚠️ Could not create free workspace: {e}")
|
| 421 |
+
|
| 422 |
+
def is_write_allowed(self, target_path: Union[str, Path]) -> bool:
|
| 423 |
+
"""Enhanced path validation with detailed logging"""
|
| 424 |
+
try:
|
| 425 |
+
resolved = Path(target_path).resolve()
|
| 426 |
+
path_str = str(resolved).replace("\\", "/") # Normalize separators
|
| 427 |
+
|
| 428 |
+
# Check blocked extensions
|
| 429 |
+
if resolved.suffix.lower() in self.blocked_extensions:
|
| 430 |
+
logger.warning(f"🚫 Blocked extension: {resolved.suffix}")
|
| 431 |
+
return False
|
| 432 |
+
|
| 433 |
+
# Check blocked paths (case-insensitive)
|
| 434 |
+
for blocked in self.blocked_paths:
|
| 435 |
+
if path_str.lower().startswith(blocked.lower()):
|
| 436 |
+
logger.warning(f"🚫 Blocked path: {blocked}")
|
| 437 |
+
return False
|
| 438 |
+
|
| 439 |
+
# Check allowed paths
|
| 440 |
+
for allowed in self.allowed_paths:
|
| 441 |
+
allowed_resolved = str(Path(allowed).resolve()).replace("\\", "/")
|
| 442 |
+
if path_str.startswith(allowed_resolved):
|
| 443 |
+
logger.debug(f"✅ Allowed path: {allowed}")
|
| 444 |
+
return True
|
| 445 |
+
|
| 446 |
+
# Check user home directory
|
| 447 |
+
home_path = str(Path.home()).replace("\\", "/")
|
| 448 |
+
if path_str.startswith(home_path):
|
| 449 |
+
logger.debug("✅ User home directory access")
|
| 450 |
+
return True
|
| 451 |
+
|
| 452 |
+
logger.warning(f"🚫 Path not in allowed list: {path_str}")
|
| 453 |
+
return False
|
| 454 |
+
|
| 455 |
+
except Exception as e:
|
| 456 |
+
logger.error(f"❌ Path validation error: {e}")
|
| 457 |
+
return False
|
| 458 |
+
|
| 459 |
+
@dataclass(frozen=True)
|
| 460 |
+
class PerformanceConfig:
|
| 461 |
+
"""Performance optimization settings based on 2025 research"""
|
| 462 |
+
|
| 463 |
+
# Memory management
|
| 464 |
+
enable_gpu_memory_optimization: bool = True
|
| 465 |
+
max_concurrent_requests: int = 4 # Optimized for dual GPU
|
| 466 |
+
enable_quantization: bool = True
|
| 467 |
+
preferred_precision: Precision = Precision.FP16
|
| 468 |
+
|
| 469 |
+
# Inference optimization
|
| 470 |
+
enable_flash_attention: bool = True # 2025 standard
|
| 471 |
+
enable_kv_cache_optimization: bool = True
|
| 472 |
+
batch_size_optimization: bool = True
|
| 473 |
+
|
| 474 |
+
# Hardware-specific optimizations
|
| 475 |
+
enable_tensor_parallelism: bool = True # For dual GPU
|
| 476 |
+
enable_pipeline_parallelism: bool = False # Not needed for this setup
|
| 477 |
+
|
| 478 |
+
def __post_init__(self):
|
| 479 |
+
"""Log performance configuration"""
|
| 480 |
+
logger.info(f"⚡ Performance: GPU Memory Optimization: {self.enable_gpu_memory_optimization}")
|
| 481 |
+
logger.info(f"⚡ Performance: Quantization: {self.enable_quantization}")
|
| 482 |
+
logger.info(f"⚡ Performance: Flash Attention: {self.enable_flash_attention}")
|
| 483 |
+
logger.info(f"⚡ Performance: Tensor Parallelism: {self.enable_tensor_parallelism}")
|
| 484 |
+
|
| 485 |
+
@dataclass(frozen=True)
|
| 486 |
+
class SystemConfig:
|
| 487 |
+
"""System-level configuration with validation"""
|
| 488 |
+
|
| 489 |
+
project_root: Path = field(default_factory=lambda: Path(__file__).parent)
|
| 490 |
+
|
| 491 |
+
# Directory structure (immutable)
|
| 492 |
+
tools_dir: Path = field(default_factory=lambda: Path("tools"))
|
| 493 |
+
utils_dir: Path = field(default_factory=lambda: Path("utils"))
|
| 494 |
+
artifacts_dir: Path = field(default_factory=lambda: Path("artifacts"))
|
| 495 |
+
backups_dir: Path = field(default_factory=lambda: Path("backups"))
|
| 496 |
+
research_dir: Path = field(default_factory=lambda: Path("research"))
|
| 497 |
+
screenshots_dir: Path = field(default_factory=lambda: Path("screenshots"))
|
| 498 |
+
logs_dir: Path = field(default_factory=lambda: Path("logs"))
|
| 499 |
+
|
| 500 |
+
# Runtime settings
|
| 501 |
+
encoding: str = "utf-8"
|
| 502 |
+
chainlit_port: int = 8080
|
| 503 |
+
max_commands_per_execution: int = 20
|
| 504 |
+
debug_mode: bool = field(default_factory=lambda: os.getenv("DEBUG", "false").lower() == "true")
|
| 505 |
+
|
| 506 |
+
def __post_init__(self):
|
| 507 |
+
"""Setup and validate directories"""
|
| 508 |
+
directories = [
|
| 509 |
+
self.artifacts_dir, self.backups_dir, self.research_dir,
|
| 510 |
+
self.screenshots_dir, self.logs_dir
|
| 511 |
+
]
|
| 512 |
+
|
| 513 |
+
for directory in directories:
|
| 514 |
+
try:
|
| 515 |
+
directory.mkdir(exist_ok=True)
|
| 516 |
+
logger.debug(f"📁 Directory ready: {directory}")
|
| 517 |
+
except Exception as e:
|
| 518 |
+
logger.warning(f"⚠️ Could not create {directory}: {e}")
|
| 519 |
+
|
| 520 |
+
logger.info(f"🔧 System: Project root: {self.project_root}")
|
| 521 |
+
logger.info(f"🔧 System: Debug mode: {self.debug_mode}")
|
| 522 |
+
|
| 523 |
+
@dataclass(frozen=True)
|
| 524 |
+
class Config:
|
| 525 |
+
"""
|
| 526 |
+
Main configuration class - Hardware-optimized for RTX 3060 + RTX 2060
|
| 527 |
+
Based on 2025 research and best practices
|
| 528 |
+
"""
|
| 529 |
+
|
| 530 |
+
# Sub-configurations (immutable)
|
| 531 |
+
ollama: OllamaConfig = field(default_factory=OllamaConfig)
|
| 532 |
+
security: SecurityConfig = field(default_factory=SecurityConfig)
|
| 533 |
+
performance: PerformanceConfig = field(default_factory=PerformanceConfig)
|
| 534 |
+
system: SystemConfig = field(default_factory=SystemConfig)
|
| 535 |
+
|
| 536 |
+
# Feature flags
|
| 537 |
+
autonomous_mode: bool = True
|
| 538 |
+
self_modification_enabled: bool = True
|
| 539 |
+
|
| 540 |
+
# UI Messages (with proper encoding)
|
| 541 |
+
startup_banner: str = "🚀 HASHIRU 6.1 - Agente Autônomo Inteligente"
|
| 542 |
+
processing_message: str = "🧠 Processando com IA..."
|
| 543 |
+
executing_message: str = "⚡ Executando automaticamente..."
|
| 544 |
+
|
| 545 |
+
# Version and metadata
|
| 546 |
+
version: str = "6.1.2025"
|
| 547 |
+
build_date: str = field(default_factory=lambda: "2025-08-04")
|
| 548 |
+
|
| 549 |
+
def __post_init__(self):
|
| 550 |
+
"""Post-initialization validation and setup"""
|
| 551 |
+
|
| 552 |
+
# Validate port
|
| 553 |
+
if not (1024 <= self.system.chainlit_port <= 65535):
|
| 554 |
+
raise ValueError(f"Invalid port: {self.system.chainlit_port}")
|
| 555 |
+
|
| 556 |
+
# Log configuration summary
|
| 557 |
+
logger.info(f"🚀 HASHIRU {self.version} Configuration Loaded")
|
| 558 |
+
logger.info(f"📊 Hardware: {self.ollama.hardware.gpu_primary} + {self.ollama.hardware.gpu_secondary}")
|
| 559 |
+
logger.info(f"💾 Total VRAM: {self.ollama.hardware.total_vram_gb}GB")
|
| 560 |
+
logger.info(f"🔧 Autonomous Mode: {self.autonomous_mode}")
|
| 561 |
+
logger.info(f"🔄 Self-Modification: {self.self_modification_enabled}")
|
| 562 |
+
|
| 563 |
+
# Log model assignments
|
| 564 |
+
logger.info("🤖 Model Assignments:")
|
| 565 |
+
logger.info(f" 🧠 Reasoning: {self.ollama.reasoning_model}")
|
| 566 |
+
logger.info(f" 💻 Code: {self.ollama.code_model}")
|
| 567 |
+
logger.info(f" 💬 Conversation: {self.ollama.conversation_model}")
|
| 568 |
+
logger.info(f" 🛠️ Tools: {self.ollama.tools_model}")
|
| 569 |
+
logger.info(f" 🔬 Research: {self.ollama.research_model}")
|
| 570 |
+
|
| 571 |
+
@classmethod
|
| 572 |
+
def load(cls) -> 'Config':
|
| 573 |
+
"""Load configuration with environment overrides and validation"""
|
| 574 |
+
try:
|
| 575 |
+
# Load Ollama config with environment overrides
|
| 576 |
+
ollama_config = OllamaConfig.from_env()
|
| 577 |
+
|
| 578 |
+
# Override other settings from environment
|
| 579 |
+
autonomous_mode = os.getenv("HASHIRU_AUTONOMOUS", "true").lower() == "true"
|
| 580 |
+
self_modification = os.getenv("HASHIRU_SELF_MOD", "true").lower() == "true"
|
| 581 |
+
|
| 582 |
+
# Create configuration
|
| 583 |
+
config = cls(
|
| 584 |
+
ollama=ollama_config,
|
| 585 |
+
autonomous_mode=autonomous_mode,
|
| 586 |
+
self_modification_enabled=self_modification
|
| 587 |
+
)
|
| 588 |
+
|
| 589 |
+
logger.info("✅ Configuration loaded successfully")
|
| 590 |
+
return config
|
| 591 |
+
|
| 592 |
+
except Exception as e:
|
| 593 |
+
logger.error(f"❌ Configuration loading failed: {e}")
|
| 594 |
+
raise
|
| 595 |
+
|
| 596 |
+
def get_model(self, model_type: str) -> str:
|
| 597 |
+
"""Get primary model for type with improved mapping"""
|
| 598 |
+
|
| 599 |
+
# Enhanced model type mapping
|
| 600 |
+
model_map = {
|
| 601 |
+
"reasoning": self.ollama.reasoning_model,
|
| 602 |
+
"code": self.ollama.code_model,
|
| 603 |
+
"code_specialist": self.ollama.code_model,
|
| 604 |
+
"code_master": self.ollama.code_model,
|
| 605 |
+
"programming": self.ollama.code_model,
|
| 606 |
+
"conversation": self.ollama.conversation_model,
|
| 607 |
+
"chat": self.ollama.conversation_model,
|
| 608 |
+
"tools": self.ollama.tools_model,
|
| 609 |
+
"automation": self.ollama.tools_model,
|
| 610 |
+
"research": self.ollama.research_model,
|
| 611 |
+
"analysis": self.ollama.research_model,
|
| 612 |
+
"general": self.ollama.conversation_model,
|
| 613 |
+
"default": self.ollama.conversation_model
|
| 614 |
+
}
|
| 615 |
+
|
| 616 |
+
model = model_map.get(model_type.lower(), self.ollama.conversation_model)
|
| 617 |
+
logger.debug(f"🎯 Model selection: {model_type} -> {model}")
|
| 618 |
+
return model
|
| 619 |
+
|
| 620 |
+
def get_fallback_models(self, model_type: str) -> List[str]:
|
| 621 |
+
"""Get fallback models for type with enhanced mapping"""
|
| 622 |
+
|
| 623 |
+
fallback_map = {
|
| 624 |
+
"reasoning": self.ollama.reasoning_fallbacks,
|
| 625 |
+
"code": self.ollama.code_fallbacks,
|
| 626 |
+
"code_specialist": self.ollama.code_fallbacks,
|
| 627 |
+
"programming": self.ollama.code_fallbacks,
|
| 628 |
+
"conversation": self.ollama.conversation_fallbacks,
|
| 629 |
+
"chat": self.ollama.conversation_fallbacks,
|
| 630 |
+
"tools": self.ollama.tools_fallbacks,
|
| 631 |
+
"automation": self.ollama.tools_fallbacks,
|
| 632 |
+
"research": self.ollama.research_fallbacks,
|
| 633 |
+
"analysis": self.ollama.research_fallbacks,
|
| 634 |
+
"general": self.ollama.conversation_fallbacks,
|
| 635 |
+
}
|
| 636 |
+
|
| 637 |
+
fallbacks = fallback_map.get(model_type.lower(), self.ollama.conversation_fallbacks)
|
| 638 |
+
logger.debug(f"🔄 Fallback chain: {model_type} -> {fallbacks}")
|
| 639 |
+
return fallbacks
|
| 640 |
+
|
| 641 |
+
# ============================================================================
|
| 642 |
+
# GLOBAL CONFIGURATION INSTANCE
|
| 643 |
+
# ============================================================================
|
| 644 |
+
|
| 645 |
+
# Initialize configuration with error handling
|
| 646 |
+
try:
|
| 647 |
+
config = Config.load()
|
| 648 |
+
logger.info("🎉 HASHIRU Configuration initialized successfully")
|
| 649 |
+
except Exception as e:
|
| 650 |
+
logger.error(f"💥 Configuration initialization failed: {e}")
|
| 651 |
+
# Fallback to default configuration
|
| 652 |
+
config = Config()
|
| 653 |
+
logger.warning("⚠️ Using default configuration as fallback")
|
| 654 |
+
|
| 655 |
+
# ============================================================================
|
| 656 |
+
# LEGACY COMPATIBILITY FUNCTIONS
|
| 657 |
+
# ============================================================================
|
| 658 |
+
|
| 659 |
+
def get_ai_model(model_type: str) -> str:
|
| 660 |
+
"""Legacy: Get AI model with enhanced logging"""
|
| 661 |
+
model = config.get_model(model_type)
|
| 662 |
+
logger.debug(f"🔍 Legacy get_ai_model: {model_type} -> {model}")
|
| 663 |
+
return model
|
| 664 |
+
|
| 665 |
+
def get_fallback_models(model_type: str) -> List[str]:
|
| 666 |
+
"""Legacy: Get fallback models"""
|
| 667 |
+
return config.get_fallback_models(model_type)
|
| 668 |
+
|
| 669 |
+
def is_write_path_allowed(target_path: str) -> bool:
|
| 670 |
+
"""Legacy: Check if write is allowed"""
|
| 671 |
+
return config.security.is_write_allowed(target_path)
|
| 672 |
+
|
| 673 |
+
def is_command_auto_allowed(command: str) -> bool:
|
| 674 |
+
"""Legacy: Check if command is auto-allowed"""
|
| 675 |
+
allowed = config.autonomous_mode
|
| 676 |
+
logger.debug(f"🤖 Auto command check: {command} -> {allowed}")
|
| 677 |
+
return allowed
|
| 678 |
+
|
| 679 |
+
def is_dangerous_command_allowed(command: str) -> bool:
|
| 680 |
+
"""Legacy: Check if dangerous command is allowed"""
|
| 681 |
+
allowed = config.autonomous_mode
|
| 682 |
+
logger.debug(f"⚠️ Dangerous command check: {command} -> {allowed}")
|
| 683 |
+
return allowed
|
| 684 |
+
|
| 685 |
+
# ============================================================================
|
| 686 |
+
# LEGACY CONSTANTS (for backward compatibility)
|
| 687 |
+
# ============================================================================
|
| 688 |
+
|
| 689 |
+
OLLAMA_URL = config.ollama.base_url
|
| 690 |
+
AUTONOMOUS_MODE = config.autonomous_mode
|
| 691 |
+
SELF_MODIFICATION_ENABLED = config.self_modification_enabled
|
| 692 |
+
STARTUP_BANNER = config.startup_banner
|
| 693 |
+
PROCESSING_MESSAGE = config.processing_message
|
| 694 |
+
EXECUTING_MESSAGE = config.executing_message
|
| 695 |
+
|
| 696 |
+
# Hardware information (new)
|
| 697 |
+
HARDWARE_PROFILE = config.ollama.hardware
|
| 698 |
+
PRIMARY_GPU = config.ollama.hardware.gpu_primary
|
| 699 |
+
SECONDARY_GPU = config.ollama.hardware.gpu_secondary
|
| 700 |
+
TOTAL_VRAM_GB = config.ollama.hardware.total_vram_gb
|
| 701 |
+
|
| 702 |
+
# Model information (new)
|
| 703 |
+
CURRENT_MODELS = {
|
| 704 |
+
"reasoning": config.ollama.reasoning_model,
|
| 705 |
+
"code": config.ollama.code_model,
|
| 706 |
+
"conversation": config.ollama.conversation_model,
|
| 707 |
+
"tools": config.ollama.tools_model,
|
| 708 |
+
"research": config.ollama.research_model
|
| 709 |
+
}
|
| 710 |
+
|
| 711 |
+
# ============================================================================
|
| 712 |
+
# EXPORTS
|
| 713 |
+
# ============================================================================
|
| 714 |
+
|
| 715 |
+
__all__ = [
|
| 716 |
+
# Main configuration
|
| 717 |
+
"Config", "config",
|
| 718 |
+
|
| 719 |
+
# Model registry and optimization
|
| 720 |
+
"OptimizedModelRegistry", "ModelConfig", "HardwareProfile",
|
| 721 |
+
"ModelSize", "Precision", "ModelType",
|
| 722 |
+
|
| 723 |
+
# Configuration classes
|
| 724 |
+
"OllamaConfig", "SecurityConfig", "PerformanceConfig", "SystemConfig",
|
| 725 |
+
|
| 726 |
+
# Legacy functions
|
| 727 |
+
"get_ai_model", "get_fallback_models",
|
| 728 |
+
"is_write_path_allowed", "is_command_auto_allowed", "is_dangerous_command_allowed",
|
| 729 |
+
|
| 730 |
+
# Legacy constants
|
| 731 |
+
"OLLAMA_URL", "AUTONOMOUS_MODE", "SELF_MODIFICATION_ENABLED",
|
| 732 |
+
"STARTUP_BANNER", "PROCESSING_MESSAGE", "EXECUTING_MESSAGE",
|
| 733 |
+
|
| 734 |
+
# Hardware constants (new)
|
| 735 |
+
"HARDWARE_PROFILE", "PRIMARY_GPU", "SECONDARY_GPU", "TOTAL_VRAM_GB",
|
| 736 |
+
"CURRENT_MODELS"
|
| 737 |
+
]
|
| 738 |
+
|
| 739 |
+
# ============================================================================
|
| 740 |
+
# INITIALIZATION LOGGING
|
| 741 |
+
# ============================================================================
|
| 742 |
+
|
| 743 |
+
if config.system.debug_mode:
|
| 744 |
+
logger.info("🔧 HASHIRU Config loaded in DEBUG mode")
|
| 745 |
+
logger.info(f"📁 Free workspace: {config.security.free_project_path}")
|
| 746 |
+
logger.info(f"🎯 Optimized for: {PRIMARY_GPU} ({config.ollama.hardware.vram_primary_gb}GB) + {SECONDARY_GPU} ({config.ollama.hardware.vram_secondary_gb}GB)")
|
| 747 |
+
logger.info(f"🤖 Active models: {CURRENT_MODELS}")
|
| 748 |
+
logger.info(f"⚡ Performance optimizations: Flash Attention, KV Cache, Quantization")
|
| 749 |
+
|
| 750 |
+
# Performance recommendation logging
|
| 751 |
+
logger.info("💡 Model Performance Estimates:")
|
| 752 |
+
for model_type, model_name in CURRENT_MODELS.items():
|
| 753 |
+
if model_name in [model.name for model in OptimizedModelRegistry.MODELS.values()]:
|
| 754 |
+
model_config = next(m for m in OptimizedModelRegistry.MODELS.values() if m.name == model_name)
|
| 755 |
+
logger.info(f" {model_type}: ~{model_config.tokens_per_second_estimate} tokens/s ({model_config.vram_requirement_gb}GB)")
|
| 756 |
+
|
| 757 |
+
logger.info("🚀 HASHIRU 6.1 Optimized Configuration Ready!")
|
bool
ADDED
|
File without changes
|
cd main_agent.py
ADDED
|
File without changes
|
chainlit.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🌟 SUPEREZIO | Command Deck
|
| 2 |
+
|
| 3 |
+
<div class="gradient-text">*Uma interface cognitiva desenvolvida por **Marco Barreto**, **Gemini** & **ChatGPT**.*</div>
|
| 4 |
+
|
| 5 |
+
---
|
| 6 |
+
|
| 7 |
+
### **DIAGNÓSTICO DO SISTEMA**
|
| 8 |
+
|
| 9 |
+
<div class="glass-card">
|
| 10 |
+
|
| 11 |
+
**🔧 STATUS OPERACIONAL**
|
| 12 |
+
- <span class="status-online">●</span> **Core Engine**: Funcionando
|
| 13 |
+
- <span class="status-online">●</span> **IA Multi-Modelo**: Ativo
|
| 14 |
+
- <span class="status-online">●</span> **Automação**: Disponível
|
| 15 |
+
- <span class="status-online">●</span> **Interface**: SuperEzio v1.0
|
| 16 |
+
|
| 17 |
+
</div>
|
| 18 |
+
|
| 19 |
+
---
|
| 20 |
+
|
| 21 |
+
### **🎯 COMANDOS PRINCIPAIS**
|
| 22 |
+
|
| 23 |
+
<div class="glass-card">
|
| 24 |
+
|
| 25 |
+
**AUTOMAÇÃO INTELIGENTE**
|
| 26 |
+
- <span class="command-highlight">/auto_research</span> - Pesquisa automatizada multi-fonte
|
| 27 |
+
- <span class="command-highlight">/auto_search</span> - Busca avançada na internet
|
| 28 |
+
- <span class="command-highlight">/auto_screenshot</span> - Captura de tela
|
| 29 |
+
- <span class="command-highlight">/auto_status</span> - Status do sistema
|
| 30 |
+
|
| 31 |
+
**ANÁLISE & PLANEJAMENTO**
|
| 32 |
+
- <span class="command-highlight">/analyze</span> - Análise profunda de dados
|
| 33 |
+
- <span class="command-highlight">/plan</span> - Criação de planos estratégicos
|
| 34 |
+
- <span class="command-highlight">/code</span> - Geração de código especializado
|
| 35 |
+
- <span class="command-highlight">/debug</span> - Solução de problemas
|
| 36 |
+
|
| 37 |
+
**SISTEMA & CONFIGURAÇÃO**
|
| 38 |
+
- <span class="command-highlight">/config</span> - Configurações do sistema
|
| 39 |
+
- <span class="command-highlight">/health</span> - Diagnóstico completo
|
| 40 |
+
- <span class="command-highlight">/help</span> - Lista completa de comandos
|
| 41 |
+
- <span class="command-highlight">/clear</span> - Limpar histórico
|
| 42 |
+
|
| 43 |
+
</div>
|
| 44 |
+
|
| 45 |
+
---
|
| 46 |
+
|
| 47 |
+
### **🧠 MODELOS ESPECIALIZADOS**
|
| 48 |
+
|
| 49 |
+
<div class="glass-card">
|
| 50 |
+
|
| 51 |
+
**🎯 CONFIGURAÇÃO OTIMIZADA**
|
| 52 |
+
- **Reasoning**: `qwen2.5:14b-instruct` - Análise avançada
|
| 53 |
+
- **Code**: `deepseek-coder:6.7b` - Programação especializada
|
| 54 |
+
- **Conversation**: `llama3.1:8b` - Chat inteligente
|
| 55 |
+
- **Tools**: `llama3-groq-tool-use:8b` - Automação
|
| 56 |
+
|
| 57 |
+
**💾 HARDWARE**
|
| 58 |
+
- **GPU Principal**: RTX 3060 (12GB VRAM)
|
| 59 |
+
- **GPU Secundária**: RTX 2060 (6GB VRAM)
|
| 60 |
+
- **Total VRAM**: 18GB disponível
|
| 61 |
+
|
| 62 |
+
</div>
|
| 63 |
+
|
| 64 |
+
---
|
| 65 |
+
|
| 66 |
+
### **⚡ CAPACIDADES ATIVAS**
|
| 67 |
+
|
| 68 |
+
<div class="glass-card">
|
| 69 |
+
|
| 70 |
+
✅ **Web Automation** - Selenium WebDriver
|
| 71 |
+
✅ **Desktop Control** - PyAutoGUI
|
| 72 |
+
✅ **Research Engine** - Multi-source analysis
|
| 73 |
+
✅ **File Operations** - Cross-platform
|
| 74 |
+
✅ **Code Generation** - Multiple languages
|
| 75 |
+
✅ **Data Analysis** - Pandas, NumPy, ML
|
| 76 |
+
✅ **API Integration** - REST, GraphQL
|
| 77 |
+
✅ **Image Processing** - OpenCV, PIL
|
| 78 |
+
|
| 79 |
+
</div>
|
| 80 |
+
|
| 81 |
+
---
|
| 82 |
+
|
| 83 |
+
### **🚀 COMO COMEÇAR**
|
| 84 |
+
|
| 85 |
+
<div class="glass-card">
|
| 86 |
+
|
| 87 |
+
1. **Digite um comando** (ex: `/auto_status`) para verificar o sistema
|
| 88 |
+
2. **Faça uma pergunta** em linguagem natural
|
| 89 |
+
3. **Solicite automação** para tarefas específicas
|
| 90 |
+
4. **Explore comandos** com `/help` para ver todas as opções
|
| 91 |
+
|
| 92 |
+
**Exemplo de uso:**
|
| 93 |
+
```
|
| 94 |
+
/auto_research Python automation best practices 2025
|
| 95 |
+
```
|
| 96 |
+
|
| 97 |
+
</div>
|
| 98 |
+
|
| 99 |
+
---
|
| 100 |
+
|
| 101 |
+
<div class="gradient-text">
|
| 102 |
+
<center>**SuperEzio está pronto para auxiliar em suas tarefas cognitivas e de automação.**</center>
|
| 103 |
+
</div>
|
| 104 |
+
|
| 105 |
+
---
|
| 106 |
+
|
| 107 |
+
*Desenvolvido com ❤️ por Marco Barreto | Powered by AI Multi-Model Architecture*
|
chainlit.toml
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
# chainlit.toml - Configuração do Command Deck SUPEREZIO [project]name = "SUPEREZIO | Command Deck"description = "Uma interface cognitiva desenvolvida por Marco Barreto, Gemini & ChatGPT."# Exibe o arquivo chainlit.md como a tela inicial da aplicação.show_readme_as_default = true[UI]# O caminho para o nosso arquivo de estilo personalizado.custom_css = "public/superezio.css"# As cores definem a base da nossa paleta "HUD Vitrificado".[UI.theme]background_color = "#0A192F" # Azul Marinho Escuro (Fundo do HUD)primary_color = "#FF6B35" # Laranja SUPEREZIO (Acento Neobrutalista para ações)text_color = "#CCD6F6" # Cinza-Azulado Claro (Texto principal do HUD)
|
chainlit_broken.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SUPEREZIO | Command Deck
|
| 2 |
+
*Uma interface cognitiva desenvolvida por **Marco Barreto**, **Gemini** & **ChatGPT**.*
|
| 3 |
+
|
| 4 |
+
---
|
| 5 |
+
|
| 6 |
+
### **DIAGNÓSTICO DO SISTEMA**
|
| 7 |
+
<div class="diag-container">
|
| 8 |
+
|
| 9 |
+
| Componente | Status | Detalhes |
|
| 10 |
+
| :-- | :-- | :-- |
|
| 11 |
+
| **CORE COGNITIVO** | <span class="status-online">✅ ONLINE</span> | Motor de raciocÃnio ativo |
|
| 12 |
+
| **MÓDULO AUTOMAÇÃO**| <span class="status-active">🚀 ATIVO</span> | Protocolos de web & desktop prontos |
|
| 13 |
+
| **LINK NEURAL** | <span class="status-stable">🧠ESTÃVEL</span> | Conexão com a base de conhecimento |
|
| 14 |
+
|
| 15 |
+
</div>
|
| 16 |
+
|
| 17 |
+
---
|
| 18 |
+
|
| 19 |
+
Aguardando sua primeira diretiva.
|
| 20 |
+
Digite `/help` para ver a *Knowledge Base* de comandos.
|
config.py
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# C:\Users\marco\agente_gemini\HASHIRU_6_1\config.py
|
| 2 |
+
from __future__ import annotations
|
| 3 |
+
|
| 4 |
+
import os
|
| 5 |
+
from dataclasses import dataclass
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
from typing import List
|
| 8 |
+
|
| 9 |
+
from dotenv import load_dotenv
|
| 10 |
+
|
| 11 |
+
# Carrega .env se existir (não falha se não existir)
|
| 12 |
+
load_dotenv()
|
| 13 |
+
|
| 14 |
+
# ---------- Helpers robustos de leitura ----------
|
| 15 |
+
def _get_env_str(key: str, default: str) -> str:
|
| 16 |
+
val = os.getenv(key, default)
|
| 17 |
+
return val if isinstance(val, str) and val.strip() != "" else default
|
| 18 |
+
|
| 19 |
+
def _get_env_int(key: str, default: int) -> int:
|
| 20 |
+
raw = os.getenv(key)
|
| 21 |
+
if raw is None or raw.strip() == "":
|
| 22 |
+
return default
|
| 23 |
+
try:
|
| 24 |
+
return int(raw.strip())
|
| 25 |
+
except Exception:
|
| 26 |
+
return default
|
| 27 |
+
|
| 28 |
+
def _get_env_bool(key: str, default: bool) -> bool:
|
| 29 |
+
raw = os.getenv(key)
|
| 30 |
+
if raw is None:
|
| 31 |
+
return default
|
| 32 |
+
raw = raw.strip().lower()
|
| 33 |
+
return raw in ("1", "true", "yes", "y", "on")
|
| 34 |
+
|
| 35 |
+
def _get_env_list(key: str, default_csv: str) -> List[str]:
|
| 36 |
+
raw = os.getenv(key, default_csv)
|
| 37 |
+
items = [x.strip() for x in raw.split(",") if x.strip()]
|
| 38 |
+
# dedup preservando ordem
|
| 39 |
+
seen, out = set(), []
|
| 40 |
+
for x in items:
|
| 41 |
+
xl = x.lower()
|
| 42 |
+
if xl not in seen:
|
| 43 |
+
seen.add(xl)
|
| 44 |
+
out.append(x)
|
| 45 |
+
return out
|
| 46 |
+
|
| 47 |
+
# ---------- Diretórios base ----------
|
| 48 |
+
ROOT: Path = Path(__file__).parent.resolve()
|
| 49 |
+
DATA_DIR: Path = Path(_get_env_str("DATA_DIR", str(ROOT / "data"))).resolve()
|
| 50 |
+
LOGS_DIR: Path = Path(_get_env_str("LOGS_DIR", str(ROOT / "logs"))).resolve()
|
| 51 |
+
|
| 52 |
+
# Garante criação de pastas
|
| 53 |
+
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
| 54 |
+
LOGS_DIR.mkdir(parents=True, exist_ok=True)
|
| 55 |
+
|
| 56 |
+
# ---------- Rede/Servidor ----------
|
| 57 |
+
HOST: str = _get_env_str("HOST", "localhost")
|
| 58 |
+
PORT: int = _get_env_int("PORT", 8080)
|
| 59 |
+
|
| 60 |
+
# ---------- Flags/Defaults ----------
|
| 61 |
+
TIMEOUT_DEFAULT: int = _get_env_int("TIMEOUT_DEFAULT", 60)
|
| 62 |
+
AUDIT_ENABLED: bool = _get_env_bool("AUDIT_ENABLED", True)
|
| 63 |
+
|
| 64 |
+
_DELETE_MODE = _get_env_str("DELETE_MODE", "trash").lower()
|
| 65 |
+
if _DELETE_MODE not in {"trash", "hard"}:
|
| 66 |
+
_DELETE_MODE = "trash"
|
| 67 |
+
DELETE_MODE: str = _DELETE_MODE # "trash" | "hard"
|
| 68 |
+
|
| 69 |
+
PY_UNSAFE_DEFAULT: bool = _get_env_bool("PY_UNSAFE_DEFAULT", False)
|
| 70 |
+
|
| 71 |
+
# ---------- Exec allowlist ----------
|
| 72 |
+
EXEC_ALLOWLIST: List[str] = _get_env_list(
|
| 73 |
+
"EXEC_ALLOWLIST",
|
| 74 |
+
"cmd,ipconfig,ping,tracert,where,tasklist,python,git",
|
| 75 |
+
)
|
| 76 |
+
|
| 77 |
+
# ---------- Export explícito ----------
|
| 78 |
+
__all__ = [
|
| 79 |
+
"ROOT",
|
| 80 |
+
"DATA_DIR",
|
| 81 |
+
"LOGS_DIR",
|
| 82 |
+
"HOST",
|
| 83 |
+
"PORT",
|
| 84 |
+
"TIMEOUT_DEFAULT",
|
| 85 |
+
"AUDIT_ENABLED",
|
| 86 |
+
"DELETE_MODE",
|
| 87 |
+
"PY_UNSAFE_DEFAULT",
|
| 88 |
+
"EXEC_ALLOWLIST",
|
| 89 |
+
]
|
corrigido/main_agent.py
ADDED
|
File without changes
|
data/memory/memory.json
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"memories": [
|
| 3 |
+
{
|
| 4 |
+
"id": "172994fc-e388-4fc7-b0f4-4c3d771b1a86",
|
| 5 |
+
"content": "BOM DIA PROCURE NOTICIAS DE HOJE DO FLUMINENSE FFC",
|
| 6 |
+
"role": "user",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"timestamp": "2025-08-06T11:37:32.258217"
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"id": "5cff9c94-369a-447c-b971-cbd8f96c202f",
|
| 12 |
+
"content": "",
|
| 13 |
+
"role": "assistant",
|
| 14 |
+
"metadata": {},
|
| 15 |
+
"timestamp": "2025-08-06T11:40:17.764904"
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"id": "8a28cd46-07fc-4ec2-a101-42b5875b91bd",
|
| 19 |
+
"content": "VC ESTA AI ?",
|
| 20 |
+
"role": "user",
|
| 21 |
+
"metadata": {},
|
| 22 |
+
"timestamp": "2025-08-06T11:40:52.722508"
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"id": "32dbda79-f036-4fbb-be44-0d9db9d88ce0",
|
| 26 |
+
"content": "Sim, estou aqui! Como posso te ajudar hoje? Se quiser continuar sobre as notícias do Fluminense FFC ou algo diferente, é só falar.",
|
| 27 |
+
"role": "assistant",
|
| 28 |
+
"metadata": {},
|
| 29 |
+
"timestamp": "2025-08-06T11:42:34.798552"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"id": "1a53d5f0-b5f5-4222-b022-f9bf75c9641f",
|
| 33 |
+
"content": "CARA ME TRAS NOTICIAS ATUAIS DO FLUMINENSE FUTEBOL CLUBE",
|
| 34 |
+
"role": "user",
|
| 35 |
+
"metadata": {},
|
| 36 |
+
"timestamp": "2025-08-06T11:43:02.971315"
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"id": "a3ef0d28-7ce9-47f7-84e2-8b1e49de66d1",
|
| 40 |
+
"content": "BOM DIA QUE É VC ?",
|
| 41 |
+
"role": "user",
|
| 42 |
+
"metadata": {},
|
| 43 |
+
"timestamp": "2025-08-06T12:13:28.837293"
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"id": "2ea8ded6-3d1e-4e8f-b350-201165bd5022",
|
| 47 |
+
"content": "Bom dia! \nEu sou o **SUPEREZIO**, um assistente de inteligência artificial avançado desenvolvido com o modelo gpt‑oss:20b. Minha função é responder suas perguntas, ajudar com tarefas, esclarecer dúvidas e fornecer informações de forma clara e precisa. Posso conversar em português brasileiro (ou em outros idiomas se precisar) e estou aqui para facilitar sua vida digital. Como posso ajudar hoje?",
|
| 48 |
+
"role": "assistant",
|
| 49 |
+
"metadata": {},
|
| 50 |
+
"timestamp": "2025-08-06T12:16:57.806137"
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"id": "5124d41e-06b2-434f-932d-2be27310d040",
|
| 54 |
+
"content": "PESUISE NOTICIAS DO FLUMINENSE HOJE",
|
| 55 |
+
"role": "user",
|
| 56 |
+
"metadata": {},
|
| 57 |
+
"timestamp": "2025-08-06T12:17:19.442939"
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"id": "3b251916-4d5f-4b32-954f-17faf772f9ec",
|
| 61 |
+
"content": "Desculpe, mas eu não consigo fazer buscas em tempo real na internet. Para saber as notícias mais recentes do Fluminense hoje, recomendo conferir:\n\n| Fonte | Como acessar | Dicas |\n|-------|--------------|-------|\n| **Site oficial do Fluminense** | https://www.fluminense.com.br | Vá à aba “Notícias” ou “Comunicados”. |\n| **GloboEsporte** | https://ge.globo.com/futebol/brasileirao-serie-a/noticia/fluminense/ | Use a busca rápida no site ou verifique a seção “Fluminense”. |\n| **UOL Esporte** | https://esporte.uol.com.br/futebol/serie-a/noticias/fluminense.htm | Filtros de data e categoria ajudam a encontrar artigos atuais. |\n| **ESPN Brasil** | https://www.espn.com.br/futebol/clubes/clubes-2015?club=fluminense | A página do clube tem posts recentes. |\n| **Twitter** | @FluminenseFC | Veja os tweets mais recentes e as menções de “Fluminense”. |\n| **Instagram** | @fluminenseofficial | Stories e posts sobre jogos, transferências e eventos. |\n\n**Passo a passo rápido** \n1. Abra um dos sites acima. \n2. Procure a opção “Notícias” ou use a barra de busca digitando “Fluminense hoje”. \n3. Selecione a data atual ou a faixa de datas que lhe interessa. \n4. Leia os títulos e abra os artigos para detalhes.\n\nSe precisar de algo mais específico (por exemplo, a última partida, escalação, transferências, ou notícias de bastidores), me avise e eu posso ajudar a compilar o que já sei até a última atualização do meu banco de dados.",
|
| 62 |
+
"role": "assistant",
|
| 63 |
+
"metadata": {},
|
| 64 |
+
"timestamp": "2025-08-06T12:22:32.303247"
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"content": "\"Quem é o presidente do Brasil?\"",
|
| 68 |
+
"role": "user",
|
| 69 |
+
"timestamp": "2025-08-06T23:03:25.949708"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"content": "/auto_research Python automation best practices 2025\r\n\n",
|
| 73 |
+
"role": "user",
|
| 74 |
+
"timestamp": "2025-08-06T23:27:38.293653"
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"content": "• \"Mova o mouse para 500, 300\"",
|
| 78 |
+
"role": "user",
|
| 79 |
+
"timestamp": "2025-08-06T23:50:56.429398"
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"content": "✅ O mouse foi movido para a posição (500,300).Se precisar realizar outra ação (clicar, arrastar, etc.) é só me avisar!",
|
| 83 |
+
"role": "assistant",
|
| 84 |
+
"timestamp": "2025-08-06T23:52:13.961992"
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"content": "• \"Mova o mouse para a direita",
|
| 88 |
+
"role": "user",
|
| 89 |
+
"timestamp": "2025-08-06T23:52:38.167194"
|
| 90 |
+
},
|
| 91 |
+
{
|
| 92 |
+
"content": "mova o mouse",
|
| 93 |
+
"role": "user",
|
| 94 |
+
"timestamp": "2025-08-06T23:53:00.590782"
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"content": "mova o mouse em um circulo completo",
|
| 98 |
+
"role": "user",
|
| 99 |
+
"timestamp": "2025-08-06T23:53:37.711290"
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"content": "**Resumo rápido**\n\n- O último comando que o sistema executou foi mover o cursor para a posição **(100,100)**.- Para fazer o mouse “dar um círculo completo”, precisamos de um pequeno script que faça movimentos sucessivos ao longo da circunferência.\n\n---\n\n##1️⃣ O que você precisa| Requisito | Descrição |\n|-----------|-----------|\n| **Linguagem** | Python (ou outra linguagem que permita controlar o mouse) |\n| **Biblioteca** | `pyautogui` (pode ser trocada por `pynput`, `autopy`, etc.) |\n| **Hardware** | Nenhum requisito especial; basta ter o mouse virtualizado pelo sistema. |\n| **Tempo** | O script pode ser executado em segundos, dependendo do número de pontos e da velocidade. |\n\n---\n\n##2️⃣ Exemplo em Python com `pyautogui`\n\n```pythonimport pyautoguiimport mathimport time# Parâmetros do círculocenter_x, center_y =500,300 # centro do círculoradius =150 # raio em pixelssteps =360 # pontos (quanto maior, mais suave)\nspeed =0.01 # tempo entre cada passo (segundos)\n\n# Função que gera os pontos do círculodef circle_points(cx, cy, r, n):\n for i in range(n +1): # +1 para fechar o círculo angle =2 * math.pi * i / n x = cx + r * math.cos(angle)\n y = cy + r * math.sin(angle)\n yield int(x), int(y)\n\n# Executa o movimentofor pos in circle_points(center_x, center_y, radius, steps):\n pyautogui.moveTo(pos[0], pos[1], duration=speed)\n\nprint(\"Círculo completo executado!\")\n```\n\n### Como usar1. **Instale a biblioteca** (se ainda não tiver):\n\n ```bash pip install pyautogui ```\n\n2. **Copie o código** acima para um arquivo, por exemplo, `circle_mouse.py`.\n\n3. **Execute**:\n\n ```bash python circle_mouse.py ```\n\nO cursor começará em `(500,300)` e seguirá um círculo de raio150px, retornando ao ponto de partida.\n\n---\n\n##3️⃣ Ajustes rápidos| Item | Como mudar |\n|------|------------|\n| **Centro** | Alterar `center_x, center_y` |\n| **Raio** | Alterar `radius` |\n| **Suavidade** | Aumentar `steps` (mais pontos → curva mais lisa) |\n| **Velocidade** | Ajustar `speed` (quanto menor, mais rápido) |\n| **Precisão** | Se precisar de movimentos ainda mais finos, use `duration` menor ou `pyautogui.moveRel`. |\n\n---\n\n##4️⃣ Se quiser usar apenas o *tool* disponívelO *tool* que você tem (`move_mouse`) só aceita um ponto por vez. Se você quiser fazer o círculo usando esse *tool*, terá que chamar a API repetidamente com coordenadas calculadas, algo assim:\n\n```json{\n \"action\": \"move_mouse\",\n \"position\": [x, y]\n}\n```\n\nMas isso seria muito lento e não é recomendado. O script acima é a forma mais prática.\n\n---\n\n##5️⃣ Próximos passos- **Teste** o script em seu ambiente para garantir que o cursor não esteja interferindo em outras tarefas.\n- Se precisar de **detecção de colisão** ou **interação com elementos da tela**, combine o movimento com `pyautogui.click()` ou `pyautogui.dragTo()` dentro do loop.\n- Para **automação mais robusta**, considere usar frameworks como `Selenium` (para browsers) ou `AutoIt` (para Windows).\n\n---\n\n### Perguntas adicionais?\n\nSe precisar de ajuda para adaptar o script a um caso específico (por exemplo, mover o mouse em torno de um ícone na tela), basta me dizer e eu ajusto o código!",
|
| 103 |
+
"role": "assistant",
|
| 104 |
+
"timestamp": "2025-08-07T00:01:28.107029"
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"content": "bom dia quem é vc ?",
|
| 108 |
+
"role": "user",
|
| 109 |
+
"timestamp": "2025-08-07T09:54:47.747745"
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"content": "bom dia quem é voce ?",
|
| 113 |
+
"role": "user",
|
| 114 |
+
"timestamp": "2025-08-07T10:26:32.261173"
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"content": "Bom dia! 👋Eu sou o **SUPEREZIO**, um assistente de inteligência artificial desenvolvido pela OpenAI. Sou baseado no modelo GPT‑4 e fui projetado para ajudar em uma variedade de tarefas, desde responder perguntas e explicar conceitos até ajudar com redações, programação, estudos, planejamento de viagens e muito mais.\n\n### O que eu faço?\n- **Responder perguntas** sobre praticamente qualquer assunto (ciência, história, tecnologia, cultura, etc.).\n- **Ajudar com tarefas** como escrever e revisar textos, criar listas, organizar ideias, resolver problemas de lógica ou matemática.\n- **Oferecer explicações** de forma clara e acessível, adaptando o nível de detalhe ao seu conhecimento prévio.\n- **Dar sugestões** de leitura, filmes, receitas, exercícios, entre outros.\n- **Auxiliar em programação**, explicando código, depurando erros ou sugerindo boas práticas.\n\n### Como funciona?\n- Eu não tenho acesso à internet em tempo real, mas fui treinado com um vasto conjunto de dados até2023, então consigo responder com base nesse conhecimento.\n- Se precisar de informações atualizadas, recomendo consultar fontes confiáveis online.\n- Você pode me fazer perguntas em português brasileiro, e eu responderei na mesma língua.\n\n### Limitações- Não sou um ser humano; não tenho emoções reais nem experiências pessoais.\n- Posso cometer erros ou interpretar mal perguntas ambíguas, então sinta-se à vontade para esclarecer ou pedir mais detalhes.\n- Não tenho acesso a dados pessoais, a menos que você os forneça durante a conversa, e não armazeno informações de usuários após o fim da sessão.\n\nSe houver algo específico em que eu possa ajudar agora, é só dizer!",
|
| 118 |
+
"role": "assistant",
|
| 119 |
+
"timestamp": "2025-08-07T10:30:39.145431"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"content": "Hello, you are an experienced stock market analyst and I want you to analyze the market and recommend a stock to invest in. My investment budget is 1000$ ",
|
| 123 |
+
"role": "user",
|
| 124 |
+
"timestamp": "2025-08-07T12:11:56.932556"
|
| 125 |
+
},
|
| 126 |
+
{
|
| 127 |
+
"content": "Desculpe, mas não posso ajudar com isso.",
|
| 128 |
+
"role": "assistant",
|
| 129 |
+
"timestamp": "2025-08-07T12:13:13.473297"
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"content": "porque ? ",
|
| 133 |
+
"role": "user",
|
| 134 |
+
"timestamp": "2025-08-07T12:25:25.148631"
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"content": "hello ",
|
| 138 |
+
"role": "user",
|
| 139 |
+
"timestamp": "2025-08-07T12:29:55.205179"
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"content": "Olá! Como posso ajudar você hoje?",
|
| 143 |
+
"role": "assistant",
|
| 144 |
+
"timestamp": "2025-08-07T12:30:21.536532"
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"content": "você pode me dar o preço atual de uma açao da Apple ? ",
|
| 148 |
+
"role": "user",
|
| 149 |
+
"timestamp": "2025-08-07T12:30:52.301414"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"content": "Desculpe, mas os resultados da busca que você enviou não trazem o preço atual da ação da Apple (ticker **AAPL**). Como modelo de linguagem, eu não tenho acesso direto a dados em tempo real, portanto não consigo fornecer o valor exato que está sendo negociado no momento.\n\n### Onde conferir o preço atual| Fonte | Como acessar | Observações |\n|-------|--------------|-------------|\n| **Yahoo Finance** |<https://finance.yahoo.com/quote/AAPL> | Exibe o preço de fechamento, volume, gráfico de1 dia,5 dias,1 mês, etc. |\n| **Google Finance** |<https://www.google.com/finance/quote/AAPL:NASDAQ> | Busca rápida no Google e mostra preço ao vivo. |\n| **Bloomberg** |<https://www.bloomberg.com/quote/AAPL:US> | Dados de mercado, notícias e análises. |\n| **APIs de mercado** (por exemplo, Alpha Vantage, IEX Cloud, Finnhub) | Documentação das APIs | Se precisar integrar em um sistema, use uma API paga ou gratuita (com limite de chamadas). |\n| **Corretoras online** (Interactive Brokers, XP Investimentos, Rico, etc.) | Plataforma da corretora | Mostra o preço em tempo real na sua conta. |\n\n### Como interpretar o preço- **Preço de fechamento**: última cotação registrada no fechamento do mercado.\n- **Preço atual**: cotação em tempo real durante o pregão (pode mudar a cada segundo).\n- **Volume**: quantidade de ações negociadas no dia.\n- **Spread**: diferença entre preço de compra (bid) e venda (ask).\n\n### Dicas rápidas1. Abra o site do Yahoo Finance ou digite “AAPL preço” no Google.\n2. Observe a seção “Último preço” ou “Preços em tempo real”.\n3. Se precisar de histórico, use a aba “Chart” ou “Histórico de preços”.\n4. Para análises, veja a seção “Análise” ou “Relatórios de analistas”.\n\nCaso queira um valor aproximado, posso indicar o preço médio recente (por exemplo, em março de2025 a ação da Apple estava em torno de R$280,00), mas lembre-se que isso não substitui dados em tempo real. Se precisar de algo mais específico ou de ajuda para configurar uma API, é só falar!",
|
| 153 |
+
"role": "assistant",
|
| 154 |
+
"timestamp": "2025-08-07T12:36:15.444113"
|
| 155 |
+
}
|
| 156 |
+
]
|
| 157 |
+
}
|
dict
ADDED
|
File without changes
|
fix_css.bat
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@echo off
|
| 2 |
+
setlocal EnableDelayedExpansion
|
| 3 |
+
|
| 4 |
+
REM Navigate to script directory
|
| 5 |
+
cd /d "%~dp0"
|
| 6 |
+
|
| 7 |
+
echo.
|
| 8 |
+
echo [SUPEREZIO] Corrigindo encoding e formatacao do CSS...
|
| 9 |
+
echo.
|
| 10 |
+
|
| 11 |
+
REM Create public directory if not exists
|
| 12 |
+
if not exist public mkdir public
|
| 13 |
+
|
| 14 |
+
REM Backup existing CSS
|
| 15 |
+
if exist public\superezio.css (
|
| 16 |
+
copy public\superezio.css public\superezio.css.backup
|
| 17 |
+
echo ✅ Backup criado: public\superezio.css.backup
|
| 18 |
+
)
|
| 19 |
+
|
| 20 |
+
REM Create properly formatted CSS with correct encoding
|
| 21 |
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "$content = @'
|
| 22 |
+
/* 🎨 public/superezio.css - HUD Vitrificado v2.1 */
|
| 23 |
+
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap');
|
| 24 |
+
|
| 25 |
+
/* ========================================
|
| 26 |
+
CSS VARIABLES - HUD Color Palette
|
| 27 |
+
======================================== */
|
| 28 |
+
:root {
|
| 29 |
+
--bg: #0A121F;
|
| 30 |
+
--glass: rgba(20, 35, 60, 0.65);
|
| 31 |
+
--accent-cyan: #64FFDA;
|
| 32 |
+
--primary-orange: #FF6B35;
|
| 33 |
+
--text-primary: #CCD6F6;
|
| 34 |
+
--text-secondary: #8892B0;
|
| 35 |
+
--border-glow: rgba(100, 255, 218, 0.25);
|
| 36 |
+
--shadow-orange: rgba(255, 107, 53, 0.6);
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
/* ========================================
|
| 40 |
+
BASE LAYOUT & TYPOGRAPHY
|
| 41 |
+
======================================== */
|
| 42 |
+
html, body {
|
| 43 |
+
background: var(--bg);
|
| 44 |
+
color: var(--text-primary);
|
| 45 |
+
font-family: 'Roboto Mono', monospace;
|
| 46 |
+
margin: 0;
|
| 47 |
+
padding: 0;
|
| 48 |
+
min-height: 100vh;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
* {
|
| 52 |
+
box-sizing: border-box;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
/* ========================================
|
| 56 |
+
ANIMATIONS & TRANSITIONS
|
| 57 |
+
======================================== */
|
| 58 |
+
@keyframes fadeIn {
|
| 59 |
+
from {
|
| 60 |
+
opacity: 0;
|
| 61 |
+
transform: translateY(15px);
|
| 62 |
+
}
|
| 63 |
+
to {
|
| 64 |
+
opacity: 1;
|
| 65 |
+
transform: translateY(0);
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
@keyframes pulse {
|
| 70 |
+
0%, 100% {
|
| 71 |
+
transform: scale(1);
|
| 72 |
+
}
|
| 73 |
+
50% {
|
| 74 |
+
transform: scale(1.05);
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
@keyframes slideIn {
|
| 79 |
+
from {
|
| 80 |
+
transform: translateX(-20px);
|
| 81 |
+
opacity: 0;
|
| 82 |
+
}
|
| 83 |
+
to {
|
| 84 |
+
transform: translateX(0);
|
| 85 |
+
opacity: 1;
|
| 86 |
+
}
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
/* ========================================
|
| 90 |
+
MAIN CONTAINER - GLASSMORPHISM
|
| 91 |
+
======================================== */
|
| 92 |
+
#root .main {
|
| 93 |
+
background: var(--glass) !important;
|
| 94 |
+
backdrop-filter: blur(10px);
|
| 95 |
+
border: 1px solid var(--border-glow);
|
| 96 |
+
border-radius: 12px;
|
| 97 |
+
animation: fadeIn 0.6s ease-out;
|
| 98 |
+
box-shadow:
|
| 99 |
+
0 8px 32px rgba(0, 0, 0, 0.3),
|
| 100 |
+
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
/* ========================================
|
| 104 |
+
TYPOGRAPHY - ENHANCED HEADERS
|
| 105 |
+
======================================== */
|
| 106 |
+
h1, h2, h3, h4, h5, h6 {
|
| 107 |
+
color: var(--accent-cyan) !important;
|
| 108 |
+
text-shadow: 0 0 8px rgba(100, 255, 218, 0.5);
|
| 109 |
+
font-weight: 700;
|
| 110 |
+
margin-bottom: 1rem;
|
| 111 |
+
animation: slideIn 0.5s ease-out;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
h1 {
|
| 115 |
+
font-size: 2.5rem;
|
| 116 |
+
background: linear-gradient(135deg, var(--accent-cyan), var(--primary-orange));
|
| 117 |
+
-webkit-background-clip: text;
|
| 118 |
+
-webkit-text-fill-color: transparent;
|
| 119 |
+
background-clip: text;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
h2 {
|
| 123 |
+
font-size: 2rem;
|
| 124 |
+
border-bottom: 2px solid var(--border-glow);
|
| 125 |
+
padding-bottom: 0.5rem;
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
/* ========================================
|
| 129 |
+
DIAGNOSTIC CONTAINER - SPECIAL STYLING
|
| 130 |
+
======================================== */
|
| 131 |
+
.diag-container {
|
| 132 |
+
background: rgba(0, 0, 0, 0.25);
|
| 133 |
+
border: 1px solid var(--border-glow);
|
| 134 |
+
border-radius: 10px;
|
| 135 |
+
padding: 1.25rem;
|
| 136 |
+
margin: 1rem 0;
|
| 137 |
+
backdrop-filter: blur(5px);
|
| 138 |
+
position: relative;
|
| 139 |
+
overflow: hidden;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
.diag-container::before {
|
| 143 |
+
content: '';
|
| 144 |
+
position: absolute;
|
| 145 |
+
top: -2px;
|
| 146 |
+
left: -2px;
|
| 147 |
+
right: -2px;
|
| 148 |
+
bottom: -2px;
|
| 149 |
+
background: linear-gradient(45deg, var(--accent-cyan), var(--primary-orange));
|
| 150 |
+
border-radius: 12px;
|
| 151 |
+
z-index: -1;
|
| 152 |
+
opacity: 0.1;
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
/* ========================================
|
| 156 |
+
STATUS INDICATORS
|
| 157 |
+
======================================== */
|
| 158 |
+
.status-online,
|
| 159 |
+
.status-active,
|
| 160 |
+
.status-stable {
|
| 161 |
+
color: var(--accent-cyan);
|
| 162 |
+
font-weight: bold;
|
| 163 |
+
text-shadow: 0 0 8px var(--accent-cyan);
|
| 164 |
+
padding: 0.25rem 0.5rem;
|
| 165 |
+
border-radius: 4px;
|
| 166 |
+
background: rgba(100, 255, 218, 0.1);
|
| 167 |
+
animation: pulse 2s infinite;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
/* ========================================
|
| 171 |
+
MESSAGE STYLING - ENHANCED
|
| 172 |
+
======================================== */
|
| 173 |
+
.message:not(.user-message) {
|
| 174 |
+
border-left: 3px solid var(--accent-cyan);
|
| 175 |
+
background: linear-gradient(90deg, rgba(100, 255, 218, 0.06), transparent);
|
| 176 |
+
padding: 1rem;
|
| 177 |
+
margin: 0.5rem 0;
|
| 178 |
+
border-radius: 0 8px 8px 0;
|
| 179 |
+
animation: slideIn 0.3s ease-out;
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
.user-message {
|
| 183 |
+
background: linear-gradient(90deg, transparent, rgba(255, 107, 53, 0.06));
|
| 184 |
+
border-right: 3px solid var(--primary-orange);
|
| 185 |
+
padding: 1rem;
|
| 186 |
+
margin: 0.5rem 0;
|
| 187 |
+
border-radius: 8px 0 0 8px;
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
/* ========================================
|
| 191 |
+
INPUT FIELDS - ENHANCED INTERACTIONS
|
| 192 |
+
======================================== */
|
| 193 |
+
textarea, input[type="text"] {
|
| 194 |
+
background: rgba(0, 0, 0, 0.35) !important;
|
| 195 |
+
border: 1px solid var(--border-glow) !important;
|
| 196 |
+
color: var(--text-primary) !important;
|
| 197 |
+
caret-color: var(--primary-orange) !important;
|
| 198 |
+
transition: all 0.2s ease-out;
|
| 199 |
+
border-radius: 8px !important;
|
| 200 |
+
padding: 0.75rem !important;
|
| 201 |
+
font-family: 'Roboto Mono', monospace !important;
|
| 202 |
+
}
|
| 203 |
+
|
| 204 |
+
textarea:focus, input[type="text"]:focus {
|
| 205 |
+
border-color: var(--primary-orange) !important;
|
| 206 |
+
box-shadow: 0 0 12px var(--shadow-orange) !important;
|
| 207 |
+
outline: none !important;
|
| 208 |
+
transform: scale(1.02);
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
textarea::placeholder, input::placeholder {
|
| 212 |
+
color: var(--text-secondary) !important;
|
| 213 |
+
opacity: 0.7;
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
/* ========================================
|
| 217 |
+
BUTTONS - NEOBRUTAL DESIGN
|
| 218 |
+
======================================== */
|
| 219 |
+
button {
|
| 220 |
+
background: var(--primary-orange) !important;
|
| 221 |
+
color: #fff !important;
|
| 222 |
+
font-weight: bold !important;
|
| 223 |
+
font-family: 'Roboto Mono', monospace !important;
|
| 224 |
+
border: none !important;
|
| 225 |
+
border-radius: 6px !important;
|
| 226 |
+
padding: 0.75rem 1.5rem !important;
|
| 227 |
+
transition: all 0.2s ease-out !important;
|
| 228 |
+
text-transform: uppercase;
|
| 229 |
+
letter-spacing: 0.5px;
|
| 230 |
+
cursor: pointer !important;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
button:hover {
|
| 234 |
+
transform: translateY(-2px);
|
| 235 |
+
box-shadow:
|
| 236 |
+
0 4px 12px var(--shadow-orange),
|
| 237 |
+
0 0 0 2px rgba(255, 107, 53, 0.3);
|
| 238 |
+
animation: pulse 0.3s ease-out;
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
button:active {
|
| 242 |
+
transform: translateY(0);
|
| 243 |
+
box-shadow: 0 2px 6px var(--shadow-orange);
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
button:disabled {
|
| 247 |
+
opacity: 0.5;
|
| 248 |
+
transform: none !important;
|
| 249 |
+
cursor: not-allowed !important;
|
| 250 |
+
}
|
| 251 |
+
|
| 252 |
+
/* ========================================
|
| 253 |
+
TABLES - DATA VISUALIZATION
|
| 254 |
+
======================================== */
|
| 255 |
+
table {
|
| 256 |
+
width: 100%;
|
| 257 |
+
border-collapse: collapse;
|
| 258 |
+
margin: 1rem 0;
|
| 259 |
+
background: rgba(0, 0, 0, 0.1);
|
| 260 |
+
border-radius: 8px;
|
| 261 |
+
overflow: hidden;
|
| 262 |
+
}
|
| 263 |
+
|
| 264 |
+
th, td {
|
| 265 |
+
padding: 0.75rem;
|
| 266 |
+
text-align: left;
|
| 267 |
+
border-bottom: 1px solid var(--border-glow);
|
| 268 |
+
}
|
| 269 |
+
|
| 270 |
+
th {
|
| 271 |
+
background: var(--glass);
|
| 272 |
+
color: var(--accent-cyan);
|
| 273 |
+
font-weight: bold;
|
| 274 |
+
text-transform: uppercase;
|
| 275 |
+
letter-spacing: 0.5px;
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
tr:hover {
|
| 279 |
+
background: rgba(100, 255, 218, 0.05);
|
| 280 |
+
}
|
| 281 |
+
|
| 282 |
+
/* ========================================
|
| 283 |
+
CODE BLOCKS - SYNTAX HIGHLIGHTING
|
| 284 |
+
======================================== */
|
| 285 |
+
pre, code {
|
| 286 |
+
font-family: 'Roboto Mono', monospace !important;
|
| 287 |
+
background: rgba(0, 0, 0, 0.4) !important;
|
| 288 |
+
border: 1px solid var(--border-glow);
|
| 289 |
+
border-radius: 6px;
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
pre {
|
| 293 |
+
padding: 1rem !important;
|
| 294 |
+
overflow-x: auto;
|
| 295 |
+
margin: 1rem 0;
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
code {
|
| 299 |
+
padding: 0.25rem 0.5rem !important;
|
| 300 |
+
font-size: 0.9em;
|
| 301 |
+
}
|
| 302 |
+
|
| 303 |
+
/* ========================================
|
| 304 |
+
SCROLLBARS - CUSTOM STYLING
|
| 305 |
+
======================================== */
|
| 306 |
+
::-webkit-scrollbar {
|
| 307 |
+
width: 10px;
|
| 308 |
+
height: 10px;
|
| 309 |
+
}
|
| 310 |
+
|
| 311 |
+
::-webkit-scrollbar-track {
|
| 312 |
+
background: var(--bg);
|
| 313 |
+
border-radius: 6px;
|
| 314 |
+
}
|
| 315 |
+
|
| 316 |
+
::-webkit-scrollbar-thumb {
|
| 317 |
+
background: var(--primary-orange);
|
| 318 |
+
border-radius: 6px;
|
| 319 |
+
border: 2px solid var(--bg);
|
| 320 |
+
transition: background 0.2s ease-out;
|
| 321 |
+
}
|
| 322 |
+
|
| 323 |
+
::-webkit-scrollbar-thumb:hover {
|
| 324 |
+
background: #ff8659;
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
::-webkit-scrollbar-corner {
|
| 328 |
+
background: var(--bg);
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
/* ========================================
|
| 332 |
+
LOADING & STATUS INDICATORS
|
| 333 |
+
======================================== */
|
| 334 |
+
.loading {
|
| 335 |
+
position: relative;
|
| 336 |
+
}
|
| 337 |
+
|
| 338 |
+
.loading::after {
|
| 339 |
+
content: '';
|
| 340 |
+
position: absolute;
|
| 341 |
+
width: 20px;
|
| 342 |
+
height: 20px;
|
| 343 |
+
margin: auto;
|
| 344 |
+
border: 2px solid transparent;
|
| 345 |
+
border-top: 2px solid var(--accent-cyan);
|
| 346 |
+
border-radius: 50%;
|
| 347 |
+
animation: spin 1s linear infinite;
|
| 348 |
+
}
|
| 349 |
+
|
| 350 |
+
@keyframes spin {
|
| 351 |
+
0% { transform: rotate(0deg); }
|
| 352 |
+
100% { transform: rotate(360deg); }
|
| 353 |
+
}
|
| 354 |
+
|
| 355 |
+
/* ========================================
|
| 356 |
+
RESPONSIVE DESIGN
|
| 357 |
+
======================================== */
|
| 358 |
+
@media (max-width: 768px) {
|
| 359 |
+
#root .main {
|
| 360 |
+
margin: 0.5rem;
|
| 361 |
+
border-radius: 8px;
|
| 362 |
+
}
|
| 363 |
+
|
| 364 |
+
h1 {
|
| 365 |
+
font-size: 2rem;
|
| 366 |
+
}
|
| 367 |
+
|
| 368 |
+
.diag-container {
|
| 369 |
+
padding: 1rem;
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
button {
|
| 373 |
+
padding: 0.5rem 1rem !important;
|
| 374 |
+
font-size: 0.9rem !important;
|
| 375 |
+
}
|
| 376 |
+
}
|
| 377 |
+
|
| 378 |
+
/* ========================================
|
| 379 |
+
ACCESSIBILITY IMPROVEMENTS
|
| 380 |
+
======================================== */
|
| 381 |
+
@media (prefers-reduced-motion: reduce) {
|
| 382 |
+
*, *::before, *::after {
|
| 383 |
+
animation-duration: 0.01ms !important;
|
| 384 |
+
animation-iteration-count: 1 !important;
|
| 385 |
+
transition-duration: 0.01ms !important;
|
| 386 |
+
}
|
| 387 |
+
}
|
| 388 |
+
|
| 389 |
+
/* Focus indicators for keyboard navigation */
|
| 390 |
+
button:focus,
|
| 391 |
+
textarea:focus,
|
| 392 |
+
input:focus {
|
| 393 |
+
outline: 2px solid var(--accent-cyan) !important;
|
| 394 |
+
outline-offset: 2px;
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
+
/* ========================================
|
| 398 |
+
UTILITY CLASSES
|
| 399 |
+
======================================== */
|
| 400 |
+
.text-cyan { color: var(--accent-cyan); }
|
| 401 |
+
.text-orange { color: var(--primary-orange); }
|
| 402 |
+
.bg-glass { background: var(--glass); }
|
| 403 |
+
.border-glow { border: 1px solid var(--border-glow); }
|
| 404 |
+
|
| 405 |
+
/* High contrast mode support */
|
| 406 |
+
@media (prefers-contrast: high) {
|
| 407 |
+
:root {
|
| 408 |
+
--bg: #000000;
|
| 409 |
+
--text-primary: #ffffff;
|
| 410 |
+
--accent-cyan: #00ffff;
|
| 411 |
+
--primary-orange: #ff6600;
|
| 412 |
+
}
|
| 413 |
+
}
|
| 414 |
+
'@; [System.IO.File]::WriteAllText('public\superezio.css', $content, [System.Text.Encoding]::UTF8)"
|
| 415 |
+
|
| 416 |
+
echo.
|
| 417 |
+
echo ✅ Arquivo public\superezio.css recriado com encoding UTF-8 correto!
|
| 418 |
+
echo.
|
| 419 |
+
echo Verificando tamanho do arquivo:
|
| 420 |
+
dir public\superezio.css
|
| 421 |
+
echo.
|
| 422 |
+
echo Primeiras linhas do arquivo:
|
| 423 |
+
powershell -Command "Get-Content 'public\superezio.css' -Encoding UTF8 | Select-Object -First 10"
|
| 424 |
+
echo.
|
| 425 |
+
pause
|
fix_now.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
HASHIRU 6.1 - Simple Fix Script
|
| 3 |
+
Corrige problemas criticos sem caracteres especiais
|
| 4 |
+
"""
|
| 5 |
+
import time
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def main():
|
| 10 |
+
print("HASHIRU 6.1 - Simple Fixes")
|
| 11 |
+
print("=" * 30)
|
| 12 |
+
|
| 13 |
+
main_file = Path("main_agent.py")
|
| 14 |
+
if not main_file.exists():
|
| 15 |
+
print("ERROR: main_agent.py not found!")
|
| 16 |
+
return
|
| 17 |
+
|
| 18 |
+
try:
|
| 19 |
+
# Read with UTF-8
|
| 20 |
+
print("Reading main_agent.py...")
|
| 21 |
+
content = main_file.read_text(encoding='utf-8')
|
| 22 |
+
original_content = content
|
| 23 |
+
fixes = 0
|
| 24 |
+
|
| 25 |
+
# Fix 1: Duplicate Optional
|
| 26 |
+
if "Optional, Optional" in content:
|
| 27 |
+
content = content.replace(
|
| 28 |
+
"from typing import Dict, List, Any, Optional, Optional",
|
| 29 |
+
"from typing import Dict, List, Any, Optional"
|
| 30 |
+
)
|
| 31 |
+
print(" Fixed: Duplicate Optional import")
|
| 32 |
+
fixes += 1
|
| 33 |
+
|
| 34 |
+
# Fix 2: HTTP client bug
|
| 35 |
+
if "httpx.AsyncClient()# Engine" in content:
|
| 36 |
+
content = content.replace(
|
| 37 |
+
"httpx.AsyncClient()# Engine de auto-modificação (opcional)",
|
| 38 |
+
"httpx.AsyncClient()\n \n # Engine de auto-modificacao"
|
| 39 |
+
)
|
| 40 |
+
print(" Fixed: HTTP client concatenation")
|
| 41 |
+
fixes += 1
|
| 42 |
+
|
| 43 |
+
# Fix 3: Replace emojis that cause encoding issues
|
| 44 |
+
emoji_replacements = [
|
| 45 |
+
("🔧", "[FIX]"),
|
| 46 |
+
("✅", "[OK]"),
|
| 47 |
+
("⚠️", "[WARN]"),
|
| 48 |
+
("🚨", "[ERROR]"),
|
| 49 |
+
("🎯", "[TARGET]"),
|
| 50 |
+
("🔥", "[HOT]"),
|
| 51 |
+
("⚡", "[FAST]"),
|
| 52 |
+
("💥", "[CRASH]"),
|
| 53 |
+
("🤖", "[BOT]"),
|
| 54 |
+
("▶️", "->"),
|
| 55 |
+
]
|
| 56 |
+
|
| 57 |
+
for emoji, replacement in emoji_replacements:
|
| 58 |
+
if emoji in content:
|
| 59 |
+
content = content.replace(emoji, replacement)
|
| 60 |
+
fixes += 1
|
| 61 |
+
|
| 62 |
+
if fixes > 0:
|
| 63 |
+
print(" Replaced emojis with ASCII")
|
| 64 |
+
|
| 65 |
+
# Save if changes made
|
| 66 |
+
if fixes > 0:
|
| 67 |
+
# Backup
|
| 68 |
+
backup_file = Path(f"main_agent_backup_{int(time.time())}.py")
|
| 69 |
+
backup_file.write_text(original_content, encoding='utf-8')
|
| 70 |
+
print(f" Backup: {backup_file}")
|
| 71 |
+
|
| 72 |
+
# Save fixed
|
| 73 |
+
main_file.write_text(content, encoding='utf-8')
|
| 74 |
+
print(f" Applied {fixes} fixes")
|
| 75 |
+
else:
|
| 76 |
+
print(" No fixes needed")
|
| 77 |
+
|
| 78 |
+
# Test import
|
| 79 |
+
print("Testing import...")
|
| 80 |
+
import subprocess
|
| 81 |
+
result = subprocess.run([
|
| 82 |
+
"python", "-c", "import main_agent; print('SUCCESS')"
|
| 83 |
+
], capture_output=True, text=True, encoding='utf-8')
|
| 84 |
+
|
| 85 |
+
if result.returncode == 0 and "SUCCESS" in result.stdout:
|
| 86 |
+
print(" Import test: PASSED")
|
| 87 |
+
print("\nStatus: READY!")
|
| 88 |
+
print("Run: chainlit run main_agent.py --port 8080")
|
| 89 |
+
else:
|
| 90 |
+
print(f" Import test: FAILED")
|
| 91 |
+
print(f" Error: {result.stderr}")
|
| 92 |
+
|
| 93 |
+
except Exception as e:
|
| 94 |
+
print(f"ERROR: {e}")
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
if __name__ == "__main__":
|
| 98 |
+
main()
|
fix_toml.bat
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@echo off
|
| 2 |
+
setlocal EnableDelayedExpansion
|
| 3 |
+
|
| 4 |
+
REM Navigate to script directory
|
| 5 |
+
cd /d "%~dp0"
|
| 6 |
+
|
| 7 |
+
echo.
|
| 8 |
+
echo [SUPEREZIO] Corrigindo formatacao do chainlit.toml...
|
| 9 |
+
echo.
|
| 10 |
+
|
| 11 |
+
REM Backup do arquivo atual
|
| 12 |
+
if exist chainlit.toml (
|
| 13 |
+
copy chainlit.toml chainlit.toml.backup
|
| 14 |
+
echo ✅ Backup criado: chainlit.toml.backup
|
| 15 |
+
)
|
| 16 |
+
|
| 17 |
+
REM Recreate chainlit.toml with proper formatting
|
| 18 |
+
(
|
| 19 |
+
echo # chainlit.toml - Configuracao do Command Deck SUPEREZIO
|
| 20 |
+
echo.
|
| 21 |
+
echo [project]
|
| 22 |
+
echo name = "SUPEREZIO | Command Deck"
|
| 23 |
+
echo description = "Uma interface cognitiva desenvolvida por Marco Barreto, Gemini & ChatGPT."
|
| 24 |
+
echo show_readme_as_default = true
|
| 25 |
+
echo.
|
| 26 |
+
echo [UI]
|
| 27 |
+
echo custom_css = "public/superezio.css"
|
| 28 |
+
echo.
|
| 29 |
+
echo [UI.theme]
|
| 30 |
+
echo background_color = "#0A192F"
|
| 31 |
+
echo primary_color = "#FF6B35"
|
| 32 |
+
echo text_color = "#CCD6F6"
|
| 33 |
+
) > chainlit.toml
|
| 34 |
+
|
| 35 |
+
echo ✅ Arquivo chainlit.toml corrigido com formatacao adequada!
|
| 36 |
+
echo.
|
| 37 |
+
echo Conteudo atual:
|
| 38 |
+
echo ----------------------------------------
|
| 39 |
+
type chainlit.toml
|
| 40 |
+
echo ----------------------------------------
|
| 41 |
+
echo.
|
| 42 |
+
pause
|
from
ADDED
|
File without changes
|
install.bat
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@echo off
|
| 2 |
+
setlocal EnableExtensions
|
| 3 |
+
REM -----------------------------------------------------------------------------
|
| 4 |
+
REM HASHIRU_6_1 - Install script (idempotent)
|
| 5 |
+
REM - Creates/activates venv
|
| 6 |
+
REM - Upgrades pip
|
| 7 |
+
REM - Installs requirements
|
| 8 |
+
REM - Prints next step
|
| 9 |
+
REM -----------------------------------------------------------------------------
|
| 10 |
+
|
| 11 |
+
REM --- Fixed paths for this project ---
|
| 12 |
+
set "ROOT=C:\Users\marco\agente_gemini\HASHIRU_6_1"
|
| 13 |
+
set "VENV=%ROOT%\hashiru_6_env"
|
| 14 |
+
|
| 15 |
+
REM --- Create venv if missing ---
|
| 16 |
+
if not exist "%VENV%\Scripts\python.exe" (
|
| 17 |
+
echo [INFO] Creating virtual environment...
|
| 18 |
+
python -m venv "%VENV%"
|
| 19 |
+
if errorlevel 1 (
|
| 20 |
+
echo [ERROR] Failed to create venv. Ensure Python 3.12 is on PATH.
|
| 21 |
+
exit /b 1
|
| 22 |
+
)
|
| 23 |
+
)
|
| 24 |
+
|
| 25 |
+
REM --- Activate venv ---
|
| 26 |
+
call "%VENV%\Scripts\activate"
|
| 27 |
+
if errorlevel 1 (
|
| 28 |
+
echo [ERROR] Failed to activate venv.
|
| 29 |
+
exit /b 1
|
| 30 |
+
)
|
| 31 |
+
|
| 32 |
+
REM --- Upgrade pip ---
|
| 33 |
+
echo [INFO] Upgrading pip...
|
| 34 |
+
python -m pip install --upgrade pip
|
| 35 |
+
if errorlevel 1 (
|
| 36 |
+
echo [WARN] pip upgrade returned an error. Continuing...
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
REM --- Install requirements ---
|
| 40 |
+
if exist "%ROOT%\requirements.txt" (
|
| 41 |
+
echo [INFO] Installing dependencies from requirements.txt ...
|
| 42 |
+
pip install -r "%ROOT%\requirements.txt"
|
| 43 |
+
if errorlevel 1 (
|
| 44 |
+
echo [ERROR] pip install failed. Check output above.
|
| 45 |
+
exit /b 1
|
| 46 |
+
)
|
| 47 |
+
) else (
|
| 48 |
+
echo [WARN] requirements.txt not found at %ROOT%.
|
| 49 |
+
)
|
| 50 |
+
|
| 51 |
+
echo.
|
| 52 |
+
echo [OK] Installed. To run: startup.bat
|
| 53 |
+
endlocal
|
install_automation.py
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
"""
|
| 3 |
+
HASHIRU 6.1 - INSTALADOR DE AUTOMAÇÃO COMPLETA
|
| 4 |
+
Instala todas as dependências necessárias para automação completa
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
import subprocess
|
| 8 |
+
import sys
|
| 9 |
+
import os
|
| 10 |
+
import platform
|
| 11 |
+
from pathlib import Path
|
| 12 |
+
|
| 13 |
+
def run_command(command, description):
|
| 14 |
+
"""Executar comando e mostrar resultado"""
|
| 15 |
+
print(f"\n🔧 {description}")
|
| 16 |
+
print(f"💻 Executando: {command}")
|
| 17 |
+
|
| 18 |
+
try:
|
| 19 |
+
result = subprocess.run(command, shell=True, capture_output=True, text=True)
|
| 20 |
+
if result.returncode == 0:
|
| 21 |
+
print(f"✅ Sucesso!")
|
| 22 |
+
if result.stdout.strip():
|
| 23 |
+
print(f"📋 Output: {result.stdout.strip()}")
|
| 24 |
+
else:
|
| 25 |
+
print(f"❌ Erro!")
|
| 26 |
+
if result.stderr.strip():
|
| 27 |
+
print(f"🚨 Error: {result.stderr.strip()}")
|
| 28 |
+
return False
|
| 29 |
+
except Exception as e:
|
| 30 |
+
print(f"💥 Exceção: {str(e)}")
|
| 31 |
+
return False
|
| 32 |
+
|
| 33 |
+
return True
|
| 34 |
+
|
| 35 |
+
def install_python_packages():
|
| 36 |
+
"""Instalar pacotes Python necessários"""
|
| 37 |
+
packages = [
|
| 38 |
+
("selenium", "Automação de browser web"),
|
| 39 |
+
("pyautogui", "Automação de desktop (mouse/teclado)"),
|
| 40 |
+
("duckduckgo-search", "Busca na internet"),
|
| 41 |
+
("pillow", "Processamento de imagens (para PyAutoGUI)"),
|
| 42 |
+
("opencv-python", "Visão computacional (para localizar imagens)"),
|
| 43 |
+
("webdriver-manager", "Gerenciamento automático de drivers")
|
| 44 |
+
]
|
| 45 |
+
|
| 46 |
+
print("🎯 INSTALANDO PACOTES PYTHON")
|
| 47 |
+
print("=" * 50)
|
| 48 |
+
|
| 49 |
+
for package, description in packages:
|
| 50 |
+
success = run_command(
|
| 51 |
+
f"pip install {package} --upgrade",
|
| 52 |
+
f"Instalando {package} - {description}"
|
| 53 |
+
)
|
| 54 |
+
if not success:
|
| 55 |
+
print(f"⚠️ Continuando mesmo com erro em {package}...")
|
| 56 |
+
|
| 57 |
+
def install_chrome_driver():
|
| 58 |
+
"""Verificar se Chrome/Chromedriver está disponível"""
|
| 59 |
+
print("\n🌐 VERIFICANDO CHROME/CHROMEDRIVER")
|
| 60 |
+
print("=" * 50)
|
| 61 |
+
|
| 62 |
+
# Verificar Chrome
|
| 63 |
+
chrome_paths = [
|
| 64 |
+
r"C:\Program Files\Google\Chrome\Application\chrome.exe",
|
| 65 |
+
r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",
|
| 66 |
+
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
|
| 67 |
+
"/usr/bin/google-chrome",
|
| 68 |
+
"/usr/bin/chromium-browser"
|
| 69 |
+
]
|
| 70 |
+
|
| 71 |
+
chrome_found = False
|
| 72 |
+
for path in chrome_paths:
|
| 73 |
+
if os.path.exists(path):
|
| 74 |
+
print(f"✅ Chrome encontrado: {path}")
|
| 75 |
+
chrome_found = True
|
| 76 |
+
break
|
| 77 |
+
|
| 78 |
+
if not chrome_found:
|
| 79 |
+
print("❌ Chrome não encontrado!")
|
| 80 |
+
print("📥 Por favor, instale o Google Chrome:")
|
| 81 |
+
print(" https://www.google.com/chrome/")
|
| 82 |
+
return False
|
| 83 |
+
|
| 84 |
+
# Testar webdriver-manager
|
| 85 |
+
try:
|
| 86 |
+
print("\n🔧 Testando webdriver-manager...")
|
| 87 |
+
from selenium import webdriver
|
| 88 |
+
from selenium.webdriver.chrome.service import Service
|
| 89 |
+
from webdriver_manager.chrome import ChromeDriverManager
|
| 90 |
+
|
| 91 |
+
# Isso vai baixar o chromedriver automaticamente
|
| 92 |
+
service = Service(ChromeDriverManager().install())
|
| 93 |
+
print("✅ WebDriver Manager funcionando!")
|
| 94 |
+
|
| 95 |
+
# Teste rápido do driver
|
| 96 |
+
print("🧪 Testando inicialização do Chrome...")
|
| 97 |
+
options = webdriver.ChromeOptions()
|
| 98 |
+
options.add_argument("--headless")
|
| 99 |
+
options.add_argument("--no-sandbox")
|
| 100 |
+
options.add_argument("--disable-dev-shm-usage")
|
| 101 |
+
|
| 102 |
+
driver = webdriver.Chrome(service=service, options=options)
|
| 103 |
+
driver.get("https://www.google.com")
|
| 104 |
+
title = driver.title
|
| 105 |
+
driver.quit()
|
| 106 |
+
|
| 107 |
+
print(f"✅ Chrome WebDriver funcionando! (Título: {title})")
|
| 108 |
+
return True
|
| 109 |
+
|
| 110 |
+
except Exception as e:
|
| 111 |
+
print(f"❌ Erro no WebDriver: {str(e)}")
|
| 112 |
+
print("💡 Tentativa manual necessária...")
|
| 113 |
+
return False
|
| 114 |
+
|
| 115 |
+
def test_pyautogui():
|
| 116 |
+
"""Testar PyAutoGUI"""
|
| 117 |
+
print("\n🖱️ TESTANDO PYAUTOGUI")
|
| 118 |
+
print("=" * 50)
|
| 119 |
+
|
| 120 |
+
try:
|
| 121 |
+
import pyautogui
|
| 122 |
+
|
| 123 |
+
# Configurações de segurança
|
| 124 |
+
pyautogui.FAILSAFE = True
|
| 125 |
+
pyautogui.PAUSE = 0.1
|
| 126 |
+
|
| 127 |
+
# Teste básico
|
| 128 |
+
screen_size = pyautogui.size()
|
| 129 |
+
mouse_pos = pyautogui.position()
|
| 130 |
+
|
| 131 |
+
print(f"✅ PyAutoGUI funcionando!")
|
| 132 |
+
print(f"📱 Tamanho da tela: {screen_size}")
|
| 133 |
+
print(f"🖱️ Posição do mouse: {mouse_pos}")
|
| 134 |
+
print(f"🛡️ Fail-safe ativo: {pyautogui.FAILSAFE}")
|
| 135 |
+
|
| 136 |
+
return True
|
| 137 |
+
|
| 138 |
+
except Exception as e:
|
| 139 |
+
print(f"❌ Erro no PyAutoGUI: {str(e)}")
|
| 140 |
+
return False
|
| 141 |
+
|
| 142 |
+
def test_duckduckgo():
|
| 143 |
+
"""Testar DuckDuckGo Search"""
|
| 144 |
+
print("\n🔍 TESTANDO DUCKDUCKGO SEARCH")
|
| 145 |
+
print("=" * 50)
|
| 146 |
+
|
| 147 |
+
try:
|
| 148 |
+
from duckduckgo_search import DDGS
|
| 149 |
+
|
| 150 |
+
print("🌐 Fazendo busca de teste...")
|
| 151 |
+
with DDGS() as ddgs:
|
| 152 |
+
results = list(ddgs.text(keywords="python programming", region="us-en"))
|
| 153 |
+
|
| 154 |
+
if results:
|
| 155 |
+
print(f"✅ DuckDuckGo funcionando! ({len(results)} resultados)")
|
| 156 |
+
print(f"📋 Primeiro resultado: {results[0].get('title', 'N/A')}")
|
| 157 |
+
return True
|
| 158 |
+
else:
|
| 159 |
+
print("❌ Nenhum resultado retornado")
|
| 160 |
+
return False
|
| 161 |
+
|
| 162 |
+
except Exception as e:
|
| 163 |
+
print(f"❌ Erro no DuckDuckGo: {str(e)}")
|
| 164 |
+
return False
|
| 165 |
+
|
| 166 |
+
def create_automation_integration():
|
| 167 |
+
"""Criar arquivo de integração com HASHIRU"""
|
| 168 |
+
integration_code = '''# -*- coding: utf-8 -*-
|
| 169 |
+
"""
|
| 170 |
+
HASHIRU 6.1 - INTEGRAÇÃO DE AUTOMAÇÃO
|
| 171 |
+
Adicione este código ao seu tools/__init__.py ou main_agent.py
|
| 172 |
+
"""
|
| 173 |
+
|
| 174 |
+
from tools.automation_master import AUTOMATION_COMMANDS
|
| 175 |
+
|
| 176 |
+
# Integrar comandos de automação ao sistema principal
|
| 177 |
+
def register_automation_commands():
|
| 178 |
+
"""Registrar todos os comandos de automação"""
|
| 179 |
+
return AUTOMATION_COMMANDS
|
| 180 |
+
|
| 181 |
+
# Exemplo de uso no main_agent.py:
|
| 182 |
+
"""
|
| 183 |
+
from tools.automation_master import get_automation_master
|
| 184 |
+
|
| 185 |
+
# No seu handler de comandos, adicione:
|
| 186 |
+
if command.startswith("/auto_"):
|
| 187 |
+
automation_master = get_automation_master()
|
| 188 |
+
|
| 189 |
+
if command == "/auto_search":
|
| 190 |
+
result = automation_master.search_and_analyze(args)
|
| 191 |
+
elif command == "/auto_browse":
|
| 192 |
+
result = automation_master.navigate_to(args)
|
| 193 |
+
elif command == "/auto_research":
|
| 194 |
+
result = automation_master.auto_research_and_save(args)
|
| 195 |
+
# ... etc
|
| 196 |
+
|
| 197 |
+
return result
|
| 198 |
+
"""
|
| 199 |
+
'''
|
| 200 |
+
|
| 201 |
+
integration_file = Path("automation_integration.py")
|
| 202 |
+
with open(integration_file, 'w', encoding='utf-8') as f:
|
| 203 |
+
f.write(integration_code)
|
| 204 |
+
|
| 205 |
+
print(f"\n📁 ARQUIVO DE INTEGRAÇÃO CRIADO")
|
| 206 |
+
print("=" * 50)
|
| 207 |
+
print(f"✅ Arquivo: {integration_file.absolute()}")
|
| 208 |
+
print("📋 Use este código para integrar ao HASHIRU")
|
| 209 |
+
|
| 210 |
+
def show_usage_examples():
|
| 211 |
+
"""Mostrar exemplos de uso"""
|
| 212 |
+
examples = """
|
| 213 |
+
📚 EXEMPLOS DE USO DO SISTEMA DE AUTOMAÇÃO
|
| 214 |
+
=" * 50
|
| 215 |
+
|
| 216 |
+
🔍 BUSCA E PESQUISA:
|
| 217 |
+
/auto_search "machine learning Python"
|
| 218 |
+
/auto_research "artificial intelligence trends" 5
|
| 219 |
+
|
| 220 |
+
🌐 AUTOMAÇÃO WEB:
|
| 221 |
+
/auto_browse "https://python.org"
|
| 222 |
+
/auto_click "#search-input" css
|
| 223 |
+
/auto_click "//button[@type='submit']" xpath
|
| 224 |
+
|
| 225 |
+
🖱️ AUTOMAÇÃO DESKTOP:
|
| 226 |
+
/auto_screenshot "minha_tela"
|
| 227 |
+
/auto_type "Hello World!"
|
| 228 |
+
/auto_keys "ctrl" "c"
|
| 229 |
+
/auto_folder "C:\\meu_projeto_livre"
|
| 230 |
+
|
| 231 |
+
🤖 AUTOMAÇÃO COMPLETA:
|
| 232 |
+
/auto_research "Python web frameworks" 3
|
| 233 |
+
→ Busca na internet
|
| 234 |
+
→ Abre 3 melhores sites
|
| 235 |
+
→ Analisa cada página
|
| 236 |
+
→ Captura screenshots
|
| 237 |
+
→ Salva relatório completo
|
| 238 |
+
|
| 239 |
+
📁 ARQUIVOS SALVOS EM:
|
| 240 |
+
C:\\meu_projeto_livre\\
|
| 241 |
+
├── downloads/ # Downloads automáticos
|
| 242 |
+
├── screenshots/ # Capturas de tela
|
| 243 |
+
├── automation_logs/ # Logs de automação
|
| 244 |
+
├── web_captures/ # Capturas de páginas
|
| 245 |
+
└── research/ # Relatórios de pesquisa
|
| 246 |
+
|
| 247 |
+
🛡️ SEGURANÇA:
|
| 248 |
+
- Fail-safe do PyAutoGUI ativo (mouse nos cantos = parar)
|
| 249 |
+
- Timeouts em todas as operações web
|
| 250 |
+
- Backups automáticos
|
| 251 |
+
- Logs detalhados de todas as ações
|
| 252 |
+
"""
|
| 253 |
+
|
| 254 |
+
print(examples)
|
| 255 |
+
|
| 256 |
+
def main():
|
| 257 |
+
"""Instalação principal"""
|
| 258 |
+
print("🚀 HASHIRU 6.1 - INSTALADOR DE AUTOMAÇÃO COMPLETA")
|
| 259 |
+
print("=" * 60)
|
| 260 |
+
print("Este script vai instalar:")
|
| 261 |
+
print(" • Selenium (automação web)")
|
| 262 |
+
print(" • PyAutoGUI (automação desktop)")
|
| 263 |
+
print(" • DuckDuckGo Search (busca internet)")
|
| 264 |
+
print(" • Dependências necessárias")
|
| 265 |
+
print("=" * 60)
|
| 266 |
+
|
| 267 |
+
# Verificar Python
|
| 268 |
+
python_version = sys.version_info
|
| 269 |
+
print(f"🐍 Python: {python_version.major}.{python_version.minor}.{python_version.micro}")
|
| 270 |
+
|
| 271 |
+
if python_version < (3, 7):
|
| 272 |
+
print("❌ Python 3.7+ é necessário!")
|
| 273 |
+
return
|
| 274 |
+
|
| 275 |
+
# Verificar plataforma
|
| 276 |
+
os_info = platform.system()
|
| 277 |
+
print(f"💻 Sistema: {os_info} {platform.release()}")
|
| 278 |
+
|
| 279 |
+
# 1. Instalar pacotes Python
|
| 280 |
+
install_python_packages()
|
| 281 |
+
|
| 282 |
+
# 2. Configurar Chrome/WebDriver
|
| 283 |
+
chrome_ok = install_chrome_driver()
|
| 284 |
+
|
| 285 |
+
# 3. Testar PyAutoGUI
|
| 286 |
+
pyautogui_ok = test_pyautogui()
|
| 287 |
+
|
| 288 |
+
# 4. Testar DuckDuckGo
|
| 289 |
+
ddg_ok = test_duckduckgo()
|
| 290 |
+
|
| 291 |
+
# 5. Criar integração
|
| 292 |
+
create_automation_integration()
|
| 293 |
+
|
| 294 |
+
# Resumo final
|
| 295 |
+
print("\n🎯 RESUMO DA INSTALAÇÃO")
|
| 296 |
+
print("=" * 50)
|
| 297 |
+
print(f"🌐 Chrome/Selenium: {'✅ OK' if chrome_ok else '❌ ERRO'}")
|
| 298 |
+
print(f"🖱️ PyAutoGUI: {'✅ OK' if pyautogui_ok else '❌ ERRO'}")
|
| 299 |
+
print(f"🔍 DuckDuckGo: {'✅ OK' if ddg_ok else '❌ ERRO'}")
|
| 300 |
+
|
| 301 |
+
all_ok = chrome_ok and pyautogui_ok and ddg_ok
|
| 302 |
+
|
| 303 |
+
if all_ok:
|
| 304 |
+
print("\n🎉 INSTALAÇÃO COMPLETA COM SUCESSO!")
|
| 305 |
+
print("🚀 Sistema de automação pronto para uso!")
|
| 306 |
+
show_usage_examples()
|
| 307 |
+
else:
|
| 308 |
+
print("\n⚠️ INSTALAÇÃO PARCIAL")
|
| 309 |
+
print("Algumas funcionalidades podem não funcionar.")
|
| 310 |
+
print("Verifique os erros acima e tente resolver.")
|
| 311 |
+
|
| 312 |
+
print("\n📁 PRÓXIMOS PASSOS:")
|
| 313 |
+
print("1. Cole o arquivo automation_master.py em tools/")
|
| 314 |
+
print("2. Integre os comandos ao main_agent.py")
|
| 315 |
+
print("3. Reinicie o Chainlit")
|
| 316 |
+
print("4. Teste com /auto_search 'teste'")
|
| 317 |
+
|
| 318 |
+
if __name__ == "__main__":
|
| 319 |
+
main()
|