Compare commits

...
42 Commits
Author SHA1 Message Date
Mervin Praison 5846bbdf9a Merge pull request #213 from MervinPraison/develop
Adding Depends 8
2024-12-24 06:12:24 +00:00
MervinPraison 22a46e8dc0 Adding Depends 8 2024-12-24 06:12:02 +00:00
Mervin Praison ec0f638bf0 Merge pull request #212 from MervinPraison/develop
Adding Depends 7
2024-12-24 05:59:33 +00:00
MervinPraison 4ca8c51898 Adding Depends 7 2024-12-24 05:59:12 +00:00
Mervin Praison f6d44508c2 Merge pull request #211 from MervinPraison/develop
Adding Depends 6
2024-12-24 05:41:34 +00:00
MervinPraison 60c12b2352 Adding Depends 6 2024-12-24 05:41:09 +00:00
Mervin Praison d2f843dc36 Merge pull request #210 from MervinPraison/develop
Adding Depends 5
2024-12-24 05:31:03 +00:00
MervinPraison 2ab35f8be3 Adding Depends 5 2024-12-24 05:30:43 +00:00
Mervin Praison ca9d8ac104 Merge pull request #209 from MervinPraison/develop
Develop
2024-12-24 05:27:52 +00:00
MervinPraison ebc75db440 Adding Depends 4 2024-12-24 05:27:23 +00:00
MervinPraison cf809fd4bb Adding Depends 3 2024-12-24 05:26:41 +00:00
MervinPraison 1539689025 Adding dependencies 2 2024-12-24 05:25:24 +00:00
Mervin Praison d8d2f6597f Merge pull request #208 from MervinPraison/develop
Adding dependencies
2024-12-24 04:59:01 +00:00
MervinPraison d00aabd040 Adding dependencies 2024-12-24 04:58:41 +00:00
Mervin Praison d5cd13e723 Merge pull request #207 from MervinPraison/develop
v2.0 with PraisonAI Agents
2024-12-24 04:34:34 +00:00
MervinPraison 0dba16a63a v2.0 with PraisonAI Agents 2024-12-24 04:34:02 +00:00
Mervin Praison b533e1dba5 Merge pull request #206 from MervinPraison/develop
Develop
2024-12-24 01:23:46 +00:00
MervinPraison a909fd3778 Introducting PraisonAI Agents 3 2024-12-24 01:22:50 +00:00
MervinPraison b6049f0581 Introducting PraisonAI Agents 2 2024-12-24 01:22:09 +00:00
Mervin Praison ffb6af5000 Merge pull request #205 from MervinPraison/develop
Introducing PraisonAI Agents
2024-12-24 01:05:31 +00:00
MervinPraison f1f9956020 Introducting PraisonAI Agents 2024-12-24 01:04:35 +00:00
MervinPraison 1cedc9c1b2 Update to config.yaml 2024-12-24 00:47:36 +00:00
Mervin Praison 5d803b0acb Merge pull request #204 from MervinPraison/develop
Develop
2024-12-24 00:46:13 +00:00
MervinPraison 5b932c8010 Reverting only code ui to not able to modify 2024-12-24 00:44:17 +00:00
MervinPraison 8479707865 saving update 2024-12-24 00:43:41 +00:00
MervinPraison 801548a302 reverting changes 2024-12-18 13:45:56 +00:00
MervinPraison 0e4b627834 adding aicoder 2024-12-18 13:43:56 +00:00
Mervin Praison d13d4c3c59 Merge pull request #200 from MervinPraison/develop
css fix
2024-12-13 12:03:53 +00:00
MervinPraison 698b4937e5 css fix 2024-12-13 12:02:38 +00:00
Mervin Praison 64db00046a Merge pull request #199 from MervinPraison/develop
Copy required files
2024-12-13 11:54:06 +00:00
MervinPraison 7277598f38 Copy required files 2024-12-13 11:53:03 +00:00
Mervin Praison 1f3a1de750 Merge pull request #198 from MervinPraison/develop
adding uv and fixing code
2024-12-13 07:00:50 +00:00
MervinPraison c783aa130c Adding Postgress to Code 2024-12-13 07:00:29 +00:00
MervinPraison c980b12a5c adding uv and fixing code 2024-12-13 05:51:03 +00:00
Mervin Praison e814d28d3c Merge pull request #197 from MervinPraison/develop
OAuth Enabled
2024-12-09 11:51:53 +00:00
MervinPraison dd445b22a3 OAuth Enabled 2024-12-09 11:51:33 +00:00
Mervin Praison 8ee381c1e4 Merge pull request #196 from MervinPraison/develop
Fix postgres 2
2024-12-09 07:32:08 +00:00
MervinPraison 089188853c Fix postgres 2 2024-12-09 07:31:45 +00:00
Mervin Praison 2aab2e6dfd Merge pull request #194 from MervinPraison/develop
Fix postgres
2024-12-06 22:57:27 +00:00
MervinPraison 670dd6874e Fix postgres 2024-12-06 22:57:03 +00:00
Mervin Praison 1796930739 Merge pull request #193 from MervinPraison/develop
Adding Postgress DB tables
2024-12-06 22:53:44 +00:00
MervinPraison b8fb078145 Adding Postgress DB tables 2024-12-06 22:53:18 +00:00
63 changed files with 15510 additions and 986 deletions

No files matched your search

+1885
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -1,11 +1,11 @@
name: Delayed Publish Docker
name: Daily Publish Docker
on:
push:
branches:
- main
schedule:
- cron: '*/4 * * * *'
- cron: '0 0 * * *'
jobs:
check-and-build:
+8 -1
View File
@@ -20,11 +20,13 @@ docs.sh
other
output
.chainlit
.files
threads.db
threads.db-journal
.chainlit
!praisonai/ui/config/.chainlit
site
# Ignore Sphinx build directory
docs/_build/
@@ -58,3 +60,8 @@ credentials.json
# node_modules
node_modules
outputs
agents/praisonaiagents/build
agents/praisonaiagents/dist
agents/praisonaiagents/praisonaiagents.egg-info
+3 -1
View File
@@ -1,2 +1,4 @@
# praisonai/ui/context.py
# /Users/praison/miniconda3/envs/praisonai-package/lib/python3.11/site-packages/llama_index/packs/code_hierarchy/code_hierarchy.py
# /Users/praison/miniconda3/envs/praisonai-package/lib/python3.11/site-packages/llama_index/packs/code_hierarchy/code_hierarchy.py
praisonai/ui/components/aicoder.py
praisonai/ui/code.py
-1
View File
@@ -1,5 +1,4 @@
cookbooks
tests
docs
praisonai/ui/*
praisonai/inbuilt_tools/*
+1 -1
View File
@@ -1,6 +1,6 @@
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install flask praisonai==1.0.2 gunicorn markdown
RUN pip install flask praisonai==2.0.9 gunicorn markdown
EXPOSE 8080
CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]
+15 -2
View File
@@ -53,7 +53,7 @@ Praison AI, leveraging both AutoGen and CrewAI or any other agent framework, rep
## Installation Options
### Basic Installation
### Using pip
```bash
pip install praisonai
```
@@ -372,12 +372,26 @@ if __name__ == "__main__":
```
4. **Install only dev dependencies:**
```sh
poetry install --with dev
```
This configuration ensures that your development dependencies are correctly categorized and installed as needed.
### Using uv (Fast Python Package Installer)
```bash
# Install uv if you haven't already
pip install uv
# Install from requirements
uv pip install -r pyproject.toml
# Install with extras
uv pip install -r pyproject.toml --extra code
uv pip install -r pyproject.toml --extra "crewai,autogen"
```
## Contributing
- Fork on GitHub: Use the "Fork" button on the repository page.
@@ -416,4 +430,3 @@ Praison AI is an open-sourced software licensed under the **[MIT license](https:
## License
Praison AI is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
+2 -1
View File
@@ -1,4 +1,5 @@
framework: autogen
framework: praisonai
process: hierarchical
topic: create movie script about cat in mars
roles:
researcher:
+83
View File
@@ -0,0 +1,83 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Virtual Environment
venv/
env/
ENV/
.env
.venv
env.bak/
venv.bak/
# IDE
.idea/
.vscode/
*.swp
*.swo
.project
.pydevproject
.settings/
# Testing
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Documentation
docs/_build/
docs/generated/
# Jupyter Notebook
.ipynb_checkpoints
*.ipynb
# Logs and databases
*.log
*.sqlite
*.db
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.test
praisonaiaagents.egg-info
praisonaiagents.egg-info
app.py
outputs
praisonaiagents/build
praisonaiagents/dist
praisonaiagents/praisonaiagents.egg-info
dist
build
+166
View File
@@ -0,0 +1,166 @@
import os
import logging
from rich.console import Console
from rich.panel import Panel
from rich.text import Text
from praisonaiagents import Agent, Task, Agents, error_logs
# Configure logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s %(filename)s:%(lineno)d %(levelname)s %(message)s",
datefmt="[%X]"
)
def my_callback(output):
logging.info(f"Callback function called after task execution: {output.description}")
logging.info(f"Task output: {output}")
def main():
# Make sure OPENAI_API_KEY is set
if not os.environ.get("OPENAI_API_KEY"):
raise ValueError("Please set OPENAI_API_KEY environment variable")
# Define tools
search_tool = {
"type": "function",
"function": {
"name": "search_tool",
"description": "Use this to perform search queries",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
},
}
get_weather_tool = {
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"},
},
"required": ["location"],
},
},
}
# Create agents
researcher = Agent(
name="Researcher",
role="Senior Research Analyst",
goal="Uncover cutting-edge developments in AI and data science",
backstory="""You are an expert at a technology research group,
skilled in identifying trends and analyzing complex data.""",
verbose=True,
allow_delegation=False,
tools=[search_tool],
llm="gpt-4o",
markdown=True
)
writer = Agent(
name="Writer",
role="Tech Content Strategist",
goal="Craft compelling content on tech advancements",
backstory="""You are a content strategist known for
making complex tech topics interesting and easy to understand.""",
verbose=True,
allow_delegation=True,
llm="gpt-4o",
tools=[get_weather_tool],
markdown=True
)
# Create tasks
task1 = Task(
name="research_task",
description="""Analyze 2024's AI advancements.
Find major trends, new technologies, and their effects.""",
expected_output="""A detailed report on 2024 AI advancements""",
agent=researcher,
tools=[search_tool]
)
task2 = Task(
name="writing_task",
description="""Create a blog post about major AI advancements using the insights you have.
Make it interesting, clear, and suited for tech enthusiasts.
It should be at least 4 paragraphs long.
Also, call the get_weather tool to get the weather in Paris.""",
expected_output="A blog post of at least 4 paragraphs, and weather in Paris",
agent=writer,
context=[task1],
callback=my_callback,
tools=[get_weather_tool]
)
task3 = Task(
name="json_task",
description="""Create a json object with a title of "My Task" and content of "My content".""",
expected_output="""JSON output with title and content""",
agent=researcher,
)
task4 = Task(
name="save_output_task",
description="""Save the AI blog post to a file""",
expected_output="""File saved successfully""",
agent=writer,
context=[task2],
output_file='outputs/ai_blog_post.txt',
create_directory=True
)
# Create and run agents manager
agents = Agents(
agents=[researcher, writer],
tasks=[task1, task2, task3, task4],
verbose=False,
process="sequential", # "sequential" or "hierarchical"
manager_llm="gpt-4o"
)
result = agents.start()
# Print results and error summary
console = Console()
# Print task results
console.print("\n=== Task Results ===")
for task_id, task_status in result['task_status'].items():
console.print(f"Task {task_id}: {task_status}")
if task_result := result['task_results'].get(task_id):
console.print(f"Output: {task_result.raw[:200]}...") # Show first 200 chars
# Print task details
console.print("\n=== Task Details ===")
for i in range(4):
console.print(agents.get_task_details(i))
# Print agent details
console.print("\n=== Agent Details ===")
console.print(agents.get_agent_details('Researcher'))
console.print(agents.get_agent_details('Writer'))
# Print any errors
if error_logs:
console.print(Panel.fit(Text("Errors Encountered:", style="bold red"), title="Error Summary", border_style="red"))
for err in error_logs:
console.print(f"- {err}")
if "parsing self-reflection json" in err:
console.print(" Reason: The self-reflection JSON response was not valid JSON.")
elif "Error: Task with ID" in err:
console.print(" Reason: Task ID referenced does not exist.")
elif "saving task output to file" in err:
console.print(" Reason: Possible file permissions or invalid path.")
else:
console.print(" Reason not identified")
if __name__ == "__main__":
main()
+35
View File
@@ -0,0 +1,35 @@
"""
Praison AI Agents - A package for hierarchical AI agent task execution
"""
from .agent.agent import Agent
from .agents.agents import PraisonAIAgents
from .task.task import Task
from .main import (
TaskOutput,
ReflectionOutput,
display_interaction,
display_self_reflection,
display_instruction,
display_tool_call,
display_error,
display_generating,
clean_triple_backticks,
error_logs,
)
__all__ = [
'Agent',
'PraisonAIAgents',
'Task',
'TaskOutput',
'ReflectionOutput',
'display_interaction',
'display_self_reflection',
'display_instruction',
'display_tool_call',
'display_error',
'display_generating',
'clean_triple_backticks',
'error_logs',
]
+4
View File
@@ -0,0 +1,4 @@
"""Agent module for AI agents"""
from .agent import Agent
__all__ = ['Agent']
+351
View File
@@ -0,0 +1,351 @@
import logging
import json
import time
from typing import List, Optional, Any, Dict, Union, Literal
from rich.console import Console
from rich.live import Live
from ..main import (
display_error,
display_tool_call,
display_instruction,
display_interaction,
display_generating,
display_self_reflection,
ReflectionOutput,
client,
error_logs
)
class Agent:
def __init__(
self,
name: str,
role: str,
goal: str,
backstory: str,
llm: Optional[Union[str, Any]] = "gpt-4o-mini",
tools: Optional[List[Any]] = None,
function_calling_llm: Optional[Any] = None,
max_iter: int = 20,
max_rpm: Optional[int] = None,
max_execution_time: Optional[int] = None,
memory: bool = True,
verbose: bool = False,
allow_delegation: bool = False,
step_callback: Optional[Any] = None,
cache: bool = True,
system_template: Optional[str] = None,
prompt_template: Optional[str] = None,
response_template: Optional[str] = None,
allow_code_execution: Optional[bool] = False,
max_retry_limit: int = 2,
respect_context_window: bool = True,
code_execution_mode: Literal["safe", "unsafe"] = "safe",
embedder_config: Optional[Dict[str, Any]] = None,
knowledge_sources: Optional[List[Any]] = None,
use_system_prompt: Optional[bool] = True,
markdown: bool = True,
self_reflect: bool = True,
max_reflection_iter: int = 3
):
self.name = name
self.role = role
self.goal = goal
self.backstory = backstory
self.llm = llm
self.tools = tools if tools else []
self.function_calling_llm = function_calling_llm
self.max_iter = max_iter
self.max_rpm = max_rpm
self.max_execution_time = max_execution_time
self.memory = memory
self.verbose = verbose
self.allow_delegation = allow_delegation
self.step_callback = step_callback
self.cache = cache
self.system_template = system_template
self.prompt_template = prompt_template
self.response_template = response_template
self.allow_code_execution = allow_code_execution
self.max_retry_limit = max_retry_limit
self.respect_context_window = respect_context_window
self.code_execution_mode = code_execution_mode
self.embedder_config = embedder_config
self.knowledge_sources = knowledge_sources
self.use_system_prompt = use_system_prompt
self.chat_history = []
self.markdown = markdown
self.self_reflect = self_reflect
self.max_reflection_iter = max_reflection_iter
def execute_tool(self, function_name, arguments):
logging.debug(f"{self.name} executing tool {function_name} with arguments: {arguments}")
if function_name == "get_weather":
location = arguments.get("location", "Unknown Location")
return {"temperature": "25C", "condition": "Sunny", "location": location}
elif function_name == "search_tool":
query = arguments.get("query", "AI trends in 2024")
return {"results": [
{"title": "AI advancements in 2024", "link": "url1", "summary": "Lots of advancements"},
{"title": "New trends in AI", "link": "url2", "summary": "New trends being found"}
]}
else:
return f"Tool '{function_name}' is not recognized"
def clear_history(self):
self.chat_history = []
def __str__(self):
return f"Agent(name='{self.name}', role='{self.role}', goal='{self.goal}')"
def _chat_completion(self, messages, temperature=0.2, tools=None, stream=True):
console = Console()
start_time = time.time()
logging.debug(f"{self.name} sending messages to LLM: {messages}")
formatted_tools = []
if tools:
for tool in tools:
if isinstance(tool, dict):
formatted_tools.append(tool)
elif hasattr(tool, "to_openai_tool"):
formatted_tools.append(tool.to_openai_tool())
elif isinstance(tool, str):
formatted_tools.append({
"type": "function",
"function": {
"name": tool,
"description": f"This is a tool called {tool}",
"parameters": {
"type": "object",
"properties": {},
},
}
})
else:
display_error(f"Warning: Tool {tool} not recognized")
try:
initial_response = client.chat.completions.create(
model=self.llm,
messages=messages,
temperature=temperature,
tools=formatted_tools if formatted_tools else None,
stream=False
)
tool_calls = getattr(initial_response.choices[0].message, 'tool_calls', None)
if tool_calls:
messages.append({
"role": "assistant",
"content": initial_response.choices[0].message.content,
"tool_calls": tool_calls
})
for tool_call in tool_calls:
function_name = tool_call.function.name
arguments = json.loads(tool_call.function.arguments)
if self.verbose:
display_tool_call(f"Agent {self.name} is calling function '{function_name}' with arguments: {arguments}")
tool_result = self.execute_tool(function_name, arguments)
results_str = json.dumps(tool_result) if tool_result else "Function returned an empty output"
if self.verbose:
display_tool_call(f"Function '{function_name}' returned: {results_str}")
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": results_str
})
if stream:
response_stream = client.chat.completions.create(
model=self.llm,
messages=messages,
temperature=temperature,
stream=True
)
full_response_text = ""
with Live(display_generating("", start_time), refresh_per_second=4) as live:
for chunk in response_stream:
if chunk.choices[0].delta.content:
full_response_text += chunk.choices[0].delta.content
live.update(display_generating(full_response_text, start_time))
final_response = client.chat.completions.create(
model=self.llm,
messages=messages,
temperature=temperature,
stream=False
)
return final_response
else:
if tool_calls:
final_response = client.chat.completions.create(
model=self.llm,
messages=messages,
temperature=temperature,
stream=False
)
return final_response
else:
return initial_response
except Exception as e:
display_error(f"Error in chat completion: {e}")
return None
def chat(self, prompt, temperature=0.2, tools=None, output_json=None):
if self.use_system_prompt:
system_prompt = f"""{self.backstory}\n
Your Role: {self.role}\n
Your Goal: {self.goal}
"""
else:
system_prompt = None
messages = []
if system_prompt:
messages.append({"role": "system", "content": system_prompt})
messages.extend(self.chat_history)
messages.append({"role": "user", "content": prompt})
final_response_text = None
reflection_count = 0
start_time = time.time()
while True:
try:
if self.verbose:
display_instruction(f"Agent {self.name} is processing prompt: {prompt}")
formatted_tools = []
if tools:
for tool in tools:
if isinstance(tool, dict):
formatted_tools.append(tool)
elif hasattr(tool, "to_openai_tool"):
formatted_tools.append(tool.to_openai_tool())
elif isinstance(tool, str):
formatted_tools.append({
"type": "function",
"function": {
"name": tool,
"description": f"This is a tool called {tool}",
"parameters": {
"type": "object",
"properties": {},
},
}
})
else:
display_error(f"Warning: Tool {tool} not recognized")
response = self._chat_completion(messages, temperature=temperature, tools=formatted_tools if formatted_tools else None)
if not response:
return None
tool_calls = getattr(response.choices[0].message, 'tool_calls', None)
if tool_calls:
messages.append({
"role": "assistant",
"content": response.choices[0].message.content,
"tool_calls": tool_calls
})
for tool_call in tool_calls:
function_name = tool_call.function.name
arguments = json.loads(tool_call.function.arguments)
if self.verbose:
display_tool_call(f"Agent {self.name} is calling function '{function_name}' with arguments: {arguments}")
tool_result = self.execute_tool(function_name, arguments)
if tool_result:
if self.verbose:
display_tool_call(f"Function '{function_name}' returned: {tool_result}")
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(tool_result)
})
else:
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": "Function returned an empty output"
})
response = self._chat_completion(messages, temperature=temperature)
if not response:
return None
response_text = response.choices[0].message.content.strip()
else:
response_text = response.choices[0].message.content.strip()
if not self.self_reflect:
self.chat_history.append({"role": "user", "content": prompt})
self.chat_history.append({"role": "assistant", "content": response_text})
if self.verbose:
logging.info(f"Agent {self.name} final response: {response_text}")
display_interaction(prompt, response_text, markdown=self.markdown, generation_time=time.time() - start_time)
return response_text
reflection_prompt = f"""
Reflect on your previous response: '{response_text}'.
Identify any flaws, improvements, or actions.
Provide a "satisfactory" status ('yes' or 'no').
Output MUST be JSON with 'reflection' and 'satisfactory'.
"""
logging.debug(f"{self.name} reflection attempt {reflection_count+1}, sending prompt: {reflection_prompt}")
messages.append({"role": "user", "content": reflection_prompt})
try:
reflection_response = client.beta.chat.completions.parse(
model=self.llm,
messages=messages,
temperature=temperature,
response_format=ReflectionOutput
)
reflection_output = reflection_response.choices[0].message.parsed
if self.verbose:
display_self_reflection(f"Agent {self.name} self reflection: reflection='{reflection_output.reflection}' satisfactory='{reflection_output.satisfactory}'")
messages.append({"role": "assistant", "content": f"Self Reflection: {reflection_output.reflection} Satisfactory?: {reflection_output.satisfactory}"})
if reflection_output.satisfactory == "yes":
if self.verbose:
display_self_reflection("Agent marked the response as satisfactory")
self.chat_history.append({"role": "assistant", "content": response_text})
display_interaction(prompt, response_text, markdown=self.markdown, generation_time=time.time() - start_time)
return response_text
logging.debug(f"{self.name} reflection not satisfactory, requesting regeneration.")
messages.append({"role": "user", "content": "Now regenerate your response using the reflection you made"})
response = self._chat_completion(messages, temperature=temperature, tools=None, stream=True)
response_text = response.choices[0].message.content.strip()
except Exception as e:
display_error(f"Error in parsing self-reflection json {e}. Retrying")
logging.error("Reflection parsing failed.", exc_info=True)
messages.append({"role": "assistant", "content": f"Self Reflection failed."})
reflection_count += 1
self.chat_history.append({"role": "user", "content": prompt})
self.chat_history.append({"role": "assistant", "content": response_text})
if self.verbose:
logging.info(f"Agent {self.name} final response: {response_text}")
display_interaction(prompt, response_text, markdown=self.markdown, generation_time=time.time() - start_time)
return response_text
except Exception as e:
display_error(f"Error in chat: {e}")
return None
@@ -0,0 +1,4 @@
"""Agents module for managing multiple AI agents"""
from .agents import PraisonAIAgents
__all__ = ['PraisonAIAgents']
+318
View File
@@ -0,0 +1,318 @@
import os
import time
import json
import logging
from typing import Any, Dict, Optional
from pydantic import BaseModel
from rich.text import Text
from rich.panel import Panel
from rich.console import Console
from ..main import display_error, TaskOutput, error_logs, client
from ..agent.agent import Agent
from ..task.task import Task
class PraisonAIAgents:
def __init__(self, agents, tasks, verbose=0, completion_checker=None, max_retries=5, process="sequential", manager_llm=None):
self.agents = agents
self.tasks = {}
if max_retries < 3:
max_retries = 3
self.completion_checker = completion_checker if completion_checker else self.default_completion_checker
self.task_id_counter = 0
self.verbose = verbose
self.max_retries = max_retries
self.process = process
self.manager_llm = manager_llm
for task in tasks:
self.add_task(task)
task.status = "not started"
def add_task(self, task):
task_id = self.task_id_counter
task.id = task_id
self.tasks[task_id] = task
self.task_id_counter += 1
return task_id
def clean_json_output(self, output: str) -> str:
cleaned = output.strip()
if cleaned.startswith("```json"):
cleaned = cleaned[len("```json"):].strip()
if cleaned.startswith("```"):
cleaned = cleaned[len("```"):].strip()
if cleaned.endswith("```"):
cleaned = cleaned[:-3].strip()
return cleaned
def default_completion_checker(self, task, agent_output):
if task.output_json and task.result and task.result.json_dict:
return True
if task.output_pydantic and task.result and task.result.pydantic:
return True
return len(agent_output.strip()) > 0
def execute_task(self, task_id):
if task_id not in self.tasks:
display_error(f"Error: Task with ID {task_id} does not exist")
return
task = self.tasks[task_id]
if task.status == "not started":
task.status = "in progress"
executor_agent = task.agent
task_prompt = f"""
You need to do the following task: {task.description}.
Expected Output: {task.expected_output}.
"""
if task.context:
context_results = ""
for context_task in task.context:
if context_task.result:
context_results += f"Result of previous task {context_task.name if context_task.name else context_task.description}: {context_task.result.raw}\n"
else:
context_results += f"Previous task {context_task.name if context_task.name else context_task.description} had no result.\n"
task_prompt += f"""
Here are the results of previous tasks that might be useful:\n
{context_results}
"""
task_prompt += "Please provide only the final result of your work. Do not add any conversation or extra explanation."
if self.verbose >= 2:
logging.info(f"Executing task {task_id}: {task.description} using {executor_agent.name}")
logging.debug(f"Starting execution of task {task_id} with prompt:\n{task_prompt}")
agent_output = executor_agent.chat(task_prompt, tools=task.tools)
if agent_output:
task_output = TaskOutput(
description=task.description,
summary=task.description[:10],
raw=agent_output,
agent=executor_agent.name,
output_format="RAW"
)
if task.output_json:
cleaned = self.clean_json_output(agent_output)
try:
parsed = json.loads(cleaned)
task_output.json_dict = parsed
task_output.output_format = "JSON"
except:
logging.warning(f"Warning: Could not parse output of task {task_id} as JSON")
logging.debug(f"Output that failed JSON parsing: {agent_output}")
if task.output_pydantic:
cleaned = self.clean_json_output(agent_output)
try:
parsed = json.loads(cleaned)
pyd_obj = task.output_pydantic(**parsed)
task_output.pydantic = pyd_obj
task_output.output_format = "Pydantic"
except:
logging.warning(f"Warning: Could not parse output of task {task_id} as Pydantic Model")
logging.debug(f"Output that failed Pydantic parsing: {agent_output}")
task.result = task_output
return task_output
else:
task.status = "failed"
return None
def save_output_to_file(self, task, task_output):
if task.output_file:
try:
if task.create_directory:
os.makedirs(os.path.dirname(task.output_file), exist_ok=True)
with open(task.output_file, "w") as f:
f.write(str(task_output))
if self.verbose >= 1:
logging.info(f"Task output saved to {task.output_file}")
except Exception as e:
display_error(f"Error saving task output to file: {e}")
def run_task(self, task_id):
if task_id not in self.tasks:
display_error(f"Error: Task with ID {task_id} does not exist")
return
task = self.tasks[task_id]
if task.status == "completed":
logging.info(f"Task with ID {task_id} is already completed")
return
retries = 0
while task.status != "completed" and retries < self.max_retries:
logging.debug(f"Attempt {retries+1} for task {task_id}")
if task.status in ["not started", "in progress"]:
task_output = self.execute_task(task_id)
if task_output and self.completion_checker(task, task_output.raw):
task.status = "completed"
if task.callback:
task.callback(task_output)
self.save_output_to_file(task, task_output)
if self.verbose >= 1:
logging.info(f"Task {task_id} completed successfully.")
else:
task.status = "in progress"
if self.verbose >= 1:
logging.info(f"Task {task_id} not completed, retrying")
time.sleep(1)
retries += 1
else:
if task.status == "failed":
logging.info("Task is failed, resetting to in-progress for another try...")
task.status = "in progress"
else:
logging.info("Invalid Task status")
break
if retries == self.max_retries and task.status != "completed":
logging.info(f"Task {task_id} failed after {self.max_retries} retries.")
def run_all_tasks(self):
if self.process == "sequential":
for task_id in self.tasks:
if self.tasks[task_id].status != "completed":
self.run_task(task_id)
elif self.process == "hierarchical":
logging.debug(f"Starting hierarchical task execution with {len(self.tasks)} tasks")
manager_agent = Agent(
name="Manager",
role="Project manager",
goal="Manage the entire flow of tasks and delegate them to the right agent",
backstory="Expert project manager to coordinate tasks among agents",
llm=self.manager_llm,
verbose=self.verbose,
markdown=True,
self_reflect=False
)
class ManagerInstructions(BaseModel):
task_id: int
agent_name: str
action: str
manager_task = Task(
name="manager_task",
description="Decide the order of tasks and which agent executes them",
expected_output="All tasks completed successfully",
agent=manager_agent
)
manager_task_id = self.add_task(manager_task)
logging.info(f"Created manager task with ID {manager_task_id}")
completed_count = 0
total_tasks = len(self.tasks) - 1
logging.info(f"Need to complete {total_tasks} tasks (excluding manager task)")
while completed_count < total_tasks:
tasks_summary = []
for tid, tk in self.tasks.items():
if tk.name == "manager_task":
continue
task_info = {
"task_id": tid,
"name": tk.name,
"description": tk.description,
"status": tk.status if tk.status else "not started",
"agent": tk.agent.name if tk.agent else "No agent"
}
tasks_summary.append(task_info)
logging.info(f"Task {tid} status: {task_info}")
manager_prompt = f"""
Here is the current status of all tasks except yours (manager_task):
{tasks_summary}
Provide a JSON with the structure:
{{
"task_id": <int>,
"agent_name": "<string>",
"action": "<execute or stop>"
}}
"""
try:
logging.info("Requesting manager instructions...")
manager_response = client.beta.chat.completions.parse(
model=self.manager_llm,
messages=[
{"role": "system", "content": manager_task.description},
{"role": "user", "content": manager_prompt}
],
temperature=0.7,
response_format=ManagerInstructions
)
parsed_instructions = manager_response.choices[0].message.parsed
logging.info(f"Manager instructions: {parsed_instructions}")
except Exception as e:
display_error(f"Manager parse error: {e}")
logging.error(f"Manager parse error: {str(e)}", exc_info=True)
break
selected_task_id = parsed_instructions.task_id
selected_agent_name = parsed_instructions.agent_name
action = parsed_instructions.action
logging.info(f"Manager selected task_id={selected_task_id}, agent={selected_agent_name}, action={action}")
if action.lower() == "stop":
logging.info("Manager decided to stop task execution")
break
if selected_task_id not in self.tasks:
error_msg = f"Manager selected invalid task id {selected_task_id}"
display_error(error_msg)
logging.error(error_msg)
break
original_agent = self.tasks[selected_task_id].agent.name if self.tasks[selected_task_id].agent else "None"
for a in self.agents:
if a.name == selected_agent_name:
self.tasks[selected_task_id].agent = a
logging.info(f"Changed agent for task {selected_task_id} from {original_agent} to {selected_agent_name}")
break
if self.tasks[selected_task_id].status != "completed":
logging.info(f"Starting execution of task {selected_task_id}")
self.run_task(selected_task_id)
logging.info(f"Finished execution of task {selected_task_id}, status: {self.tasks[selected_task_id].status}")
if self.tasks[selected_task_id].status == "completed":
completed_count += 1
logging.info(f"Task {selected_task_id} completed. Total completed: {completed_count}/{total_tasks}")
self.tasks[manager_task.id].status = "completed"
if self.verbose >= 1:
logging.info("All tasks completed under manager supervision.")
logging.info("Hierarchical task execution finished")
def get_task_status(self, task_id):
if task_id in self.tasks:
return self.tasks[task_id].status
return None
def get_all_tasks_status(self):
return {task_id: self.tasks[task_id].status for task_id in self.tasks}
def get_task_result(self, task_id):
if task_id in self.tasks:
return self.tasks[task_id].result
return None
def get_task_details(self, task_id):
if task_id in self.tasks:
return str(self.tasks[task_id])
return None
def get_agent_details(self, agent_name):
agent = [task.agent for task in self.tasks.values() if task.agent and task.agent.name == agent_name]
if agent:
return str(agent[0])
return None
def start(self):
self.run_all_tasks()
return {
"task_status": self.get_all_tasks_status(),
"task_results": {task_id: self.get_task_result(task_id) for task_id in self.tasks}
}
+112
View File
@@ -0,0 +1,112 @@
import os
import time
import json
import logging
from typing import List, Optional, Dict, Any, Union, Literal, Type
from openai import OpenAI
from pydantic import BaseModel
from rich import print
from rich.console import Console
from rich.panel import Panel
from rich.text import Text
from rich.markdown import Markdown
from rich.logging import RichHandler
from rich.live import Live
LOGLEVEL = os.environ.get('LOGLEVEL', 'INFO').upper()
logging.basicConfig(
level=getattr(logging, LOGLEVEL, logging.INFO),
format="%(asctime)s %(filename)s:%(lineno)d %(levelname)s %(message)s",
datefmt="[%X]",
handlers=[RichHandler(rich_tracebacks=True)]
)
# Global list to store error logs
error_logs = []
def display_interaction(message: str, response: str, markdown: bool = True, generation_time: Optional[float] = None):
console = Console()
if generation_time is not None:
console.print(Text(f"Response generated in {generation_time:.1f}s", style="dim"))
else:
console.print(Text("Response Generation Complete", style="dim"))
if markdown:
console.print(Panel.fit(Markdown(message), title="Message", border_style="cyan"))
console.print(Panel.fit(Markdown(response), title="Response", border_style="cyan"))
else:
console.print(Panel.fit(Text(message, style="bold green"), title="Message", border_style="cyan"))
console.print(Panel.fit(Text(response, style="bold white"), title="Response", border_style="cyan"))
def display_self_reflection(message: str):
console = Console()
console.print(Panel.fit(Text(message, style="bold yellow"), title="Self Reflection", border_style="magenta"))
def display_instruction(message: str):
console = Console()
console.print(Panel.fit(Text(message, style="bold blue"), title="Instruction", border_style="cyan"))
def display_tool_call(message: str):
console = Console()
console.print(Panel.fit(Text(message, style="bold cyan"), title="Tool Call", border_style="green"))
def display_error(message: str):
console = Console()
console.print(Panel.fit(Text(message, style="bold red"), title="Error", border_style="red"))
# Store errors
error_logs.append(message)
def display_generating(content: str = "", start_time: Optional[float] = None):
elapsed_str = ""
if start_time is not None:
elapsed = time.time() - start_time
elapsed_str = f" {elapsed:.1f}s"
return Panel(Markdown(content), title=f"Generating...{elapsed_str}", border_style="green")
def clean_triple_backticks(text: str) -> str:
"""Remove triple backticks and surrounding json fences from a string."""
cleaned = text.strip()
if cleaned.startswith("```json"):
cleaned = cleaned[len("```json"):].strip()
if cleaned.startswith("```"):
cleaned = cleaned[len("```"):].strip()
if cleaned.endswith("```"):
cleaned = cleaned[:-3].strip()
return cleaned
class ReflectionOutput(BaseModel):
reflection: str
satisfactory: Literal["yes", "no"]
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
class TaskOutput(BaseModel):
description: str
summary: Optional[str] = None
raw: str
pydantic: Optional[BaseModel] = None
json_dict: Optional[Dict[str, Any]] = None
agent: str
output_format: Literal["RAW", "JSON", "Pydantic"] = "RAW"
def json(self) -> Optional[str]:
if self.output_format == "JSON" and self.json_dict:
return json.dumps(self.json_dict)
return None
def to_dict(self) -> dict:
output_dict = {}
if self.json_dict:
output_dict.update(self.json_dict)
if self.pydantic:
output_dict.update(self.pydantic.model_dump())
return output_dict
def __str__(self):
if self.pydantic:
return str(self.pydantic)
elif self.json_dict:
return json.dumps(self.json_dict)
else:
return self.raw
+4
View File
@@ -0,0 +1,4 @@
"""Task module for AI agent tasks"""
from .task import Task
__all__ = ['Task']
+48
View File
@@ -0,0 +1,48 @@
import logging
from typing import List, Optional, Dict, Any, Type
from pydantic import BaseModel
from ..main import TaskOutput
from ..agent.agent import Agent
class Task:
def __init__(
self,
description: str,
expected_output: str,
agent: Optional[Agent] = None,
name: Optional[str] = None,
tools: Optional[List[Any]] = None,
context: Optional[List["Task"]] = None,
async_execution: Optional[bool] = False,
config: Optional[Dict[str, Any]] = None,
output_file: Optional[str] = None,
output_json: Optional[Type[BaseModel]] = None,
output_pydantic: Optional[Type[BaseModel]] = None,
callback: Optional[Any] = None,
status: str = "not started",
result: Optional[TaskOutput] = None,
create_directory: Optional[bool] = False,
id: Optional[int] = None
):
self.description = description
self.expected_output = expected_output
self.name = name
self.agent = agent
self.tools = tools if tools else []
self.context = context if context else []
self.async_execution = async_execution
self.config = config if config else {}
self.output_file = output_file
self.output_json = output_json
self.output_pydantic = output_pydantic
self.callback = callback
self.status = status
self.result = result
self.create_directory = create_directory
self.id = id
if self.output_json and self.output_pydantic:
raise ValueError("Only one output type can be defined")
def __str__(self):
return f"Task(name='{self.name if self.name else 'None'}', description='{self.description}', agent='{self.agent.name if self.agent else 'None'}', status='{self.status}')"
+16
View File
@@ -0,0 +1,16 @@
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "praisonaiagents"
version = "0.0.4"
description = "Praison AI agents for completing complex tasks with Self Reflection Agents"
authors = [
{ name="Mervin Praison" }
]
dependencies = [
"pydantic",
"rich",
"openai"
]
+321
View File
@@ -0,0 +1,321 @@
version = 1
requires-python = ">=3.11"
[[package]]
name = "annotated-types"
version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 },
]
[[package]]
name = "anyio"
version = "4.7.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "idna" },
{ name = "sniffio" },
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f6/40/318e58f669b1a9e00f5c4453910682e2d9dd594334539c7b7817dabb765f/anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48", size = 177076 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352", size = 93052 },
]
[[package]]
name = "certifi"
version = "2024.12.14"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
]
[[package]]
name = "colorama"
version = "0.4.6"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
]
[[package]]
name = "distro"
version = "1.9.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 },
]
[[package]]
name = "h11"
version = "0.14.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
]
[[package]]
name = "httpcore"
version = "1.0.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" },
{ name = "h11" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
]
[[package]]
name = "httpx"
version = "0.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
{ name = "certifi" },
{ name = "httpcore" },
{ name = "idna" },
]
sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 },
]
[[package]]
name = "idna"
version = "3.10"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
]
[[package]]
name = "jiter"
version = "0.8.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f8/70/90bc7bd3932e651486861df5c8ffea4ca7c77d28e8532ddefe2abc561a53/jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d", size = 163007 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/cb/b0/c1a7caa7f9dc5f1f6cfa08722867790fe2d3645d6e7170ca280e6e52d163/jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b", size = 303666 },
{ url = "https://files.pythonhosted.org/packages/f5/97/0468bc9eeae43079aaa5feb9267964e496bf13133d469cfdc135498f8dd0/jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15", size = 311934 },
{ url = "https://files.pythonhosted.org/packages/e5/69/64058e18263d9a5f1e10f90c436853616d5f047d997c37c7b2df11b085ec/jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0", size = 335506 },
{ url = "https://files.pythonhosted.org/packages/9d/14/b747f9a77b8c0542141d77ca1e2a7523e854754af2c339ac89a8b66527d6/jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f", size = 355849 },
{ url = "https://files.pythonhosted.org/packages/53/e2/98a08161db7cc9d0e39bc385415890928ff09709034982f48eccfca40733/jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099", size = 381700 },
{ url = "https://files.pythonhosted.org/packages/7a/38/1674672954d35bce3b1c9af99d5849f9256ac8f5b672e020ac7821581206/jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74", size = 389710 },
{ url = "https://files.pythonhosted.org/packages/f8/9b/92f9da9a9e107d019bcf883cd9125fa1690079f323f5a9d5c6986eeec3c0/jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586", size = 345553 },
{ url = "https://files.pythonhosted.org/packages/44/a6/6d030003394e9659cd0d7136bbeabd82e869849ceccddc34d40abbbbb269/jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc", size = 376388 },
{ url = "https://files.pythonhosted.org/packages/ad/8d/87b09e648e4aca5f9af89e3ab3cfb93db2d1e633b2f2931ede8dabd9b19a/jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88", size = 511226 },
{ url = "https://files.pythonhosted.org/packages/77/95/8008ebe4cdc82eac1c97864a8042ca7e383ed67e0ec17bfd03797045c727/jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6", size = 504134 },
{ url = "https://files.pythonhosted.org/packages/26/0d/3056a74de13e8b2562e4d526de6dac2f65d91ace63a8234deb9284a1d24d/jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44", size = 203103 },
{ url = "https://files.pythonhosted.org/packages/4e/1e/7f96b798f356e531ffc0f53dd2f37185fac60fae4d6c612bbbd4639b90aa/jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855", size = 206717 },
{ url = "https://files.pythonhosted.org/packages/a1/17/c8747af8ea4e045f57d6cfd6fc180752cab9bc3de0e8a0c9ca4e8af333b1/jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f", size = 302027 },
{ url = "https://files.pythonhosted.org/packages/3c/c1/6da849640cd35a41e91085723b76acc818d4b7d92b0b6e5111736ce1dd10/jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44", size = 310326 },
{ url = "https://files.pythonhosted.org/packages/06/99/a2bf660d8ccffee9ad7ed46b4f860d2108a148d0ea36043fd16f4dc37e94/jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f", size = 334242 },
{ url = "https://files.pythonhosted.org/packages/a7/5f/cea1c17864828731f11427b9d1ab7f24764dbd9aaf4648a7f851164d2718/jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60", size = 356654 },
{ url = "https://files.pythonhosted.org/packages/e9/13/62774b7e5e7f5d5043efe1d0f94ead66e6d0f894ae010adb56b3f788de71/jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57", size = 379967 },
{ url = "https://files.pythonhosted.org/packages/ec/fb/096b34c553bb0bd3f2289d5013dcad6074948b8d55212aa13a10d44c5326/jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e", size = 389252 },
{ url = "https://files.pythonhosted.org/packages/17/61/beea645c0bf398ced8b199e377b61eb999d8e46e053bb285c91c3d3eaab0/jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887", size = 345490 },
{ url = "https://files.pythonhosted.org/packages/d5/df/834aa17ad5dcc3cf0118821da0a0cf1589ea7db9832589278553640366bc/jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d", size = 376991 },
{ url = "https://files.pythonhosted.org/packages/67/80/87d140399d382fb4ea5b3d56e7ecaa4efdca17cd7411ff904c1517855314/jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152", size = 510822 },
{ url = "https://files.pythonhosted.org/packages/5c/37/3394bb47bac1ad2cb0465601f86828a0518d07828a650722e55268cdb7e6/jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29", size = 503730 },
{ url = "https://files.pythonhosted.org/packages/f9/e2/253fc1fa59103bb4e3aa0665d6ceb1818df1cd7bf3eb492c4dad229b1cd4/jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e", size = 203375 },
{ url = "https://files.pythonhosted.org/packages/41/69/6d4bbe66b3b3b4507e47aa1dd5d075919ad242b4b1115b3f80eecd443687/jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c", size = 204740 },
{ url = "https://files.pythonhosted.org/packages/6c/b0/bfa1f6f2c956b948802ef5a021281978bf53b7a6ca54bb126fd88a5d014e/jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84", size = 301190 },
{ url = "https://files.pythonhosted.org/packages/a4/8f/396ddb4e292b5ea57e45ade5dc48229556b9044bad29a3b4b2dddeaedd52/jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4", size = 309334 },
{ url = "https://files.pythonhosted.org/packages/7f/68/805978f2f446fa6362ba0cc2e4489b945695940656edd844e110a61c98f8/jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587", size = 333918 },
{ url = "https://files.pythonhosted.org/packages/b3/99/0f71f7be667c33403fa9706e5b50583ae5106d96fab997fa7e2f38ee8347/jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c", size = 356057 },
{ url = "https://files.pythonhosted.org/packages/8d/50/a82796e421a22b699ee4d2ce527e5bcb29471a2351cbdc931819d941a167/jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18", size = 379790 },
{ url = "https://files.pythonhosted.org/packages/3c/31/10fb012b00f6d83342ca9e2c9618869ab449f1aa78c8f1b2193a6b49647c/jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6", size = 388285 },
{ url = "https://files.pythonhosted.org/packages/c8/81/f15ebf7de57be488aa22944bf4274962aca8092e4f7817f92ffa50d3ee46/jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef", size = 344764 },
{ url = "https://files.pythonhosted.org/packages/b3/e8/0cae550d72b48829ba653eb348cdc25f3f06f8a62363723702ec18e7be9c/jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1", size = 376620 },
{ url = "https://files.pythonhosted.org/packages/b8/50/e5478ff9d82534a944c03b63bc217c5f37019d4a34d288db0f079b13c10b/jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9", size = 510402 },
{ url = "https://files.pythonhosted.org/packages/8e/1e/3de48bbebbc8f7025bd454cedc8c62378c0e32dd483dece5f4a814a5cb55/jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05", size = 503018 },
{ url = "https://files.pythonhosted.org/packages/d5/cd/d5a5501d72a11fe3e5fd65c78c884e5164eefe80077680533919be22d3a3/jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a", size = 203190 },
{ url = "https://files.pythonhosted.org/packages/51/bf/e5ca301245ba951447e3ad677a02a64a8845b185de2603dabd83e1e4b9c6/jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865", size = 203551 },
{ url = "https://files.pythonhosted.org/packages/2f/3c/71a491952c37b87d127790dd7a0b1ebea0514c6b6ad30085b16bbe00aee6/jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca", size = 308347 },
{ url = "https://files.pythonhosted.org/packages/a0/4c/c02408042e6a7605ec063daed138e07b982fdb98467deaaf1c90950cf2c6/jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0", size = 342875 },
{ url = "https://files.pythonhosted.org/packages/91/61/c80ef80ed8a0a21158e289ef70dac01e351d929a1c30cb0f49be60772547/jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566", size = 202374 },
]
[[package]]
name = "markdown-it-py"
version = "3.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "mdurl" },
]
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 },
]
[[package]]
name = "mdurl"
version = "0.1.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
]
[[package]]
name = "openai"
version = "1.58.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
{ name = "distro" },
{ name = "httpx" },
{ name = "jiter" },
{ name = "pydantic" },
{ name = "sniffio" },
{ name = "tqdm" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/27/3c/b1ecce430ed56fa3ac1b0676966d3250aab9c70a408232b71e419ea62148/openai-1.58.1.tar.gz", hash = "sha256:f5a035fd01e141fc743f4b0e02c41ca49be8fab0866d3b67f5f29b4f4d3c0973", size = 343411 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8e/5a/d22cd07f1a99b9e8b3c92ee0c1959188db4318828a3d88c9daac120bdd69/openai-1.58.1-py3-none-any.whl", hash = "sha256:e2910b1170a6b7f88ef491ac3a42c387f08bd3db533411f7ee391d166571d63c", size = 454279 },
]
[[package]]
name = "praisonaiagents"
version = "0.0.4"
source = { editable = "." }
dependencies = [
{ name = "openai" },
{ name = "pydantic" },
{ name = "rich" },
]
[package.metadata]
requires-dist = [
{ name = "openai" },
{ name = "pydantic" },
{ name = "rich" },
]
[[package]]
name = "pydantic"
version = "2.10.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "annotated-types" },
{ name = "pydantic-core" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/70/7e/fb60e6fee04d0ef8f15e4e01ff187a196fa976eb0f0ab524af4599e5754c/pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06", size = 762094 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d", size = 431765 },
]
[[package]]
name = "pydantic-core"
version = "2.27.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421 },
{ url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998 },
{ url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167 },
{ url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071 },
{ url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244 },
{ url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470 },
{ url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291 },
{ url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613 },
{ url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355 },
{ url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661 },
{ url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261 },
{ url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361 },
{ url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484 },
{ url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102 },
{ url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 },
{ url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 },
{ url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 },
{ url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 },
{ url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 },
{ url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 },
{ url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 },
{ url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 },
{ url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 },
{ url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 },
{ url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 },
{ url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 },
{ url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 },
{ url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 },
{ url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 },
{ url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 },
{ url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 },
{ url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888 },
{ url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738 },
{ url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138 },
{ url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025 },
{ url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633 },
{ url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404 },
{ url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130 },
{ url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946 },
{ url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 },
{ url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 },
{ url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 },
]
[[package]]
name = "pygments"
version = "2.18.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
]
[[package]]
name = "rich"
version = "13.9.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "markdown-it-py" },
{ name = "pygments" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 },
]
[[package]]
name = "sniffio"
version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
[[package]]
name = "tqdm"
version = "4.67.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "platform_system == 'Windows'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 },
]
[[package]]
name = "typing-extensions"
version = "4.12.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
]
+1 -1
View File
@@ -110,7 +110,7 @@ Loads environment variables from .env file or system and sets them.</p>
file.write(&#34;FROM python:3.11-slim\n&#34;)
file.write(&#34;WORKDIR /app\n&#34;)
file.write(&#34;COPY . .\n&#34;)
file.write(&#34;RUN pip install flask praisonai==1.0.2 gunicorn markdown\n&#34;)
file.write(&#34;RUN pip install flask praisonai==2.0.9 gunicorn markdown\n&#34;)
file.write(&#34;EXPOSE 8080\n&#34;)
file.write(&#39;CMD [&#34;gunicorn&#34;, &#34;-b&#34;, &#34;0.0.0.0:8080&#34;, &#34;api:app&#34;]\n&#39;)
+89 -3
View File
@@ -22,11 +22,24 @@ pip install "praisonai[chat]"
export OPENAI_API_KEY=xxxxxxxx
```
3. Launch PraisonAI Chat:
3. Set up your Database URL:
```bash
export DATABASE_URL=postgresql+asyncpg://<username>:<password>@<your-db-instance-url>/<database-name>
```
4. Launch PraisonAI Chat:
```bash
praisonai chat
```
4. Set Model name to be gpt-4o-mini in the settings
5. URL : http://localhost:8084/
6. Username: admin
7. Password: admin
8. Set Model name to be gpt-4o-mini in the settings
## Key Features
@@ -43,4 +56,77 @@ To use this feature:
2. Ask questions or request analysis based on the uploaded image
3. The VLM will process the image and provide insights or answers based on its visual content
These new features significantly expand the capabilities of PraisonAI Chat, allowing for more diverse and informative interactions.
These new features significantly expand the capabilities of PraisonAI Chat, allowing for more diverse and informative interactions.
## Custom Database
PraisonAI Chat supports custom database configurations, allowing you to use PostgreSQL or other databases instead of the default SQLite database. This is particularly useful for production environments or when you need more advanced database features.
### PostgreSQL Configuration
To use PostgreSQL as your database backend:
1. **Install Required Dependencies**
For local development:
```bash
pip install asyncpg
```
For Replit:
- Open the "Packages" tab in the Tools section
- Search for and install:
- `python3-dev`
- `libpq-dev`
- Then install Python packages:
```bash
pip install asyncpg
```
2. **Set Environment Variables**
Add these variables to your `.env` file or Replit Secrets:
```bash
DATABASE_URL=postgresql+asyncpg://<username>:<password>@<your-db-instance-url>/<database-name>
DATABASE_SSL=true # Required for most cloud PostgreSQL services
```
For Replit:
- Click on "Tools" in the left sidebar
- Select "Secrets"
- Add your database configuration as `DATABASE_URL`
3. **Database Tables**
The application will automatically:
- Detect PostgreSQL connections
- Create all necessary tables if they don't exist
- Set up proper indexes and constraints
- Handle table creation errors
4. **Cloud Database Services**
For Replit, we recommend using cloud database services that provide free tiers:
- [Neon](https://neon.tech) (Recommended)
- [Supabase](https://supabase.com)
- [ElephantSQL](https://www.elephantsql.com)
These services provide:
- Free PostgreSQL hosting
- Automatic SSL configuration
- Connection string ready to use
### Default Configuration
If no `DATABASE_URL` is provided, PraisonAI Chat will automatically use SQLite with the following default configuration:
```bash
DATABASE_URL=sqlite+aiosqlite:///{HOME}/.praison/database.sqlite
```
### Supported Database Types
PraisonAI Chat supports various database backends through SQLAlchemy:
- PostgreSQL (recommended for production)
- MySQL/MariaDB
- SQLite (default)
- Oracle
- Microsoft SQL Server
For other database types, refer to the SQLAlchemy documentation for the correct connection string format.
Generated
+456 -430
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -3,7 +3,7 @@ class Praisonai < Formula
desc "AI tools for various AI applications"
homepage "https://github.com/MervinPraison/PraisonAI"
url "https://github.com/MervinPraison/PraisonAI/archive/refs/tags/1.0.2.tar.gz"
url "https://github.com/MervinPraison/PraisonAI/archive/refs/tags/2.0.9.tar.gz"
sha256 "1828fb9227d10f991522c3f24f061943a254b667196b40b1a3e4a54a8d30ce32" # Replace with actual SHA256 checksum
license "MIT"
+145 -4
View File
@@ -20,6 +20,13 @@ CREWAI_AVAILABLE = False
AUTOGEN_AVAILABLE = False
PRAISONAI_TOOLS_AVAILABLE = False
AGENTOPS_AVAILABLE = False
PRAISONAI_AVAILABLE = False
try:
from praisonaiagents import Agent as PraisonAgent, Task as PraisonTask, PraisonAIAgents
PRAISONAI_AVAILABLE = True
except ImportError:
pass
try:
from crewai import Agent, Task, Crew
@@ -37,11 +44,14 @@ except ImportError:
try:
import agentops
AGENTOPS_AVAILABLE = True
AGENTOPS_API_KEY = os.getenv("AGENTOPS_API_KEY")
if not AGENTOPS_API_KEY:
AGENTOPS_AVAILABLE = False
except ImportError:
pass
# Only try to import praisonai_tools if either CrewAI or AutoGen is available
if CREWAI_AVAILABLE or AUTOGEN_AVAILABLE:
if CREWAI_AVAILABLE or AUTOGEN_AVAILABLE or PRAISONAI_AVAILABLE:
try:
from praisonai_tools import (
CodeDocsSearchTool, CSVSearchTool, DirectorySearchTool, DOCXSearchTool, DirectoryReadTool,
@@ -115,6 +125,8 @@ class AgentsGenerator:
raise ImportError("CrewAI is not installed. Please install it with 'pip install praisonai[crewai]'")
elif framework == "autogen" and not AUTOGEN_AVAILABLE:
raise ImportError("AutoGen is not installed. Please install it with 'pip install praisonai[autogen]'")
elif framework == "praisonai" and not PRAISONAI_AVAILABLE:
raise ImportError("PraisonAI is not installed. Please install it with 'pip install praisonaiagents'")
def is_function_or_decorated(self, obj):
"""
@@ -221,7 +233,7 @@ class AgentsGenerator:
tools_dict = {}
# Only try to use praisonai_tools if it's available and needed
if PRAISONAI_TOOLS_AVAILABLE and (CREWAI_AVAILABLE or AUTOGEN_AVAILABLE):
if PRAISONAI_TOOLS_AVAILABLE and (CREWAI_AVAILABLE or AUTOGEN_AVAILABLE or PRAISONAI_AVAILABLE):
tools_dict = {
'CodeDocsSearchTool': CodeDocsSearchTool(),
'CSVSearchTool': CSVSearchTool(),
@@ -266,13 +278,19 @@ class AgentsGenerator:
if not AUTOGEN_AVAILABLE:
raise ImportError("AutoGen is not installed. Please install it with 'pip install praisonai[autogen]'")
if AGENTOPS_AVAILABLE:
agentops.init(os.environ.get("AGENTOPS_API_KEY"), tags=["autogen"])
agentops.init(os.environ.get("AGENTOPS_API_KEY"), default_tags=["autogen"])
return self._run_autogen(config, topic, tools_dict)
elif framework == "praisonai":
if not PRAISONAI_AVAILABLE:
raise ImportError("PraisonAI is not installed. Please install it with 'pip install praisonaiagents'")
if AGENTOPS_AVAILABLE:
agentops.init(os.environ.get("AGENTOPS_API_KEY"), default_tags=["praisonai"])
return self._run_praisonai(config, topic, tools_dict)
else: # framework=crewai
if not CREWAI_AVAILABLE:
raise ImportError("CrewAI is not installed. Please install it with 'pip install praisonai[crewai]'")
if AGENTOPS_AVAILABLE:
agentops.init(os.environ.get("AGENTOPS_API_KEY"), tags=["crewai"])
agentops.init(os.environ.get("AGENTOPS_API_KEY"), default_tags=["crewai"])
return self._run_crewai(config, topic, tools_dict)
def _run_autogen(self, config, topic, tools_dict):
@@ -472,3 +490,126 @@ class AgentsGenerator:
return result
def _run_praisonai(self, config, topic, tools_dict):
"""
Run agents using the PraisonAI framework.
"""
agents = {}
tasks = []
tasks_dict = {}
# Create agents from config
for role, details in config['roles'].items():
role_filled = details['role'].format(topic=topic)
goal_filled = details['goal'].format(topic=topic)
backstory_filled = details['backstory'].format(topic=topic)
# Get agent tools
agent_tools = [tools_dict[tool] for tool in details.get('tools', [])
if tool in tools_dict]
# Configure LLM
llm_model = details.get('llm')
if llm_model:
llm = llm_model.get("model", os.environ.get("MODEL_NAME", "gpt-4o"))
else:
llm = os.environ.get("MODEL_NAME", "gpt-4o")
# Configure function calling LLM
function_calling_llm_model = details.get('function_calling_llm')
if function_calling_llm_model:
function_calling_llm = function_calling_llm_model.get("model", os.environ.get("MODEL_NAME", "openai/gpt-4o"))
else:
function_calling_llm = os.environ.get("MODEL_NAME", "gpt-4o")
# Create PraisonAI agent
agent = PraisonAgent(
name=role_filled,
role=role_filled,
goal=goal_filled,
backstory=backstory_filled,
tools=agent_tools,
allow_delegation=details.get('allow_delegation', False),
llm=llm,
function_calling_llm=function_calling_llm,
max_iter=details.get('max_iter', 15),
max_rpm=details.get('max_rpm'),
max_execution_time=details.get('max_execution_time'),
verbose=details.get('verbose', True),
cache=details.get('cache', True),
system_template=details.get('system_template'),
prompt_template=details.get('prompt_template'),
response_template=details.get('response_template'),
)
# Set agent callback if provided
if self.agent_callback:
agent.step_callback = self.agent_callback
agents[role] = agent
# Create tasks for the agent
for task_name, task_details in details.get('tasks', {}).items():
description_filled = task_details['description'].format(topic=topic)
expected_output_filled = task_details['expected_output'].format(topic=topic)
# Create task using PraisonAI Task class
task = PraisonTask(
description=description_filled,
expected_output=expected_output_filled,
agent=agent,
tools=task_details.get('tools', []),
async_execution=task_details.get('async_execution', False),
context=[],
config=task_details.get('config', {}),
output_json=task_details.get('output_json'),
output_pydantic=task_details.get('output_pydantic'),
output_file=task_details.get('output_file', ""),
callback=task_details.get('callback'),
create_directory=task_details.get('create_directory', False)
)
# Set task callback if provided
if self.task_callback:
task.callback = self.task_callback
tasks.append(task)
tasks_dict[task_name] = task
# Set up task contexts
for role, details in config['roles'].items():
for task_name, task_details in details.get('tasks', {}).items():
task = tasks_dict[task_name]
context_tasks = [tasks_dict[ctx] for ctx in task_details.get('context', [])
if ctx in tasks_dict]
task.context = context_tasks
# Create and run the PraisonAI agents
if config.get('process') == 'hierarchical':
agents = PraisonAIAgents(
agents=list(agents.values()),
tasks=tasks,
verbose=True,
process="hierarchical",
manager_llm=config.get('manager_llm', 'gpt-4o'),
)
else:
agents = PraisonAIAgents(
agents=list(agents.values()),
tasks=tasks,
verbose=2
)
self.logger.debug("Final Configuration:")
self.logger.debug(f"Agents: {agents.agents}")
self.logger.debug(f"Tasks: {agents.tasks}")
response = agents.start()
# result = f"### Task Output ###\n{response}"
self.logger.debug(f"Result: {response}")
result = ""
if AGENTOPS_AVAILABLE:
agentops.end_session("Success")
return result
+13 -1
View File
@@ -12,6 +12,13 @@ import logging
CREWAI_AVAILABLE = False
AUTOGEN_AVAILABLE = False
PRAISONAI_TOOLS_AVAILABLE = False
PRAISONAI_AVAILABLE = False
try:
from praisonaiagents import Agent as PraisonAgent, Task as PraisonTask, PraisonAIAgents
PRAISONAI_AVAILABLE = True
except ImportError:
pass
try:
from crewai import Agent, Task, Crew
@@ -71,6 +78,11 @@ CrewAI is not installed. Please install with:
AutoGen is not installed. Please install with:
pip install "praisonai[autogen]"
""")
elif framework == "praisonai" and not PRAISONAI_AVAILABLE:
raise ImportError("""
Praisonai is not installed. Please install with:
pip install praisonaiagents
""")
# Only show tools message if using a framework and tools are needed
if (framework in ["crewai", "autogen"]) and not PRAISONAI_TOOLS_AVAILABLE:
@@ -88,7 +100,7 @@ Tools are not available for {framework}. To use tools, install:
]
self.topic = topic
self.agent_file = agent_file
self.framework = framework or "crewai"
self.framework = framework or "praisonai"
self.client = instructor.patch(
OpenAI(
base_url=self.config_list[0]['base_url'],
+19 -13
View File
@@ -24,11 +24,19 @@ GRADIO_AVAILABLE = False
CALL_MODULE_AVAILABLE = False
CREWAI_AVAILABLE = False
AUTOGEN_AVAILABLE = False
PRAISONAI_AVAILABLE = False
try:
# Set CHAINLIT_APP_ROOT only if it doesn't exist
# Create necessary directories and set CHAINLIT_APP_ROOT
if "CHAINLIT_APP_ROOT" not in os.environ:
os.environ["CHAINLIT_APP_ROOT"] = os.path.join(os.path.expanduser("~"), ".praison")
chainlit_root = os.path.join(os.path.expanduser("~"), ".praison")
os.environ["CHAINLIT_APP_ROOT"] = chainlit_root
else:
chainlit_root = os.environ["CHAINLIT_APP_ROOT"]
os.makedirs(chainlit_root, exist_ok=True)
os.makedirs(os.path.join(chainlit_root, ".files"), exist_ok=True)
from chainlit.cli import chainlit_run
CHAINLIT_AVAILABLE = True
except ImportError:
@@ -58,6 +66,12 @@ try:
except ImportError:
pass
try:
from praisonaiagents import Agent as PraisonAgent, Task as PraisonTask, PraisonAIAgents
PRAISONAI_AVAILABLE = True
except ImportError:
pass
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'), format='%(asctime)s - %(levelname)s - %(message)s')
def stream_subprocess(command, env=None):
@@ -266,7 +280,7 @@ class PraisonAI:
Parse the command-line arguments for the PraisonAI CLI.
"""
parser = argparse.ArgumentParser(prog="praisonai", description="praisonAI command-line interface")
parser.add_argument("--framework", choices=["crewai", "autogen"], help="Specify the framework")
parser.add_argument("--framework", choices=["crewai", "autogen", "praisonai"], help="Specify the framework")
parser.add_argument("--ui", choices=["chainlit", "gradio"], help="Specify the UI framework (gradio or chainlit).")
parser.add_argument("--auto", nargs=argparse.REMAINDER, help="Enable auto mode and pass arguments for it")
parser.add_argument("--init", nargs=argparse.REMAINDER, help="Initialize agents with optional topic")
@@ -374,11 +388,12 @@ class PraisonAI:
# Only check framework availability for agent-related operations
if not args.command and (args.init or args.auto or args.framework):
if not CREWAI_AVAILABLE and not AUTOGEN_AVAILABLE:
if not CREWAI_AVAILABLE and not AUTOGEN_AVAILABLE and not PRAISONAI_AVAILABLE:
print("[red]ERROR: No framework is installed. Please install at least one framework:[/red]")
print("\npip install \"praisonai\\[crewai]\" # For CrewAI")
print("pip install \"praisonai\\[autogen]\" # For AutoGen")
print("pip install \"praisonai\\[crewai,autogen]\" # For both frameworks\n")
print("pip install praisonaiagents # For PraisonAIAgents\n")
sys.exit(1)
return args
@@ -393,15 +408,6 @@ class PraisonAI:
root_path = os.path.join(os.path.expanduser("~"), ".praison")
if "CHAINLIT_APP_ROOT" not in os.environ:
os.environ["CHAINLIT_APP_ROOT"] = root_path
public_folder = os.path.join(os.path.dirname(praisonai.__file__), 'public')
if not os.path.exists(os.path.join(root_path, "public")):
if os.path.exists(public_folder):
shutil.copytree(public_folder, os.path.join(root_path, "public"), dirs_exist_ok=True)
logging.info("Public folder copied successfully!")
else:
logging.info("Public folder not found in the package.")
else:
logging.info("Public folder already exists.")
chat_ui_path = os.path.join(os.path.dirname(praisonai.__file__), 'ui', 'chat.py')
chainlit_run([chat_ui_path])
else:
+1 -1
View File
@@ -56,7 +56,7 @@ class CloudDeployer:
file.write("FROM python:3.11-slim\n")
file.write("WORKDIR /app\n")
file.write("COPY . .\n")
file.write("RUN pip install flask praisonai==1.0.2 gunicorn markdown\n")
file.write("RUN pip install flask praisonai==2.0.9 gunicorn markdown\n")
file.write("EXPOSE 8080\n")
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
+21
View File
@@ -0,0 +1,21 @@
# Changes to DB
The following columns are renamed or modified between the first and second versions of the code:
| Table Name | Original Column Name | New Column Name |
|-------------|----------------------------|--------------------|
| `users` | `metadata` | `meta` |
| `users` | `created_at` | `createdAt` |
| `threads` | `metadata` | `meta` |
| `threads` | `created_at` | `createdAt` |
| `steps` | `metadata` | `meta` |
| `steps` | `start_time` | `startTime` |
| `steps` | `end_time` | `endTime` |
| `elements` | `metadata` | (Removed) |
Key changes:
1. The `metadata` column in several tables is renamed to `meta`.
2. Timestamps (`created_at`, `start_time`, and `end_time`) are renamed to PascalCase (`createdAt`, `startTime`, and `endTime`).
3. Some columns are removed (e.g., `metadata` in `elements`).
These changes make the column names consistent and follow a specific naming convention.
+91 -233
View File
@@ -1,211 +1,83 @@
import chainlit as cl
from chainlit.input_widget import TextInput
from chainlit.types import ThreadDict # Change this import
from litellm import acompletion
# Standard library imports
import os
import sqlite3
from datetime import datetime
from typing import Dict, List, Optional
from dotenv import load_dotenv
load_dotenv()
import chainlit.data as cl_data
from chainlit.step import StepDict
from literalai.helper import utc_now
from typing import Dict, Optional
import logging
import json
from sql_alchemy import SQLAlchemyDataLayer
from tavily import TavilyClient
from crawl4ai import AsyncWebCrawler
import asyncio
from PIL import Image
import io
import base64
# Set up logging
# Third-party imports
from dotenv import load_dotenv
from PIL import Image
from tavily import TavilyClient
from crawl4ai import AsyncWebCrawler
# Local application/library imports
import chainlit as cl
from chainlit.input_widget import TextInput
from chainlit.types import ThreadDict
import chainlit.data as cl_data
from litellm import acompletion
from literalai.helper import utc_now
from db import DatabaseManager
# Load environment variables
load_dotenv()
# Logging configuration
logger = logging.getLogger(__name__)
log_level = os.getenv("LOGLEVEL", "INFO").upper()
logger.handlers = []
# Set up logging to console
console_handler = logging.StreamHandler()
console_handler.setLevel(log_level)
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
# Set the logging level for the logger
logger.setLevel(log_level)
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
if not CHAINLIT_AUTH_SECRET:
os.environ["CHAINLIT_AUTH_SECRET"] = "p8BPhQChpg@J>jBz$wGxqLX2V>yTVgP*7Ky9H$aV:axW~ANNX-7_T:o@lnyCBu^U"
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
now = utc_now()
create_step_counter = 0
DB_PATH = os.path.expanduser("~/.praison/database.sqlite")
def initialize_db():
os.makedirs(os.path.dirname(DB_PATH), exist_ok=True)
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY,
identifier TEXT NOT NULL UNIQUE,
metadata JSONB NOT NULL,
createdAt TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS threads (
id UUID PRIMARY KEY,
createdAt TEXT,
name TEXT,
userId UUID,
userIdentifier TEXT,
tags TEXT[],
metadata JSONB NOT NULL DEFAULT '{}',
FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS steps (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
type TEXT NOT NULL,
threadId UUID NOT NULL,
parentId UUID,
disableFeedback BOOLEAN NOT NULL DEFAULT 0,
streaming BOOLEAN NOT NULL DEFAULT 0,
waitForAnswer BOOLEAN DEFAULT 0,
isError BOOLEAN NOT NULL DEFAULT 0,
metadata JSONB DEFAULT '{}',
tags TEXT[],
input TEXT,
output TEXT,
createdAt TEXT,
start TEXT,
end TEXT,
generation JSONB,
showInput TEXT,
language TEXT,
indent INT,
FOREIGN KEY (threadId) REFERENCES threads (id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS elements (
id UUID PRIMARY KEY,
threadId UUID,
type TEXT,
url TEXT,
chainlitKey TEXT,
name TEXT NOT NULL,
display TEXT,
objectKey TEXT,
size TEXT,
page INT,
language TEXT,
forId UUID,
mime TEXT,
FOREIGN KEY (threadId) REFERENCES threads (id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS feedbacks (
id UUID PRIMARY KEY,
forId UUID NOT NULL,
value INT NOT NULL,
threadId UUID,
comment TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS settings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT UNIQUE,
value TEXT
)
''')
conn.commit()
conn.close()
# Initialize database
db_manager = DatabaseManager()
db_manager.initialize()
def save_setting(key: str, value: str):
"""Saves a setting to the database.
Args:
key: The setting key.
value: The setting value.
"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute(
"""
INSERT OR REPLACE INTO settings (id, key, value)
VALUES ((SELECT id FROM settings WHERE key = ?), ?, ?)
""",
(key, key, value),
)
conn.commit()
conn.close()
"""Save a setting to the database"""
asyncio.run(db_manager.save_setting(key, value))
def load_setting(key: str) -> str:
"""Loads a setting from the database.
"""Load a setting from the database"""
return asyncio.run(db_manager.load_setting(key))
Args:
key: The setting key.
cl_data._data_layer = db_manager
Returns:
The setting value, or None if the key is not found.
"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute('SELECT value FROM settings WHERE key = ?', (key,))
result = cursor.fetchone()
conn.close()
return result[0] if result else None
# Initialize the database
initialize_db()
deleted_thread_ids = [] # type: List[str]
# Get database connection string from environment variable or use SQLite as default
DB_URL = os.getenv("DATABASE_URL", f"sqlite+aiosqlite:///{DB_PATH}")
cl_data._data_layer = SQLAlchemyDataLayer(
conninfo=DB_URL,
ssl_require=bool(os.getenv("DATABASE_SSL", False))
)
# Set Tavily API key
tavily_api_key = os.getenv("TAVILY_API_KEY")
tavily_client = TavilyClient(api_key=tavily_api_key) if tavily_api_key else None
# Modify the tavily_web_search function to be async
async def tavily_web_search(query):
if not tavily_client:
return json.dumps({
"query": query,
"error": "Tavily API key is not set. Web search is unavailable."
})
response = tavily_client.search(query)
logger.debug(f"Tavily search response: {response}")
# Create an instance of AsyncWebCrawler
async with AsyncWebCrawler() as crawler:
# Prepare the results
results = []
for result in response.get('results', []):
url = result.get('url')
if url:
try:
# Run the crawler asynchronously on each URL
crawl_result = await crawler.arun(url=url)
results.append({
"content": result.get('content'),
@@ -225,7 +97,6 @@ async def tavily_web_search(query):
"results": results
})
# Update the tools definition
tools = [{
"type": "function",
"function": {
@@ -241,17 +112,41 @@ tools = [{
}
}] if tavily_api_key else []
# Authentication configuration
AUTH_PASSWORD_ENABLED = os.getenv("AUTH_PASSWORD_ENABLED", "true").lower() == "true" # Password authentication enabled by default
AUTH_OAUTH_ENABLED = os.getenv("AUTH_OAUTH_ENABLED", "false").lower() == "true" # OAuth authentication disabled by default
username = os.getenv("CHAINLIT_USERNAME", "admin")
password = os.getenv("CHAINLIT_PASSWORD", "admin")
def auth_callback(u: str, p: str):
if (u, p) == (username, password):
return cl.User(identifier=username, metadata={"role": "ADMIN", "provider": "credentials"})
return None
def oauth_callback(
provider_id: str,
token: str,
raw_user_data: Dict[str, str],
default_user: cl.User,
) -> Optional[cl.User]:
return default_user
if AUTH_PASSWORD_ENABLED:
auth_callback = cl.password_auth_callback(auth_callback)
if AUTH_OAUTH_ENABLED:
oauth_callback = cl.oauth_callback(oauth_callback)
async def send_count():
await cl.Message(
f"Create step counter: {create_step_counter}", disable_feedback=True
).send()
@cl.on_chat_start
async def start():
initialize_db()
model_name = load_setting("model_name")
if model_name:
cl.user_session.set("model_name", model_name)
else:
# If no setting found, use default or environment variable
model_name = os.getenv("MODEL_NAME", "gpt-4o-mini")
cl.user_session.set("model_name", model_name)
model_name = load_setting("model_name") or os.getenv("MODEL_NAME", "gpt-4o-mini")
cl.user_session.set("model_name", model_name)
logger.debug(f"Model name: {model_name}")
settings = cl.ChatSettings(
[
@@ -272,47 +167,43 @@ async def setup_agent(settings):
cl.user_session.set("settings", settings)
model_name = settings["model_name"]
cl.user_session.set("model_name", model_name)
# Save in settings table
save_setting("model_name", model_name)
# Save in thread metadata
thread_id = cl.user_session.get("thread_id")
if thread_id:
thread = await cl_data.get_thread(thread_id)
if thread:
metadata = thread.get("metadata", {})
if isinstance(metadata, str):
try:
metadata = json.loads(metadata)
except json.JSONDecodeError:
metadata = {}
metadata["model_name"] = model_name
# Always store metadata as a JSON string
await cl_data.update_thread(thread_id, metadata=json.dumps(metadata))
# Update the user session with the new metadata
await cl_data.update_thread(thread_id, metadata=metadata)
cl.user_session.set("metadata", metadata)
@cl.on_message
async def main(message: cl.Message):
model_name = load_setting("model_name") or os.getenv("MODEL_NAME") or "gpt-4o-mini"
model_name = load_setting("model_name") or os.getenv("MODEL_NAME", "gpt-4o-mini")
message_history = cl.user_session.get("message_history", [])
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# Check if an image was uploaded with this message
image = None
if message.elements and isinstance(message.elements[0], cl.Image):
image_element = message.elements[0]
try:
# Open the image and keep it in memory
image = Image.open(image_element.path)
image.load() # This ensures the file is fully loaded into memory
image.load()
cl.user_session.set("image", image)
except Exception as e:
logger.error(f"Error processing image: {str(e)}")
await cl.Message(content="There was an error processing the uploaded image. Please try again.").send()
await cl.Message(content="Error processing the image. Please try again.").send()
return
# Prepare user message
user_message = f"""
Answer the question and use tools if needed:\n
Answer the question and use tools if needed:
Current Date and Time: {now}
@@ -323,23 +214,19 @@ User Question: {message.content}
user_message = f"Image uploaded. {user_message}"
message_history.append({"role": "user", "content": user_message})
msg = cl.Message(content="")
await msg.send()
# Prepare the completion parameters
completion_params = {
"model": model_name,
"messages": message_history,
"stream": True,
}
# If an image is uploaded, include it in the message
if image:
buffered = io.BytesIO()
image.save(buffered, format="PNG")
img_str = base64.b64encode(buffered.getvalue()).decode()
completion_params["messages"][-1] = {
"role": "user",
"content": [
@@ -347,7 +234,7 @@ User Question: {message.content}
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_str}"}}
]
}
# Only add tools and tool_choice if Tavily API key is available
if tavily_api_key:
completion_params["tools"] = tools
completion_params["tool_choice"] = "auto"
@@ -361,12 +248,12 @@ User Question: {message.content}
async for part in response:
if 'choices' in part and len(part['choices']) > 0:
delta = part['choices'][0].get('delta', {})
if 'content' in delta and delta['content'] is not None:
token = delta['content']
await msg.stream_token(token)
full_response += token
if tavily_api_key and 'tool_calls' in delta and delta['tool_calls'] is not None:
for tool_call in delta['tool_calls']:
if current_tool_call is None or tool_call.index != current_tool_call['index']:
@@ -397,7 +284,6 @@ User Question: {message.content}
cl.user_session.set("message_history", message_history)
await msg.update()
# Handle tool calls if any
if tavily_api_key and tool_calls:
available_functions = {
"tavily_web_search": tavily_web_search,
@@ -415,7 +301,6 @@ User Question: {message.content}
if function_args:
try:
function_args = json.loads(function_args)
# Call the function asynchronously
function_response = await function_to_call(
query=function_args.get("query"),
)
@@ -436,7 +321,6 @@ User Question: {message.content}
)
logger.debug(f"Second LLM response: {second_response}")
# Handle the streaming response
full_response = ""
async for part in second_response:
if 'choices' in part and len(part['choices']) > 0:
@@ -446,35 +330,16 @@ User Question: {message.content}
await msg.stream_token(token)
full_response += token
# Update the message content
msg.content = full_response
await msg.update()
else:
# If no tool calls, the full_response is already set
msg.content = full_response
await msg.update()
username = os.getenv("CHAINLIT_USERNAME", "admin") # Default to "admin" if not found
password = os.getenv("CHAINLIT_PASSWORD", "admin") # Default to "admin" if not found
@cl.password_auth_callback
def auth_callback(username: str, password: str):
if (username, password) == (username, password):
return cl.User(
identifier=username, metadata={"role": "ADMIN", "provider": "credentials"}
)
else:
return None
async def send_count():
await cl.Message(
f"Create step counter: {create_step_counter}", disable_feedback=True
).send()
@cl.on_chat_resume
async def on_chat_resume(thread: ThreadDict):
logger.info(f"Resuming chat: {thread['id']}")
model_name = load_setting("model_name") or os.getenv("MODEL_NAME") or "gpt-4o-mini"
model_name = load_setting("model_name") or os.getenv("MODEL_NAME", "gpt-4o-mini")
logger.debug(f"Model name: {model_name}")
settings = cl.ChatSettings(
[
@@ -488,42 +353,35 @@ async def on_chat_resume(thread: ThreadDict):
)
await settings.send()
thread_id = thread["id"]
cl.user_session.set("thread_id", thread["id"])
# Ensure metadata is a dictionary
cl.user_session.set("thread_id", thread_id)
metadata = thread.get("metadata", {})
if isinstance(metadata, str):
try:
metadata = json.loads(metadata)
except json.JSONDecodeError:
metadata = {}
cl.user_session.set("metadata", metadata)
message_history = cl.user_session.get("message_history", [])
steps = thread["steps"]
for message in steps:
msg_type = message.get("type")
for m in steps:
msg_type = m.get("type")
if msg_type == "user_message":
message_history.append({"role": "user", "content": message.get("output", "")})
message_history.append({"role": "user", "content": m.get("output", "")})
elif msg_type == "assistant_message":
message_history.append({"role": "assistant", "content": message.get("output", "")})
message_history.append({"role": "assistant", "content": m.get("output", "")})
elif msg_type == "run":
# Handle 'run' type messages
if message.get("isError"):
message_history.append({"role": "system", "content": f"Error: {message.get('output', '')}"})
else:
# You might want to handle non-error 'run' messages differently
pass
if m.get("isError"):
message_history.append({"role": "system", "content": f"Error: {m.get('output', '')}"})
else:
logger.warning(f"Message without recognized type: {message}")
logger.warning(f"Message without recognized type: {m}")
cl.user_session.set("message_history", message_history)
# Check if there's an image in the thread metadata
image_data = metadata.get("image")
if image_data:
image = Image.open(io.BytesIO(base64.b64decode(image_data)))
cl.user_session.set("image", image)
await cl.Message(content="Previous image loaded. You can continue asking questions about it or upload a new image.").send()
await cl.Message(content="Previous image loaded.").send()
+33 -136
View File
@@ -1,26 +1,29 @@
# Standard library imports
import os
from datetime import datetime
import logging
import json
import io
import base64
import asyncio
# Third-party imports
from dotenv import load_dotenv
from PIL import Image
from context import ContextGatherer
from tavily import TavilyClient
from crawl4ai import AsyncWebCrawler
# Local application/library imports
import chainlit as cl
from chainlit.input_widget import TextInput
from chainlit.types import ThreadDict
from litellm import acompletion, completion
import os
import sqlite3
from datetime import datetime
from typing import Dict, List, Optional
from dotenv import load_dotenv
load_dotenv()
import chainlit.data as cl_data
from chainlit.step import StepDict
from literalai.helper import utc_now
import logging
import json
from sql_alchemy import SQLAlchemyDataLayer
from context import ContextGatherer
from tavily import TavilyClient
from datetime import datetime
from crawl4ai import AsyncWebCrawler
from PIL import Image
import io
import base64
from litellm import acompletion
from db import DatabaseManager
# Load environment variables
load_dotenv()
# Set up logging
logger = logging.getLogger(__name__)
@@ -43,144 +46,39 @@ if not CHAINLIT_AUTH_SECRET:
os.environ["CHAINLIT_AUTH_SECRET"] = "p8BPhQChpg@J>jBz$wGxqLX2V>yTVgP*7Ky9H$aV:axW~ANNX-7_T:o@lnyCBu^U"
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
now = utc_now()
now = datetime.now()
create_step_counter = 0
DB_PATH = os.path.expanduser("~/.praison/database.sqlite")
# Initialize database
db_manager = DatabaseManager()
db_manager.initialize()
def initialize_db():
os.makedirs(os.path.dirname(DB_PATH), exist_ok=True)
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY,
identifier TEXT NOT NULL UNIQUE,
metadata JSONB NOT NULL,
createdAt TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS threads (
id UUID PRIMARY KEY,
createdAt TEXT,
name TEXT,
userId UUID,
userIdentifier TEXT,
tags TEXT[],
metadata JSONB NOT NULL DEFAULT '{}',
FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS steps (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
type TEXT NOT NULL,
threadId UUID NOT NULL,
parentId UUID,
disableFeedback BOOLEAN NOT NULL DEFAULT 0,
streaming BOOLEAN NOT NULL DEFAULT 0,
waitForAnswer BOOLEAN DEFAULT 0,
isError BOOLEAN NOT NULL DEFAULT 0,
metadata JSONB DEFAULT '{}',
tags TEXT[],
input TEXT,
output TEXT,
createdAt TEXT,
start TEXT,
end TEXT,
generation JSONB,
showInput TEXT,
language TEXT,
indent INT,
FOREIGN KEY (threadId) REFERENCES threads (id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS elements (
id UUID PRIMARY KEY,
threadId UUID,
type TEXT,
url TEXT,
chainlitKey TEXT,
name TEXT NOT NULL,
display TEXT,
objectKey TEXT,
size TEXT,
page INT,
language TEXT,
forId UUID,
mime TEXT,
FOREIGN KEY (threadId) REFERENCES threads (id) ON DELETE CASCADE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS feedbacks (
id UUID PRIMARY KEY,
forId UUID NOT NULL,
value INT NOT NULL,
threadId UUID,
comment TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS settings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT UNIQUE,
value TEXT
)
''')
conn.commit()
conn.close()
deleted_thread_ids = [] # type: List[str]
def save_setting(key: str, value: str):
"""Saves a setting to the database.
Args:
key: The setting key.
value: The setting value.
"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute(
"""
INSERT OR REPLACE INTO settings (id, key, value)
VALUES ((SELECT id FROM settings WHERE key = ?), ?, ?)
""",
(key, key, value),
)
conn.commit()
conn.close()
asyncio.run(db_manager.save_setting(key, value))
def load_setting(key: str) -> str:
"""Loads a setting from the database.
Args:
key: The setting key.
Returns:
The setting value, or None if the key is not found.
"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute('SELECT value FROM settings WHERE key = ?', (key,))
result = cursor.fetchone()
conn.close()
return result[0] if result else None
return asyncio.run(db_manager.load_setting(key))
# Initialize the database
initialize_db()
deleted_thread_ids = [] # type: List[str]
cl_data._data_layer = SQLAlchemyDataLayer(conninfo=f"sqlite+aiosqlite:///{DB_PATH}")
cl_data._data_layer = db_manager
@cl.on_chat_start
async def start():
initialize_db()
model_name = load_setting("model_name")
if (model_name):
@@ -501,7 +399,6 @@ async def on_chat_resume(thread: ThreadDict):
]
)
await settings.send()
thread_id = thread["id"]
cl.user_session.set("thread_id", thread["id"])
# Ensure metadata is a dictionary
+269
View File
@@ -0,0 +1,269 @@
import os
import asyncio
from pathlib import Path
import difflib
from typing import Dict, Any
from litellm import acompletion
import json
import dotenv
from tavily import TavilyClient
from crawl4ai import AsyncWebCrawler
dotenv.load_dotenv()
class AICoder:
def __init__(self, cwd: str = None, tavily_api_key: str = None):
self.cwd = cwd or os.getcwd()
self.tools = [
{
"type": "function",
"function": {
"name": "write_to_file",
"description": "Write content to a file at the specified path. If the file exists, it will be overwritten.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The path of the file to write to."
},
"content": {
"type": "string",
"description": "The content to write to the file."
}
},
"required": ["path", "content"]
}
}
},
{
"type": "function",
"function": {
"name": "execute_command",
"description": "Execute a CLI command on the system.",
"parameters": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "The CLI command to execute."
}
},
"required": ["command"]
}
}
},
{
"type": "function",
"function": {
"name": "read_file",
"description": "Read the contents of a file at the specified path.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The path of the file to read."
}
},
"required": ["path"]
}
}
}
]
self.tavily_api_key = tavily_api_key
if self.tavily_api_key:
self.tavily_client = TavilyClient(api_key=self.tavily_api_key)
self.tools.append({
"type": "function",
"function": {
"name": "tavily_web_search",
"description": "Search the web using Tavily API and crawl the resulting URLs",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"}
},
"required": ["query"]
}
}
})
else:
self.tavily_client = None
async def create_directories(self, file_path):
file_path_obj = Path(file_path)
dir_path = file_path_obj.parent
if not dir_path.exists():
os.makedirs(dir_path, exist_ok=True)
return dir_path
async def file_exists(self, file_path):
return Path(file_path).exists()
async def write_to_file(self, file_path, content, existing=False):
if not existing:
await self.create_directories(file_path)
try:
with open(file_path, 'w') as file:
file.write(content)
return True
except Exception as e:
return False
async def read_file(self, file_path):
try:
with open(file_path, 'r') as file:
return file.read()
except:
return None
async def execute_command(self, command: str):
try:
process = await asyncio.create_subprocess_shell(
command,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
cwd=self.cwd
)
stdout, stderr = await process.communicate()
if stdout:
return f"Command output:\n{stdout.decode()}"
if stderr:
return f"Command error:\n{stderr.decode()}"
return process.returncode == 0
except Exception as e:
return f"Error executing command: {str(e)}"
async def tavily_web_search(self, query):
if not self.tavily_client:
return json.dumps({
"query": query,
"error": "Tavily API key is not set. Web search is unavailable."
})
response = self.tavily_client.search(query)
results = []
async with AsyncWebCrawler() as crawler:
for result in response.get('results', []):
url = result.get('url')
if url:
try:
crawl_result = await crawler.arun(url=url)
results.append({
"content": result.get('content'),
"url": url,
"full_content": crawl_result.markdown
})
except Exception:
results.append({
"content": result.get('content'),
"url": url,
"full_content": "Error: Unable to crawl this URL"
})
return json.dumps({
"query": query,
"results": results
})
def generate_diff(self, original_content: str, new_content: str, filename="file.txt"):
diff_lines = difflib.unified_diff(
original_content.splitlines(keepends=True),
new_content.splitlines(keepends=True),
fromfile=f"original_{filename}",
tofile=f"modified_{filename}"
)
return "".join(diff_lines)
def parse_json_response(self, json_object: Dict) -> Dict[str, Any]:
if 'choices' in json_object and json_object['choices'][0]['message']:
message = json_object['choices'][0]['message']
if 'tool_calls' in message and message['tool_calls']:
return {"type": "tool_calls", "data": message['tool_calls']}
return {"type": "content", "data": message.get('content', "")}
return {"type": "content", "data": json.dumps(json_object)}
def parse_llm_response(self, response: Any) -> Dict[str, Any]:
if response is None:
return {"type": "content", "data": ""}
if isinstance(response, str):
try:
json_object = json.loads(response)
if isinstance(json_object, dict):
return self.parse_json_response(json_object)
except json.JSONDecodeError:
return {"type": "content", "data": response}
if hasattr(response, 'choices') and response.choices:
message = response.choices[0].message
if hasattr(message, 'tool_calls') and message.tool_calls:
tool_calls_data = []
for tool_call in message.tool_calls:
tool_calls_data.append({
'id': tool_call.id,
'type': tool_call.type,
'function': {
'name': tool_call.function.name,
'arguments': tool_call.function.arguments
}
})
return {"type": "tool_calls", "data": tool_calls_data}
return {"type": "content", "data": message.content or ""}
return {"type": "content", "data": str(response)}
async def apply_llm_response(self, task, llm_response):
parsed_response = self.parse_llm_response(llm_response)
if parsed_response["type"] == "tool_calls":
for tool_call in parsed_response["data"]:
if tool_call["function"]["name"] == "write_to_file":
args = json.loads(tool_call["function"]["arguments"])
file_path = os.path.join(self.cwd, args["path"].strip())
content = args["content"]
if await self.file_exists(file_path):
original_content = await self.read_file(file_path)
file_diff = self.generate_diff(original_content, content, os.path.basename(file_path))
# Interaction with user removed for automation context
return await self.write_to_file(file_path, content, True)
else:
return await self.write_to_file(file_path, content)
elif tool_call["function"]["name"] == "execute_command":
args = json.loads(tool_call["function"]["arguments"])
command = args.get("command", "").strip()
if command:
return await self.execute_command(command)
else:
return False
elif tool_call["function"]["name"] == "read_file":
args = json.loads(tool_call["function"]["arguments"])
file_path = args.get("path", "").strip()
if file_path:
content = await self.read_file(os.path.join(self.cwd, file_path))
return True if content is not None else False
else:
return False
elif tool_call["function"]["name"] == "tavily_web_search":
args = json.loads(tool_call["function"]["arguments"])
return await self.tavily_web_search(args.get("query"))
else:
return False
return True
async def process_task(self, task: str):
llm_response = await acompletion(
model="gpt-4",
messages=[
{"role": "user", "content": task}
],
tools=self.tools,
tool_choice="auto"
)
return await self.apply_llm_response(task, llm_response)
async def main():
ai_coder = AICoder()
await ai_coder.process_task("Create a file called `hello.txt` with the content 'Hello, world!'")
await ai_coder.process_task("Edit the file called `hello.txt` and change the content to 'Hello again, world!'")
await ai_coder.process_task("Show me the current working directory")
await ai_coder.process_task("Read the contents of hello.txt")
if __name__ == "__main__":
asyncio.run(main())
+120
View File
@@ -0,0 +1,120 @@
[project]
# Whether to enable telemetry (default: true). No personal data is collected.
enable_telemetry = false
# List of environment variables to be provided by each user to use the app.
user_env = []
# Duration (in seconds) during which the session is saved when the connection is lost
session_timeout = 3600
# Enable third parties caching (e.g LangChain cache)
cache = false
# Authorized origins
allow_origins = ["*"]
# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317)
# follow_symlink = false
[features]
# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript)
unsafe_allow_html = false
# Process and display mathematical expressions. This can clash with "$" characters in messages.
latex = false
# Automatically tag threads with the current chat profile (if a chat profile is used)
auto_tag_thread = true
# Allow users to edit their own messages
edit_message = true
# Authorize users to spontaneously upload files with messages
[features.spontaneous_file_upload]
enabled = true
accept = ["*/*"]
max_files = 20
max_size_mb = 500
[features.audio]
# Threshold for audio recording
min_decibels = -45
# Delay for the user to start speaking in MS
initial_silence_timeout = 3000
# Delay for the user to continue speaking in MS. If the user stops speaking for this duration, the recording will stop.
silence_timeout = 1500
# Above this duration (MS), the recording will forcefully stop.
max_duration = 15000
# Duration of the audio chunks in MS
chunk_duration = 1000
# Sample rate of the audio
sample_rate = 44100
[UI]
# Name of the assistant.
name = "Assistant"
# Description of the assistant. This is used for HTML tags.
# description = ""
# Large size content are by default collapsed for a cleaner ui
default_collapse_content = true
# Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full".
cot = "full"
# Link to your github repo. This will add a github button in the UI's header.
# github = ""
# Specify a CSS file that can be used to customize the user interface.
# The CSS file can be served from the public directory or via an external link.
custom_css = "https://cdn.jsdelivr.net/gh/MervinPraison/[email protected]/praisonai/ui/public/praison.css"
# Specify a Javascript file that can be used to customize the user interface.
# The Javascript file can be served from the public directory.
# custom_js = "/public/test.js"
# Specify a custom font url.
# custom_font = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap"
# Specify a custom meta image url.
# custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png"
# Specify a custom build directory for the frontend.
# This can be used to customize the frontend code.
# Be careful: If this is a relative path, it should not start with a slash.
# custom_build = "./public/build"
[UI.theme]
default = "dark"
#layout = "wide"
#font_family = "Inter, sans-serif"
# Override default MUI light theme. (Check theme.ts)
[UI.theme.light]
#background = "#FAFAFA"
#paper = "#FFFFFF"
[UI.theme.light.primary]
#main = "#F80061"
#dark = "#980039"
#light = "#FFE7EB"
[UI.theme.light.text]
#primary = "#212121"
#secondary = "#616161"
# Override default MUI dark theme. (Check theme.ts)
[UI.theme.dark]
#background = "#FAFAFA"
#paper = "#FFFFFF"
[UI.theme.dark.primary]
#main = "#F80061"
#dark = "#980039"
#light = "#FFE7EB"
[UI.theme.dark.text]
#primary = "#EEEEEE"
#secondary = "#BDBDBD"
[meta]
generated_by = "1.3.2"
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
"settingsKey": "S",
"APIKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
"logout": "\u09b2\u0997\u0986\u0989\u099f"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u09a8\u09a4\u09c1\u09a8 \u0986\u09a1\u09cd\u09a1\u09be"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0995\u09be\u09b0\u09cd\u09af \u09a4\u09be\u09b2\u09bf\u0995\u09be",
"loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964",
"error": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u09b8\u0982\u0998\u099f\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
}
},
"attachments": {
"cancelUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
"removeAttachment": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09b8\u09b0\u09be\u09a8"
},
"newChatDialog": {
"createNewChat": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09ac\u09c7\u09a8?",
"clearChat": "\u098f\u099f\u09bf \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09b8\u09be\u09ab \u0995\u09b0\u09ac\u09c7 \u098f\u09ac\u0982 \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09ac\u09c7\u0964",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
},
"settingsModal": {
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
"expandMessages": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
"hideChainOfThought": "\u099a\u09bf\u09a8\u09cd\u09a4\u09be\u09b0 \u09b6\u09c3\u0999\u09cd\u0996\u09b2 \u09b2\u09c1\u0995\u09be\u09a8",
"darkMode": "\u09a1\u09be\u09b0\u09cd\u0995 \u09ae\u09cb\u09a1"
},
"detailsButton": {
"using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0",
"running": "\u099a\u09b2\u09ae\u09be\u09a8",
"took_one": "{{count}} \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7",
"took_other": "{{count}}\u099f\u09bf \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7"
},
"auth": {
"authLogin": {
"title": "\u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
"form": {
"email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
"password": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
"noAccount": "\u0995\u09cb\u09a8\u0993 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a8\u09c7\u0987?",
"alreadyHaveAccount": "\u0987\u09a4\u09bf\u09ae\u09a7\u09cd\u09af\u09c7 \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u0986\u099b\u09c7?",
"signup": "\u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09cb",
"signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09cb",
"or": "\u09ac\u09be",
"continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
"forgotPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09ad\u09c1\u09b2\u09c7 \u0997\u09c7\u099b\u09c7\u09a8?",
"passwordMustContain": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u09c7 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09a5\u09be\u0995\u09a4\u09c7 \u09b9\u09ac\u09c7:",
"emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"passwordRequired": "\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"
},
"error": {
"default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09a4\u09c7 \u0985\u0995\u09cd\u09b7\u09ae\u0964",
"signin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"oauthsignin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"redirect_uri_mismatch": "\u09aa\u09c1\u09a8\u0983\u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09bf\u09a4 URI OAUTH \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\u0964",
"oauthcallbackerror": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"oauthcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"emailcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"callback": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"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 \u09ae\u09c2\u09b2\u09a4 \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09c7\u09a8 \u09b8\u09c7\u0987 \u098f\u0995\u0987 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
"emailsignin": "\u0987-\u09ae\u09c7\u0987\u09b2\u099f\u09bf \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf\u0964",
"emailverify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2\u099f\u09bf \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u09b2 \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
"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 \u09aa\u09cd\u09b0\u09a6\u09a4\u09cd\u09a4 \u09ac\u09bf\u09ac\u09b0\u09a3\u0997\u09c1\u09b2\u09bf \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09a4\u09be \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
"sessionrequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964"
}
},
"authVerifyEmail": {
"almostThere": "\u0986\u09aa\u09a8\u09bf \u09aa\u09cd\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u0996\u09be\u09a8\u09c7 \u09aa\u09cc\u0981\u099b\u09c7\u099b\u09c7\u09a8! \u0986\u09ae\u09b0\u09be \u098f\u0995\u099f\u09bf \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09bf\u09af\u09bc\u09c7\u099b\u09bf ",
"verifyEmailLink": "\u0986\u09aa\u09a8\u09be\u09b0 \u09b8\u09be\u0987\u09a8\u0986\u09aa \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09c7\u0987 \u0987\u09ae\u09c7\u09b2\u09c7\u09b0 \u09b2\u09bf\u0999\u09cd\u0995\u099f\u09bf\u09a4\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8\u0964",
"didNotReceive": "\u0987\u09ae\u09c7\u0987\u09b2 \u0996\u09c1\u0981\u099c\u09c7 \u09aa\u09be\u099a\u09cd\u099b\u09c7\u09a8 \u09a8\u09be?",
"resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
"goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993",
"emailSent": "\u0987\u09ae\u09c7\u09b2 \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
"verifyEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8"
},
"providerButton": {
"continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
"signup": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09c1\u09a8"
},
"authResetPassword": {
"newPasswordRequired": "\u09a8\u09a4\u09c1\u09a8 \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",
"passwordsMustMatch": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09ae\u09bf\u09b2\u09a4\u09c7 \u09b9\u09ac\u09c7",
"confirmPasswordRequired": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09be \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"newPassword": "\u09a8\u09a4\u09c1\u09a8 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
"confirmPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
"resetPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8"
},
"authForgotPassword": {
"email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
"emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"emailSent": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u099f\u09bf \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09be\u09b0 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0\u09b0 \u099c\u09a8\u09cd\u09af \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be {{email}} \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
"enterEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09b2\u09bf\u0996\u09c1\u09a8 \u098f\u09ac\u0982 \u0986\u09ae\u09b0\u09be \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0 \u09aa\u09be\u09a0\u09be\u09ac\u0964",
"resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
"continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
"goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09be\u09a8",
"lastInputs": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
"noInputs": "\u098f\u09a4 \u09ab\u09be\u0981\u0995\u09be...",
"loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964"
}
},
"inputBox": {
"input": {
"placeholder": "\u098f\u0996\u09be\u09a8\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8..."
},
"speechButton": {
"start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
"stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8"
},
"SubmitButton": {
"sendMessage": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09c1\u09a8",
"stopTask": "\u09b8\u09cd\u099f\u09aa \u099f\u09be\u09b8\u09cd\u0995"
},
"UploadButton": {
"attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
},
"waterMark": {
"text": "\u09b8\u0999\u09cd\u0997\u09c7 \u09a8\u09bf\u09b0\u09cd\u09ae\u09bf\u09a4"
}
},
"Messages": {
"index": {
"running": "\u099a\u09b2\u09ae\u09be\u09a8",
"executedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"failed": "\u09ac\u09cd\u09af\u09b0\u09cd\u09a5",
"feedbackUpdated": "\u09ab\u09bf\u09a1\u09ac\u09cd\u09af\u09be\u0995 \u0986\u09aa\u09a1\u09c7\u099f \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"updating": "\u0986\u09a7\u09c1\u09a8\u09bf\u0995\u09c0\u0995\u09b0\u09a3"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ab\u09be\u0987\u09b2\u0997\u09c1\u09b2\u09bf \u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09c7\u09b2\u09c7 \u09a6\u09bf\u09a8"
},
"index": {
"failedToUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"cancelledUploadOf": "\u098f\u09b0 \u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2",
"couldNotReachServer": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7 \u09aa\u09cc\u0981\u099b\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
"continuingChat": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f \u0985\u09ac\u09bf\u09b0\u09a4 \u09b0\u09be\u0996\u09be"
},
"settings": {
"settingsPanel": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2",
"reset": "\u09b0\u09bf\u09b8\u09c7\u099f",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09b8\u09ac",
"feedbackPositive": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u0987\u09a4\u09bf\u09ac\u09be\u099a\u0995",
"feedbackNegative": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09a8\u09c7\u09a4\u09bf\u09ac\u09be\u099a\u0995"
},
"SearchBar": {
"search": "\u09b8\u09a8\u09cd\u09a7\u09be\u09a8"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09aa\u09be\u09b6\u09be\u09aa\u09be\u09b6\u09bf \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u09ac\u0982 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf\u0993 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4",
"deletingChat": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u099a\u09cd\u099b\u09c7",
"chatDeleted": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
},
"index": {
"pastChats": "\u0985\u09a4\u09c0\u09a4 \u099a\u09cd\u09af\u09be\u099f"
},
"ThreadList": {
"empty": "\u0996\u09be\u09b2\u09bf\u0964\u0964\u0964",
"today": "\u0986\u099c",
"yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
"previous7days": "Previous 7 \u09a6\u09bf\u09a8",
"previous30days": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 30 \u09a6\u09bf\u09a8"
},
"TriggerButton": {
"closeSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
"openSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
}
},
"Thread": {
"backToChat": "\u099a\u09cd\u09af\u09be\u099f\u09c7 \u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u09a8",
"chatCreatedOn": "\u098f\u0987 \u099a\u09cd\u09af\u09be\u099f\u099f\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09bf\u09b2"
}
},
"header": {
"chat": "\u0986\u09b2\u09be\u09aa",
"readme": "\u09b0\u09bf\u09a1\u09ae\u09bf"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u09b8\u09b0\u09ac\u09b0\u09be\u09b9\u0995\u09be\u09b0\u09c0\u09a6\u09c7\u09b0 \u0986\u09a8\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"requiredApiKeys": "\u0986\u09ac\u09b6\u09cd\u09af\u0995 API \u0995\u09c0",
"requiredApiKeysInfo": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7, \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 API \u0995\u09c0\u0997\u09c1\u09b2\u09bf\u09b0 \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 \u09b8\u09cd\u09a5\u09be\u09a8\u09c0\u09af\u09bc \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u099e\u09cd\u099a\u09bf\u09a4 \u09b0\u09af\u09bc\u09c7\u099b\u09c7\u0964"
},
"Page": {
"notPartOfProject": "\u0986\u09aa\u09a8\u09bf \u098f\u0987 \u09aa\u09cd\u09b0\u0995\u09b2\u09cd\u09aa\u09c7\u09b0 \u0985\u0982\u09b6 \u09a8\u09a8\u0964"
},
"ResumeButton": {
"resumeChat": "\u099a\u09cd\u09af\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8"
}
}
}
@@ -0,0 +1,229 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "Settings",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "New Chat"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f Task List",
"loading": "Loading...",
"error": "An error occurred"
}
},
"attachments": {
"cancelUpload": "Cancel upload",
"removeAttachment": "Remove attachment"
},
"newChatDialog": {
"createNewChat": "Create new chat?",
"clearChat": "This will clear the current messages and start a new chat.",
"cancel": "Cancel",
"confirm": "Confirm"
},
"settingsModal": {
"settings": "Settings",
"expandMessages": "Expand Messages",
"hideChainOfThought": "Hide Chain of Thought",
"darkMode": "Dark Mode"
},
"detailsButton": {
"using": "Using",
"used": "Used"
},
"auth": {
"authLogin": {
"title": "Login to access the app.",
"form": {
"email": "Email address",
"password": "Password",
"noAccount": "Don't have an account?",
"alreadyHaveAccount": "Already have an account?",
"signup": "Sign Up",
"signin": "Sign In",
"or": "OR",
"continue": "Continue",
"forgotPassword": "Forgot password?",
"passwordMustContain": "Your password must contain:",
"emailRequired": "email is a required field",
"passwordRequired": "password is a required field"
},
"error": {
"default": "Unable to sign in.",
"signin": "Try signing in with a different account.",
"oauthsignin": "Try signing in with a different account.",
"redirect_uri_mismatch": "The redirect URI is not matching the oauth app configuration.",
"oauthcallbackerror": "Try signing in with a different account.",
"oauthcreateaccount": "Try signing in with a different account.",
"emailcreateaccount": "Try signing in with a different account.",
"callback": "Try signing in with a different account.",
"oauthaccountnotlinked": "To confirm your identity, sign in with the same account you used originally.",
"emailsignin": "The e-mail could not be sent.",
"emailverify": "Please verify your email, a new email has been sent.",
"credentialssignin": "Sign in failed. Check the details you provided are correct.",
"sessionrequired": "Please sign in to access this page."
}
},
"authVerifyEmail": {
"almostThere": "You're almost there! We've sent an email to ",
"verifyEmailLink": "Please click on the link in that email to complete your signup.",
"didNotReceive": "Can't find the email?",
"resendEmail": "Resend email",
"goBack": "Go Back",
"emailSent": "Email sent successfully.",
"verifyEmail": "Verify your email address"
},
"providerButton": {
"continue": "Continue with {{provider}}",
"signup": "Sign up with {{provider}}"
},
"authResetPassword": {
"newPasswordRequired": "New password is a required field",
"passwordsMustMatch": "Passwords must match",
"confirmPasswordRequired": "Confirm password is a required field",
"newPassword": "New password",
"confirmPassword": "Confirm password",
"resetPassword": "Reset Password"
},
"authForgotPassword": {
"email": "Email address",
"emailRequired": "email is a required field",
"emailSent": "Please check the email address {{email}} for instructions to reset your password.",
"enterEmail": "Enter your email address and we will send you instructions to reset your password.",
"resendEmail": "Resend email",
"continue": "Continue",
"goBack": "Go Back"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "Show history",
"lastInputs": "Last Inputs",
"noInputs": "Such empty...",
"loading": "Loading..."
}
},
"inputBox": {
"input": {
"placeholder": "Type your message here..."
},
"speechButton": {
"start": "Start recording",
"stop": "Stop recording"
},
"SubmitButton": {
"sendMessage": "Send message",
"stopTask": "Stop Task"
},
"UploadButton": {
"attachFiles": "Attach files"
},
"waterMark": {
"text": "Built with"
}
},
"Messages": {
"index": {
"running": "Running",
"executedSuccessfully": "executed successfully",
"failed": "failed",
"feedbackUpdated": "Feedback updated",
"updating": "Updating"
}
},
"dropScreen": {
"dropYourFilesHere": "Drop your files here"
},
"index": {
"failedToUpload": "Failed to upload",
"cancelledUploadOf": "Cancelled upload of",
"couldNotReachServer": "Could not reach the server",
"continuingChat": "Continuing previous chat"
},
"settings": {
"settingsPanel": "Settings panel",
"reset": "Reset",
"cancel": "Cancel",
"confirm": "Confirm"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: All",
"feedbackPositive": "Feedback: Positive",
"feedbackNegative": "Feedback: Negative"
},
"SearchBar": {
"search": "Search"
}
},
"DeleteThreadButton": {
"confirmMessage": "This will delete the thread as well as it's messages and elements.",
"cancel": "Cancel",
"confirm": "Confirm",
"deletingChat": "Deleting chat",
"chatDeleted": "Chat deleted"
},
"index": {
"pastChats": "Past Chats"
},
"ThreadList": {
"empty": "Empty...",
"today": "Today",
"yesterday": "Yesterday",
"previous7days": "Previous 7 days",
"previous30days": "Previous 30 days"
},
"TriggerButton": {
"closeSidebar": "Close sidebar",
"openSidebar": "Open sidebar"
}
},
"Thread": {
"backToChat": "Go back to chat",
"chatCreatedOn": "This chat was created on"
}
},
"header": {
"chat": "Chat",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "Failed to fetch providers:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "Saved successfully",
"requiredApiKeys": "Required API Keys",
"requiredApiKeysInfo": "To use this app, the following API keys are required. The keys are stored on your device's local storage."
},
"Page": {
"notPartOfProject": "You are not part of this project."
},
"ResumeButton": {
"resumeChat": "Resume Chat"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"settingsKey": "S",
"APIKeys": "API \u0a95\u0ac0\u0a93",
"logout": "\u0aac\u0ab9\u0abe\u0ab0 \u0aa8\u0ac0\u0a95\u0ab3\u0acb"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0aa8\u0ab5\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0a95\u0abe\u0ab0\u0acd\u0aaf \u0aaf\u0abe\u0aa6\u0ac0",
"loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7...",
"error": "\u0aad\u0ac2\u0ab2 \u0a89\u0aa6\u0acd\u0aad\u0ab5\u0ac0"
}
},
"attachments": {
"cancelUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
"removeAttachment": "\u0a9c\u0acb\u0aa1\u0abe\u0aa3\u0aa8\u0ac7 \u0aa6\u0ac2\u0ab0 \u0a95\u0ab0\u0acb"
},
"newChatDialog": {
"createNewChat": "\u0ab6\u0ac1\u0a82 \u0aa8\u0ab5\u0ac1\u0a82 \u0ab8\u0a82\u0ab5\u0abe\u0aa6 \u0aac\u0aa8\u0abe\u0ab5\u0ab5\u0ac1\u0a82 \u0a9b\u0ac7?",
"clearChat": "\u0a86 \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93\u0aa8\u0ac7 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7 \u0a85\u0aa8\u0ac7 \u0aa8\u0ab5\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0ab6\u0ac7.",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
},
"settingsModal": {
"settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"expandMessages": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0ab5\u0abf\u0ab8\u0acd\u0aa4\u0ac3\u0aa4 \u0a95\u0ab0\u0acb",
"hideChainOfThought": "\u0ab5\u0abf\u0a9a\u0abe\u0ab0\u0aa8\u0ac0 \u0ab8\u0abe\u0a82\u0a95\u0ab3 \u0a9b\u0ac1\u0aaa\u0abe\u0ab5\u0acb",
"darkMode": "\u0a98\u0abe\u0a9f\u0ac0 \u0ab8\u0acd\u0aa5\u0abf\u0aa4\u0abf"
},
"detailsButton": {
"using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
"running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
"took_one": "{{count}} \u0aaa\u0a97\u0ab2\u0ac1\u0a82 \u0aad\u0ab0\u0acd\u0aaf\u0ac1\u0a82",
"took_other": "{{count}} \u0aaa\u0a97\u0ab2\u0abe\u0a82\u0a93 \u0ab2\u0ac0\u0aa7\u0abe"
},
"auth": {
"authLogin": {
"title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0acb\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb.",
"form": {
"email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
"password": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"noAccount": "\u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0?",
"alreadyHaveAccount": "\u0aaa\u0ab9\u0ac7\u0ab2\u0ac7\u0aa5\u0ac0 \u0a9c \u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0a9b\u0ac7?",
"signup": "\u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb",
"signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
"or": "\u0a85\u0aa5\u0ab5\u0abe",
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"forgotPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0aad\u0ac2\u0ab2\u0ac0 \u0a97\u0aaf\u0abe?",
"passwordMustContain": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab8\u0aae\u0abe\u0ab5\u0aa4\u0acb \u0a9c \u0ab9\u0acb\u0ab5\u0acb \u0a9c\u0acb\u0a87\u0a8f:",
"emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"passwordRequired": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7"
},
"error": {
"default": "\u0aaa\u0acd\u0ab0\u0ab5\u0ac7\u0ab6 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a85\u0ab8\u0aae\u0ab0\u0acd\u0aa5.",
"signin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"oauthsignin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"redirect_uri_mismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI \u0a8f oauth \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab0\u0ac2\u0aaa\u0ab0\u0ac7\u0a96\u0abe\u0a82\u0a95\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0ac0 \u0aa8\u0aa5\u0ac0.",
"oauthcallbackerror": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"oauthcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"emailcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"callback": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"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, \u0aa4\u0aae\u0ac7 \u0a9c\u0ac7 \u0aae\u0ac2\u0ab3\u0aad\u0ac2\u0aa4 \u0ab0\u0ac0\u0aa4\u0ac7 \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0acd\u0aaf\u0acb \u0ab9\u0aa4\u0acb \u0aa4\u0ac7 \u0a9c \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb.",
"emailsignin": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0ab9\u0abf.",
"emailverify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb, \u0a8f\u0a95 \u0aa8\u0ab5\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7.",
"credentialssignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0aa4\u0aae\u0ac7 \u0aaa\u0ac2\u0ab0\u0ac0 \u0aaa\u0abe\u0aa1\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
"sessionrequired": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0a86 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb."
}
},
"authVerifyEmail": {
"almostThere": "\u0aa4\u0aae\u0ac7 \u0aa4\u0acb \u0ab2\u0a97\u0aad\u0a97 \u0aa4\u0acd\u0aaf\u0abe\u0a82 \u0a9c \u0a9b\u0acb! \u0a85\u0aae\u0ac7 \u0a86\u0aa8\u0abe \u0aaa\u0ab0 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0acd\u0aaf\u0acb \u0a9b\u0ac7 ",
"verifyEmailLink": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0ab8\u0abe\u0a87\u0aa8\u0a85\u0aaa \u0aaa\u0ac2\u0ab0\u0acd\u0aa3 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0ab2\u0abf\u0a82\u0a95 \u0aaa\u0ab0 \u0a95\u0acd\u0ab2\u0abf\u0a95 \u0a95\u0ab0\u0acb.",
"didNotReceive": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab6\u0acb\u0aa7\u0ac0 \u0ab6\u0a95\u0aa4\u0abe \u0aa8\u0aa5\u0ac0?",
"resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
"emailSent": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0aae\u0acb\u0a95\u0ab2\u0abe\u0a88 \u0a97\u0aaf\u0acb.",
"verifyEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
},
"providerButton": {
"continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"signup": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb"
},
"authResetPassword": {
"newPasswordRequired": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"passwordsMustMatch": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0acb \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0abe \u0a9c \u0ab9\u0acb\u0ab5\u0abe \u0a9c\u0acb\u0a88\u0a8f",
"confirmPasswordRequired": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"newPassword": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"confirmPassword": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"resetPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0aa8\u0ac7 \u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb"
},
"authForgotPassword": {
"email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
"emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"emailSent": "\u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0abf\u0ab8\u0ac5\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 {{email}} \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
"enterEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb \u0a85\u0aa8\u0ac7 \u0a85\u0aae\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0aa4\u0aae\u0aa8\u0ac7 \u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0acb\u0a95\u0ab2\u0ac0\u0ab6\u0ac1\u0a82.",
"resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb",
"lastInputs": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
"noInputs": "\u0a86\u0ab5\u0abe \u0a96\u0abe\u0ab2\u0ac0...",
"loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0a85\u0ab9\u0ac0\u0a82 \u0a9f\u0abe\u0a87\u0aaa \u0a95\u0ab0\u0acb..."
},
"speechButton": {
"start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
"stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb"
},
"SubmitButton": {
"sendMessage": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0aae\u0acb\u0a95\u0ab2\u0acb",
"stopTask": "\u0a95\u0abe\u0ab0\u0acd\u0aaf\u0aa8\u0ac7 \u0a85\u0a9f\u0a95\u0abe\u0ab5\u0acb"
},
"UploadButton": {
"attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a9c\u0acb\u0aa1\u0acb"
},
"waterMark": {
"text": "\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0abf\u0ab2\u0acd\u0a9f \u0aa5\u0aaf\u0ac7\u0ab2"
}
},
"Messages": {
"index": {
"running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
"executedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0a9a\u0ab2\u0abe\u0ab5\u0acd\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
"failed": "\u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
"feedbackUpdated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac7\u0ab2 \u0a9b\u0ac7",
"updating": "\u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a85\u0a82\u0ab9\u0abf \u0aae\u0ac2\u0a95\u0acb"
},
"index": {
"failedToUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
"cancelledUploadOf": "\u0aa8\u0ac1\u0a82 \u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0aa5\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
"couldNotReachServer": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0acd\u0aaf\u0abe \u0aa8\u0ab9\u0abf\u0a82",
"continuingChat": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0aa8\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7"
},
"settings": {
"settingsPanel": "\u0aaa\u0ac7\u0aa8\u0ab2 \u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"reset": "\u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aac\u0aa7\u0abe",
"feedbackPositive": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0ab9\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95",
"feedbackNegative": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aa8\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95"
},
"SearchBar": {
"search": "\u0ab6\u0acb\u0aa7\u0ab5\u0ac1\u0a82"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0aa5\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0aaa\u0aa3 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7.",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb",
"deletingChat": "\u0a9a\u0ac5\u0a9f\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
"chatDeleted": "\u0a9a\u0ac5\u0a9f \u0aa1\u0abf\u0ab2\u0ac0\u0a9f \u0aa5\u0a88 \u0a97\u0a88"
},
"index": {
"pastChats": "\u0aad\u0ac2\u0aa4\u0a95\u0abe\u0ab3\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0acb"
},
"ThreadList": {
"empty": "\u0a96\u0abe\u0ab2\u0ac0...",
"today": "\u0a86\u0a9c\u0ac7",
"yesterday": "\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7",
"previous7days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0aed \u0aa6\u0abf\u0ab5\u0ab8\u0acb",
"previous30days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0ae9\u0ae6 \u0aa6\u0abf\u0ab5\u0ab8\u0acb"
},
"TriggerButton": {
"closeSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0\u0aa8\u0ac7 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
"openSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0 \u0a96\u0acb\u0ab2\u0acb"
}
},
"Thread": {
"backToChat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6\u0aae\u0abe\u0a82 \u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
"chatCreatedOn": "\u0a86 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0aa4\u0ac7\u0aa8\u0ac0 \u0aaa\u0ab0 \u0aac\u0aa8\u0abe\u0ab5\u0ac7\u0ab2 \u0ab9\u0aa4\u0ac0"
}
},
"header": {
"chat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6",
"readme": "\u0ab0\u0ac0\u0aa1\u0aae\u0ac7"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0aaa\u0acd\u0ab0\u0aa6\u0abe\u0aa4\u0abe\u0a93\u0aa8\u0ac7 \u0ab2\u0abe\u0ab5\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3\u0aa4\u0abe:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abe\u0aaf\u0ac7\u0ab2",
"requiredApiKeys": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0\u0a93",
"requiredApiKeysInfo": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0acb \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0\u0a93 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0\u0a93 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab8\u0acd\u0aa5\u0abe\u0aa8\u0abf\u0a95 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c \u0aaa\u0ab0 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0abe\u0aaf \u0a9b\u0ac7."
},
"Page": {
"notPartOfProject": "\u0aa4\u0aae\u0ac7 \u0a86 \u0aaa\u0acd\u0ab0\u0acb\u0a9c\u0ac7\u0a95\u0acd\u0a9f\u0aa8\u0acb \u0aad\u0abe\u0a97 \u0aa8\u0aa5\u0ac0."
},
"ResumeButton": {
"resumeChat": "\u0aab\u0ab0\u0ac0 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f Task List",
"loading": "\u05d8\u05d5\u05e2\u05df...",
"error": "\u05e9\u05d2\u05d9\u05d0\u05d4"
}
},
"attachments": {
"cancelUpload": "\u05d1\u05d8\u05dc \u05d4\u05e2\u05dc\u05d0\u05d4",
"removeAttachment": "\u05d4\u05e1\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05de\u05e6\u05d5\u05e8\u05e3"
},
"newChatDialog": {
"createNewChat": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9?",
"clearChat": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05d5\u05ea \u05d5\u05ea\u05ea\u05d7\u05d9\u05dc \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9.",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8"
},
"settingsModal": {
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"expandMessages": "\u05d4\u05e8\u05d7\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea",
"hideChainOfThought": "\u05d4\u05e1\u05ea\u05e8 \u05e9\u05e8\u05e9\u05e8\u05ea \u05de\u05d7\u05e9\u05d1\u05d5\u05ea",
"darkMode": "\u05de\u05e6\u05d1 \u05db\u05d4\u05d4"
},
"detailsButton": {
"using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1-",
"running": "\u05e8\u05e5",
"took_one": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3 {{count}}",
"took_other": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3\u05d9\u05dd {{count}}"
},
"auth": {
"authLogin": {
"title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4.",
"form": {
"email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"password": "\u05e1\u05d9\u05e1\u05de\u05d0",
"noAccount": "\u05d0\u05d9\u05df \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
"alreadyHaveAccount": "\u05db\u05d1\u05e8 \u05d9\u05e9 \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
"signup": "\u05d4\u05d9\u05e8\u05e9\u05dd",
"signin": "\u05d4\u05d9\u05db\u05e0\u05e1",
"or": "\u05d0\u05d5",
"continue": "\u05d4\u05de\u05e9\u05da",
"forgotPassword": "\u05e9\u05db\u05d7\u05ea \u05e1\u05d9\u05e1\u05de\u05d4?",
"passwordMustContain": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05db\u05d9\u05dc:",
"emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"passwordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
},
"error": {
"default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d9\u05db\u05e0\u05e1.",
"signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthsignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"redirect_uri_mismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4-URI \u05dc\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05dc\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05e9\u05dc oauth.",
"oauthcallbackerror": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"emailcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthaccountnotlinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05e9\u05e8 \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8.",
"emailsignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc.",
"emailverify": "\u05d0\u05e0\u05d0 \u05d0\u05e9\u05e8 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9 \u05e0\u05e9\u05dc\u05d7.",
"credentialssignin": "\u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd.",
"sessionrequired": "\u05d0\u05e0\u05d0 \u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4."
}
},
"authVerifyEmail": {
"almostThere": "\u05d0\u05ea\u05d4 \u05db\u05de\u05e2\u05d8 \u05e9\u05dd! \u05e9\u05dc\u05d7\u05e0\u05d5 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d0\u05dc ",
"verifyEmailLink": "\u05d0\u05e0\u05d0 \u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d1\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d6\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05e9\u05dc\u05da.",
"didNotReceive": "\u05dc\u05d0 \u05de\u05d5\u05e6\u05d0 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc?",
"resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4",
"emailSent": "\u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e0\u05e9\u05dc\u05d7 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4.",
"verifyEmail": "\u05d0\u05de\u05ea \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da"
},
"providerButton": {
"continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}",
"signup": "\u05d4\u05d9\u05e8\u05e9\u05dd \u05e2\u05dd {{provider}}"
},
"authResetPassword": {
"newPasswordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d7\u05d3\u05e9\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"passwordsMustMatch": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d0\u05d5\u05ea \u05d7\u05d9\u05d9\u05d1\u05d5\u05ea \u05dc\u05d4\u05ea\u05d0\u05d9\u05dd",
"confirmPasswordRequired": "\u05d0\u05d9\u05e9\u05d5\u05e8 \u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"newPassword": "\u05e1\u05d9\u05e1\u05de\u05d0 \u05d7\u05d3\u05e9\u05d4",
"confirmPassword": "\u05d0\u05e9\u05e8 \u05e1\u05d9\u05e1\u05de\u05d0",
"resetPassword": "\u05d0\u05e4\u05e1 \u05e1\u05d9\u05e1\u05de\u05d4"
},
"authForgotPassword": {
"email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"emailSent": "\u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc {{email}} \u05dc\u05e7\u05d1\u05dc\u05ea \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
"enterEmail": "\u05d4\u05d6\u05df \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da \u05d5\u05d0\u05e0\u05d5 \u05e0\u05e9\u05dc\u05d7 \u05dc\u05da \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
"resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"continue": "\u05d4\u05de\u05e9\u05da",
"goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4",
"lastInputs": "\u05e7\u05dc\u05d8 \u05d0\u05d7\u05e8\u05d5\u05df",
"noInputs": "\u05e8\u05d9\u05e7...",
"loading": "\u05d8\u05d5\u05e2\u05df..."
}
},
"inputBox": {
"input": {
"placeholder": "\u05db\u05ea\u05d5\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d4 \u05db\u05d0\u05df..."
},
"speechButton": {
"start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4"
},
"SubmitButton": {
"sendMessage": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
"stopTask": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4"
},
"UploadButton": {
"attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
},
"waterMark": {
"text": "\u05e0\u05d1\u05e0\u05d4 \u05e2\u05dd"
}
},
"Messages": {
"index": {
"running": "\u05e8\u05e5",
"executedSuccessfully": "\u05d1\u05d5\u05e6\u05e2 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
"failed": "\u05e0\u05db\u05e9\u05dc",
"feedbackUpdated": "\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df",
"updating": "\u05de\u05e2\u05d3\u05db\u05df"
}
},
"dropScreen": {
"dropYourFilesHere": "\u05e9\u05d7\u05e8\u05e8 \u05d0\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05dc\u05da \u05db\u05d0\u05df"
},
"index": {
"failedToUpload": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
"cancelledUploadOf": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e9\u05dc \u05d1\u05d5\u05d8\u05dc\u05d4",
"couldNotReachServer": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05d4\u05d2\u05d9\u05e2 \u05dc\u05e9\u05e8\u05ea",
"continuingChat": "\u05de\u05de\u05e9\u05d9\u05da \u05d1\u05e6'\u05d0\u05d8 \u05d4\u05e7\u05d5\u05d3\u05dd"
},
"settings": {
"settingsPanel": "\u05dc\u05d5\u05d7 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"reset": "\u05d0\u05e4\u05e1",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u05de\u05e9\u05d5\u05d1: \u05d4\u05db\u05dc",
"feedbackPositive": "\u05de\u05e9\u05d5\u05d1: \u05d7\u05d9\u05d5\u05d1\u05d9",
"feedbackNegative": "\u05de\u05e9\u05d5\u05d1: \u05e9\u05dc\u05d9\u05dc\u05d9"
},
"SearchBar": {
"search": "\u05d7\u05d9\u05e4\u05d5\u05e9"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05e8\u05e9\u05d5\u05e8 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05e9\u05dc\u05d5.",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8",
"deletingChat": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8",
"chatDeleted": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7"
},
"index": {
"pastChats": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
},
"ThreadList": {
"empty": "\u05e8\u05d9\u05e7...",
"today": "\u05d4\u05d9\u05d5\u05dd",
"yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
"previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
"previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
},
"TriggerButton": {
"closeSidebar": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
"openSidebar": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
}
},
"Thread": {
"backToChat": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e6'\u05d0\u05d8",
"chatCreatedOn": "\u05d4\u05e6'\u05d0\u05d8 \u05d4\u05d6\u05d4 \u05e0\u05d5\u05e6\u05e8 \u05d1\u05ea\u05d0\u05e8\u05d9\u05da"
}
},
"header": {
"chat": "\u05e6'\u05d0\u05d8",
"readme": "\u05d0\u05d5\u05d3\u05d5\u05ea"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u05e0\u05db\u05e9\u05dc\u05d4 \u05d4\u05d1\u05d0\u05ea \u05e1\u05e4\u05e7\u05d9\u05dd:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
"requiredApiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
"requiredApiKeysInfo": "\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 \u05d4-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."
},
"Page": {
"notPartOfProject": "\u05d0\u05ea\u05d4 \u05dc\u05d0 \u05d7\u05dc\u05e7 \u05de\u05d4\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8 \u05d4\u05d6\u05d4."
},
"ResumeButton": {
"resumeChat": "\u05d4\u05de\u05e9\u05da \u05e6'\u05d0\u05d8"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"settingsKey": "\u0926\u0915\u094d\u0937\u093f\u0923\u0940",
"APIKeys": "\u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0928\u0908 \u091a\u0948\u091f"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
"loading": "\u0932\u094b\u0921\u0964\u0964\u0964",
"error": "\u0915\u094b\u0908 \u0924\u094d\u0930\u0941\u091f\u093f \u0909\u0924\u094d\u092a\u0928\u094d\u0928 \u0939\u0941\u0908"
}
},
"attachments": {
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
"removeAttachment": "\u0905\u0928\u0941\u0932\u0917\u094d\u0928\u0915 \u0928\u093f\u0915\u093e\u0932\u0947\u0902"
},
"newChatDialog": {
"createNewChat": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0901?",
"clearChat": "\u092f\u0939 \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u094b \u0938\u093e\u092b\u093c \u0915\u0930\u0947\u0917\u093e \u0914\u0930 \u090f\u0915 \u0928\u0908 \u091a\u0948\u091f \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0917\u093e\u0964",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
},
"settingsModal": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"expandMessages": "\u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u0947\u0902",
"hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930 \u0915\u0940 \u0936\u094d\u0930\u0943\u0902\u0916\u0932\u093e \u091b\u093f\u092a\u093e\u090f\u0902",
"darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
},
"detailsButton": {
"using": "\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947",
"running": "\u092d\u093e\u0917\u0928\u093e",
"took_one": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u092f\u093e",
"took_other": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u090f"
},
"auth": {
"authLogin": {
"title": "\u0910\u092a \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902\u0964",
"form": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
"password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"noAccount": "\u0915\u094d\u092f\u093e \u0906\u092a\u0915\u0947 \u092a\u093e\u0938 \u0916\u093e\u0924\u093e \u0928\u0939\u0940\u0902 \u0939\u0948?",
"alreadyHaveAccount": "\u092a\u0939\u0932\u0947 \u0938\u0947 \u0939\u0940 \u090f\u0915 \u0916\u093e\u0924\u093e \u0939\u0948?",
"signup": "\u0928\u093e\u092e \u0932\u093f\u0916\u094b",
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902",
"or": "\u0928\u0939\u0940\u0902 \u0924\u094b",
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
"forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092d\u0942\u0932 \u0917\u090f?",
"passwordMustContain": "\u0906\u092a\u0915\u0947 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0902 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f:",
"emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
},
"error": {
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925.",
"signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthsignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"redirect_uri_mismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u0908 \u0913\u0925 \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 \u0939\u0948\u0964",
"oauthcallbackerror": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"emailcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthaccountnotlinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0928\u094d\u092b\u093c\u0930\u094d\u092e \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 \u0907\u0938\u094d\u0924\u0947\u092e\u093e\u0932 \u0906\u092a\u0928\u0947 \u092a\u0939\u0932\u0947 \u0915\u093f\u092f\u093e \u0925\u093e.",
"emailsignin": "\u0908-\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u0940 \u091c\u093e \u0938\u0915\u0940.",
"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\u0964",
"credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932 \u0930\u0939\u093e. \u091c\u093e\u0902\u091a\u0947\u0902 \u0915\u093f \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 \u0938\u0939\u0940 \u0939\u0948\u0902\u0964",
"sessionrequired": "\u0915\u0943\u092a\u092f\u093e \u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902\u0964"
}
},
"authVerifyEmail": {
"almostThere": "\u0906\u092a \u0932\u0917\u092d\u0917 \u0935\u0939\u093e\u0901 \u0939\u0948\u0902! \u0939\u092e\u0928\u0947 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0939\u0948 ",
"verifyEmailLink": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u093e \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0909\u0938 \u0908\u092e\u0947\u0932 \u092e\u0947\u0902 \u0926\u093f\u090f \u0917\u090f \u0932\u093f\u0902\u0915 \u092a\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u0947\u0902\u0964",
"didNotReceive": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932 \u0930\u0939\u093e \u0939\u0948?",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
"goBack": "\u092a\u0938 \u091c\u093e\u0913",
"emailSent": "\u0908\u092e\u0947\u0932 \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u092d\u0947\u091c\u093e \u0917\u092f\u093e\u0964",
"verifyEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902"
},
"providerButton": {
"continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
"signup": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u0947\u0902"
},
"authResetPassword": {
"newPasswordRequired": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0932 \u0916\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f",
"confirmPasswordRequired": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902 \u0915\u093f \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"newPassword": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
"resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902"
},
"authForgotPassword": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
"emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"emailSent": "\u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0928\u093f\u0930\u094d\u0926\u0947\u0936\u094b\u0902 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e {{email}} \u0926\u0947\u0916\u0947\u0902\u0964",
"enterEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902 \u0914\u0930 \u0939\u092e \u0906\u092a\u0915\u094b \u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0928\u093f\u0930\u094d\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902\u0917\u0947\u0964",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
"goBack": "\u092a\u0938 \u091c\u093e\u0913"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902",
"lastInputs": "\u0905\u0902\u0924\u093f\u092e \u0907\u0928\u092a\u0941\u091f",
"noInputs": "\u0910\u0938\u0947 \u0916\u093e\u0932\u0940...",
"loading": "\u0932\u094b\u0921\u0964\u0964\u0964"
}
},
"inputBox": {
"input": {
"placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0901 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902..."
},
"speechButton": {
"start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
"stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u092c\u0902\u0926 \u0915\u0930\u094b"
},
"SubmitButton": {
"sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
"stopTask": "\u0915\u093e\u0930\u094d\u092f \u092c\u0902\u0926 \u0915\u0930\u094b"
},
"UploadButton": {
"attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0905\u0928\u0941\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
},
"waterMark": {
"text": "\u0915\u0947 \u0938\u093e\u0925 \u0928\u093f\u0930\u094d\u092e\u093f\u0924"
}
},
"Messages": {
"index": {
"running": "\u092d\u093e\u0917\u0928\u093e",
"executedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0928\u093f\u0937\u094d\u092a\u093e\u0926\u093f\u0924",
"failed": "\u0905\u0938\u092b\u0932",
"feedbackUpdated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908",
"updating": "\u0905\u0926\u094d\u092f\u0924\u0928"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0905\u092a\u0928\u0940 \u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092f\u0939\u093e\u0901 \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u0947\u0902"
},
"index": {
"failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
"cancelledUploadOf": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e",
"couldNotReachServer": "\u0938\u0930\u094d\u0935\u0930 \u0924\u0915 \u0928\u0939\u0940\u0902 \u092a\u0939\u0941\u0901\u091a \u0938\u0915\u093e",
"continuingChat": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e"
},
"settings": {
"settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932",
"reset": "\u0930\u0940\u0938\u0947\u091f",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u092d\u0940",
"feedbackPositive": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
"feedbackNegative": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
},
"SearchBar": {
"search": "\u0922\u0942\u0901\u0922"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0938\u093e\u0925-\u0938\u093e\u0925 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u092d\u0940 \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e",
"deletingChat": "\u091a\u0948\u091f \u0939\u091f\u093e\u0928\u093e",
"chatDeleted": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u0917\u0908"
},
"index": {
"pastChats": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f"
},
"ThreadList": {
"empty": "\u0916\u093e\u0932\u0940\u0964\u0964\u0964",
"today": "\u0906\u091c",
"yesterday": "\u092c\u0940\u0924\u093e \u0939\u0941\u0906 \u0915\u0932",
"previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
"previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
},
"TriggerButton": {
"closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
"openSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
}
},
"Thread": {
"backToChat": "\u091a\u0948\u091f \u092a\u0930 \u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
"chatCreatedOn": "\u092f\u0939 \u091a\u0948\u091f \u0907\u0938 \u092a\u0930 \u092c\u0928\u093e\u0908 \u0917\u0908 \u0925\u0940"
}
},
"header": {
"chat": "\u091a\u0948\u091f",
"readme": "\u0930\u0940\u0921\u092e\u0940"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u093e\u0913\u0902 \u0915\u094b \u0932\u093e\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e",
"requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
"requiredApiKeysInfo": "\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 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u093f\u092f\u094b\u0902 \u0915\u0940 \u0906\u0935\u0936\u094d\u092f\u0915\u0924\u093e \u0939\u094b\u0924\u0940 \u0939\u0948\u0964 \u091a\u093e\u092c\u093f\u092f\u093e\u0901 \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 \u092a\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964"
},
"Page": {
"notPartOfProject": "\u0906\u092a \u0907\u0938 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e \u0915\u093e \u0939\u093f\u0938\u094d\u0938\u093e \u0928\u0939\u0940\u0902 \u0939\u0948\u0902\u0964"
},
"ResumeButton": {
"resumeChat": "\u091a\u0948\u091f \u092b\u093f\u0930 \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
"settingsKey": "S",
"APIKeys": "API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
"logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0caa\u0c9f\u0ccd\u0c9f\u0cbf",
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
"error": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6"
}
},
"attachments": {
"cancelUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1 \u0cae\u0cbe\u0ca1\u0cbf",
"removeAttachment": "\u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0cb9\u0cbe\u0c95\u0cbf"
},
"newChatDialog": {
"createNewChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cb0\u0c9a\u0cbf\u0cb8\u0cac\u0cc7\u0c95\u0cc6?",
"clearChat": "\u0c87\u0ca6\u0cc1 \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0cb0\u0cb5\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
},
"settingsModal": {
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
"expandMessages": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb5\u0cbf\u0cb8\u0ccd\u0ca4\u0cb0\u0cbf\u0cb8\u0cbf",
"hideChainOfThought": "\u0c9a\u0cbf\u0c82\u0ca4\u0ca8\u0cc6\u0caf \u0cb8\u0cb0\u0caa\u0cb3\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0cb0\u0cc6\u0cae\u0cbe\u0ca1\u0cc1",
"darkMode": "\u0ca1\u0cbe\u0cb0\u0ccd\u0c95\u0ccd \u0cae\u0ccb\u0ca1\u0ccd"
},
"detailsButton": {
"using": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"took_one": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6 \u0c87\u0c9f\u0ccd\u0c9f\u0cbf\u0ca6\u0cc6",
"took_other": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0c95\u0cca\u0c82\u0ca1\u0cb0\u0cc1"
},
"auth": {
"authLogin": {
"title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
"form": {
"email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
"password": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
"noAccount": "\u0c96\u0cbe\u0ca4\u0cc6 \u0c87\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
"alreadyHaveAccount": "\u0c88\u0c97\u0cbe\u0c97\u0cb2\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
"signup": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
"signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
"or": "\u0c85\u0ca5\u0cb5\u0cbe",
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"forgotPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc6\u0ca4\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
"passwordMustContain": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c87\u0cb5\u0cc1\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c92\u0cb3\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0cb0\u0cac\u0cc7\u0c95\u0cc1:",
"emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"passwordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6"
},
"error": {
"default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0c85\u0cb8\u0cae\u0cb0\u0ccd\u0ca5\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
"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.",
"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.",
"redirect_uri_mismatch": "\u0cae\u0cb0\u0cc1\u0ca8\u0cbf\u0cb0\u0ccd\u0ca6\u0cc7\u0cb6\u0ca8\u0ca6 URI \u0c86\u0ccd\u0caf\u0caa\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd \u0c97\u0cc6 \u0cb9\u0ccb\u0cb2\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2.",
"oauthcallbackerror": "\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.",
"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.",
"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.",
"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.",
"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\u0cc2\u0cb2\u0ca4\u0c83 \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.",
"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.",
"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.",
"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.",
"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."
}
},
"authVerifyEmail": {
"almostThere": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0cac\u0cb9\u0cc1\u0ca4\u0cc7\u0c95 \u0c85\u0cb2\u0ccd\u0cb2\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbf! \u0ca8\u0cbe\u0cb5\u0cc1 \u0c97\u0cc6 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf\u0ca6\u0ccd\u0ca6\u0cc7\u0cb5\u0cc6 ",
"verifyEmailLink": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0caa\u0cc2\u0cb0\u0ccd\u0ca3\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c86 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb0\u0cc1\u0cb5 \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0c95\u0ccd\u0cb2\u0cbf\u0c95\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
"didNotReceive": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
"resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1",
"emailSent": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
"verifyEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf"
},
"providerButton": {
"continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"signup": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
},
"authResetPassword": {
"newPasswordRequired": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"passwordsMustMatch": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c97\u0cb3\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cac\u0cc7\u0c95\u0cc1",
"confirmPasswordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c8e\u0c82\u0ca6\u0cc1 \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"newPassword": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
"confirmPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"resetPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf"
},
"authForgotPassword": {
"email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
"emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"emailSent": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0cbf\u0c97\u0cbe\u0c97\u0cbf \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8 {{email}} \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf.",
"enterEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca8\u0cbe\u0cb5\u0cc1 \u0ca8\u0cbf\u0cae\u0c97\u0cc6 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cc7\u0cb5\u0cc6.",
"resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cc1",
"lastInputs": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd \u0caa\u0cc1\u0c9f\u0ccd \u0c97\u0cb3\u0cc1",
"noInputs": "\u0c8e\u0c82\u0ca4\u0cb9 \u0c96\u0cbe\u0cb2\u0cbf...",
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cc6\u0cb0\u0cb3\u0c9a\u0ccd\u0c9a\u0cbf\u0cb8\u0cbf..."
},
"speechButton": {
"start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
"stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1"
},
"SubmitButton": {
"sendMessage": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"stopTask": "\u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1 \u0c95\u0cbe\u0cb0\u0ccd\u0caf"
},
"UploadButton": {
"attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
},
"waterMark": {
"text": "\u0c87\u0ca6\u0cb0\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0ca8\u0cbf\u0cb0\u0ccd\u0cae\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
}
},
"Messages": {
"index": {
"running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"executedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cbe\u0cb0\u0ccd\u0caf\u0c97\u0ca4\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"failed": "\u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"feedbackUpdated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cbf\u0ca1\u0cbf"
},
"index": {
"failedToUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"cancelledUploadOf": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0ca6\u0cc6",
"couldNotReachServer": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
"continuingChat": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0caf\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
},
"settings": {
"settingsPanel": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3 \u0cab\u0cb2\u0c95",
"reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0c8e\u0cb2\u0ccd\u0cb2\u0cb5\u0cc2",
"feedbackPositive": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca7\u0ca8\u0cbe\u0ca4\u0ccd\u0cae\u0c95",
"feedbackNegative": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca8\u0c95\u0cbe\u0cb0\u0cbe\u0ca4\u0ccd\u0cae\u0c95"
},
"SearchBar": {
"search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cc1"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0c87\u0ca6\u0cc1 \u0ca5\u0ccd\u0cb0\u0cc6\u0ca1\u0ccd \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \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.",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"deletingChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"chatDeleted": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
},
"index": {
"pastChats": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cb3\u0cc1"
},
"ThreadList": {
"empty": "\u0c96\u0cbe\u0cb2\u0cbf...",
"today": "\u0c87\u0c82\u0ca6\u0cc1",
"yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
"previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
"previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
},
"TriggerButton": {
"closeSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cc1",
"openSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
}
},
"Thread": {
"backToChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cc6 \u0cb9\u0cbf\u0c82\u0ca4\u0cbf\u0cb0\u0cc1\u0c97\u0cbf",
"chatCreatedOn": "\u0c88 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0c88 \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf \u0cb0\u0c9a\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
}
},
"header": {
"chat": "\u0c9a\u0cbe\u0c9f\u0ccd",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0caa\u0cc2\u0cb0\u0cc8\u0c95\u0cc6\u0ca6\u0cbe\u0cb0\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb0\u0cc6\u0ca4\u0cb0\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"requiredApiKeys": "\u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
"requiredApiKeysInfo": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 \u0c8e\u0caa\u0cbf\u0c90 \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1 \u0cac\u0cc7\u0c95\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0cb2\u0cbf\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."
},
"Page": {
"notPartOfProject": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0c88 \u0caf\u0ccb\u0c9c\u0ca8\u0cc6\u0caf \u0cad\u0cbe\u0c97\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2."
},
"ResumeButton": {
"resumeChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0caa\u0cc1\u0ca8\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
"settingsKey": "S",
"APIKeys": "API \u0d15\u0d40\u0d15\u0d7e",
"logout": "\u0d32\u0d4b\u0d17\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d32\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d",
"loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d...",
"error": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
}
},
"attachments": {
"cancelUpload": "\u0d05\u0d2a\u0d4d\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
"removeAttachment": "\u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"newChatDialog": {
"createNewChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d3e\u0d15\u0d4d\u0d15\u0d23\u0d4b?",
"clearChat": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d4d\u0d32\u0d3f\u0d2f\u0d7c \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02.",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"settingsModal": {
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
"expandMessages": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d35\u0d3f\u0d15\u0d38\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"hideChainOfThought": "\u0d1a\u0d3f\u0d28\u0d4d\u0d24\u0d2f\u0d41\u0d1f\u0d46 \u0d36\u0d43\u0d02\u0d16\u0d32 \u0d2e\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"darkMode": "\u0d21\u0d3e\u0d7c\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d4b\u0d21\u0d4d"
},
"detailsButton": {
"using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d02",
"running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
"took_one": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d4d \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41",
"took_other": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d41\u0d15\u0d7e \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41"
},
"auth": {
"authLogin": {
"title": "\u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"form": {
"email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
"password": "Password",
"noAccount": "\u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d47?",
"alreadyHaveAccount": "\u0d12\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d4b?",
"signup": "\u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
"signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
"or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d",
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"forgotPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2e\u0d31\u0d28\u0d4d\u0d28\u0d4b?",
"passwordMustContain": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d3f\u0d7d \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d35 \u0d05\u0d1f\u0d19\u0d4d\u0d19\u0d3f\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d23\u0d02:",
"emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"passwordRequired": "Password \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d"
},
"error": {
"default": "\u0d38\u0d48\u0d28\u0d4d \u0d07\u0d28\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d28\u0d4d \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"redirect_uri_mismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d \u0d2f\u0d41\u0d06\u0d7c\u0d10 \u0d13\u0d24\u0d4d\u0d24\u0d4d \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.",
"oauthcallbackerror": "\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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"oauthaccountnotlinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d10\u0d21\u0d28\u0d4d\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d3f \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"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.",
"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.",
"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\u0d36\u0d26\u0d3e\u0d02\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d4b \u0d0e\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"sessionrequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15."
}
},
"authVerifyEmail": {
"almostThere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d35\u0d3f\u0d1f\u0d46 \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d31\u0d3e\u0d2f\u0d3f! \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d12\u0d30\u0d41 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d ",
"verifyEmailLink": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d48\u0d28\u0d2a\u0d4d\u0d2a\u0d4d \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d06 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d32\u0d3f\u0d32\u0d46 \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d15\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"didNotReceive": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32\u0d47?",
"resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42",
"emailSent": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d41.",
"verifyEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"providerButton": {
"continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"signup": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"authResetPassword": {
"newPasswordRequired": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"passwordsMustMatch": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d41\u0d15\u0d7e \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d23\u0d02",
"confirmPasswordRequired": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d",
"newPassword": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d",
"confirmPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"resetPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"authForgotPassword": {
"email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
"emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"emailSent": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d3e\u0d2f\u0d3f {{email}} \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"enterEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d28\u0d7d\u0d15\u0d41\u0d15, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02.",
"resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0d1a\u0d30\u0d3f\u0d24\u0d4d\u0d30\u0d02 \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"lastInputs": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
"noInputs": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f...",
"loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d..."
}
},
"inputBox": {
"input": {
"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\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15..."
},
"speechButton": {
"start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
},
"SubmitButton": {
"sendMessage": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"stopTask": "\u0d1c\u0d4b\u0d32\u0d3f \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
},
"UploadButton": {
"attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"waterMark": {
"text": "\u0d28\u0d3f\u0d7c\u0d2e\u0d4d\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d24\u0d4d"
}
},
"Messages": {
"index": {
"running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
"executedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d28\u0d1f\u0d2a\u0d4d\u0d2a\u0d3f\u0d32\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
"failed": "\u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
"feedbackUpdated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d41\u0d1a\u0d46\u0d2f\u0d4d \u0d24\u0d41",
"updating": "\u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d07\u0d1f\u0d41\u0d15"
},
"index": {
"failedToUpload": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
"cancelledUploadOf": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
"couldNotReachServer": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d3f\u0d7d \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
"continuingChat": "\u0d2e\u0d41\u0d2e\u0d4d\u0d2a\u0d24\u0d4d\u0d24\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d41"
},
"settings": {
"settingsPanel": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d3e\u0d28\u0d7d",
"reset": "\u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: \u0d0e\u0d32\u0d4d\u0d32\u0d3e\u0d02",
"feedbackPositive": "Feedback: \u0d2a\u0d4b\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d",
"feedbackNegative": "Feedback: \u0d28\u0d46\u0d17\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d"
},
"SearchBar": {
"search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15"
}
},
"DeleteThreadButton": {
"confirmMessage": "\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 \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d02.",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"deletingChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7d",
"chatDeleted": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
},
"index": {
"pastChats": "Past Chats"
},
"ThreadList": {
"empty": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d02...",
"today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
"yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
"previous7days": "Previous 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
"previous30days": "Previous 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
},
"TriggerButton": {
"closeSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"openSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
},
"Thread": {
"backToChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d1f\u0d19\u0d4d\u0d19\u0d41\u0d15",
"chatCreatedOn": "\u0d08 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
}
},
"header": {
"chat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0d26\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d41\u0d35\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
"requiredApiKeys": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 API \u0d15\u0d40\u0d15\u0d7e",
"requiredApiKeysInfo": "\u0d08 \u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 \u0d0e\u0d2a\u0d3f\u0d10 \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15 \u0d38\u0d02\u0d2d\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d3e\u0d23\u0d4d \u0d15\u0d40\u0d15\u0d7e \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d."
},
"Page": {
"notPartOfProject": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d08 \u0d2a\u0d26\u0d4d\u0d27\u0d24\u0d3f\u0d2f\u0d41\u0d1f\u0d46 \u0d2d\u0d3e\u0d17\u0d2e\u0d32\u0d4d\u0d32."
},
"ResumeButton": {
"resumeChat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02 \u0d2a\u0d41\u0d28\u0d30\u0d3e\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"settingsKey": "S",
"APIKeys": "\u090f\u092a\u0940\u0906\u092f \u0915\u0940\u091c",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0928\u0935\u0940\u0928 \u0917\u092a\u094d\u092a\u093e"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
"loading": "\u0932\u094b\u0921\u093f\u0902\u0917...",
"error": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u091d\u093e\u0932\u0940"
}
},
"attachments": {
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"removeAttachment": "\u0938\u0902\u0932\u0917\u094d\u0928\u0924\u093e \u0915\u093e\u0922\u0942\u0928 \u091f\u093e\u0915\u093e"
},
"newChatDialog": {
"createNewChat": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e?",
"clearChat": "\u092f\u093e\u092e\u0941\u0933\u0947 \u0938\u0927\u094d\u092f\u093e\u091a\u0947 \u092e\u0947\u0938\u0947\u091c \u0915\u094d\u0932\u093f\u0905\u0930 \u0939\u094b\u0924\u0940\u0932 \u0906\u0923\u093f \u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0938\u0941\u0930\u0942 \u0939\u094b\u0908\u0932.",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
},
"settingsModal": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"expandMessages": "\u0938\u0902\u0926\u0947\u0936 \u093e\u0902\u091a\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u093e",
"hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930\u093e\u0902\u091a\u0940 \u0938\u093e\u0916\u0933\u0940 \u0932\u092a\u0935\u093e",
"darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
},
"detailsButton": {
"using": "\u0935\u093e\u092a\u0930\u0924",
"running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
"took_one": "{{count}} \u092a\u093e\u090a\u0932 \u0909\u091a\u0932\u0932\u0947",
"took_other": "{{count}} \u092a\u093e\u0935\u0932\u0947 \u0909\u091a\u0932\u0932\u0940"
},
"auth": {
"authLogin": {
"title": "\u0905 \u0945\u092a\u092e\u0927\u094d\u092f\u0947 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e.",
"form": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
"password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"noAccount": "\u0916\u093e\u0924\u0947 \u0928\u093e\u0939\u0940 \u0915\u093e?",
"alreadyHaveAccount": "\u0906\u0927\u0940\u091a \u0916\u093e\u0924\u0947 \u0906\u0939\u0947 \u0915\u093e?",
"signup": "\u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e",
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928",
"or": "\u0915\u093f\u0902\u0935\u093e",
"continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0935\u093f\u0938\u0930\u0932\u093e?",
"passwordMustContain": "\u0906\u092a\u0932\u094d\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921\u092e\u0927\u094d\u092f\u0947 \u0939\u0947 \u0905\u0938\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947:",
"emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947"
},
"error": {
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u0938 \u0905\u0915\u094d\u0937\u092e.",
"signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthsignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"redirect_uri_mismatch": "\u0930\u093f\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u092f \u0911\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.",
"oauthcallbackerror": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"emailcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthaccountnotlinked": "\u0906\u092a\u0932\u0940 \u0913\u0933\u0916 \u0928\u093f\u0936\u094d\u091a\u093f\u0924 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u0906\u092a\u0923 \u092e\u0942\u0933\u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e.",
"emailsignin": "\u0908-\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0924\u093e \u0906\u0932\u093e \u0928\u093e\u0939\u0940.",
"emailverify": "\u0915\u0943\u092a\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u091a\u0940 \u092a\u0921\u0924\u093e\u0933\u0923\u0940 \u0915\u0930\u093e, \u090f\u0915 \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u093f\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947.",
"credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940 \u091d\u093e\u0932\u0947. \u0906\u092a\u0923 \u0926\u093f\u0932\u0947\u0932\u093e \u0924\u092a\u0936\u0940\u0932 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0939\u0947 \u0924\u092a\u093e\u0938\u093e.",
"sessionrequired": "\u0915\u0943\u092a\u092f\u093e \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 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e."
}
},
"authVerifyEmail": {
"almostThere": "\u0924\u0942 \u091c\u0935\u0933\u091c\u0935\u0933 \u0924\u093f\u0925\u0947\u091a \u0906\u0939\u0947\u0938! \u0906\u092e\u094d\u0939\u0940 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0906\u0939\u0947. ",
"verifyEmailLink": "\u0906\u092a\u0932\u0947 \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u094d\u0923 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0924\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u092e\u0927\u0940\u0932 \u0932\u093f\u0902\u0915\u0935\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u093e.",
"didNotReceive": "\u0908\u092e\u0947\u0932 \u0938\u093e\u092a\u0921\u0924 \u0928\u093e\u0939\u0940 \u0915\u093e?",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
"goBack": "\u092a\u0930\u0924 \u091c\u093e",
"emailSent": "\u0908\u092e\u0947\u0932 \u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u092a\u093e\u0920\u0935\u093f\u0932\u093e.",
"verifyEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u0921\u0924\u093e\u0933\u0942\u0928 \u092a\u0939\u093e"
},
"providerButton": {
"continue": "{{provider}} \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"signup": "{{provider}} \u0938\u0939 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e"
},
"authResetPassword": {
"newPasswordRequired": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091c\u0941\u0933\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947",
"confirmPasswordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947 \u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"newPassword": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e"
},
"authForgotPassword": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
"emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"emailSent": "\u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e\u0902\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e {{email}} \u0924\u092a\u093e\u0938\u093e.",
"enterEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e \u0906\u0923\u093f \u0906\u092e\u094d\u0939\u0940 \u0906\u092a\u0932\u094d\u092f\u093e\u0932\u093e \u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e \u092a\u093e\u0920\u0935\u0942.",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
"continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"goBack": "\u092a\u0930\u0924 \u091c\u093e"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e",
"lastInputs": "\u0936\u0947\u0935\u091f\u091a\u0940 \u092e\u093e\u0939\u093f\u0924\u0940",
"noInputs": "\u0907\u0924\u0915\u0940 \u0930\u093f\u0915\u093e\u092e\u0940...",
"loading": "\u0932\u094b\u0921\u093f\u0902\u0917..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0924\u0941\u092e\u091a\u093e \u092e\u0947\u0938\u0947\u091c \u0907\u0925\u0947 \u091f\u093e\u0908\u092a \u0915\u0930\u093e..."
},
"speechButton": {
"start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
"stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e"
},
"SubmitButton": {
"sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
"stopTask": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e"
},
"UploadButton": {
"attachFiles": "\u092b\u093e\u0908\u0932\u094d\u0938 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u093e"
},
"waterMark": {
"text": "\u092f\u093e\u0938\u0939 \u092c\u093e\u0902\u0927\u0932\u0947 \u0906\u0939\u0947"
}
},
"Messages": {
"index": {
"running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
"executedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0930\u093e\u092c\u0935\u093f\u0932\u0940",
"failed": "\u0905\u092a\u092f\u0936\u0940 \u0920\u0930\u0932\u0947",
"feedbackUpdated": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f \u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924",
"updating": "\u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924 \u0915\u0930\u0923\u0947"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0906\u092a\u0932\u094d\u092f\u093e \u092b\u093e\u092f\u0932\u0940 \u092f\u0947\u0925\u0947 \u091f\u093e\u0915\u093e"
},
"index": {
"failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936 \u0906\u0932\u0947",
"cancelledUploadOf": "\u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947\u0932\u0947 \u0905\u092a\u0932\u094b\u0921",
"couldNotReachServer": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u092a\u0930\u094d\u092f\u0902\u0924 \u092a\u094b\u0939\u094b\u091a\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
"continuingChat": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e"
},
"settings": {
"settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0945\u0928\u0947\u0932",
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0930\u094d\u0935",
"feedbackPositive": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
"feedbackNegative": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
},
"SearchBar": {
"search": "\u0936\u094b\u0927\u0923\u0947"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0939\u0947 \u0927\u093e\u0917\u093e \u0924\u0938\u0947\u091a \u0924\u094d\u092f\u093e\u0924\u0940\u0932 \u0938\u0902\u0926\u0947\u0936 \u0906\u0923\u093f \u0918\u091f\u0915 \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0947\u0932.",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"deletingChat": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0923\u0947",
"chatDeleted": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f"
},
"index": {
"pastChats": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e"
},
"ThreadList": {
"empty": "\u0930\u093f\u0915\u094d\u0924\u0964\u0964\u0964",
"today": "\u0906\u091c",
"yesterday": "\u0915\u093e\u0932",
"previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
"previous30days": "\u092e\u093e\u0917\u0940\u0932 \u0969\u0966 \u0926\u093f\u0935\u0938"
},
"TriggerButton": {
"closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
"openSidebar": "\u0913\u092a\u0928 \u0938\u093e\u0907\u0921\u092c\u093e\u0930"
}
},
"Thread": {
"backToChat": "\u092a\u0930\u0924 \u0917\u092a\u094d\u092a\u093e \u092e\u093e\u0930\u093e\u092f\u0932\u093e \u091c\u093e",
"chatCreatedOn": "\u0939\u0947 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0906\u0932\u0947 \u0939\u094b\u0924\u0947."
}
},
"header": {
"chat": "\u092c\u0915\u0935\u093e\u0926 \u0915\u0930\u0923\u0947\u0902",
"readme": "\u0935\u093e\u091a\u093e"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u094d\u092f\u093e\u0902\u0928\u093e \u0906\u0923\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936\u0940:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0935\u093e\u091a\u0935\u0932\u0947",
"requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e",
"requiredApiKeysInfo": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0938\u094d\u0925\u093e\u0928\u093f\u0915 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u0935\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u093f\u0924 \u0915\u0947\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924."
},
"Page": {
"notPartOfProject": "\u0924\u0941\u092e\u094d\u0939\u0940 \u092f\u093e \u092a\u094d\u0930\u0915\u0932\u094d\u092a\u093e\u091a\u093e \u092d\u093e\u0917 \u0928\u093e\u0939\u0940."
},
"ResumeButton": {
"resumeChat": "\u091a\u0945\u091f \u092a\u0941\u0928\u094d\u0939\u093e \u0938\u0941\u0930\u0942 \u0915\u0930\u093e"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"settingsKey": "S",
"APIKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0baa\u0ba3\u0bbf \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
"error": "\u0b92\u0bb0\u0bc1 \u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
}
},
"attachments": {
"cancelUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0ba4\u0bcd\u0ba4\u0bc8 \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1\u0b9a\u0bc6\u0baf\u0bcd",
"removeAttachment": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1"
},
"newChatDialog": {
"createNewChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bb5\u0bbe?",
"clearChat": "\u0b87\u0ba4\u0bc1 \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b85\u0bb4\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
},
"settingsModal": {
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"expandMessages": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
"hideChainOfThought": "\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0ba9\u0bc8\u0b9a\u0bcd \u0b9a\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bbf\u0baf\u0bc8 \u0bae\u0bb1\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1",
"darkMode": "\u0b87\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f \u0baa\u0baf\u0ba9\u0bcd\u0bae\u0bc1\u0bb1\u0bc8"
},
"detailsButton": {
"using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf",
"running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
"took_one": "{{count}} \u0b85\u0b9f\u0bbf \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd",
"took_other": "{{count}} \u0baa\u0b9f\u0bbf\u0b95\u0bb3\u0bc8 \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd"
},
"auth": {
"authLogin": {
"title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95.",
"form": {
"email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
"password": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
"noAccount": "\u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
"alreadyHaveAccount": "\u0b8f\u0bb1\u0bcd\u0b95\u0ba9\u0bb5\u0bc7 \u0b92\u0bb0\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe?",
"signup": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0baa\u0bc6\u0bb1\u0bc1",
"signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95",
"or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1",
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
"forgotPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bb1\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
"passwordMustContain": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bbf\u0bb2\u0bcd \u0b87\u0bb5\u0bc8 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd:",
"emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"passwordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
},
"error": {
"default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"signin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"oauthsignin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"redirect_uri_mismatch": "\u0bb5\u0bb4\u0bbf\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 URI oauth \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0bae\u0bc8\u0bb5\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"oauthcallbackerror": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"oauthcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"emailcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"callback": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"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, \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \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.",
"emailsignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"emailverify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd, \u0b92\u0bb0\u0bc1 \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\u0ba4\u0bc1.",
"credentialssignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\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\u0ba4\u0bbe \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
"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."
}
},
"authVerifyEmail": {
"almostThere": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0b9f\u0bcd\u0b9f \u0bb5\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bcd! -\u0b95\u0bcd\u0b95\u0bc1 \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bc1\u0bb3\u0bcd\u0bb3\u0bcb\u0bae\u0bcd ",
"verifyEmailLink": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bb2\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc8\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0baf \u0b85\u0ba8\u0bcd\u0ba4 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bbf\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8\u0b95\u0bcd \u0b95\u0bbf\u0bb3\u0bbf\u0b95\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd.",
"didNotReceive": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8\u0b95\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
"resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
"goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
"emailSent": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1.",
"verifyEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b88\u0bae\u0bc6\u0baf\u0bbf\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8\u0b9a\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
},
"providerButton": {
"continue": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd",
"signup": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95"
},
"authResetPassword": {
"newPasswordRequired": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"passwordsMustMatch": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd",
"confirmPasswordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"newPassword": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
"confirmPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd",
"resetPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8"
},
"authForgotPassword": {
"email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
"emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"emailSent": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0ba9 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 {{email}} \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
"enterEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd, \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0b95\u0bcd\u0b95 \u0ba8\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bcb\u0bae\u0bcd.",
"resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
"goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"lastInputs": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
"noInputs": "\u0b85\u0bb5\u0bcd\u0bb5\u0bb3\u0bb5\u0bc1 \u0bb5\u0bc6\u0bb1\u0bc1\u0bae\u0bc8...",
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1..."
}
},
"inputBox": {
"input": {
"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\u0b95..."
},
"speechButton": {
"start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
"stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0bb5\u0ba4\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
},
"SubmitButton": {
"sendMessage": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
"stopTask": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
},
"UploadButton": {
"attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
},
"waterMark": {
"text": "\u0b89\u0b9f\u0ba9\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
}
},
"Messages": {
"index": {
"running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
"executedSuccessfully": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
"failed": "\u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1",
"feedbackUpdated": "\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",
"updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0bb5\u0bbf\u0b9f\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd:"
},
"index": {
"failedToUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf",
"cancelledUploadOf": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd",
"couldNotReachServer": "\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",
"continuingChat": "\u0ba4\u0bca\u0b9f\u0bb0\u0bc1\u0bae\u0bcd \u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
},
"settings": {
"settingsPanel": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0b95\u0bc1\u0bb4\u0bc1",
"reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1\u0bae\u0bcd",
"feedbackPositive": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bb1\u0bc8",
"feedbackNegative": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0bae\u0bb1\u0bc8"
},
"SearchBar": {
"search": "\u0ba4\u0bc7\u0b9f\u0bc1"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0b87\u0ba4\u0bc1 \u0ba8\u0bc2\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b95\u0bc2\u0bb1\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd",
"deletingChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
"chatDeleted": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
},
"index": {
"pastChats": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bb3\u0bcd"
},
"ThreadList": {
"empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0ba9...",
"today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
"yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
"previous7days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
"previous30days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
},
"TriggerButton": {
"closeSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
"openSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
}
},
"Thread": {
"backToChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0bb5\u0bc1\u0bae\u0bcd",
"chatCreatedOn": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0ba4\u0bc7\u0ba4\u0bbf"
}
},
"header": {
"chat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8",
"readme": "\u0bb0\u0bc0\u0b9f\u0bcd\u0bae\u0bc0"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bc1\u0ba8\u0bb0\u0bcd\u0b95\u0bb3\u0bc8\u0baa\u0bcd \u0baa\u0bc6\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\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",
"requiredApiKeys": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"requiredApiKeysInfo": "\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."
},
"Page": {
"notPartOfProject": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4\u0ba4\u0bcd \u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b92\u0bb0\u0bc1 \u0baa\u0b95\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8."
},
"ResumeButton": {
"resumeChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
}
}
}
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d \u0c32\u0c3f\u0c38\u0c4d\u0c1f\u0c4d",
"loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d...",
"error": "\u0c12\u0c15 \u0c26\u0c4b\u0c37\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f"
}
},
"attachments": {
"cancelUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
"removeAttachment": "\u0c05\u0c1f\u0c3e\u0c1a\u0c4d \u0c2e\u0c46\u0c02\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c41"
},
"newChatDialog": {
"createNewChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c3e?",
"clearChat": "\u0c07\u0c26\u0c3f \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c15\u0c4d\u0c32\u0c3f\u0c2f\u0c30\u0c4d \u0c1a\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u0c28\u0c41 \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
},
"settingsModal": {
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
"expandMessages": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c35\u0c3f\u0c38\u0c4d\u0c24\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"hideChainOfThought": "\u0c06\u0c32\u0c4b\u0c1a\u0c28\u0c3e \u0c17\u0c4a\u0c32\u0c41\u0c38\u0c41\u0c28\u0c41 \u0c26\u0c3e\u0c1a\u0c02\u0c21\u0c3f",
"darkMode": "\u0c21\u0c3e\u0c30\u0c4d\u0c15\u0c4d \u0c2e\u0c4b\u0c21\u0c4d"
},
"detailsButton": {
"using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02",
"running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
"took_one": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f",
"took_other": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41\u0c32\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f"
},
"auth": {
"authLogin": {
"title": "\u0c2f\u0c3e\u0c2a\u0c4d \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c05\u0c35\u0c4d\u0c35\u0c02\u0c21\u0c3f.",
"form": {
"email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
"password": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
"noAccount": "\u0c2e\u0c40\u0c15\u0c41 \u0c05\u0c15\u0c4c\u0c02\u0c1f\u0c4d \u0c32\u0c47\u0c26\u0c3e?",
"alreadyHaveAccount": "\u0c07\u0c2a\u0c4d\u0c2a\u0c1f\u0c3f\u0c15\u0c47 \u0c16\u0c3e\u0c24\u0c3e \u0c09\u0c02\u0c26\u0c3e?",
"signup": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c05\u0c2a\u0c4d",
"signin": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c07\u0c28\u0c4d",
"or": "\u0c32\u0c47\u0c26\u0c3e",
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
"forgotPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c2e\u0c30\u0c4d\u0c1a\u0c3f\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
"passwordMustContain": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c4b \u0c07\u0c35\u0c3f \u0c09\u0c02\u0c21\u0c3e\u0c32\u0c3f:",
"emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"passwordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d"
},
"error": {
"default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
"signin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthsignin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"redirect_uri_mismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI \u0c13\u0c2f\u0c42\u0c24\u0c4d \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d \u0c15\u0c41 \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41.",
"oauthcallbackerror": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"emailcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"callback": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthaccountnotlinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\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.",
"emailsignin": "\u0c07-\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
"emailverify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \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.",
"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\u0c3f\u0c17\u0c4d\u0c17\u0c3e \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c2f\u0c4b \u0c32\u0c47\u0c26\u0c4b \u0c1a\u0c46\u0c15\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c02\u0c21\u0c3f.",
"sessionrequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f."
}
},
"authVerifyEmail": {
"almostThere": "\u0c2e\u0c40\u0c30\u0c41 \u0c26\u0c3e\u0c26\u0c3e\u0c2a\u0c41 \u0c05\u0c15\u0c4d\u0c15\u0c21\u0c47 \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c41! \u0c2e\u0c47\u0c2e\u0c41 \u0c26\u0c40\u0c28\u0c3f\u0c15\u0c3f \u0c12\u0c15 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c3e\u0c2e\u0c41 ",
"verifyEmailLink": "\u0c2e\u0c40 \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c2a\u0c42\u0c30\u0c4d\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c06 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c32\u0c4b\u0c28\u0c3f \u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c2a\u0c48 \u0c15\u0c4d\u0c32\u0c3f\u0c15\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
"didNotReceive": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
"resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41",
"emailSent": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f.",
"verifyEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
},
"providerButton": {
"continue": "{{provider}} \u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"signup": "{{provider}} \u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
},
"authResetPassword": {
"newPasswordRequired": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"passwordsMustMatch": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c41 \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f\u0c17\u0c3e \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c3e\u0c32\u0c3f",
"confirmPasswordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"newPassword": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
"confirmPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"resetPassword": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d"
},
"authForgotPassword": {
"email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
"emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"emailSent": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c38\u0c42\u0c1a\u0c28\u0c32 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f {{email}} \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
"enterEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2e\u0c47\u0c2e\u0c41 \u0c2e\u0c40\u0c15\u0c41 \u0c38\u0c42\u0c1a\u0c28\u0c32\u0c41 \u0c2a\u0c02\u0c2a\u0c41\u0c24\u0c3e\u0c2e\u0c41.",
"resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41",
"lastInputs": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d \u0c2a\u0c41\u0c1f\u0c4d \u0c32\u0c41",
"noInputs": "\u0c05\u0c02\u0c24 \u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e...",
"loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d..."
}
},
"inputBox": {
"input": {
"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..."
},
"speechButton": {
"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",
"stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f"
},
"SubmitButton": {
"sendMessage": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c41",
"stopTask": "\u0c38\u0c4d\u0c1f\u0c3e\u0c2a\u0c4d \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d"
},
"UploadButton": {
"attachFiles": "\u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c41"
},
"waterMark": {
"text": "\u0c26\u0c40\u0c28\u0c3f\u0c24\u0c4b \u0c28\u0c3f\u0c30\u0c4d\u0c2e\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
}
},
"Messages": {
"index": {
"running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
"executedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c05\u0c2e\u0c32\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"failed": "\u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
"feedbackUpdated": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d \u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"updating": "\u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0c2e\u0c40 \u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
},
"index": {
"failedToUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
"cancelledUploadOf": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c38\u0c3f\u0c28 \u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d",
"couldNotReachServer": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d \u0c15\u0c41 \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
"continuingChat": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f \u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02"
},
"settings": {
"settingsPanel": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u0c38\u0c4d \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d",
"reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c05\u0c28\u0c4d\u0c28\u0c40",
"feedbackPositive": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c2a\u0c3e\u0c1c\u0c3f\u0c1f\u0c3f\u0c35\u0c4d",
"feedbackNegative": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c28\u0c46\u0c17\u0c46\u0c1f\u0c3f\u0c35\u0c4d"
},
"SearchBar": {
"search": "\u0c35\u0c46\u0c24\u0c41\u0c15\u0c41"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c0e\u0c32\u0c3f\u0c2e\u0c46\u0c02\u0c1f\u0c4d\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41",
"deletingChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02",
"chatDeleted": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
},
"index": {
"pastChats": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c32\u0c41"
},
"ThreadList": {
"empty": "\u0c16\u0c3e\u0c33\u0c40...",
"today": "\u0c08 \u0c30\u0c4b\u0c1c\u0c41",
"yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
"previous7days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
"previous30days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
},
"TriggerButton": {
"closeSidebar": "\u0c15\u0c4d\u0c32\u0c4b\u0c1c\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d",
"openSidebar": "\u0c13\u0c2a\u0c46\u0c28\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d"
}
},
"Thread": {
"backToChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c32\u0c02\u0c21\u0c3f",
"chatCreatedOn": "\u0c08 \u0c1a\u0c3e\u0c1f\u0c4d \u0c26\u0c40\u0c28\u0c3f\u0c32\u0c4b \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
}
},
"header": {
"chat": "\u0c2e\u0c41\u0c1a\u0c4d\u0c1a\u0c1f\u0c3f\u0c02\u0c1a\u0c41",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0c2a\u0c4d\u0c30\u0c4a\u0c35\u0c48\u0c21\u0c30\u0c4d\u0c32\u0c28\u0c41 \u0c2a\u0c4a\u0c02\u0c26\u0c21\u0c02\u0c32\u0c4b \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"requiredApiKeys": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
"requiredApiKeysInfo": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c08 \u0c15\u0c4d\u0c30\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02 \u0c05\u0c35\u0c41\u0c24\u0c3e\u0c2f\u0c3f. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c38\u0c4d\u0c1f\u0c4b\u0c30\u0c47\u0c1c\u0c40\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f."
},
"Page": {
"notPartOfProject": "\u0c2e\u0c40\u0c30\u0c41 \u0c08 \u0c2a\u0c4d\u0c30\u0c3e\u0c1c\u0c46\u0c15\u0c4d\u0c1f\u0c41\u0c32\u0c4b \u0c2d\u0c3e\u0c17\u0c02 \u0c15\u0c3e\u0c26\u0c41."
},
"ResumeButton": {
"resumeChat": "\u0c30\u0c46\u0c1c\u0c4d\u0c2f\u0c42\u0c2e\u0c4d \u0c1a\u0c3e\u0c1f\u0c4d"
}
}
}
@@ -0,0 +1,229 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u8bbe\u7f6e",
"settingsKey": "S",
"APIKeys": "API \u5bc6\u94a5",
"logout": "\u767b\u51fa"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u65b0\u5efa\u5bf9\u8bdd"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u4efb\u52a1\u5217\u8868",
"loading": "\u52a0\u8f7d\u4e2d...",
"error": "\u53d1\u751f\u9519\u8bef"
}
},
"attachments": {
"cancelUpload": "\u53d6\u6d88\u4e0a\u4f20",
"removeAttachment": "\u79fb\u9664\u9644\u4ef6"
},
"newChatDialog": {
"createNewChat": "\u521b\u5efa\u65b0\u5bf9\u8bdd\uff1f",
"clearChat": "\u8fd9\u5c06\u6e05\u9664\u5f53\u524d\u6d88\u606f\u5e76\u5f00\u59cb\u65b0\u7684\u5bf9\u8bdd\u3002",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4"
},
"settingsModal": {
"settings": "\u8bbe\u7f6e",
"expandMessages": "\u5c55\u5f00\u6d88\u606f",
"hideChainOfThought": "\u9690\u85cf\u601d\u8003\u94fe",
"darkMode": "\u6697\u8272\u6a21\u5f0f"
},
"detailsButton": {
"using": "\u4f7f\u7528",
"used": "\u5df2\u7528"
},
"auth": {
"authLogin": {
"title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528\u3002",
"form": {
"email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
"password": "\u5bc6\u7801",
"noAccount": "\u6ca1\u6709\u8d26\u6237\uff1f",
"alreadyHaveAccount": "\u5df2\u6709\u8d26\u6237\uff1f",
"signup": "\u6ce8\u518c",
"signin": "\u767b\u5f55",
"or": "\u6216\u8005",
"continue": "\u7ee7\u7eed",
"forgotPassword": "\u5fd8\u8bb0\u5bc6\u7801\uff1f",
"passwordMustContain": "\u60a8\u7684\u5bc6\u7801\u5fc5\u987b\u5305\u542b\uff1a",
"emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
"passwordRequired": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
},
"error": {
"default": "\u65e0\u6cd5\u767b\u5f55\u3002",
"signin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthsignin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"redirect_uri_mismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d\u3002",
"oauthcallbackerror": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"emailcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"callback": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthaccountnotlinked": "\u4e3a\u4e86\u9a8c\u8bc1\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u6700\u521d\u4f7f\u7528\u7684\u540c\u4e00\u8d26\u6237\u767b\u5f55\u3002",
"emailsignin": "\u65e0\u6cd5\u53d1\u9001\u90ae\u4ef6\u3002",
"emailverify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\uff0c\u5df2\u53d1\u9001\u4e00\u5c01\u65b0\u90ae\u4ef6\u3002",
"credentialssignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u8be6\u7ec6\u4fe1\u606f\u662f\u5426\u6b63\u786e\u3002",
"sessionrequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762\u3002"
}
},
"authVerifyEmail": {
"almostThere": "\u60a8\u5feb\u6210\u529f\u4e86\uff01\u6211\u4eec\u5df2\u5411 ",
"verifyEmailLink": "\u8bf7\u5355\u51fb\u8be5\u90ae\u4ef6\u4e2d\u7684\u94fe\u63a5\u4ee5\u5b8c\u6210\u6ce8\u518c\u3002",
"didNotReceive": "\u6ca1\u627e\u5230\u90ae\u4ef6\uff1f",
"resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
"goBack": "\u8fd4\u56de",
"emailSent": "\u90ae\u4ef6\u5df2\u6210\u529f\u53d1\u9001\u3002",
"verifyEmail": "\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740"
},
"providerButton": {
"continue": "\u4f7f\u7528{{provider}}\u7ee7\u7eed",
"signup": "\u4f7f\u7528{{provider}}\u6ce8\u518c"
},
"authResetPassword": {
"newPasswordRequired": "\u65b0\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
"passwordsMustMatch": "\u5bc6\u7801\u5fc5\u987b\u4e00\u81f4",
"confirmPasswordRequired": "\u786e\u8ba4\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
"newPassword": "\u65b0\u5bc6\u7801",
"confirmPassword": "\u786e\u8ba4\u5bc6\u7801",
"resetPassword": "\u91cd\u7f6e\u5bc6\u7801"
},
"authForgotPassword": {
"email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
"emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
"emailSent": "\u8bf7\u68c0\u67e5\u7535\u5b50\u90ae\u7bb1{{email}}\u4ee5\u83b7\u53d6\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
"enterEmail": "\u8bf7\u8f93\u5165\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u5730\u5740\uff0c\u6211\u4eec\u5c06\u53d1\u9001\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
"resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
"continue": "\u7ee7\u7eed",
"goBack": "\u8fd4\u56de"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u663e\u793a\u5386\u53f2",
"lastInputs": "\u6700\u540e\u8f93\u5165",
"noInputs": "\u5982\u6b64\u7a7a\u65f7...",
"loading": "\u52a0\u8f7d\u4e2d..."
}
},
"inputBox": {
"input": {
"placeholder": "\u5728\u8fd9\u91cc\u8f93\u5165\u60a8\u7684\u6d88\u606f..."
},
"speechButton": {
"start": "\u5f00\u59cb\u5f55\u97f3",
"stop": "\u505c\u6b62\u5f55\u97f3"
},
"SubmitButton": {
"sendMessage": "\u53d1\u9001\u6d88\u606f",
"stopTask": "\u505c\u6b62\u4efb\u52a1"
},
"UploadButton": {
"attachFiles": "\u9644\u52a0\u6587\u4ef6"
},
"waterMark": {
"text": "\u4f7f\u7528"
}
},
"Messages": {
"index": {
"running": "\u8fd0\u884c\u4e2d",
"executedSuccessfully": "\u6267\u884c\u6210\u529f",
"failed": "\u5931\u8d25",
"feedbackUpdated": "\u53cd\u9988\u66f4\u65b0",
"updating": "\u6b63\u5728\u66f4\u65b0"
}
},
"dropScreen": {
"dropYourFilesHere": "\u5728\u8fd9\u91cc\u62d6\u653e\u60a8\u7684\u6587\u4ef6"
},
"index": {
"failedToUpload": "\u4e0a\u4f20\u5931\u8d25",
"cancelledUploadOf": "\u53d6\u6d88\u4e0a\u4f20",
"couldNotReachServer": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668",
"continuingChat": "\u7ee7\u7eed\u4e4b\u524d\u7684\u5bf9\u8bdd"
},
"settings": {
"settingsPanel": "\u8bbe\u7f6e\u9762\u677f",
"reset": "\u91cd\u7f6e",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u53cd\u9988\uff1a\u5168\u90e8",
"feedbackPositive": "\u53cd\u9988\uff1a\u6b63\u9762",
"feedbackNegative": "\u53cd\u9988\uff1a\u8d1f\u9762"
},
"SearchBar": {
"search": "\u641c\u7d22"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u8fd9\u5c06\u5220\u9664\u7ebf\u7a0b\u53ca\u5176\u6d88\u606f\u548c\u5143\u7d20\u3002",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4",
"deletingChat": "\u5220\u9664\u5bf9\u8bdd",
"chatDeleted": "\u5bf9\u8bdd\u5df2\u5220\u9664"
},
"index": {
"pastChats": "\u8fc7\u5f80\u5bf9\u8bdd"
},
"ThreadList": {
"empty": "\u7a7a\u7684...",
"today": "\u4eca\u5929",
"yesterday": "\u6628\u5929",
"previous7days": "\u524d7\u5929",
"previous30days": "\u524d30\u5929"
},
"TriggerButton": {
"closeSidebar": "\u5173\u95ed\u4fa7\u8fb9\u680f",
"openSidebar": "\u6253\u5f00\u4fa7\u8fb9\u680f"
}
},
"Thread": {
"backToChat": "\u8fd4\u56de\u5bf9\u8bdd",
"chatCreatedOn": "\u6b64\u5bf9\u8bdd\u521b\u5efa\u4e8e"
}
},
"header": {
"chat": "\u5bf9\u8bdd",
"readme": "\u8bf4\u660e"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u83b7\u53d6\u63d0\u4f9b\u8005\u5931\u8d25:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u4fdd\u5b58\u6210\u529f",
"requiredApiKeys": "\u5fc5\u9700\u7684API\u5bc6\u94a5",
"requiredApiKeysInfo": "\u8981\u4f7f\u7528\u6b64\u5e94\u7528\uff0c\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u7684\u8bbe\u5907\u672c\u5730\u5b58\u50a8\u4e2d\u3002"
},
"Page": {
"notPartOfProject": "\u60a8\u4e0d\u662f\u6b64\u9879\u76ee\u7684\u4e00\u90e8\u5206\u3002"
},
"ResumeButton": {
"resumeChat": "\u6062\u590d\u5bf9\u8bdd"
}
}
}
+1
View File
@@ -0,0 +1 @@
# Welcome to Praison AI! 🚀🤖
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
"settingsKey": "S",
"APIKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
"logout": "\u09b2\u0997\u0986\u0989\u099f"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u09a8\u09a4\u09c1\u09a8 \u0986\u09a1\u09cd\u09a1\u09be"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0995\u09be\u09b0\u09cd\u09af \u09a4\u09be\u09b2\u09bf\u0995\u09be",
"loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964",
"error": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u09b8\u0982\u0998\u099f\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
}
},
"attachments": {
"cancelUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
"removeAttachment": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09b8\u09b0\u09be\u09a8"
},
"newChatDialog": {
"createNewChat": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09ac\u09c7\u09a8?",
"clearChat": "\u098f\u099f\u09bf \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09b8\u09be\u09ab \u0995\u09b0\u09ac\u09c7 \u098f\u09ac\u0982 \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09ac\u09c7\u0964",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
},
"settingsModal": {
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
"expandMessages": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
"hideChainOfThought": "\u099a\u09bf\u09a8\u09cd\u09a4\u09be\u09b0 \u09b6\u09c3\u0999\u09cd\u0996\u09b2 \u09b2\u09c1\u0995\u09be\u09a8",
"darkMode": "\u09a1\u09be\u09b0\u09cd\u0995 \u09ae\u09cb\u09a1"
},
"detailsButton": {
"using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0",
"running": "\u099a\u09b2\u09ae\u09be\u09a8",
"took_one": "{{count}} \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7",
"took_other": "{{count}}\u099f\u09bf \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7"
},
"auth": {
"authLogin": {
"title": "\u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
"form": {
"email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
"password": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
"noAccount": "\u0995\u09cb\u09a8\u0993 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a8\u09c7\u0987?",
"alreadyHaveAccount": "\u0987\u09a4\u09bf\u09ae\u09a7\u09cd\u09af\u09c7 \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u0986\u099b\u09c7?",
"signup": "\u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09cb",
"signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09cb",
"or": "\u09ac\u09be",
"continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
"forgotPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09ad\u09c1\u09b2\u09c7 \u0997\u09c7\u099b\u09c7\u09a8?",
"passwordMustContain": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u09c7 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09a5\u09be\u0995\u09a4\u09c7 \u09b9\u09ac\u09c7:",
"emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"passwordRequired": "\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"
},
"error": {
"default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09a4\u09c7 \u0985\u0995\u09cd\u09b7\u09ae\u0964",
"signin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"oauthsignin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"redirect_uri_mismatch": "\u09aa\u09c1\u09a8\u0983\u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09bf\u09a4 URI OAUTH \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\u0964",
"oauthcallbackerror": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"oauthcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"emailcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"callback": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
"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 \u09ae\u09c2\u09b2\u09a4 \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09c7\u09a8 \u09b8\u09c7\u0987 \u098f\u0995\u0987 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
"emailsignin": "\u0987-\u09ae\u09c7\u0987\u09b2\u099f\u09bf \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf\u0964",
"emailverify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2\u099f\u09bf \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u09b2 \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
"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 \u09aa\u09cd\u09b0\u09a6\u09a4\u09cd\u09a4 \u09ac\u09bf\u09ac\u09b0\u09a3\u0997\u09c1\u09b2\u09bf \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09a4\u09be \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
"sessionrequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964"
}
},
"authVerifyEmail": {
"almostThere": "\u0986\u09aa\u09a8\u09bf \u09aa\u09cd\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u0996\u09be\u09a8\u09c7 \u09aa\u09cc\u0981\u099b\u09c7\u099b\u09c7\u09a8! \u0986\u09ae\u09b0\u09be \u098f\u0995\u099f\u09bf \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09bf\u09af\u09bc\u09c7\u099b\u09bf ",
"verifyEmailLink": "\u0986\u09aa\u09a8\u09be\u09b0 \u09b8\u09be\u0987\u09a8\u0986\u09aa \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09c7\u0987 \u0987\u09ae\u09c7\u09b2\u09c7\u09b0 \u09b2\u09bf\u0999\u09cd\u0995\u099f\u09bf\u09a4\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8\u0964",
"didNotReceive": "\u0987\u09ae\u09c7\u0987\u09b2 \u0996\u09c1\u0981\u099c\u09c7 \u09aa\u09be\u099a\u09cd\u099b\u09c7\u09a8 \u09a8\u09be?",
"resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
"goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993",
"emailSent": "\u0987\u09ae\u09c7\u09b2 \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
"verifyEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8"
},
"providerButton": {
"continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
"signup": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09c1\u09a8"
},
"authResetPassword": {
"newPasswordRequired": "\u09a8\u09a4\u09c1\u09a8 \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",
"passwordsMustMatch": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09ae\u09bf\u09b2\u09a4\u09c7 \u09b9\u09ac\u09c7",
"confirmPasswordRequired": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09be \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"newPassword": "\u09a8\u09a4\u09c1\u09a8 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
"confirmPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
"resetPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8"
},
"authForgotPassword": {
"email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
"emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
"emailSent": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u099f\u09bf \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09be\u09b0 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0\u09b0 \u099c\u09a8\u09cd\u09af \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be {{email}} \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
"enterEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09b2\u09bf\u0996\u09c1\u09a8 \u098f\u09ac\u0982 \u0986\u09ae\u09b0\u09be \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0 \u09aa\u09be\u09a0\u09be\u09ac\u0964",
"resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
"continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
"goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09be\u09a8",
"lastInputs": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
"noInputs": "\u098f\u09a4 \u09ab\u09be\u0981\u0995\u09be...",
"loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964"
}
},
"inputBox": {
"input": {
"placeholder": "\u098f\u0996\u09be\u09a8\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8..."
},
"speechButton": {
"start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
"stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8"
},
"SubmitButton": {
"sendMessage": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09c1\u09a8",
"stopTask": "\u09b8\u09cd\u099f\u09aa \u099f\u09be\u09b8\u09cd\u0995"
},
"UploadButton": {
"attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
},
"waterMark": {
"text": "\u09b8\u0999\u09cd\u0997\u09c7 \u09a8\u09bf\u09b0\u09cd\u09ae\u09bf\u09a4"
}
},
"Messages": {
"index": {
"running": "\u099a\u09b2\u09ae\u09be\u09a8",
"executedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"failed": "\u09ac\u09cd\u09af\u09b0\u09cd\u09a5",
"feedbackUpdated": "\u09ab\u09bf\u09a1\u09ac\u09cd\u09af\u09be\u0995 \u0986\u09aa\u09a1\u09c7\u099f \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"updating": "\u0986\u09a7\u09c1\u09a8\u09bf\u0995\u09c0\u0995\u09b0\u09a3"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ab\u09be\u0987\u09b2\u0997\u09c1\u09b2\u09bf \u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09c7\u09b2\u09c7 \u09a6\u09bf\u09a8"
},
"index": {
"failedToUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"cancelledUploadOf": "\u098f\u09b0 \u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2",
"couldNotReachServer": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7 \u09aa\u09cc\u0981\u099b\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
"continuingChat": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f \u0985\u09ac\u09bf\u09b0\u09a4 \u09b0\u09be\u0996\u09be"
},
"settings": {
"settingsPanel": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2",
"reset": "\u09b0\u09bf\u09b8\u09c7\u099f",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09b8\u09ac",
"feedbackPositive": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u0987\u09a4\u09bf\u09ac\u09be\u099a\u0995",
"feedbackNegative": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09a8\u09c7\u09a4\u09bf\u09ac\u09be\u099a\u0995"
},
"SearchBar": {
"search": "\u09b8\u09a8\u09cd\u09a7\u09be\u09a8"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09aa\u09be\u09b6\u09be\u09aa\u09be\u09b6\u09bf \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u09ac\u0982 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf\u0993 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964",
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4",
"deletingChat": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u099a\u09cd\u099b\u09c7",
"chatDeleted": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
},
"index": {
"pastChats": "\u0985\u09a4\u09c0\u09a4 \u099a\u09cd\u09af\u09be\u099f"
},
"ThreadList": {
"empty": "\u0996\u09be\u09b2\u09bf\u0964\u0964\u0964",
"today": "\u0986\u099c",
"yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
"previous7days": "Previous 7 \u09a6\u09bf\u09a8",
"previous30days": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 30 \u09a6\u09bf\u09a8"
},
"TriggerButton": {
"closeSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
"openSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
}
},
"Thread": {
"backToChat": "\u099a\u09cd\u09af\u09be\u099f\u09c7 \u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u09a8",
"chatCreatedOn": "\u098f\u0987 \u099a\u09cd\u09af\u09be\u099f\u099f\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09bf\u09b2"
}
},
"header": {
"chat": "\u0986\u09b2\u09be\u09aa",
"readme": "\u09b0\u09bf\u09a1\u09ae\u09bf"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u09b8\u09b0\u09ac\u09b0\u09be\u09b9\u0995\u09be\u09b0\u09c0\u09a6\u09c7\u09b0 \u0986\u09a8\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
"requiredApiKeys": "\u0986\u09ac\u09b6\u09cd\u09af\u0995 API \u0995\u09c0",
"requiredApiKeysInfo": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7, \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 API \u0995\u09c0\u0997\u09c1\u09b2\u09bf\u09b0 \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 \u09b8\u09cd\u09a5\u09be\u09a8\u09c0\u09af\u09bc \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u099e\u09cd\u099a\u09bf\u09a4 \u09b0\u09af\u09bc\u09c7\u099b\u09c7\u0964"
},
"Page": {
"notPartOfProject": "\u0986\u09aa\u09a8\u09bf \u098f\u0987 \u09aa\u09cd\u09b0\u0995\u09b2\u09cd\u09aa\u09c7\u09b0 \u0985\u0982\u09b6 \u09a8\u09a8\u0964"
},
"ResumeButton": {
"resumeChat": "\u099a\u09cd\u09af\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8"
}
}
}
+229
View File
@@ -0,0 +1,229 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "Settings",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "New Chat"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f Task List",
"loading": "Loading...",
"error": "An error occurred"
}
},
"attachments": {
"cancelUpload": "Cancel upload",
"removeAttachment": "Remove attachment"
},
"newChatDialog": {
"createNewChat": "Create new chat?",
"clearChat": "This will clear the current messages and start a new chat.",
"cancel": "Cancel",
"confirm": "Confirm"
},
"settingsModal": {
"settings": "Settings",
"expandMessages": "Expand Messages",
"hideChainOfThought": "Hide Chain of Thought",
"darkMode": "Dark Mode"
},
"detailsButton": {
"using": "Using",
"used": "Used"
},
"auth": {
"authLogin": {
"title": "Login to access the app.",
"form": {
"email": "Email address",
"password": "Password",
"noAccount": "Don't have an account?",
"alreadyHaveAccount": "Already have an account?",
"signup": "Sign Up",
"signin": "Sign In",
"or": "OR",
"continue": "Continue",
"forgotPassword": "Forgot password?",
"passwordMustContain": "Your password must contain:",
"emailRequired": "email is a required field",
"passwordRequired": "password is a required field"
},
"error": {
"default": "Unable to sign in.",
"signin": "Try signing in with a different account.",
"oauthsignin": "Try signing in with a different account.",
"redirect_uri_mismatch": "The redirect URI is not matching the oauth app configuration.",
"oauthcallbackerror": "Try signing in with a different account.",
"oauthcreateaccount": "Try signing in with a different account.",
"emailcreateaccount": "Try signing in with a different account.",
"callback": "Try signing in with a different account.",
"oauthaccountnotlinked": "To confirm your identity, sign in with the same account you used originally.",
"emailsignin": "The e-mail could not be sent.",
"emailverify": "Please verify your email, a new email has been sent.",
"credentialssignin": "Sign in failed. Check the details you provided are correct.",
"sessionrequired": "Please sign in to access this page."
}
},
"authVerifyEmail": {
"almostThere": "You're almost there! We've sent an email to ",
"verifyEmailLink": "Please click on the link in that email to complete your signup.",
"didNotReceive": "Can't find the email?",
"resendEmail": "Resend email",
"goBack": "Go Back",
"emailSent": "Email sent successfully.",
"verifyEmail": "Verify your email address"
},
"providerButton": {
"continue": "Continue with {{provider}}",
"signup": "Sign up with {{provider}}"
},
"authResetPassword": {
"newPasswordRequired": "New password is a required field",
"passwordsMustMatch": "Passwords must match",
"confirmPasswordRequired": "Confirm password is a required field",
"newPassword": "New password",
"confirmPassword": "Confirm password",
"resetPassword": "Reset Password"
},
"authForgotPassword": {
"email": "Email address",
"emailRequired": "email is a required field",
"emailSent": "Please check the email address {{email}} for instructions to reset your password.",
"enterEmail": "Enter your email address and we will send you instructions to reset your password.",
"resendEmail": "Resend email",
"continue": "Continue",
"goBack": "Go Back"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "Show history",
"lastInputs": "Last Inputs",
"noInputs": "Such empty...",
"loading": "Loading..."
}
},
"inputBox": {
"input": {
"placeholder": "Type your message here..."
},
"speechButton": {
"start": "Start recording",
"stop": "Stop recording"
},
"SubmitButton": {
"sendMessage": "Send message",
"stopTask": "Stop Task"
},
"UploadButton": {
"attachFiles": "Attach files"
},
"waterMark": {
"text": "Built with"
}
},
"Messages": {
"index": {
"running": "Running",
"executedSuccessfully": "executed successfully",
"failed": "failed",
"feedbackUpdated": "Feedback updated",
"updating": "Updating"
}
},
"dropScreen": {
"dropYourFilesHere": "Drop your files here"
},
"index": {
"failedToUpload": "Failed to upload",
"cancelledUploadOf": "Cancelled upload of",
"couldNotReachServer": "Could not reach the server",
"continuingChat": "Continuing previous chat"
},
"settings": {
"settingsPanel": "Settings panel",
"reset": "Reset",
"cancel": "Cancel",
"confirm": "Confirm"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: All",
"feedbackPositive": "Feedback: Positive",
"feedbackNegative": "Feedback: Negative"
},
"SearchBar": {
"search": "Search"
}
},
"DeleteThreadButton": {
"confirmMessage": "This will delete the thread as well as it's messages and elements.",
"cancel": "Cancel",
"confirm": "Confirm",
"deletingChat": "Deleting chat",
"chatDeleted": "Chat deleted"
},
"index": {
"pastChats": "Past Chats"
},
"ThreadList": {
"empty": "Empty...",
"today": "Today",
"yesterday": "Yesterday",
"previous7days": "Previous 7 days",
"previous30days": "Previous 30 days"
},
"TriggerButton": {
"closeSidebar": "Close sidebar",
"openSidebar": "Open sidebar"
}
},
"Thread": {
"backToChat": "Go back to chat",
"chatCreatedOn": "This chat was created on"
}
},
"header": {
"chat": "Chat",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "Failed to fetch providers:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "Saved successfully",
"requiredApiKeys": "Required API Keys",
"requiredApiKeysInfo": "To use this app, the following API keys are required. The keys are stored on your device's local storage."
},
"Page": {
"notPartOfProject": "You are not part of this project."
},
"ResumeButton": {
"resumeChat": "Resume Chat"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"settingsKey": "S",
"APIKeys": "API \u0a95\u0ac0\u0a93",
"logout": "\u0aac\u0ab9\u0abe\u0ab0 \u0aa8\u0ac0\u0a95\u0ab3\u0acb"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0aa8\u0ab5\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0a95\u0abe\u0ab0\u0acd\u0aaf \u0aaf\u0abe\u0aa6\u0ac0",
"loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7...",
"error": "\u0aad\u0ac2\u0ab2 \u0a89\u0aa6\u0acd\u0aad\u0ab5\u0ac0"
}
},
"attachments": {
"cancelUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
"removeAttachment": "\u0a9c\u0acb\u0aa1\u0abe\u0aa3\u0aa8\u0ac7 \u0aa6\u0ac2\u0ab0 \u0a95\u0ab0\u0acb"
},
"newChatDialog": {
"createNewChat": "\u0ab6\u0ac1\u0a82 \u0aa8\u0ab5\u0ac1\u0a82 \u0ab8\u0a82\u0ab5\u0abe\u0aa6 \u0aac\u0aa8\u0abe\u0ab5\u0ab5\u0ac1\u0a82 \u0a9b\u0ac7?",
"clearChat": "\u0a86 \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93\u0aa8\u0ac7 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7 \u0a85\u0aa8\u0ac7 \u0aa8\u0ab5\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0ab6\u0ac7.",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
},
"settingsModal": {
"settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"expandMessages": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0ab5\u0abf\u0ab8\u0acd\u0aa4\u0ac3\u0aa4 \u0a95\u0ab0\u0acb",
"hideChainOfThought": "\u0ab5\u0abf\u0a9a\u0abe\u0ab0\u0aa8\u0ac0 \u0ab8\u0abe\u0a82\u0a95\u0ab3 \u0a9b\u0ac1\u0aaa\u0abe\u0ab5\u0acb",
"darkMode": "\u0a98\u0abe\u0a9f\u0ac0 \u0ab8\u0acd\u0aa5\u0abf\u0aa4\u0abf"
},
"detailsButton": {
"using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
"running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
"took_one": "{{count}} \u0aaa\u0a97\u0ab2\u0ac1\u0a82 \u0aad\u0ab0\u0acd\u0aaf\u0ac1\u0a82",
"took_other": "{{count}} \u0aaa\u0a97\u0ab2\u0abe\u0a82\u0a93 \u0ab2\u0ac0\u0aa7\u0abe"
},
"auth": {
"authLogin": {
"title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0acb\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb.",
"form": {
"email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
"password": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"noAccount": "\u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0?",
"alreadyHaveAccount": "\u0aaa\u0ab9\u0ac7\u0ab2\u0ac7\u0aa5\u0ac0 \u0a9c \u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0a9b\u0ac7?",
"signup": "\u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb",
"signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
"or": "\u0a85\u0aa5\u0ab5\u0abe",
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"forgotPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0aad\u0ac2\u0ab2\u0ac0 \u0a97\u0aaf\u0abe?",
"passwordMustContain": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab8\u0aae\u0abe\u0ab5\u0aa4\u0acb \u0a9c \u0ab9\u0acb\u0ab5\u0acb \u0a9c\u0acb\u0a87\u0a8f:",
"emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"passwordRequired": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7"
},
"error": {
"default": "\u0aaa\u0acd\u0ab0\u0ab5\u0ac7\u0ab6 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a85\u0ab8\u0aae\u0ab0\u0acd\u0aa5.",
"signin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"oauthsignin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"redirect_uri_mismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI \u0a8f oauth \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab0\u0ac2\u0aaa\u0ab0\u0ac7\u0a96\u0abe\u0a82\u0a95\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0ac0 \u0aa8\u0aa5\u0ac0.",
"oauthcallbackerror": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"oauthcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"emailcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"callback": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
"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, \u0aa4\u0aae\u0ac7 \u0a9c\u0ac7 \u0aae\u0ac2\u0ab3\u0aad\u0ac2\u0aa4 \u0ab0\u0ac0\u0aa4\u0ac7 \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0acd\u0aaf\u0acb \u0ab9\u0aa4\u0acb \u0aa4\u0ac7 \u0a9c \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb.",
"emailsignin": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0ab9\u0abf.",
"emailverify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb, \u0a8f\u0a95 \u0aa8\u0ab5\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7.",
"credentialssignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0aa4\u0aae\u0ac7 \u0aaa\u0ac2\u0ab0\u0ac0 \u0aaa\u0abe\u0aa1\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
"sessionrequired": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0a86 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb."
}
},
"authVerifyEmail": {
"almostThere": "\u0aa4\u0aae\u0ac7 \u0aa4\u0acb \u0ab2\u0a97\u0aad\u0a97 \u0aa4\u0acd\u0aaf\u0abe\u0a82 \u0a9c \u0a9b\u0acb! \u0a85\u0aae\u0ac7 \u0a86\u0aa8\u0abe \u0aaa\u0ab0 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0acd\u0aaf\u0acb \u0a9b\u0ac7 ",
"verifyEmailLink": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0ab8\u0abe\u0a87\u0aa8\u0a85\u0aaa \u0aaa\u0ac2\u0ab0\u0acd\u0aa3 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0ab2\u0abf\u0a82\u0a95 \u0aaa\u0ab0 \u0a95\u0acd\u0ab2\u0abf\u0a95 \u0a95\u0ab0\u0acb.",
"didNotReceive": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab6\u0acb\u0aa7\u0ac0 \u0ab6\u0a95\u0aa4\u0abe \u0aa8\u0aa5\u0ac0?",
"resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
"emailSent": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0aae\u0acb\u0a95\u0ab2\u0abe\u0a88 \u0a97\u0aaf\u0acb.",
"verifyEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
},
"providerButton": {
"continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"signup": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb"
},
"authResetPassword": {
"newPasswordRequired": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"passwordsMustMatch": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0acb \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0abe \u0a9c \u0ab9\u0acb\u0ab5\u0abe \u0a9c\u0acb\u0a88\u0a8f",
"confirmPasswordRequired": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"newPassword": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"confirmPassword": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
"resetPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0aa8\u0ac7 \u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb"
},
"authForgotPassword": {
"email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
"emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
"emailSent": "\u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0abf\u0ab8\u0ac5\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 {{email}} \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
"enterEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb \u0a85\u0aa8\u0ac7 \u0a85\u0aae\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0aa4\u0aae\u0aa8\u0ac7 \u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0acb\u0a95\u0ab2\u0ac0\u0ab6\u0ac1\u0a82.",
"resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb",
"lastInputs": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
"noInputs": "\u0a86\u0ab5\u0abe \u0a96\u0abe\u0ab2\u0ac0...",
"loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0a85\u0ab9\u0ac0\u0a82 \u0a9f\u0abe\u0a87\u0aaa \u0a95\u0ab0\u0acb..."
},
"speechButton": {
"start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
"stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb"
},
"SubmitButton": {
"sendMessage": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0aae\u0acb\u0a95\u0ab2\u0acb",
"stopTask": "\u0a95\u0abe\u0ab0\u0acd\u0aaf\u0aa8\u0ac7 \u0a85\u0a9f\u0a95\u0abe\u0ab5\u0acb"
},
"UploadButton": {
"attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a9c\u0acb\u0aa1\u0acb"
},
"waterMark": {
"text": "\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0abf\u0ab2\u0acd\u0a9f \u0aa5\u0aaf\u0ac7\u0ab2"
}
},
"Messages": {
"index": {
"running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
"executedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0a9a\u0ab2\u0abe\u0ab5\u0acd\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
"failed": "\u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
"feedbackUpdated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac7\u0ab2 \u0a9b\u0ac7",
"updating": "\u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a85\u0a82\u0ab9\u0abf \u0aae\u0ac2\u0a95\u0acb"
},
"index": {
"failedToUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
"cancelledUploadOf": "\u0aa8\u0ac1\u0a82 \u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0aa5\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
"couldNotReachServer": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0acd\u0aaf\u0abe \u0aa8\u0ab9\u0abf\u0a82",
"continuingChat": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0aa8\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7"
},
"settings": {
"settingsPanel": "\u0aaa\u0ac7\u0aa8\u0ab2 \u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
"reset": "\u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aac\u0aa7\u0abe",
"feedbackPositive": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0ab9\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95",
"feedbackNegative": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aa8\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95"
},
"SearchBar": {
"search": "\u0ab6\u0acb\u0aa7\u0ab5\u0ac1\u0a82"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0aa5\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0aaa\u0aa3 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7.",
"cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
"confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb",
"deletingChat": "\u0a9a\u0ac5\u0a9f\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
"chatDeleted": "\u0a9a\u0ac5\u0a9f \u0aa1\u0abf\u0ab2\u0ac0\u0a9f \u0aa5\u0a88 \u0a97\u0a88"
},
"index": {
"pastChats": "\u0aad\u0ac2\u0aa4\u0a95\u0abe\u0ab3\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0acb"
},
"ThreadList": {
"empty": "\u0a96\u0abe\u0ab2\u0ac0...",
"today": "\u0a86\u0a9c\u0ac7",
"yesterday": "\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7",
"previous7days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0aed \u0aa6\u0abf\u0ab5\u0ab8\u0acb",
"previous30days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0ae9\u0ae6 \u0aa6\u0abf\u0ab5\u0ab8\u0acb"
},
"TriggerButton": {
"closeSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0\u0aa8\u0ac7 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
"openSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0 \u0a96\u0acb\u0ab2\u0acb"
}
},
"Thread": {
"backToChat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6\u0aae\u0abe\u0a82 \u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
"chatCreatedOn": "\u0a86 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0aa4\u0ac7\u0aa8\u0ac0 \u0aaa\u0ab0 \u0aac\u0aa8\u0abe\u0ab5\u0ac7\u0ab2 \u0ab9\u0aa4\u0ac0"
}
},
"header": {
"chat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6",
"readme": "\u0ab0\u0ac0\u0aa1\u0aae\u0ac7"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0aaa\u0acd\u0ab0\u0aa6\u0abe\u0aa4\u0abe\u0a93\u0aa8\u0ac7 \u0ab2\u0abe\u0ab5\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3\u0aa4\u0abe:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abe\u0aaf\u0ac7\u0ab2",
"requiredApiKeys": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0\u0a93",
"requiredApiKeysInfo": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0acb \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0\u0a93 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0\u0a93 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab8\u0acd\u0aa5\u0abe\u0aa8\u0abf\u0a95 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c \u0aaa\u0ab0 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0abe\u0aaf \u0a9b\u0ac7."
},
"Page": {
"notPartOfProject": "\u0aa4\u0aae\u0ac7 \u0a86 \u0aaa\u0acd\u0ab0\u0acb\u0a9c\u0ac7\u0a95\u0acd\u0a9f\u0aa8\u0acb \u0aad\u0abe\u0a97 \u0aa8\u0aa5\u0ac0."
},
"ResumeButton": {
"resumeChat": "\u0aab\u0ab0\u0ac0 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f Task List",
"loading": "\u05d8\u05d5\u05e2\u05df...",
"error": "\u05e9\u05d2\u05d9\u05d0\u05d4"
}
},
"attachments": {
"cancelUpload": "\u05d1\u05d8\u05dc \u05d4\u05e2\u05dc\u05d0\u05d4",
"removeAttachment": "\u05d4\u05e1\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05de\u05e6\u05d5\u05e8\u05e3"
},
"newChatDialog": {
"createNewChat": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9?",
"clearChat": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05d5\u05ea \u05d5\u05ea\u05ea\u05d7\u05d9\u05dc \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9.",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8"
},
"settingsModal": {
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"expandMessages": "\u05d4\u05e8\u05d7\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea",
"hideChainOfThought": "\u05d4\u05e1\u05ea\u05e8 \u05e9\u05e8\u05e9\u05e8\u05ea \u05de\u05d7\u05e9\u05d1\u05d5\u05ea",
"darkMode": "\u05de\u05e6\u05d1 \u05db\u05d4\u05d4"
},
"detailsButton": {
"using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1-",
"running": "\u05e8\u05e5",
"took_one": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3 {{count}}",
"took_other": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3\u05d9\u05dd {{count}}"
},
"auth": {
"authLogin": {
"title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4.",
"form": {
"email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"password": "\u05e1\u05d9\u05e1\u05de\u05d0",
"noAccount": "\u05d0\u05d9\u05df \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
"alreadyHaveAccount": "\u05db\u05d1\u05e8 \u05d9\u05e9 \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
"signup": "\u05d4\u05d9\u05e8\u05e9\u05dd",
"signin": "\u05d4\u05d9\u05db\u05e0\u05e1",
"or": "\u05d0\u05d5",
"continue": "\u05d4\u05de\u05e9\u05da",
"forgotPassword": "\u05e9\u05db\u05d7\u05ea \u05e1\u05d9\u05e1\u05de\u05d4?",
"passwordMustContain": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05db\u05d9\u05dc:",
"emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"passwordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
},
"error": {
"default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d9\u05db\u05e0\u05e1.",
"signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthsignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"redirect_uri_mismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4-URI \u05dc\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05dc\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05e9\u05dc oauth.",
"oauthcallbackerror": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"emailcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
"oauthaccountnotlinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05e9\u05e8 \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8.",
"emailsignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc.",
"emailverify": "\u05d0\u05e0\u05d0 \u05d0\u05e9\u05e8 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9 \u05e0\u05e9\u05dc\u05d7.",
"credentialssignin": "\u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd.",
"sessionrequired": "\u05d0\u05e0\u05d0 \u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4."
}
},
"authVerifyEmail": {
"almostThere": "\u05d0\u05ea\u05d4 \u05db\u05de\u05e2\u05d8 \u05e9\u05dd! \u05e9\u05dc\u05d7\u05e0\u05d5 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d0\u05dc ",
"verifyEmailLink": "\u05d0\u05e0\u05d0 \u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d1\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d6\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05e9\u05dc\u05da.",
"didNotReceive": "\u05dc\u05d0 \u05de\u05d5\u05e6\u05d0 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc?",
"resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4",
"emailSent": "\u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e0\u05e9\u05dc\u05d7 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4.",
"verifyEmail": "\u05d0\u05de\u05ea \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da"
},
"providerButton": {
"continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}",
"signup": "\u05d4\u05d9\u05e8\u05e9\u05dd \u05e2\u05dd {{provider}}"
},
"authResetPassword": {
"newPasswordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d7\u05d3\u05e9\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"passwordsMustMatch": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d0\u05d5\u05ea \u05d7\u05d9\u05d9\u05d1\u05d5\u05ea \u05dc\u05d4\u05ea\u05d0\u05d9\u05dd",
"confirmPasswordRequired": "\u05d0\u05d9\u05e9\u05d5\u05e8 \u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"newPassword": "\u05e1\u05d9\u05e1\u05de\u05d0 \u05d7\u05d3\u05e9\u05d4",
"confirmPassword": "\u05d0\u05e9\u05e8 \u05e1\u05d9\u05e1\u05de\u05d0",
"resetPassword": "\u05d0\u05e4\u05e1 \u05e1\u05d9\u05e1\u05de\u05d4"
},
"authForgotPassword": {
"email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
"emailSent": "\u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc {{email}} \u05dc\u05e7\u05d1\u05dc\u05ea \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
"enterEmail": "\u05d4\u05d6\u05df \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da \u05d5\u05d0\u05e0\u05d5 \u05e0\u05e9\u05dc\u05d7 \u05dc\u05da \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
"resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
"continue": "\u05d4\u05de\u05e9\u05da",
"goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4",
"lastInputs": "\u05e7\u05dc\u05d8 \u05d0\u05d7\u05e8\u05d5\u05df",
"noInputs": "\u05e8\u05d9\u05e7...",
"loading": "\u05d8\u05d5\u05e2\u05df..."
}
},
"inputBox": {
"input": {
"placeholder": "\u05db\u05ea\u05d5\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d4 \u05db\u05d0\u05df..."
},
"speechButton": {
"start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4"
},
"SubmitButton": {
"sendMessage": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
"stopTask": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4"
},
"UploadButton": {
"attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
},
"waterMark": {
"text": "\u05e0\u05d1\u05e0\u05d4 \u05e2\u05dd"
}
},
"Messages": {
"index": {
"running": "\u05e8\u05e5",
"executedSuccessfully": "\u05d1\u05d5\u05e6\u05e2 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
"failed": "\u05e0\u05db\u05e9\u05dc",
"feedbackUpdated": "\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df",
"updating": "\u05de\u05e2\u05d3\u05db\u05df"
}
},
"dropScreen": {
"dropYourFilesHere": "\u05e9\u05d7\u05e8\u05e8 \u05d0\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05dc\u05da \u05db\u05d0\u05df"
},
"index": {
"failedToUpload": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
"cancelledUploadOf": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e9\u05dc \u05d1\u05d5\u05d8\u05dc\u05d4",
"couldNotReachServer": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05d4\u05d2\u05d9\u05e2 \u05dc\u05e9\u05e8\u05ea",
"continuingChat": "\u05de\u05de\u05e9\u05d9\u05da \u05d1\u05e6'\u05d0\u05d8 \u05d4\u05e7\u05d5\u05d3\u05dd"
},
"settings": {
"settingsPanel": "\u05dc\u05d5\u05d7 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
"reset": "\u05d0\u05e4\u05e1",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u05de\u05e9\u05d5\u05d1: \u05d4\u05db\u05dc",
"feedbackPositive": "\u05de\u05e9\u05d5\u05d1: \u05d7\u05d9\u05d5\u05d1\u05d9",
"feedbackNegative": "\u05de\u05e9\u05d5\u05d1: \u05e9\u05dc\u05d9\u05dc\u05d9"
},
"SearchBar": {
"search": "\u05d7\u05d9\u05e4\u05d5\u05e9"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05e8\u05e9\u05d5\u05e8 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05e9\u05dc\u05d5.",
"cancel": "\u05d1\u05d8\u05dc",
"confirm": "\u05d0\u05e9\u05e8",
"deletingChat": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8",
"chatDeleted": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7"
},
"index": {
"pastChats": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
},
"ThreadList": {
"empty": "\u05e8\u05d9\u05e7...",
"today": "\u05d4\u05d9\u05d5\u05dd",
"yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
"previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
"previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
},
"TriggerButton": {
"closeSidebar": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
"openSidebar": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
}
},
"Thread": {
"backToChat": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e6'\u05d0\u05d8",
"chatCreatedOn": "\u05d4\u05e6'\u05d0\u05d8 \u05d4\u05d6\u05d4 \u05e0\u05d5\u05e6\u05e8 \u05d1\u05ea\u05d0\u05e8\u05d9\u05da"
}
},
"header": {
"chat": "\u05e6'\u05d0\u05d8",
"readme": "\u05d0\u05d5\u05d3\u05d5\u05ea"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u05e0\u05db\u05e9\u05dc\u05d4 \u05d4\u05d1\u05d0\u05ea \u05e1\u05e4\u05e7\u05d9\u05dd:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
"requiredApiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
"requiredApiKeysInfo": "\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 \u05d4-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."
},
"Page": {
"notPartOfProject": "\u05d0\u05ea\u05d4 \u05dc\u05d0 \u05d7\u05dc\u05e7 \u05de\u05d4\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8 \u05d4\u05d6\u05d4."
},
"ResumeButton": {
"resumeChat": "\u05d4\u05de\u05e9\u05da \u05e6'\u05d0\u05d8"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"settingsKey": "\u0926\u0915\u094d\u0937\u093f\u0923\u0940",
"APIKeys": "\u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0928\u0908 \u091a\u0948\u091f"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
"loading": "\u0932\u094b\u0921\u0964\u0964\u0964",
"error": "\u0915\u094b\u0908 \u0924\u094d\u0930\u0941\u091f\u093f \u0909\u0924\u094d\u092a\u0928\u094d\u0928 \u0939\u0941\u0908"
}
},
"attachments": {
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
"removeAttachment": "\u0905\u0928\u0941\u0932\u0917\u094d\u0928\u0915 \u0928\u093f\u0915\u093e\u0932\u0947\u0902"
},
"newChatDialog": {
"createNewChat": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0901?",
"clearChat": "\u092f\u0939 \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u094b \u0938\u093e\u092b\u093c \u0915\u0930\u0947\u0917\u093e \u0914\u0930 \u090f\u0915 \u0928\u0908 \u091a\u0948\u091f \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0917\u093e\u0964",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
},
"settingsModal": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"expandMessages": "\u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u0947\u0902",
"hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930 \u0915\u0940 \u0936\u094d\u0930\u0943\u0902\u0916\u0932\u093e \u091b\u093f\u092a\u093e\u090f\u0902",
"darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
},
"detailsButton": {
"using": "\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947",
"running": "\u092d\u093e\u0917\u0928\u093e",
"took_one": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u092f\u093e",
"took_other": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u090f"
},
"auth": {
"authLogin": {
"title": "\u0910\u092a \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902\u0964",
"form": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
"password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"noAccount": "\u0915\u094d\u092f\u093e \u0906\u092a\u0915\u0947 \u092a\u093e\u0938 \u0916\u093e\u0924\u093e \u0928\u0939\u0940\u0902 \u0939\u0948?",
"alreadyHaveAccount": "\u092a\u0939\u0932\u0947 \u0938\u0947 \u0939\u0940 \u090f\u0915 \u0916\u093e\u0924\u093e \u0939\u0948?",
"signup": "\u0928\u093e\u092e \u0932\u093f\u0916\u094b",
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902",
"or": "\u0928\u0939\u0940\u0902 \u0924\u094b",
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
"forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092d\u0942\u0932 \u0917\u090f?",
"passwordMustContain": "\u0906\u092a\u0915\u0947 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0902 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f:",
"emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
},
"error": {
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925.",
"signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthsignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"redirect_uri_mismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u0908 \u0913\u0925 \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 \u0939\u0948\u0964",
"oauthcallbackerror": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"emailcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
"oauthaccountnotlinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0928\u094d\u092b\u093c\u0930\u094d\u092e \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 \u0907\u0938\u094d\u0924\u0947\u092e\u093e\u0932 \u0906\u092a\u0928\u0947 \u092a\u0939\u0932\u0947 \u0915\u093f\u092f\u093e \u0925\u093e.",
"emailsignin": "\u0908-\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u0940 \u091c\u093e \u0938\u0915\u0940.",
"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\u0964",
"credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932 \u0930\u0939\u093e. \u091c\u093e\u0902\u091a\u0947\u0902 \u0915\u093f \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 \u0938\u0939\u0940 \u0939\u0948\u0902\u0964",
"sessionrequired": "\u0915\u0943\u092a\u092f\u093e \u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902\u0964"
}
},
"authVerifyEmail": {
"almostThere": "\u0906\u092a \u0932\u0917\u092d\u0917 \u0935\u0939\u093e\u0901 \u0939\u0948\u0902! \u0939\u092e\u0928\u0947 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0939\u0948 ",
"verifyEmailLink": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u093e \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0909\u0938 \u0908\u092e\u0947\u0932 \u092e\u0947\u0902 \u0926\u093f\u090f \u0917\u090f \u0932\u093f\u0902\u0915 \u092a\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u0947\u0902\u0964",
"didNotReceive": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932 \u0930\u0939\u093e \u0939\u0948?",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
"goBack": "\u092a\u0938 \u091c\u093e\u0913",
"emailSent": "\u0908\u092e\u0947\u0932 \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u092d\u0947\u091c\u093e \u0917\u092f\u093e\u0964",
"verifyEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902"
},
"providerButton": {
"continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
"signup": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u0947\u0902"
},
"authResetPassword": {
"newPasswordRequired": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0932 \u0916\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f",
"confirmPasswordRequired": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902 \u0915\u093f \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"newPassword": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
"resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902"
},
"authForgotPassword": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
"emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
"emailSent": "\u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0928\u093f\u0930\u094d\u0926\u0947\u0936\u094b\u0902 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e {{email}} \u0926\u0947\u0916\u0947\u0902\u0964",
"enterEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902 \u0914\u0930 \u0939\u092e \u0906\u092a\u0915\u094b \u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0928\u093f\u0930\u094d\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902\u0917\u0947\u0964",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
"goBack": "\u092a\u0938 \u091c\u093e\u0913"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902",
"lastInputs": "\u0905\u0902\u0924\u093f\u092e \u0907\u0928\u092a\u0941\u091f",
"noInputs": "\u0910\u0938\u0947 \u0916\u093e\u0932\u0940...",
"loading": "\u0932\u094b\u0921\u0964\u0964\u0964"
}
},
"inputBox": {
"input": {
"placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0901 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902..."
},
"speechButton": {
"start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
"stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u092c\u0902\u0926 \u0915\u0930\u094b"
},
"SubmitButton": {
"sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
"stopTask": "\u0915\u093e\u0930\u094d\u092f \u092c\u0902\u0926 \u0915\u0930\u094b"
},
"UploadButton": {
"attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0905\u0928\u0941\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
},
"waterMark": {
"text": "\u0915\u0947 \u0938\u093e\u0925 \u0928\u093f\u0930\u094d\u092e\u093f\u0924"
}
},
"Messages": {
"index": {
"running": "\u092d\u093e\u0917\u0928\u093e",
"executedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0928\u093f\u0937\u094d\u092a\u093e\u0926\u093f\u0924",
"failed": "\u0905\u0938\u092b\u0932",
"feedbackUpdated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908",
"updating": "\u0905\u0926\u094d\u092f\u0924\u0928"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0905\u092a\u0928\u0940 \u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092f\u0939\u093e\u0901 \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u0947\u0902"
},
"index": {
"failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
"cancelledUploadOf": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e",
"couldNotReachServer": "\u0938\u0930\u094d\u0935\u0930 \u0924\u0915 \u0928\u0939\u0940\u0902 \u092a\u0939\u0941\u0901\u091a \u0938\u0915\u093e",
"continuingChat": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e"
},
"settings": {
"settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932",
"reset": "\u0930\u0940\u0938\u0947\u091f",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u092d\u0940",
"feedbackPositive": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
"feedbackNegative": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
},
"SearchBar": {
"search": "\u0922\u0942\u0901\u0922"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0938\u093e\u0925-\u0938\u093e\u0925 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u092d\u0940 \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
"confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e",
"deletingChat": "\u091a\u0948\u091f \u0939\u091f\u093e\u0928\u093e",
"chatDeleted": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u0917\u0908"
},
"index": {
"pastChats": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f"
},
"ThreadList": {
"empty": "\u0916\u093e\u0932\u0940\u0964\u0964\u0964",
"today": "\u0906\u091c",
"yesterday": "\u092c\u0940\u0924\u093e \u0939\u0941\u0906 \u0915\u0932",
"previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
"previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
},
"TriggerButton": {
"closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
"openSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
}
},
"Thread": {
"backToChat": "\u091a\u0948\u091f \u092a\u0930 \u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
"chatCreatedOn": "\u092f\u0939 \u091a\u0948\u091f \u0907\u0938 \u092a\u0930 \u092c\u0928\u093e\u0908 \u0917\u0908 \u0925\u0940"
}
},
"header": {
"chat": "\u091a\u0948\u091f",
"readme": "\u0930\u0940\u0921\u092e\u0940"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u093e\u0913\u0902 \u0915\u094b \u0932\u093e\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e",
"requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
"requiredApiKeysInfo": "\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 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u093f\u092f\u094b\u0902 \u0915\u0940 \u0906\u0935\u0936\u094d\u092f\u0915\u0924\u093e \u0939\u094b\u0924\u0940 \u0939\u0948\u0964 \u091a\u093e\u092c\u093f\u092f\u093e\u0901 \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 \u092a\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964"
},
"Page": {
"notPartOfProject": "\u0906\u092a \u0907\u0938 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e \u0915\u093e \u0939\u093f\u0938\u094d\u0938\u093e \u0928\u0939\u0940\u0902 \u0939\u0948\u0902\u0964"
},
"ResumeButton": {
"resumeChat": "\u091a\u0948\u091f \u092b\u093f\u0930 \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
"settingsKey": "S",
"APIKeys": "API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
"logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0caa\u0c9f\u0ccd\u0c9f\u0cbf",
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
"error": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6"
}
},
"attachments": {
"cancelUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1 \u0cae\u0cbe\u0ca1\u0cbf",
"removeAttachment": "\u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0cb9\u0cbe\u0c95\u0cbf"
},
"newChatDialog": {
"createNewChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cb0\u0c9a\u0cbf\u0cb8\u0cac\u0cc7\u0c95\u0cc6?",
"clearChat": "\u0c87\u0ca6\u0cc1 \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0cb0\u0cb5\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
},
"settingsModal": {
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
"expandMessages": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb5\u0cbf\u0cb8\u0ccd\u0ca4\u0cb0\u0cbf\u0cb8\u0cbf",
"hideChainOfThought": "\u0c9a\u0cbf\u0c82\u0ca4\u0ca8\u0cc6\u0caf \u0cb8\u0cb0\u0caa\u0cb3\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0cb0\u0cc6\u0cae\u0cbe\u0ca1\u0cc1",
"darkMode": "\u0ca1\u0cbe\u0cb0\u0ccd\u0c95\u0ccd \u0cae\u0ccb\u0ca1\u0ccd"
},
"detailsButton": {
"using": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"took_one": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6 \u0c87\u0c9f\u0ccd\u0c9f\u0cbf\u0ca6\u0cc6",
"took_other": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0c95\u0cca\u0c82\u0ca1\u0cb0\u0cc1"
},
"auth": {
"authLogin": {
"title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
"form": {
"email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
"password": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
"noAccount": "\u0c96\u0cbe\u0ca4\u0cc6 \u0c87\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
"alreadyHaveAccount": "\u0c88\u0c97\u0cbe\u0c97\u0cb2\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
"signup": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
"signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
"or": "\u0c85\u0ca5\u0cb5\u0cbe",
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"forgotPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc6\u0ca4\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
"passwordMustContain": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c87\u0cb5\u0cc1\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c92\u0cb3\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0cb0\u0cac\u0cc7\u0c95\u0cc1:",
"emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"passwordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6"
},
"error": {
"default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0c85\u0cb8\u0cae\u0cb0\u0ccd\u0ca5\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
"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.",
"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.",
"redirect_uri_mismatch": "\u0cae\u0cb0\u0cc1\u0ca8\u0cbf\u0cb0\u0ccd\u0ca6\u0cc7\u0cb6\u0ca8\u0ca6 URI \u0c86\u0ccd\u0caf\u0caa\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd \u0c97\u0cc6 \u0cb9\u0ccb\u0cb2\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2.",
"oauthcallbackerror": "\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.",
"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.",
"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.",
"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.",
"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\u0cc2\u0cb2\u0ca4\u0c83 \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.",
"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.",
"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.",
"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.",
"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."
}
},
"authVerifyEmail": {
"almostThere": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0cac\u0cb9\u0cc1\u0ca4\u0cc7\u0c95 \u0c85\u0cb2\u0ccd\u0cb2\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbf! \u0ca8\u0cbe\u0cb5\u0cc1 \u0c97\u0cc6 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf\u0ca6\u0ccd\u0ca6\u0cc7\u0cb5\u0cc6 ",
"verifyEmailLink": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0caa\u0cc2\u0cb0\u0ccd\u0ca3\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c86 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb0\u0cc1\u0cb5 \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0c95\u0ccd\u0cb2\u0cbf\u0c95\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
"didNotReceive": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
"resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1",
"emailSent": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
"verifyEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf"
},
"providerButton": {
"continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"signup": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
},
"authResetPassword": {
"newPasswordRequired": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"passwordsMustMatch": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c97\u0cb3\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cac\u0cc7\u0c95\u0cc1",
"confirmPasswordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c8e\u0c82\u0ca6\u0cc1 \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"newPassword": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
"confirmPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"resetPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf"
},
"authForgotPassword": {
"email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
"emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
"emailSent": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0cbf\u0c97\u0cbe\u0c97\u0cbf \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8 {{email}} \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf.",
"enterEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca8\u0cbe\u0cb5\u0cc1 \u0ca8\u0cbf\u0cae\u0c97\u0cc6 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cc7\u0cb5\u0cc6.",
"resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cc1",
"lastInputs": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd \u0caa\u0cc1\u0c9f\u0ccd \u0c97\u0cb3\u0cc1",
"noInputs": "\u0c8e\u0c82\u0ca4\u0cb9 \u0c96\u0cbe\u0cb2\u0cbf...",
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cc6\u0cb0\u0cb3\u0c9a\u0ccd\u0c9a\u0cbf\u0cb8\u0cbf..."
},
"speechButton": {
"start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
"stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1"
},
"SubmitButton": {
"sendMessage": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
"stopTask": "\u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1 \u0c95\u0cbe\u0cb0\u0ccd\u0caf"
},
"UploadButton": {
"attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
},
"waterMark": {
"text": "\u0c87\u0ca6\u0cb0\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0ca8\u0cbf\u0cb0\u0ccd\u0cae\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
}
},
"Messages": {
"index": {
"running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"executedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cbe\u0cb0\u0ccd\u0caf\u0c97\u0ca4\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"failed": "\u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"feedbackUpdated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cbf\u0ca1\u0cbf"
},
"index": {
"failedToUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"cancelledUploadOf": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0ca6\u0cc6",
"couldNotReachServer": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
"continuingChat": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0caf\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
},
"settings": {
"settingsPanel": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3 \u0cab\u0cb2\u0c95",
"reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0c8e\u0cb2\u0ccd\u0cb2\u0cb5\u0cc2",
"feedbackPositive": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca7\u0ca8\u0cbe\u0ca4\u0ccd\u0cae\u0c95",
"feedbackNegative": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca8\u0c95\u0cbe\u0cb0\u0cbe\u0ca4\u0ccd\u0cae\u0c95"
},
"SearchBar": {
"search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cc1"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0c87\u0ca6\u0cc1 \u0ca5\u0ccd\u0cb0\u0cc6\u0ca1\u0ccd \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \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.",
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
"confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
"deletingChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
"chatDeleted": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
},
"index": {
"pastChats": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cb3\u0cc1"
},
"ThreadList": {
"empty": "\u0c96\u0cbe\u0cb2\u0cbf...",
"today": "\u0c87\u0c82\u0ca6\u0cc1",
"yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
"previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
"previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
},
"TriggerButton": {
"closeSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cc1",
"openSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
}
},
"Thread": {
"backToChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cc6 \u0cb9\u0cbf\u0c82\u0ca4\u0cbf\u0cb0\u0cc1\u0c97\u0cbf",
"chatCreatedOn": "\u0c88 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0c88 \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf \u0cb0\u0c9a\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
}
},
"header": {
"chat": "\u0c9a\u0cbe\u0c9f\u0ccd",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0caa\u0cc2\u0cb0\u0cc8\u0c95\u0cc6\u0ca6\u0cbe\u0cb0\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb0\u0cc6\u0ca4\u0cb0\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
"requiredApiKeys": "\u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
"requiredApiKeysInfo": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 \u0c8e\u0caa\u0cbf\u0c90 \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1 \u0cac\u0cc7\u0c95\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0cb2\u0cbf\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."
},
"Page": {
"notPartOfProject": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0c88 \u0caf\u0ccb\u0c9c\u0ca8\u0cc6\u0caf \u0cad\u0cbe\u0c97\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2."
},
"ResumeButton": {
"resumeChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0caa\u0cc1\u0ca8\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
"settingsKey": "S",
"APIKeys": "API \u0d15\u0d40\u0d15\u0d7e",
"logout": "\u0d32\u0d4b\u0d17\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d32\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d",
"loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d...",
"error": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
}
},
"attachments": {
"cancelUpload": "\u0d05\u0d2a\u0d4d\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
"removeAttachment": "\u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"newChatDialog": {
"createNewChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d3e\u0d15\u0d4d\u0d15\u0d23\u0d4b?",
"clearChat": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d4d\u0d32\u0d3f\u0d2f\u0d7c \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02.",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"settingsModal": {
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
"expandMessages": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d35\u0d3f\u0d15\u0d38\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"hideChainOfThought": "\u0d1a\u0d3f\u0d28\u0d4d\u0d24\u0d2f\u0d41\u0d1f\u0d46 \u0d36\u0d43\u0d02\u0d16\u0d32 \u0d2e\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"darkMode": "\u0d21\u0d3e\u0d7c\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d4b\u0d21\u0d4d"
},
"detailsButton": {
"using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d02",
"running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
"took_one": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d4d \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41",
"took_other": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d41\u0d15\u0d7e \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41"
},
"auth": {
"authLogin": {
"title": "\u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"form": {
"email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
"password": "Password",
"noAccount": "\u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d47?",
"alreadyHaveAccount": "\u0d12\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d4b?",
"signup": "\u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
"signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
"or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d",
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"forgotPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2e\u0d31\u0d28\u0d4d\u0d28\u0d4b?",
"passwordMustContain": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d3f\u0d7d \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d35 \u0d05\u0d1f\u0d19\u0d4d\u0d19\u0d3f\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d23\u0d02:",
"emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"passwordRequired": "Password \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d"
},
"error": {
"default": "\u0d38\u0d48\u0d28\u0d4d \u0d07\u0d28\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d28\u0d4d \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"redirect_uri_mismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d \u0d2f\u0d41\u0d06\u0d7c\u0d10 \u0d13\u0d24\u0d4d\u0d24\u0d4d \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.",
"oauthcallbackerror": "\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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"oauthaccountnotlinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d10\u0d21\u0d28\u0d4d\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d3f \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"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.",
"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.",
"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\u0d36\u0d26\u0d3e\u0d02\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d4b \u0d0e\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"sessionrequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15."
}
},
"authVerifyEmail": {
"almostThere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d35\u0d3f\u0d1f\u0d46 \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d31\u0d3e\u0d2f\u0d3f! \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d12\u0d30\u0d41 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d ",
"verifyEmailLink": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d48\u0d28\u0d2a\u0d4d\u0d2a\u0d4d \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d06 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d32\u0d3f\u0d32\u0d46 \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d15\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
"didNotReceive": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32\u0d47?",
"resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42",
"emailSent": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d41.",
"verifyEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"providerButton": {
"continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"signup": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"authResetPassword": {
"newPasswordRequired": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"passwordsMustMatch": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d41\u0d15\u0d7e \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d23\u0d02",
"confirmPasswordRequired": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d",
"newPassword": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d",
"confirmPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"resetPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
},
"authForgotPassword": {
"email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
"emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
"emailSent": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d3e\u0d2f\u0d3f {{email}} \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
"enterEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d28\u0d7d\u0d15\u0d41\u0d15, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02.",
"resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0d1a\u0d30\u0d3f\u0d24\u0d4d\u0d30\u0d02 \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"lastInputs": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
"noInputs": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f...",
"loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d..."
}
},
"inputBox": {
"input": {
"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\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15..."
},
"speechButton": {
"start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
},
"SubmitButton": {
"sendMessage": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"stopTask": "\u0d1c\u0d4b\u0d32\u0d3f \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
},
"UploadButton": {
"attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
},
"waterMark": {
"text": "\u0d28\u0d3f\u0d7c\u0d2e\u0d4d\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d24\u0d4d"
}
},
"Messages": {
"index": {
"running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
"executedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d28\u0d1f\u0d2a\u0d4d\u0d2a\u0d3f\u0d32\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
"failed": "\u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
"feedbackUpdated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d41\u0d1a\u0d46\u0d2f\u0d4d \u0d24\u0d41",
"updating": "\u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d07\u0d1f\u0d41\u0d15"
},
"index": {
"failedToUpload": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
"cancelledUploadOf": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
"couldNotReachServer": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d3f\u0d7d \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
"continuingChat": "\u0d2e\u0d41\u0d2e\u0d4d\u0d2a\u0d24\u0d4d\u0d24\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d41"
},
"settings": {
"settingsPanel": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d3e\u0d28\u0d7d",
"reset": "\u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: \u0d0e\u0d32\u0d4d\u0d32\u0d3e\u0d02",
"feedbackPositive": "Feedback: \u0d2a\u0d4b\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d",
"feedbackNegative": "Feedback: \u0d28\u0d46\u0d17\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d"
},
"SearchBar": {
"search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15"
}
},
"DeleteThreadButton": {
"confirmMessage": "\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 \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d02.",
"cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
"deletingChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7d",
"chatDeleted": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
},
"index": {
"pastChats": "Past Chats"
},
"ThreadList": {
"empty": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d02...",
"today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
"yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
"previous7days": "Previous 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
"previous30days": "Previous 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
},
"TriggerButton": {
"closeSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
"openSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
},
"Thread": {
"backToChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d1f\u0d19\u0d4d\u0d19\u0d41\u0d15",
"chatCreatedOn": "\u0d08 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
}
},
"header": {
"chat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0d26\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d41\u0d35\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
"requiredApiKeys": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 API \u0d15\u0d40\u0d15\u0d7e",
"requiredApiKeysInfo": "\u0d08 \u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 \u0d0e\u0d2a\u0d3f\u0d10 \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15 \u0d38\u0d02\u0d2d\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d3e\u0d23\u0d4d \u0d15\u0d40\u0d15\u0d7e \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d."
},
"Page": {
"notPartOfProject": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d08 \u0d2a\u0d26\u0d4d\u0d27\u0d24\u0d3f\u0d2f\u0d41\u0d1f\u0d46 \u0d2d\u0d3e\u0d17\u0d2e\u0d32\u0d4d\u0d32."
},
"ResumeButton": {
"resumeChat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02 \u0d2a\u0d41\u0d28\u0d30\u0d3e\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"settingsKey": "S",
"APIKeys": "\u090f\u092a\u0940\u0906\u092f \u0915\u0940\u091c",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0928\u0935\u0940\u0928 \u0917\u092a\u094d\u092a\u093e"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
"loading": "\u0932\u094b\u0921\u093f\u0902\u0917...",
"error": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u091d\u093e\u0932\u0940"
}
},
"attachments": {
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"removeAttachment": "\u0938\u0902\u0932\u0917\u094d\u0928\u0924\u093e \u0915\u093e\u0922\u0942\u0928 \u091f\u093e\u0915\u093e"
},
"newChatDialog": {
"createNewChat": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e?",
"clearChat": "\u092f\u093e\u092e\u0941\u0933\u0947 \u0938\u0927\u094d\u092f\u093e\u091a\u0947 \u092e\u0947\u0938\u0947\u091c \u0915\u094d\u0932\u093f\u0905\u0930 \u0939\u094b\u0924\u0940\u0932 \u0906\u0923\u093f \u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0938\u0941\u0930\u0942 \u0939\u094b\u0908\u0932.",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
},
"settingsModal": {
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
"expandMessages": "\u0938\u0902\u0926\u0947\u0936 \u093e\u0902\u091a\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u093e",
"hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930\u093e\u0902\u091a\u0940 \u0938\u093e\u0916\u0933\u0940 \u0932\u092a\u0935\u093e",
"darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
},
"detailsButton": {
"using": "\u0935\u093e\u092a\u0930\u0924",
"running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
"took_one": "{{count}} \u092a\u093e\u090a\u0932 \u0909\u091a\u0932\u0932\u0947",
"took_other": "{{count}} \u092a\u093e\u0935\u0932\u0947 \u0909\u091a\u0932\u0932\u0940"
},
"auth": {
"authLogin": {
"title": "\u0905 \u0945\u092a\u092e\u0927\u094d\u092f\u0947 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e.",
"form": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
"password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"noAccount": "\u0916\u093e\u0924\u0947 \u0928\u093e\u0939\u0940 \u0915\u093e?",
"alreadyHaveAccount": "\u0906\u0927\u0940\u091a \u0916\u093e\u0924\u0947 \u0906\u0939\u0947 \u0915\u093e?",
"signup": "\u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e",
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928",
"or": "\u0915\u093f\u0902\u0935\u093e",
"continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0935\u093f\u0938\u0930\u0932\u093e?",
"passwordMustContain": "\u0906\u092a\u0932\u094d\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921\u092e\u0927\u094d\u092f\u0947 \u0939\u0947 \u0905\u0938\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947:",
"emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947"
},
"error": {
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u0938 \u0905\u0915\u094d\u0937\u092e.",
"signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthsignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"redirect_uri_mismatch": "\u0930\u093f\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u092f \u0911\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.",
"oauthcallbackerror": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"emailcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
"oauthaccountnotlinked": "\u0906\u092a\u0932\u0940 \u0913\u0933\u0916 \u0928\u093f\u0936\u094d\u091a\u093f\u0924 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u0906\u092a\u0923 \u092e\u0942\u0933\u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e.",
"emailsignin": "\u0908-\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0924\u093e \u0906\u0932\u093e \u0928\u093e\u0939\u0940.",
"emailverify": "\u0915\u0943\u092a\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u091a\u0940 \u092a\u0921\u0924\u093e\u0933\u0923\u0940 \u0915\u0930\u093e, \u090f\u0915 \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u093f\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947.",
"credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940 \u091d\u093e\u0932\u0947. \u0906\u092a\u0923 \u0926\u093f\u0932\u0947\u0932\u093e \u0924\u092a\u0936\u0940\u0932 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0939\u0947 \u0924\u092a\u093e\u0938\u093e.",
"sessionrequired": "\u0915\u0943\u092a\u092f\u093e \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 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e."
}
},
"authVerifyEmail": {
"almostThere": "\u0924\u0942 \u091c\u0935\u0933\u091c\u0935\u0933 \u0924\u093f\u0925\u0947\u091a \u0906\u0939\u0947\u0938! \u0906\u092e\u094d\u0939\u0940 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0906\u0939\u0947. ",
"verifyEmailLink": "\u0906\u092a\u0932\u0947 \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u094d\u0923 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0924\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u092e\u0927\u0940\u0932 \u0932\u093f\u0902\u0915\u0935\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u093e.",
"didNotReceive": "\u0908\u092e\u0947\u0932 \u0938\u093e\u092a\u0921\u0924 \u0928\u093e\u0939\u0940 \u0915\u093e?",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
"goBack": "\u092a\u0930\u0924 \u091c\u093e",
"emailSent": "\u0908\u092e\u0947\u0932 \u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u092a\u093e\u0920\u0935\u093f\u0932\u093e.",
"verifyEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u0921\u0924\u093e\u0933\u0942\u0928 \u092a\u0939\u093e"
},
"providerButton": {
"continue": "{{provider}} \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"signup": "{{provider}} \u0938\u0939 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e"
},
"authResetPassword": {
"newPasswordRequired": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091c\u0941\u0933\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947",
"confirmPasswordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947 \u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"newPassword": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
"confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e"
},
"authForgotPassword": {
"email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
"emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
"emailSent": "\u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e\u0902\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e {{email}} \u0924\u092a\u093e\u0938\u093e.",
"enterEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e \u0906\u0923\u093f \u0906\u092e\u094d\u0939\u0940 \u0906\u092a\u0932\u094d\u092f\u093e\u0932\u093e \u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e \u092a\u093e\u0920\u0935\u0942.",
"resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
"continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
"goBack": "\u092a\u0930\u0924 \u091c\u093e"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e",
"lastInputs": "\u0936\u0947\u0935\u091f\u091a\u0940 \u092e\u093e\u0939\u093f\u0924\u0940",
"noInputs": "\u0907\u0924\u0915\u0940 \u0930\u093f\u0915\u093e\u092e\u0940...",
"loading": "\u0932\u094b\u0921\u093f\u0902\u0917..."
}
},
"inputBox": {
"input": {
"placeholder": "\u0924\u0941\u092e\u091a\u093e \u092e\u0947\u0938\u0947\u091c \u0907\u0925\u0947 \u091f\u093e\u0908\u092a \u0915\u0930\u093e..."
},
"speechButton": {
"start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
"stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e"
},
"SubmitButton": {
"sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
"stopTask": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e"
},
"UploadButton": {
"attachFiles": "\u092b\u093e\u0908\u0932\u094d\u0938 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u093e"
},
"waterMark": {
"text": "\u092f\u093e\u0938\u0939 \u092c\u093e\u0902\u0927\u0932\u0947 \u0906\u0939\u0947"
}
},
"Messages": {
"index": {
"running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
"executedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0930\u093e\u092c\u0935\u093f\u0932\u0940",
"failed": "\u0905\u092a\u092f\u0936\u0940 \u0920\u0930\u0932\u0947",
"feedbackUpdated": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f \u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924",
"updating": "\u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924 \u0915\u0930\u0923\u0947"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0906\u092a\u0932\u094d\u092f\u093e \u092b\u093e\u092f\u0932\u0940 \u092f\u0947\u0925\u0947 \u091f\u093e\u0915\u093e"
},
"index": {
"failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936 \u0906\u0932\u0947",
"cancelledUploadOf": "\u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947\u0932\u0947 \u0905\u092a\u0932\u094b\u0921",
"couldNotReachServer": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u092a\u0930\u094d\u092f\u0902\u0924 \u092a\u094b\u0939\u094b\u091a\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
"continuingChat": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e"
},
"settings": {
"settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0945\u0928\u0947\u0932",
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0930\u094d\u0935",
"feedbackPositive": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
"feedbackNegative": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
},
"SearchBar": {
"search": "\u0936\u094b\u0927\u0923\u0947"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0939\u0947 \u0927\u093e\u0917\u093e \u0924\u0938\u0947\u091a \u0924\u094d\u092f\u093e\u0924\u0940\u0932 \u0938\u0902\u0926\u0947\u0936 \u0906\u0923\u093f \u0918\u091f\u0915 \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0947\u0932.",
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
"deletingChat": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0923\u0947",
"chatDeleted": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f"
},
"index": {
"pastChats": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e"
},
"ThreadList": {
"empty": "\u0930\u093f\u0915\u094d\u0924\u0964\u0964\u0964",
"today": "\u0906\u091c",
"yesterday": "\u0915\u093e\u0932",
"previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
"previous30days": "\u092e\u093e\u0917\u0940\u0932 \u0969\u0966 \u0926\u093f\u0935\u0938"
},
"TriggerButton": {
"closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
"openSidebar": "\u0913\u092a\u0928 \u0938\u093e\u0907\u0921\u092c\u093e\u0930"
}
},
"Thread": {
"backToChat": "\u092a\u0930\u0924 \u0917\u092a\u094d\u092a\u093e \u092e\u093e\u0930\u093e\u092f\u0932\u093e \u091c\u093e",
"chatCreatedOn": "\u0939\u0947 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0906\u0932\u0947 \u0939\u094b\u0924\u0947."
}
},
"header": {
"chat": "\u092c\u0915\u0935\u093e\u0926 \u0915\u0930\u0923\u0947\u0902",
"readme": "\u0935\u093e\u091a\u093e"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u094d\u092f\u093e\u0902\u0928\u093e \u0906\u0923\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936\u0940:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0935\u093e\u091a\u0935\u0932\u0947",
"requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e",
"requiredApiKeysInfo": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0938\u094d\u0925\u093e\u0928\u093f\u0915 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u0935\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u093f\u0924 \u0915\u0947\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924."
},
"Page": {
"notPartOfProject": "\u0924\u0941\u092e\u094d\u0939\u0940 \u092f\u093e \u092a\u094d\u0930\u0915\u0932\u094d\u092a\u093e\u091a\u093e \u092d\u093e\u0917 \u0928\u093e\u0939\u0940."
},
"ResumeButton": {
"resumeChat": "\u091a\u0945\u091f \u092a\u0941\u0928\u094d\u0939\u093e \u0938\u0941\u0930\u0942 \u0915\u0930\u093e"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"settingsKey": "S",
"APIKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0baa\u0ba3\u0bbf \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
"error": "\u0b92\u0bb0\u0bc1 \u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
}
},
"attachments": {
"cancelUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0ba4\u0bcd\u0ba4\u0bc8 \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1\u0b9a\u0bc6\u0baf\u0bcd",
"removeAttachment": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1"
},
"newChatDialog": {
"createNewChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bb5\u0bbe?",
"clearChat": "\u0b87\u0ba4\u0bc1 \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b85\u0bb4\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
},
"settingsModal": {
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"expandMessages": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
"hideChainOfThought": "\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0ba9\u0bc8\u0b9a\u0bcd \u0b9a\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bbf\u0baf\u0bc8 \u0bae\u0bb1\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1",
"darkMode": "\u0b87\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f \u0baa\u0baf\u0ba9\u0bcd\u0bae\u0bc1\u0bb1\u0bc8"
},
"detailsButton": {
"using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf",
"running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
"took_one": "{{count}} \u0b85\u0b9f\u0bbf \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd",
"took_other": "{{count}} \u0baa\u0b9f\u0bbf\u0b95\u0bb3\u0bc8 \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd"
},
"auth": {
"authLogin": {
"title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95.",
"form": {
"email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
"password": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
"noAccount": "\u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
"alreadyHaveAccount": "\u0b8f\u0bb1\u0bcd\u0b95\u0ba9\u0bb5\u0bc7 \u0b92\u0bb0\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe?",
"signup": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0baa\u0bc6\u0bb1\u0bc1",
"signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95",
"or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1",
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
"forgotPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bb1\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
"passwordMustContain": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bbf\u0bb2\u0bcd \u0b87\u0bb5\u0bc8 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd:",
"emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"passwordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
},
"error": {
"default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"signin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"oauthsignin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"redirect_uri_mismatch": "\u0bb5\u0bb4\u0bbf\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 URI oauth \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0bae\u0bc8\u0bb5\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"oauthcallbackerror": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"oauthcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"emailcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"callback": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
"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, \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \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.",
"emailsignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
"emailverify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd, \u0b92\u0bb0\u0bc1 \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\u0ba4\u0bc1.",
"credentialssignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\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\u0ba4\u0bbe \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
"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."
}
},
"authVerifyEmail": {
"almostThere": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0b9f\u0bcd\u0b9f \u0bb5\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bcd! -\u0b95\u0bcd\u0b95\u0bc1 \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bc1\u0bb3\u0bcd\u0bb3\u0bcb\u0bae\u0bcd ",
"verifyEmailLink": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bb2\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc8\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0baf \u0b85\u0ba8\u0bcd\u0ba4 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bbf\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8\u0b95\u0bcd \u0b95\u0bbf\u0bb3\u0bbf\u0b95\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd.",
"didNotReceive": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8\u0b95\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
"resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
"goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
"emailSent": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1.",
"verifyEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b88\u0bae\u0bc6\u0baf\u0bbf\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8\u0b9a\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
},
"providerButton": {
"continue": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd",
"signup": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95"
},
"authResetPassword": {
"newPasswordRequired": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"passwordsMustMatch": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd",
"confirmPasswordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"newPassword": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
"confirmPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd",
"resetPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8"
},
"authForgotPassword": {
"email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
"emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
"emailSent": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0ba9 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 {{email}} \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
"enterEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd, \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0b95\u0bcd\u0b95 \u0ba8\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bcb\u0bae\u0bcd.",
"resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
"goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"lastInputs": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
"noInputs": "\u0b85\u0bb5\u0bcd\u0bb5\u0bb3\u0bb5\u0bc1 \u0bb5\u0bc6\u0bb1\u0bc1\u0bae\u0bc8...",
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1..."
}
},
"inputBox": {
"input": {
"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\u0b95..."
},
"speechButton": {
"start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
"stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0bb5\u0ba4\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
},
"SubmitButton": {
"sendMessage": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
"stopTask": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
},
"UploadButton": {
"attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
},
"waterMark": {
"text": "\u0b89\u0b9f\u0ba9\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
}
},
"Messages": {
"index": {
"running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
"executedSuccessfully": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
"failed": "\u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1",
"feedbackUpdated": "\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",
"updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0bb5\u0bbf\u0b9f\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd:"
},
"index": {
"failedToUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf",
"cancelledUploadOf": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd",
"couldNotReachServer": "\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",
"continuingChat": "\u0ba4\u0bca\u0b9f\u0bb0\u0bc1\u0bae\u0bcd \u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
},
"settings": {
"settingsPanel": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0b95\u0bc1\u0bb4\u0bc1",
"reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1\u0bae\u0bcd",
"feedbackPositive": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bb1\u0bc8",
"feedbackNegative": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0bae\u0bb1\u0bc8"
},
"SearchBar": {
"search": "\u0ba4\u0bc7\u0b9f\u0bc1"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0b87\u0ba4\u0bc1 \u0ba8\u0bc2\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b95\u0bc2\u0bb1\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd",
"deletingChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
"chatDeleted": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
},
"index": {
"pastChats": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bb3\u0bcd"
},
"ThreadList": {
"empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0ba9...",
"today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
"yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
"previous7days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
"previous30days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
},
"TriggerButton": {
"closeSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
"openSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
}
},
"Thread": {
"backToChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0bb5\u0bc1\u0bae\u0bcd",
"chatCreatedOn": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0ba4\u0bc7\u0ba4\u0bbf"
}
},
"header": {
"chat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8",
"readme": "\u0bb0\u0bc0\u0b9f\u0bcd\u0bae\u0bc0"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bc1\u0ba8\u0bb0\u0bcd\u0b95\u0bb3\u0bc8\u0baa\u0bcd \u0baa\u0bc6\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\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",
"requiredApiKeys": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"requiredApiKeysInfo": "\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."
},
"Page": {
"notPartOfProject": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4\u0ba4\u0bcd \u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b92\u0bb0\u0bc1 \u0baa\u0b95\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8."
},
"ResumeButton": {
"resumeChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
}
}
}
+231
View File
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d \u0c32\u0c3f\u0c38\u0c4d\u0c1f\u0c4d",
"loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d...",
"error": "\u0c12\u0c15 \u0c26\u0c4b\u0c37\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f"
}
},
"attachments": {
"cancelUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
"removeAttachment": "\u0c05\u0c1f\u0c3e\u0c1a\u0c4d \u0c2e\u0c46\u0c02\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c41"
},
"newChatDialog": {
"createNewChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c3e?",
"clearChat": "\u0c07\u0c26\u0c3f \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c15\u0c4d\u0c32\u0c3f\u0c2f\u0c30\u0c4d \u0c1a\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u0c28\u0c41 \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
},
"settingsModal": {
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
"expandMessages": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c35\u0c3f\u0c38\u0c4d\u0c24\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"hideChainOfThought": "\u0c06\u0c32\u0c4b\u0c1a\u0c28\u0c3e \u0c17\u0c4a\u0c32\u0c41\u0c38\u0c41\u0c28\u0c41 \u0c26\u0c3e\u0c1a\u0c02\u0c21\u0c3f",
"darkMode": "\u0c21\u0c3e\u0c30\u0c4d\u0c15\u0c4d \u0c2e\u0c4b\u0c21\u0c4d"
},
"detailsButton": {
"using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02",
"running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
"took_one": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f",
"took_other": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41\u0c32\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f"
},
"auth": {
"authLogin": {
"title": "\u0c2f\u0c3e\u0c2a\u0c4d \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c05\u0c35\u0c4d\u0c35\u0c02\u0c21\u0c3f.",
"form": {
"email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
"password": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
"noAccount": "\u0c2e\u0c40\u0c15\u0c41 \u0c05\u0c15\u0c4c\u0c02\u0c1f\u0c4d \u0c32\u0c47\u0c26\u0c3e?",
"alreadyHaveAccount": "\u0c07\u0c2a\u0c4d\u0c2a\u0c1f\u0c3f\u0c15\u0c47 \u0c16\u0c3e\u0c24\u0c3e \u0c09\u0c02\u0c26\u0c3e?",
"signup": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c05\u0c2a\u0c4d",
"signin": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c07\u0c28\u0c4d",
"or": "\u0c32\u0c47\u0c26\u0c3e",
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
"forgotPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c2e\u0c30\u0c4d\u0c1a\u0c3f\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
"passwordMustContain": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c4b \u0c07\u0c35\u0c3f \u0c09\u0c02\u0c21\u0c3e\u0c32\u0c3f:",
"emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"passwordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d"
},
"error": {
"default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
"signin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthsignin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"redirect_uri_mismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI \u0c13\u0c2f\u0c42\u0c24\u0c4d \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d \u0c15\u0c41 \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41.",
"oauthcallbackerror": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"emailcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"callback": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
"oauthaccountnotlinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\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.",
"emailsignin": "\u0c07-\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
"emailverify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \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.",
"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\u0c3f\u0c17\u0c4d\u0c17\u0c3e \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c2f\u0c4b \u0c32\u0c47\u0c26\u0c4b \u0c1a\u0c46\u0c15\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c02\u0c21\u0c3f.",
"sessionrequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f."
}
},
"authVerifyEmail": {
"almostThere": "\u0c2e\u0c40\u0c30\u0c41 \u0c26\u0c3e\u0c26\u0c3e\u0c2a\u0c41 \u0c05\u0c15\u0c4d\u0c15\u0c21\u0c47 \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c41! \u0c2e\u0c47\u0c2e\u0c41 \u0c26\u0c40\u0c28\u0c3f\u0c15\u0c3f \u0c12\u0c15 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c3e\u0c2e\u0c41 ",
"verifyEmailLink": "\u0c2e\u0c40 \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c2a\u0c42\u0c30\u0c4d\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c06 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c32\u0c4b\u0c28\u0c3f \u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c2a\u0c48 \u0c15\u0c4d\u0c32\u0c3f\u0c15\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
"didNotReceive": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
"resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41",
"emailSent": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f.",
"verifyEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
},
"providerButton": {
"continue": "{{provider}} \u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"signup": "{{provider}} \u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
},
"authResetPassword": {
"newPasswordRequired": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"passwordsMustMatch": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c41 \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f\u0c17\u0c3e \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c3e\u0c32\u0c3f",
"confirmPasswordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"newPassword": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
"confirmPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
"resetPassword": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d"
},
"authForgotPassword": {
"email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
"emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
"emailSent": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c38\u0c42\u0c1a\u0c28\u0c32 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f {{email}} \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
"enterEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2e\u0c47\u0c2e\u0c41 \u0c2e\u0c40\u0c15\u0c41 \u0c38\u0c42\u0c1a\u0c28\u0c32\u0c41 \u0c2a\u0c02\u0c2a\u0c41\u0c24\u0c3e\u0c2e\u0c41.",
"resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41",
"lastInputs": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d \u0c2a\u0c41\u0c1f\u0c4d \u0c32\u0c41",
"noInputs": "\u0c05\u0c02\u0c24 \u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e...",
"loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d..."
}
},
"inputBox": {
"input": {
"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..."
},
"speechButton": {
"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",
"stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f"
},
"SubmitButton": {
"sendMessage": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c41",
"stopTask": "\u0c38\u0c4d\u0c1f\u0c3e\u0c2a\u0c4d \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d"
},
"UploadButton": {
"attachFiles": "\u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c41"
},
"waterMark": {
"text": "\u0c26\u0c40\u0c28\u0c3f\u0c24\u0c4b \u0c28\u0c3f\u0c30\u0c4d\u0c2e\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
}
},
"Messages": {
"index": {
"running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
"executedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c05\u0c2e\u0c32\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"failed": "\u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
"feedbackUpdated": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d \u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"updating": "\u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02"
}
},
"dropScreen": {
"dropYourFilesHere": "\u0c2e\u0c40 \u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
},
"index": {
"failedToUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
"cancelledUploadOf": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c38\u0c3f\u0c28 \u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d",
"couldNotReachServer": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d \u0c15\u0c41 \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
"continuingChat": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f \u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02"
},
"settings": {
"settingsPanel": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u0c38\u0c4d \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d",
"reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c05\u0c28\u0c4d\u0c28\u0c40",
"feedbackPositive": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c2a\u0c3e\u0c1c\u0c3f\u0c1f\u0c3f\u0c35\u0c4d",
"feedbackNegative": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c28\u0c46\u0c17\u0c46\u0c1f\u0c3f\u0c35\u0c4d"
},
"SearchBar": {
"search": "\u0c35\u0c46\u0c24\u0c41\u0c15\u0c41"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c0e\u0c32\u0c3f\u0c2e\u0c46\u0c02\u0c1f\u0c4d\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
"confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41",
"deletingChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02",
"chatDeleted": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
},
"index": {
"pastChats": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c32\u0c41"
},
"ThreadList": {
"empty": "\u0c16\u0c3e\u0c33\u0c40...",
"today": "\u0c08 \u0c30\u0c4b\u0c1c\u0c41",
"yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
"previous7days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
"previous30days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
},
"TriggerButton": {
"closeSidebar": "\u0c15\u0c4d\u0c32\u0c4b\u0c1c\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d",
"openSidebar": "\u0c13\u0c2a\u0c46\u0c28\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d"
}
},
"Thread": {
"backToChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c32\u0c02\u0c21\u0c3f",
"chatCreatedOn": "\u0c08 \u0c1a\u0c3e\u0c1f\u0c4d \u0c26\u0c40\u0c28\u0c3f\u0c32\u0c4b \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
}
},
"header": {
"chat": "\u0c2e\u0c41\u0c1a\u0c4d\u0c1a\u0c1f\u0c3f\u0c02\u0c1a\u0c41",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u0c2a\u0c4d\u0c30\u0c4a\u0c35\u0c48\u0c21\u0c30\u0c4d\u0c32\u0c28\u0c41 \u0c2a\u0c4a\u0c02\u0c26\u0c21\u0c02\u0c32\u0c4b \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
"requiredApiKeys": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
"requiredApiKeysInfo": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c08 \u0c15\u0c4d\u0c30\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02 \u0c05\u0c35\u0c41\u0c24\u0c3e\u0c2f\u0c3f. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c38\u0c4d\u0c1f\u0c4b\u0c30\u0c47\u0c1c\u0c40\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f."
},
"Page": {
"notPartOfProject": "\u0c2e\u0c40\u0c30\u0c41 \u0c08 \u0c2a\u0c4d\u0c30\u0c3e\u0c1c\u0c46\u0c15\u0c4d\u0c1f\u0c41\u0c32\u0c4b \u0c2d\u0c3e\u0c17\u0c02 \u0c15\u0c3e\u0c26\u0c41."
},
"ResumeButton": {
"resumeChat": "\u0c30\u0c46\u0c1c\u0c4d\u0c2f\u0c42\u0c2e\u0c4d \u0c1a\u0c3e\u0c1f\u0c4d"
}
}
}
+229
View File
@@ -0,0 +1,229 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "\u8bbe\u7f6e",
"settingsKey": "S",
"APIKeys": "API \u5bc6\u94a5",
"logout": "\u767b\u51fa"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "\u65b0\u5efa\u5bf9\u8bdd"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f \u4efb\u52a1\u5217\u8868",
"loading": "\u52a0\u8f7d\u4e2d...",
"error": "\u53d1\u751f\u9519\u8bef"
}
},
"attachments": {
"cancelUpload": "\u53d6\u6d88\u4e0a\u4f20",
"removeAttachment": "\u79fb\u9664\u9644\u4ef6"
},
"newChatDialog": {
"createNewChat": "\u521b\u5efa\u65b0\u5bf9\u8bdd\uff1f",
"clearChat": "\u8fd9\u5c06\u6e05\u9664\u5f53\u524d\u6d88\u606f\u5e76\u5f00\u59cb\u65b0\u7684\u5bf9\u8bdd\u3002",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4"
},
"settingsModal": {
"settings": "\u8bbe\u7f6e",
"expandMessages": "\u5c55\u5f00\u6d88\u606f",
"hideChainOfThought": "\u9690\u85cf\u601d\u8003\u94fe",
"darkMode": "\u6697\u8272\u6a21\u5f0f"
},
"detailsButton": {
"using": "\u4f7f\u7528",
"used": "\u5df2\u7528"
},
"auth": {
"authLogin": {
"title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528\u3002",
"form": {
"email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
"password": "\u5bc6\u7801",
"noAccount": "\u6ca1\u6709\u8d26\u6237\uff1f",
"alreadyHaveAccount": "\u5df2\u6709\u8d26\u6237\uff1f",
"signup": "\u6ce8\u518c",
"signin": "\u767b\u5f55",
"or": "\u6216\u8005",
"continue": "\u7ee7\u7eed",
"forgotPassword": "\u5fd8\u8bb0\u5bc6\u7801\uff1f",
"passwordMustContain": "\u60a8\u7684\u5bc6\u7801\u5fc5\u987b\u5305\u542b\uff1a",
"emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
"passwordRequired": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
},
"error": {
"default": "\u65e0\u6cd5\u767b\u5f55\u3002",
"signin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthsignin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"redirect_uri_mismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d\u3002",
"oauthcallbackerror": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"emailcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"callback": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
"oauthaccountnotlinked": "\u4e3a\u4e86\u9a8c\u8bc1\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u6700\u521d\u4f7f\u7528\u7684\u540c\u4e00\u8d26\u6237\u767b\u5f55\u3002",
"emailsignin": "\u65e0\u6cd5\u53d1\u9001\u90ae\u4ef6\u3002",
"emailverify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\uff0c\u5df2\u53d1\u9001\u4e00\u5c01\u65b0\u90ae\u4ef6\u3002",
"credentialssignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u8be6\u7ec6\u4fe1\u606f\u662f\u5426\u6b63\u786e\u3002",
"sessionrequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762\u3002"
}
},
"authVerifyEmail": {
"almostThere": "\u60a8\u5feb\u6210\u529f\u4e86\uff01\u6211\u4eec\u5df2\u5411 ",
"verifyEmailLink": "\u8bf7\u5355\u51fb\u8be5\u90ae\u4ef6\u4e2d\u7684\u94fe\u63a5\u4ee5\u5b8c\u6210\u6ce8\u518c\u3002",
"didNotReceive": "\u6ca1\u627e\u5230\u90ae\u4ef6\uff1f",
"resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
"goBack": "\u8fd4\u56de",
"emailSent": "\u90ae\u4ef6\u5df2\u6210\u529f\u53d1\u9001\u3002",
"verifyEmail": "\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740"
},
"providerButton": {
"continue": "\u4f7f\u7528{{provider}}\u7ee7\u7eed",
"signup": "\u4f7f\u7528{{provider}}\u6ce8\u518c"
},
"authResetPassword": {
"newPasswordRequired": "\u65b0\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
"passwordsMustMatch": "\u5bc6\u7801\u5fc5\u987b\u4e00\u81f4",
"confirmPasswordRequired": "\u786e\u8ba4\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
"newPassword": "\u65b0\u5bc6\u7801",
"confirmPassword": "\u786e\u8ba4\u5bc6\u7801",
"resetPassword": "\u91cd\u7f6e\u5bc6\u7801"
},
"authForgotPassword": {
"email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
"emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
"emailSent": "\u8bf7\u68c0\u67e5\u7535\u5b50\u90ae\u7bb1{{email}}\u4ee5\u83b7\u53d6\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
"enterEmail": "\u8bf7\u8f93\u5165\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u5730\u5740\uff0c\u6211\u4eec\u5c06\u53d1\u9001\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
"resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
"continue": "\u7ee7\u7eed",
"goBack": "\u8fd4\u56de"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "\u663e\u793a\u5386\u53f2",
"lastInputs": "\u6700\u540e\u8f93\u5165",
"noInputs": "\u5982\u6b64\u7a7a\u65f7...",
"loading": "\u52a0\u8f7d\u4e2d..."
}
},
"inputBox": {
"input": {
"placeholder": "\u5728\u8fd9\u91cc\u8f93\u5165\u60a8\u7684\u6d88\u606f..."
},
"speechButton": {
"start": "\u5f00\u59cb\u5f55\u97f3",
"stop": "\u505c\u6b62\u5f55\u97f3"
},
"SubmitButton": {
"sendMessage": "\u53d1\u9001\u6d88\u606f",
"stopTask": "\u505c\u6b62\u4efb\u52a1"
},
"UploadButton": {
"attachFiles": "\u9644\u52a0\u6587\u4ef6"
},
"waterMark": {
"text": "\u4f7f\u7528"
}
},
"Messages": {
"index": {
"running": "\u8fd0\u884c\u4e2d",
"executedSuccessfully": "\u6267\u884c\u6210\u529f",
"failed": "\u5931\u8d25",
"feedbackUpdated": "\u53cd\u9988\u66f4\u65b0",
"updating": "\u6b63\u5728\u66f4\u65b0"
}
},
"dropScreen": {
"dropYourFilesHere": "\u5728\u8fd9\u91cc\u62d6\u653e\u60a8\u7684\u6587\u4ef6"
},
"index": {
"failedToUpload": "\u4e0a\u4f20\u5931\u8d25",
"cancelledUploadOf": "\u53d6\u6d88\u4e0a\u4f20",
"couldNotReachServer": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668",
"continuingChat": "\u7ee7\u7eed\u4e4b\u524d\u7684\u5bf9\u8bdd"
},
"settings": {
"settingsPanel": "\u8bbe\u7f6e\u9762\u677f",
"reset": "\u91cd\u7f6e",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "\u53cd\u9988\uff1a\u5168\u90e8",
"feedbackPositive": "\u53cd\u9988\uff1a\u6b63\u9762",
"feedbackNegative": "\u53cd\u9988\uff1a\u8d1f\u9762"
},
"SearchBar": {
"search": "\u641c\u7d22"
}
},
"DeleteThreadButton": {
"confirmMessage": "\u8fd9\u5c06\u5220\u9664\u7ebf\u7a0b\u53ca\u5176\u6d88\u606f\u548c\u5143\u7d20\u3002",
"cancel": "\u53d6\u6d88",
"confirm": "\u786e\u8ba4",
"deletingChat": "\u5220\u9664\u5bf9\u8bdd",
"chatDeleted": "\u5bf9\u8bdd\u5df2\u5220\u9664"
},
"index": {
"pastChats": "\u8fc7\u5f80\u5bf9\u8bdd"
},
"ThreadList": {
"empty": "\u7a7a\u7684...",
"today": "\u4eca\u5929",
"yesterday": "\u6628\u5929",
"previous7days": "\u524d7\u5929",
"previous30days": "\u524d30\u5929"
},
"TriggerButton": {
"closeSidebar": "\u5173\u95ed\u4fa7\u8fb9\u680f",
"openSidebar": "\u6253\u5f00\u4fa7\u8fb9\u680f"
}
},
"Thread": {
"backToChat": "\u8fd4\u56de\u5bf9\u8bdd",
"chatCreatedOn": "\u6b64\u5bf9\u8bdd\u521b\u5efa\u4e8e"
}
},
"header": {
"chat": "\u5bf9\u8bdd",
"readme": "\u8bf4\u660e"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "\u83b7\u53d6\u63d0\u4f9b\u8005\u5931\u8d25:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "\u4fdd\u5b58\u6210\u529f",
"requiredApiKeys": "\u5fc5\u9700\u7684API\u5bc6\u94a5",
"requiredApiKeysInfo": "\u8981\u4f7f\u7528\u6b64\u5e94\u7528\uff0c\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u7684\u8bbe\u5907\u672c\u5730\u5b58\u50a8\u4e2d\u3002"
},
"Page": {
"notPartOfProject": "\u60a8\u4e0d\u662f\u6b64\u9879\u76ee\u7684\u4e00\u90e8\u5206\u3002"
},
"ResumeButton": {
"resumeChat": "\u6062\u590d\u5bf9\u8bdd"
}
}
}
+291
View File
@@ -0,0 +1,291 @@
import os
import sqlite3
import asyncio
import shutil
import logging
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
from sql_alchemy import SQLAlchemyDataLayer
import chainlit.data as cl_data
from chainlit.types import ThreadDict
def ensure_directories():
"""Ensure required directories exist"""
if "CHAINLIT_APP_ROOT" not in os.environ:
chainlit_root = os.path.join(os.path.expanduser("~"), ".praison")
os.environ["CHAINLIT_APP_ROOT"] = chainlit_root
else:
chainlit_root = os.environ["CHAINLIT_APP_ROOT"]
os.makedirs(chainlit_root, exist_ok=True)
os.makedirs(os.path.join(chainlit_root, ".files"), exist_ok=True)
# Copy public folder and chainlit.md if they don't exist
public_folder = os.path.join(os.path.dirname(__file__), "public")
config_folder = os.path.join(os.path.dirname(__file__), "config")
# Copy public folder
if not os.path.exists(os.path.join(chainlit_root, "public")):
if os.path.exists(public_folder):
shutil.copytree(public_folder, os.path.join(chainlit_root, "public"), dirs_exist_ok=True)
logging.info("Public folder copied successfully!")
else:
logging.info("Public folder not found in the package.")
# Copy all files from config folder to root if translations doesn't exist
if not os.path.exists(os.path.join(chainlit_root, "translations")):
os.makedirs(os.path.join(chainlit_root, "translations"), exist_ok=True)
if os.path.exists(config_folder):
for item in os.listdir(config_folder):
src_path = os.path.join(config_folder, item)
dst_path = os.path.join(chainlit_root, item)
if os.path.isfile(src_path):
shutil.copy2(src_path, dst_path)
logging.info(f"File {item} copied to root successfully!")
elif os.path.isdir(src_path):
if os.path.exists(dst_path):
shutil.rmtree(dst_path)
shutil.copytree(src_path, dst_path)
logging.info(f"Directory {item} copied to root successfully!")
else:
logging.info("Config folder not found in the package.")
# Create directories at module import time
ensure_directories()
class DatabaseManager(SQLAlchemyDataLayer):
def __init__(self):
self.database_url = os.getenv("DATABASE_URL")
supabase_url = os.getenv("SUPABASE_DATABASE_URL")
if supabase_url:
self.database_url = supabase_url
if self.database_url:
self.conninfo = self.database_url
else:
chainlit_root = os.environ["CHAINLIT_APP_ROOT"] # Now using CHAINLIT_APP_ROOT
self.db_path = os.path.join(chainlit_root, "database.sqlite")
self.conninfo = f"sqlite+aiosqlite:///{self.db_path}"
# Initialize SQLAlchemyDataLayer with the connection info
super().__init__(conninfo=self.conninfo)
async def create_schema_async(self):
"""Create the database schema for PostgreSQL"""
if not self.database_url:
return
engine = create_async_engine(self.database_url, echo=False)
async with engine.begin() as conn:
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS users (
"id" TEXT PRIMARY KEY,
"identifier" TEXT NOT NULL UNIQUE,
"meta" TEXT NOT NULL DEFAULT '{}',
"createdAt" TEXT
);
'''))
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS threads (
"id" TEXT PRIMARY KEY,
"createdAt" TEXT,
"name" TEXT,
"userId" TEXT,
"userIdentifier" TEXT,
"tags" TEXT DEFAULT '[]',
"meta" TEXT NOT NULL DEFAULT '{}',
FOREIGN KEY ("userId") REFERENCES users("id") ON DELETE CASCADE
);
'''))
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS steps (
"id" TEXT PRIMARY KEY,
"name" TEXT NOT NULL,
"type" TEXT NOT NULL,
"threadId" TEXT NOT NULL,
"parentId" TEXT,
"disableFeedback" BOOLEAN NOT NULL DEFAULT FALSE,
"streaming" BOOLEAN NOT NULL DEFAULT FALSE,
"waitForAnswer" BOOLEAN DEFAULT FALSE,
"isError" BOOLEAN NOT NULL DEFAULT FALSE,
"meta" TEXT DEFAULT '{}',
"tags" TEXT DEFAULT '[]',
"input" TEXT,
"output" TEXT,
"createdAt" TEXT,
"startTime" TEXT,
"endTime" TEXT,
"generation" TEXT,
"showInput" TEXT,
"language" TEXT,
"indent" INT,
FOREIGN KEY ("threadId") REFERENCES threads("id") ON DELETE CASCADE
);
'''))
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS elements (
"id" TEXT PRIMARY KEY,
"threadId" TEXT,
"type" TEXT,
"url" TEXT,
"chainlitKey" TEXT,
"name" TEXT NOT NULL,
"display" TEXT,
"objectKey" TEXT,
"size" TEXT,
"page" INT,
"language" TEXT,
"forId" TEXT,
"mime" TEXT,
FOREIGN KEY ("threadId") REFERENCES threads("id") ON DELETE CASCADE
);
'''))
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS feedbacks (
"id" TEXT PRIMARY KEY,
"forId" TEXT NOT NULL,
"value" INT NOT NULL,
"threadId" TEXT,
"comment" TEXT
);
'''))
await conn.execute(text('''
CREATE TABLE IF NOT EXISTS settings (
"id" SERIAL PRIMARY KEY,
"key" TEXT UNIQUE,
"value" TEXT
);
'''))
await engine.dispose()
def create_schema_sqlite(self):
"""Create the database schema for SQLite"""
chainlit_root = os.environ["CHAINLIT_APP_ROOT"] # Now using CHAINLIT_APP_ROOT
self.db_path = os.path.join(chainlit_root, "database.sqlite")
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
identifier TEXT NOT NULL UNIQUE,
meta TEXT NOT NULL DEFAULT '{}',
createdAt TEXT
);
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS threads (
id TEXT PRIMARY KEY,
createdAt TEXT,
name TEXT,
userId TEXT,
userIdentifier TEXT,
tags TEXT DEFAULT '[]',
meta TEXT NOT NULL DEFAULT '{}',
FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCADE
);
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS steps (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
type TEXT NOT NULL,
threadId TEXT NOT NULL,
parentId TEXT,
disableFeedback BOOLEAN NOT NULL DEFAULT 0,
streaming BOOLEAN NOT NULL DEFAULT 0,
waitForAnswer BOOLEAN DEFAULT 0,
isError BOOLEAN NOT NULL DEFAULT 0,
meta TEXT DEFAULT '{}',
tags TEXT DEFAULT '[]',
input TEXT,
output TEXT,
createdAt TEXT,
startTime TEXT,
endTime TEXT,
generation TEXT,
showInput TEXT,
language TEXT,
indent INT,
FOREIGN KEY (threadId) REFERENCES threads(id) ON DELETE CASCADE
);
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS elements (
id TEXT PRIMARY KEY,
threadId TEXT,
type TEXT,
url TEXT,
chainlitKey TEXT,
name TEXT NOT NULL,
display TEXT,
objectKey TEXT,
size TEXT,
page INT,
language TEXT,
forId TEXT,
mime TEXT,
FOREIGN KEY (threadId) REFERENCES threads(id) ON DELETE CASCADE
);
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS feedbacks (
id TEXT PRIMARY KEY,
forId TEXT NOT NULL,
value INT NOT NULL,
threadId TEXT,
comment TEXT
);
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS settings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT UNIQUE,
value TEXT
);
''')
conn.commit()
conn.close()
def initialize(self):
"""Initialize the database with schema based on the configuration"""
if self.database_url:
asyncio.run(self.create_schema_async())
else:
self.create_schema_sqlite()
async def save_setting(self, key: str, value: str):
"""Save a setting to the database"""
if self.database_url:
async with self.engine.begin() as conn:
await conn.execute(text("""
INSERT INTO settings ("key", "value") VALUES (:key, :value)
ON CONFLICT ("key") DO UPDATE SET "value" = EXCLUDED."value"
"""), {"key": key, "value": value})
else:
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
cursor.execute(
"""
INSERT OR REPLACE INTO settings (id, key, value)
VALUES ((SELECT id FROM settings WHERE key = ?), ?, ?)
""",
(key, key, value),
)
conn.commit()
conn.close()
async def load_setting(self, key: str) -> str:
"""Load a setting from the database"""
if self.database_url:
async with self.engine.connect() as conn:
result = await conn.execute(text('SELECT "value" FROM settings WHERE "key" = :key'), {"key": key})
row = result.fetchone()
return row[0] if row else None
else:
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
cursor.execute('SELECT value FROM settings WHERE key = ?', (key,))
result = cursor.fetchone()
conn.close()
return result[0] if result else None
+3
View File
@@ -0,0 +1,3 @@
a[href*='https://github.com/Chainlit/chainlit'] {
visibility: hidden;
}
+145 -145
View File
@@ -4,6 +4,7 @@ import uuid
from dataclasses import asdict
from datetime import datetime
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
import os
import aiofiles
import aiohttp
@@ -29,9 +30,14 @@ from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engin
from sqlalchemy.orm import sessionmaker
if TYPE_CHECKING:
from chainlit.element import Element, ElementDict
from chainlit.element import Element
from chainlit.step import StepDict
DATABASE_URL = os.getenv("DATABASE_URL")
SUPABASE_DATABASE_URL = os.getenv("SUPABASE_DATABASE_URL")
if SUPABASE_DATABASE_URL:
# If a Supabase database URL is provided, use it.
DATABASE_URL = SUPABASE_DATABASE_URL
class SQLAlchemyDataLayer(BaseDataLayer):
def __init__(
@@ -47,7 +53,6 @@ class SQLAlchemyDataLayer(BaseDataLayer):
self.show_logger = show_logger
ssl_args = {}
if ssl_require:
# Create an SSL context to require an SSL connection
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
@@ -57,7 +62,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
)
self.async_session = sessionmaker(
bind=self.engine, expire_on_commit=False, class_=AsyncSession
) # type: ignore
)
if storage_provider:
self.storage_provider: Optional[BaseStorageClient] = storage_provider
if self.show_logger:
@@ -103,7 +108,6 @@ class SQLAlchemyDataLayer(BaseDataLayer):
return datetime.now().isoformat() + "Z"
def clean_result(self, obj):
"""Recursively change UUID -> str and serialize dictionaries"""
if isinstance(obj, dict):
return {k: self.clean_result(v) for k, v in obj.items()}
elif isinstance(obj, list):
@@ -116,52 +120,42 @@ class SQLAlchemyDataLayer(BaseDataLayer):
async def get_user(self, identifier: str) -> Optional[PersistedUser]:
if self.show_logger:
logger.info(f"SQLAlchemy: get_user, identifier={identifier}")
query = "SELECT * FROM users WHERE identifier = :identifier"
query = 'SELECT * FROM users WHERE "identifier" = :identifier'
parameters = {"identifier": identifier}
result = await self.execute_sql(query=query, parameters=parameters)
if result and isinstance(result, list):
user_data = result[0]
# SQLite returns JSON as string, we most convert it. (#1137)
metadata = user_data.get("metadata", {})
if isinstance(metadata, str):
metadata = json.loads(metadata)
assert isinstance(metadata, dict)
assert isinstance(user_data["id"], str)
assert isinstance(user_data["identifier"], str)
assert isinstance(user_data["createdAt"], str)
meta = user_data.get("meta", "{}")
if isinstance(meta, str):
meta = json.loads(meta)
return PersistedUser(
id=user_data["id"],
identifier=user_data["identifier"],
createdAt=user_data["createdAt"],
metadata=metadata,
metadata=meta,
)
return None
async def _get_user_identifer_by_id(self, user_id: str) -> str:
if self.show_logger:
logger.info(f"SQLAlchemy: _get_user_identifer_by_id, user_id={user_id}")
query = "SELECT identifier FROM users WHERE id = :user_id"
query = 'SELECT "identifier" FROM users WHERE "id" = :user_id'
parameters = {"user_id": user_id}
result = await self.execute_sql(query=query, parameters=parameters)
assert result
assert isinstance(result, list)
return result[0]["identifier"]
async def _get_user_id_by_thread(self, thread_id: str) -> Optional[str]:
if self.show_logger:
logger.info(f"SQLAlchemy: _get_user_id_by_thread, thread_id={thread_id}")
query = "SELECT userId FROM threads WHERE id = :thread_id"
query = 'SELECT "userId" FROM threads WHERE "id" = :thread_id'
parameters = {"thread_id": thread_id}
result = await self.execute_sql(query=query, parameters=parameters)
if result:
assert isinstance(result, list)
if result and isinstance(result, list):
return result[0]["userId"]
return None
async def create_user(self, user: User) -> Optional[PersistedUser]:
@@ -170,29 +164,23 @@ class SQLAlchemyDataLayer(BaseDataLayer):
existing_user: Optional["PersistedUser"] = await self.get_user(user.identifier)
user_dict: Dict[str, Any] = {
"identifier": str(user.identifier),
"metadata": json.dumps(user.metadata) or {},
"meta": json.dumps(user.metadata) or "{}",
}
if not existing_user: # create the user
if self.show_logger:
logger.info("SQLAlchemy: create_user, creating the user")
if not existing_user:
user_dict["id"] = str(uuid.uuid4())
user_dict["createdAt"] = await self.get_current_timestamp()
query = """INSERT INTO users ("id", "identifier", "createdAt", "metadata") VALUES (:id, :identifier, :createdAt, :metadata)"""
query = 'INSERT INTO users ("id", "identifier", "createdAt", "meta") VALUES (:id, :identifier, :createdAt, :meta)'
await self.execute_sql(query=query, parameters=user_dict)
else:
query = 'UPDATE users SET "meta" = :meta WHERE "identifier" = :identifier'
await self.execute_sql(query=query, parameters=user_dict)
else: # update the user
if self.show_logger:
logger.info("SQLAlchemy: update user metadata")
query = """UPDATE users SET "metadata" = :metadata WHERE "identifier" = :identifier"""
await self.execute_sql(
query=query, parameters=user_dict
) # We want to update the metadata
return await self.get_user(user.identifier)
###### Threads ######
async def get_thread_author(self, thread_id: str) -> str:
if self.show_logger:
logger.info(f"SQLAlchemy: get_thread_author, thread_id={thread_id}")
query = """SELECT "userIdentifier" FROM threads WHERE "id" = :id"""
query = 'SELECT "userIdentifier" FROM threads WHERE "id" = :id'
parameters = {"id": thread_id}
result = await self.execute_sql(query=query, parameters=parameters)
if isinstance(result, list) and result:
@@ -239,14 +227,12 @@ class SQLAlchemyDataLayer(BaseDataLayer):
),
"userId": user_id,
"userIdentifier": user_identifier,
"tags": tags,
"metadata": json.dumps(metadata) if metadata else None,
"tags": json.dumps(tags) if tags else None,
"meta": json.dumps(metadata) if metadata else None,
}
parameters = {
key: value for key, value in data.items() if value is not None
} # Remove keys with None values
parameters = {key: value for key, value in data.items() if value is not None}
columns = ", ".join(f'"{key}"' for key in parameters.keys())
values = ", ".join(f":{key}" for key in parameters.keys())
values = ", ".join(f':{key}' for key in parameters.keys())
updates = ", ".join(
f'"{key}" = EXCLUDED."{key}"' for key in parameters.keys() if key != "id"
)
@@ -261,11 +247,10 @@ class SQLAlchemyDataLayer(BaseDataLayer):
async def delete_thread(self, thread_id: str):
if self.show_logger:
logger.info(f"SQLAlchemy: delete_thread, thread_id={thread_id}")
# Delete feedbacks/elements/steps/thread
feedbacks_query = """DELETE FROM feedbacks WHERE "forId" IN (SELECT "id" FROM steps WHERE "threadId" = :id)"""
elements_query = """DELETE FROM elements WHERE "threadId" = :id"""
steps_query = """DELETE FROM steps WHERE "threadId" = :id"""
thread_query = """DELETE FROM threads WHERE "id" = :id"""
feedbacks_query = 'DELETE FROM feedbacks WHERE "forId" IN (SELECT "id" FROM steps WHERE "threadId" = :id)'
elements_query = 'DELETE FROM elements WHERE "threadId" = :id'
steps_query = 'DELETE FROM steps WHERE "threadId" = :id'
thread_query = 'DELETE FROM threads WHERE "id" = :id'
parameters = {"id": thread_id}
await self.execute_sql(query=feedbacks_query, parameters=parameters)
await self.execute_sql(query=elements_query, parameters=parameters)
@@ -281,7 +266,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
)
if not filters.userId:
raise ValueError("userId is required")
all_user_threads: List[ThreadDict] = (
all_user_threads: Optional[List[ThreadDict]] = (
await self.get_all_user_threads(user_id=filters.userId) or []
)
@@ -297,10 +282,10 @@ class SQLAlchemyDataLayer(BaseDataLayer):
keyword_match = any(
search_keyword in step["output"].lower()
for step in thread["steps"]
if "output" in step
if "output" in step and isinstance(step["output"], str)
)
if feedback_value is not None:
feedback_match = False # Assume no match until found
feedback_match = False
for step in thread["steps"]:
feedback = step.get("feedback")
if feedback and feedback.get("value") == feedback_value:
@@ -311,10 +296,8 @@ class SQLAlchemyDataLayer(BaseDataLayer):
start = 0
if pagination.cursor:
for i, thread in enumerate(filtered_threads):
if (
thread["id"] == pagination.cursor
): # Find the start index using pagination.cursor
for i, thr in enumerate(filtered_threads):
if thr["id"] == pagination.cursor:
start = i + 1
break
end = start + pagination.first
@@ -344,22 +327,44 @@ class SQLAlchemyDataLayer(BaseDataLayer):
if "showInput" in step_dict
else None
)
tags = step_dict.get("tags")
if not tags:
tags = []
meta = json.dumps(step_dict.get("metadata", {}))
generation = json.dumps(step_dict.get("generation", {}))
parameters = {
key: value
for key, value in step_dict.items()
if value is not None and not (isinstance(value, dict) and not value)
"id": step_dict.get("id"),
"name": step_dict.get("name"),
"type": step_dict.get("type"),
"threadId": step_dict.get("threadId"),
"parentId": step_dict.get("parentId"),
"disableFeedback": step_dict.get("disableFeedback", False),
"streaming": step_dict.get("streaming", False),
"waitForAnswer": step_dict.get("waitForAnswer", False),
"isError": step_dict.get("isError", False),
"meta": meta,
"tags": json.dumps(tags),
"input": step_dict.get("input"),
"output": step_dict.get("output"),
"createdAt": step_dict.get("createdAt"),
"startTime": step_dict.get("start"),
"endTime": step_dict.get("end"),
"generation": generation,
"showInput": step_dict.get("showInput"),
"language": step_dict.get("language"),
"indent": step_dict.get("indent"),
}
parameters["metadata"] = json.dumps(step_dict.get("metadata", {}))
parameters["generation"] = json.dumps(step_dict.get("generation", {}))
parameters = {k: v for k, v in parameters.items() if v is not None}
columns = ", ".join(f'"{key}"' for key in parameters.keys())
values = ", ".join(f":{key}" for key in parameters.keys())
values = ", ".join(f':{key}' for key in parameters.keys())
updates = ", ".join(
f'"{key}" = :{key}' for key in parameters.keys() if key != "id"
)
query = f"""
INSERT INTO steps ({columns})
VALUES ({values})
ON CONFLICT (id) DO UPDATE
ON CONFLICT ("id") DO UPDATE
SET {updates};
"""
await self.execute_sql(query=query, parameters=parameters)
@@ -374,10 +379,9 @@ class SQLAlchemyDataLayer(BaseDataLayer):
async def delete_step(self, step_id: str):
if self.show_logger:
logger.info(f"SQLAlchemy: delete_step, step_id={step_id}")
# Delete feedbacks/elements/steps
feedbacks_query = """DELETE FROM feedbacks WHERE "forId" = :id"""
elements_query = """DELETE FROM elements WHERE "forId" = :id"""
steps_query = """DELETE FROM steps WHERE "id" = :id"""
feedbacks_query = 'DELETE FROM feedbacks WHERE "forId" = :id'
elements_query = 'DELETE FROM elements WHERE "forId" = :id'
steps_query = 'DELETE FROM steps WHERE "id" = :id'
parameters = {"id": step_id}
await self.execute_sql(query=feedbacks_query, parameters=parameters)
await self.execute_sql(query=elements_query, parameters=parameters)
@@ -389,19 +393,16 @@ class SQLAlchemyDataLayer(BaseDataLayer):
logger.info(f"SQLAlchemy: upsert_feedback, feedback_id={feedback.id}")
feedback.id = feedback.id or str(uuid.uuid4())
feedback_dict = asdict(feedback)
parameters = {
key: value for key, value in feedback_dict.items() if value is not None
}
parameters = {k: v for k, v in feedback_dict.items() if v is not None}
columns = ", ".join(f'"{key}"' for key in parameters.keys())
values = ", ".join(f":{key}" for key in parameters.keys())
values = ", ".join(f':{key}' for key in parameters.keys())
updates = ", ".join(
f'"{key}" = :{key}' for key in parameters.keys() if key != "id"
)
query = f"""
INSERT INTO feedbacks ({columns})
VALUES ({values})
ON CONFLICT (id) DO UPDATE
ON CONFLICT ("id") DO UPDATE
SET {updates};
"""
await self.execute_sql(query=query, parameters=parameters)
@@ -410,7 +411,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
async def delete_feedback(self, feedback_id: str) -> bool:
if self.show_logger:
logger.info(f"SQLAlchemy: delete_feedback, feedback_id={feedback_id}")
query = """DELETE FROM feedbacks WHERE "id" = :feedback_id"""
query = 'DELETE FROM feedbacks WHERE "id" = :feedback_id'
parameters = {"feedback_id": feedback_id}
await self.execute_sql(query=query, parameters=parameters)
return True
@@ -423,17 +424,15 @@ class SQLAlchemyDataLayer(BaseDataLayer):
logger.info(
f"SQLAlchemy: get_element, thread_id={thread_id}, element_id={element_id}"
)
query = """SELECT * FROM elements WHERE "threadId" = :thread_id AND "id" = :element_id"""
query = 'SELECT * FROM elements WHERE "threadId" = :thread_id AND "id" = :element_id'
parameters = {"thread_id": thread_id, "element_id": element_id}
element: Union[List[Dict[str, Any]], int, None] = await self.execute_sql(
query=query, parameters=parameters
)
element = await self.execute_sql(query=query, parameters=parameters)
if isinstance(element, list) and element:
element_dict: Dict[str, Any] = element[0]
element_dict = element[0]
return ElementDict(
id=element_dict["id"],
threadId=element_dict.get("threadId"),
type=element_dict["type"],
type=element_dict.get("type"),
chainlitKey=element_dict.get("chainlitKey"),
url=element_dict.get("url"),
objectKey=element_dict.get("objectKey"),
@@ -456,9 +455,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
logger.info(f"SQLAlchemy: create_element, element_id = {element.id}")
if not self.storage_provider:
logger.warn(
"SQLAlchemy: create_element error. No blob_storage_client is configured!"
)
logger.warn("SQLAlchemy: create_element error. No storage client!")
return
if not element.for_id:
return
@@ -494,18 +491,15 @@ class SQLAlchemyDataLayer(BaseDataLayer):
object_key=file_object_key, data=content, mime=element.mime, overwrite=True
)
if not uploaded_file:
raise ValueError(
"SQLAlchemy Error: create_element, Failed to persist data in storage_provider"
)
raise ValueError("Failed to persist data in storage_provider")
element_dict: ElementDict = element.to_dict()
element_dict["url"] = uploaded_file.get("url")
element_dict["objectKey"] = uploaded_file.get("object_key")
element_dict_cleaned = {k: v for k, v in element_dict.items() if v is not None}
columns = ", ".join(f'"{column}"' for column in element_dict_cleaned.keys())
placeholders = ", ".join(f":{column}" for column in element_dict_cleaned.keys())
placeholders = ", ".join(f':{column}' for column in element_dict_cleaned.keys())
query = f"INSERT INTO elements ({columns}) VALUES ({placeholders})"
await self.execute_sql(query=query, parameters=element_dict_cleaned)
@@ -513,14 +507,13 @@ class SQLAlchemyDataLayer(BaseDataLayer):
async def delete_element(self, element_id: str, thread_id: Optional[str] = None):
if self.show_logger:
logger.info(f"SQLAlchemy: delete_element, element_id={element_id}")
query = """DELETE FROM elements WHERE "id" = :id"""
query = 'DELETE FROM elements WHERE "id" = :id'
parameters = {"id": element_id}
await self.execute_sql(query=query, parameters=parameters)
async def get_all_user_threads(
self, user_id: Optional[str] = None, thread_id: Optional[str] = None
) -> Optional[List[ThreadDict]]:
"""Fetch all user threads up to self.user_thread_limit, or one thread by id if thread_id is provided."""
if self.show_logger:
logger.info("SQLAlchemy: get_all_user_threads")
user_threads_query = """
@@ -531,19 +524,21 @@ class SQLAlchemyDataLayer(BaseDataLayer):
"userId" AS user_id,
"userIdentifier" AS user_identifier,
"tags" AS thread_tags,
"metadata" AS thread_metadata
"meta" AS thread_meta
FROM threads
WHERE "userId" = :user_id OR "id" = :thread_id
WHERE ("userId" = :user_id OR :user_id IS NULL)
AND ("id" = :thread_id OR :thread_id IS NULL)
ORDER BY "createdAt" DESC
LIMIT :limit
"""
params = {
"user_id": user_id,
"thread_id": thread_id,
"limit": self.user_thread_limit,
}
user_threads = await self.execute_sql(
query=user_threads_query,
parameters={
"user_id": user_id,
"limit": self.user_thread_limit,
"thread_id": thread_id,
},
parameters=params,
)
if not isinstance(user_threads, list):
return None
@@ -551,9 +546,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
return []
else:
thread_ids = (
"('"
+ "','".join(map(str, [thread["thread_id"] for thread in user_threads]))
+ "')"
"('" + "','".join([t["thread_id"] for t in user_threads]) + "')"
)
steps_feedbacks_query = f"""
@@ -566,13 +559,13 @@ class SQLAlchemyDataLayer(BaseDataLayer):
s."streaming" AS step_streaming,
s."waitForAnswer" AS step_waitforanswer,
s."isError" AS step_iserror,
s."metadata" AS step_metadata,
s."meta" AS step_meta,
s."tags" AS step_tags,
s."input" AS step_input,
s."output" AS step_output,
s."createdAt" AS step_createdat,
s."start" AS step_start,
s."end" AS step_end,
s."startTime" AS step_start,
s."endTime" AS step_end,
s."generation" AS step_generation,
s."showInput" AS step_showinput,
s."language" AS step_language,
@@ -610,34 +603,47 @@ class SQLAlchemyDataLayer(BaseDataLayer):
thread_dicts = {}
for thread in user_threads:
thread_id = thread["thread_id"]
if thread_id is not None:
# Ensure metadata is a dictionary
metadata = thread["thread_metadata"]
if isinstance(metadata, str):
try:
metadata = json.loads(metadata)
except json.JSONDecodeError:
metadata = {}
elif metadata is None:
metadata = {}
t_id = thread["thread_id"]
meta = thread["thread_meta"]
if isinstance(meta, str):
try:
meta = json.loads(meta)
except:
meta = {}
tags = thread["thread_tags"]
if isinstance(tags, str):
try:
tags = json.loads(tags)
except:
tags = []
thread_dicts[t_id] = ThreadDict(
id=t_id,
createdAt=thread["thread_createdat"],
name=thread["thread_name"],
userId=thread["user_id"],
userIdentifier=thread["user_identifier"],
tags=tags,
metadata=meta,
steps=[],
elements=[],
)
thread_dicts[thread_id] = ThreadDict(
id=thread_id,
createdAt=thread["thread_createdat"],
name=thread["thread_name"],
userId=thread["user_id"],
userIdentifier=thread["user_identifier"],
tags=thread["thread_tags"],
metadata=metadata,
steps=[],
elements=[],
)
# Process steps_feedbacks to populate the steps in the corresponding ThreadDict
if isinstance(steps_feedbacks, list):
for step_feedback in steps_feedbacks:
thread_id = step_feedback["step_threadid"]
if thread_id is not None:
t_id = step_feedback["step_threadid"]
if t_id in thread_dicts:
meta = step_feedback["step_meta"]
if isinstance(meta, str):
try:
meta = json.loads(meta)
except:
meta = {}
tags = step_feedback["step_tags"]
if isinstance(tags, str):
try:
tags = json.loads(tags)
except:
tags = []
feedback = None
if step_feedback["feedback_value"] is not None:
feedback = FeedbackDict(
@@ -646,27 +652,22 @@ class SQLAlchemyDataLayer(BaseDataLayer):
value=step_feedback["feedback_value"],
comment=step_feedback.get("feedback_comment"),
)
input_val = step_feedback.get("step_input", "")
show_input = step_feedback.get("step_showinput", "false")
if show_input == "false":
input_val = ""
step_dict = StepDict(
id=step_feedback["step_id"],
name=step_feedback["step_name"],
type=step_feedback["step_type"],
threadId=thread_id,
threadId=t_id,
parentId=step_feedback.get("step_parentid"),
streaming=step_feedback.get("step_streaming", False),
waitForAnswer=step_feedback.get("step_waitforanswer"),
isError=step_feedback.get("step_iserror"),
metadata=(
step_feedback["step_metadata"]
if step_feedback.get("step_metadata") is not None
else {}
),
tags=step_feedback.get("step_tags"),
input=(
step_feedback.get("step_input", "")
if step_feedback.get("step_showinput")
not in [None, "false"]
else ""
),
metadata=meta,
tags=tags,
input=input_val,
output=step_feedback.get("step_output", ""),
createdAt=step_feedback.get("step_createdat"),
start=step_feedback.get("step_start"),
@@ -677,16 +678,15 @@ class SQLAlchemyDataLayer(BaseDataLayer):
indent=step_feedback.get("step_indent"),
feedback=feedback,
)
# Append the step to the steps list of the corresponding ThreadDict
thread_dicts[thread_id]["steps"].append(step_dict)
thread_dicts[t_id]["steps"].append(step_dict)
if isinstance(elements, list):
for element in elements:
thread_id = element["element_threadid"]
if thread_id is not None:
t_id = element["element_threadid"]
if t_id in thread_dicts:
element_dict = ElementDict(
id=element["element_id"],
threadId=thread_id,
threadId=t_id,
type=element["element_type"],
chainlitKey=element.get("element_chainlitkey"),
url=element.get("element_url"),
@@ -701,6 +701,6 @@ class SQLAlchemyDataLayer(BaseDataLayer):
forId=element.get("element_forid"),
mime=element.get("element_mime"),
)
thread_dicts[thread_id]["elements"].append(element_dict) # type: ignore
thread_dicts[t_id]["elements"].append(element_dict)
return list(thread_dicts.values())
return list(thread_dicts.values())
+91 -5
View File
@@ -1,6 +1,87 @@
[project]
name = "PraisonAI"
version = "2.0.9"
description = "PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration."
readme = "README.md"
license = ""
requires-python = ">=3.10,<3.13"
authors = [
{ name = "Mervin Praison" }
]
dependencies = [
"rich>=13.7",
"markdown>=3.5",
"pyparsing>=3.0.0",
"praisonaiagents>=0.0.4",
"python-dotenv>=1.0.1",
"instructor>=0.4.8",
"PyYAML>=6.0"
]
[project.optional-dependencies]
ui = ["chainlit==2.0rc1"]
gradio = ["gradio>=4.26.0"]
api = ["flask>=3.0.0"]
agentops = ["agentops>=0.3.12"]
google = ["langchain-google-genai>=1.0.4"]
openai = ["langchain-openai>=0.1.7"]
anthropic = ["langchain-anthropic>=0.1.13"]
cohere = ["langchain-cohere>=0.1.4"]
chat = [
"chainlit==2.0rc1",
"litellm>=1.41.8",
"aiosqlite>=0.20.0",
"greenlet>=3.0.3",
"tavily-python==0.5.0",
"crawl4ai==0.3.4",
"sqlalchemy>=2.0.36",
"playwright>=1.47.0",
"rich",
"instructor",
"pydantic<=2.10.1"
]
code = [
"chainlit==2.0rc1",
"litellm>=1.41.8",
"aiosqlite>=0.20.0",
"greenlet>=3.0.3",
"tavily-python==0.5.0",
"crawl4ai==0.3.4",
"sqlalchemy>=2.0.36",
"playwright>=1.47.0",
"pydantic<=2.10.1"
]
realtime = [
"chainlit==2.0rc1",
"litellm>=1.41.8",
"aiosqlite>=0.20.0",
"greenlet>=3.0.3",
"tavily-python==0.5.0",
"crawl4ai==0.3.4",
"websockets>=12.0",
"plotly>=5.24.0",
"yfinance>=0.2.44",
"duckduckgo_search>=6.3.0",
"sqlalchemy>=2.0.36"
]
call = [
"twilio>=7.0.0",
"fastapi>=0.95.0",
"uvicorn>=0.20.0",
"websockets>=12.0",
"python-dotenv>=1.0.1",
"flaml[automl]>=2.3.1",
"pyngrok>=1.4.0",
"rich",
"openai>=1.54.0",
"instructor"
]
crewai = ["crewai>=0.32.0", "praisonai-tools>=0.0.7", "instructor"]
autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.7", "instructor", "crewai"]
[tool.poetry]
name = "PraisonAI"
version = "1.0.2"
version = "2.0.9"
description = "PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration."
authors = ["Mervin Praison"]
license = ""
@@ -18,12 +99,14 @@ python = ">=3.10,<3.13"
rich = ">=13.7"
markdown = ">=3.5"
pyparsing = ">=3.0.0"
python-dotenv = {version = ">=0.19.0"}
praisonaiagents = ">=0.0.4"
python-dotenv = ">=1.0.1"
instructor = ">=0.4.8"
PyYAML = ">=6.0"
pyautogen = {version = ">=0.2.19", optional = true}
crewai = {version = ">=0.32.0", optional = true}
praisonai-tools = {version = ">=0.0.7", optional = true}
chainlit = {version = "==1.3.0rc1", optional = true}
chainlit = {version = "==2.0rc1", optional = true}
gradio = {version = ">=4.26.0", optional = true}
flask = {version = ">=3.0.0", optional = true}
agentops = {version = ">=0.3.12", optional = true}
@@ -87,7 +170,7 @@ mkdocstrings-python = "*"
pdoc3 = "*"
xmlrunner = "*"
unittest2 = "*"
chainlit = "==1.3.0rc1"
chainlit = "==2.0rc1"
gradio = ">=4.26.0"
flask = ">=3.0.0"
agentops = ">=0.3.12"
@@ -100,7 +183,10 @@ aiosqlite = ">=0.20.0"
greenlet = ">=3.0.3"
[build-system]
requires = ["poetry-core", "setuptools>=42"]
requires = [
"poetry-core",
"setuptools>=42",
]
build-backend = "poetry.core.masonry.api"
+6 -4
View File
@@ -1,7 +1,9 @@
rich>=13.7
pyautogen>=0.2.19
crewai>=0.30.4
gradio>=4.20.0
chainlit>=1.1.301
markdown>=3.5
pyparsing>=3.0.0
python-dotenv>=1.0.1
instructor>=0.4.8
PyYAML>=6.0
praisonaiagents>=0.0.4
duckduckgo_search
praisonai_tools
+93
View File
@@ -0,0 +1,93 @@
import os
import chainlit as cl
import google.generativeai as genai
from typing import List, Optional, Dict, Any, Union, Literal, Type
from pydantic import BaseModel
import json
# Configure the Gemini API
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# Define generation configuration
generation_config = {
"temperature": 1,
"top_p": 0.95,
"top_k": 40,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
def read_system_instructions():
try:
with open("/Users/praison/praisonai-package/.cursorrules", "r") as file:
return file.read()
except Exception as e:
print(f"Error reading .cursorrules file: {e}")
return ""
def read_current_file():
try:
with open("/Users/praison/praisonai-package/praisonai/test.py", "r") as file:
return file.read()
except Exception as e:
print(f"Error reading test.py file: {e}")
return ""
# Create the GenerativeModel instance with system instructions
model = genai.GenerativeModel(
model_name="gemini-2.0-flash-exp",
generation_config=generation_config,
system_instruction=read_system_instructions(),
)
@cl.on_chat_start
async def start():
# Initialize chat session
chat = model.start_chat(history=[])
# Store chat in user session
cl.user_session.set("chat", chat)
@cl.on_message
async def main(message: str):
# Retrieve chat session
chat = cl.user_session.get("chat")
# Append current file content to user message
file_content = read_current_file()
full_message = f"""
Current file:
{file_content}
User message:
{message}
"""
# Send message and get streaming response
response = chat.send_message(full_message, stream=True)
# Create message placeholder for streaming
msg = cl.Message(content="")
# Stream the response token by token
for chunk in response:
await msg.stream_token(chunk.text)
# Send final message
await msg.send()
@cl.on_chat_end
def end():
print("Chat ended")
# Error handling for missing files
@cl.on_stop
def on_stop():
print("Stopped by user")
if __name__ == "__main__":
# Verify system files exist
if not os.path.exists("/Users/praison/praisonai-package/.cursorrules"):
print("Warning: .cursorrules file not found")
if not os.path.exists("/Users/praison/praisonai-package/praisonai/test.py"):
print("Warning: test.py file not found")
Generated
+5169
View File
File diff suppressed because it is too large. Load diff