github-actions[bot] commited on
Commit
b5d34cb
Β·
0 Parent(s):

Deploy Agent Tide Demo to HF Space with LFS

Browse files
.chainlit/config.toml ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ # Whether to enable telemetry (default: true). No personal data is collected.
3
+ enable_telemetry = true
4
+
5
+
6
+ # List of environment variables to be provided by each user to use the app.
7
+ user_env = []
8
+
9
+ # Duration (in seconds) during which the session is saved when the connection is lost
10
+ session_timeout = 3600
11
+
12
+ # Duration (in seconds) of the user session expiry
13
+ user_session_timeout = 1296000 # 15 days
14
+
15
+ # Enable third parties caching (e.g LangChain cache)
16
+ cache = false
17
+
18
+ # Authorized origins
19
+ allow_origins = ["*"]
20
+
21
+ [features]
22
+ # 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)
23
+ unsafe_allow_html = false
24
+
25
+ # Process and display mathematical expressions. This can clash with "$" characters in messages.
26
+ latex = false
27
+
28
+ # Automatically tag threads with the current chat profile (if a chat profile is used)
29
+ auto_tag_thread = true
30
+
31
+ # Allow users to edit their own messages
32
+ edit_message = true
33
+
34
+ # Authorize users to spontaneously upload files with messages
35
+ [features.spontaneous_file_upload]
36
+ enabled = false
37
+ # Define accepted file types using MIME types
38
+ # Examples:
39
+ # 1. For specific file types:
40
+ # accept = ["image/jpeg", "image/png", "application/pdf"]
41
+ # 2. For all files of certain type:
42
+ # accept = ["image/*", "audio/*", "video/*"]
43
+ # 3. For specific file extensions:
44
+ # accept = { "application/octet-stream" = [".xyz", ".pdb"] }
45
+ # Note: Using "*/*" is not recommended as it may cause browser warnings
46
+ accept = ["*/*"]
47
+ max_files = 20
48
+ max_size_mb = 500
49
+
50
+ [features.audio]
51
+ # Sample rate of the audio
52
+ sample_rate = 24000
53
+
54
+ [UI]
55
+ # Name of the assistant.
56
+ name = "Agent Tide"
57
+
58
+ # default_theme = "dark"
59
+
60
+ layout = "wide"
61
+
62
+ # Description of the assistant. This is used for HTML tags.
63
+ # description = ""
64
+
65
+ # Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full".
66
+ cot = "tool_call"
67
+
68
+ # Link to your github repo. This will add a github button in the UI's header.
69
+ github = "https://github.com/BrunoV21/CodeTide"
70
+
71
+ # Specify a CSS file that can be used to customize the user interface.
72
+ # The CSS file can be served from the public directory or via an external link.
73
+ custom_css = '/public/stylesheet.css'
74
+
75
+ # Specify a Javascript file that can be used to customize the user interface.
76
+ # The Javascript file can be served from the public directory.
77
+ # custom_js = "/public/test.js"
78
+
79
+ # Specify a custom meta image url.
80
+ custom_meta_image_url = "https://github.com/BrunoV21/CodeTide/blob/09a2f958a8ecec0e2e61f03bc5397a0457ac61fc/docs/assets/codetide-logo.png"
81
+
82
+ # Specify a custom build directory for the frontend.
83
+ # This can be used to customize the frontend code.
84
+ # Be careful: If this is a relative path, it should not start with a slash.
85
+ # custom_build = "./public/build"
86
+
87
+ [meta]
88
+ generated_by = "2.1.0"
.chainlit/translations/bn.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
5
+ "confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
6
+ "continue": "\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
7
+ "goBack": "\u09aa\u09bf\u099b\u09a8\u09c7 \u09af\u09be\u09a8",
8
+ "reset": "\u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8",
9
+ "submit": "\u099c\u09ae\u09be \u09a6\u09bf\u09a8"
10
+ },
11
+ "status": {
12
+ "loading": "\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7...",
13
+ "error": {
14
+ "default": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u0998\u099f\u09c7\u099b\u09c7",
15
+ "serverConnection": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0987\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
25
+ "required": "\u0987\u09ae\u09c7\u0987\u09b2 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
26
+ },
27
+ "password": {
28
+ "label": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
29
+ "required": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
30
+ },
31
+ "actions": {
32
+ "signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0985\u09a5\u09ac\u09be"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be \u09b8\u09ae\u09cd\u09ad\u09ac \u09b9\u099a\u09cd\u099b\u09c7 \u09a8\u09be",
40
+ "signin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
41
+ "oauthSignin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
42
+ "redirectUriMismatch": "\u09b0\u09bf\u09a1\u09be\u0987\u09b0\u09c7\u0995\u09cd\u099f URI \u0993\u0986\u09a5 \u0985\u09cd\u09af\u09be\u09aa \u0995\u09a8\u09ab\u09bf\u0997\u09be\u09b0\u09c7\u09b6\u09a8\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09ae\u09bf\u09b2\u099b\u09c7 \u09a8\u09be",
43
+ "oauthCallback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
44
+ "oauthCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
45
+ "emailCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
46
+ "callback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
47
+ "oauthAccountNotLinked": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09b0\u09bf\u099a\u09af\u09bc \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09a4\u09c7, \u0986\u09aa\u09a8\u09bf \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ae\u09c2\u09b2\u09a4 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09bf\u09b2\u09c7\u09a8 \u09b8\u09c7\u099f\u09bf \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
48
+ "emailSignin": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
49
+ "emailVerify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u0987\u09b2 \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
50
+ "credentialsSignin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09be\u09b0 \u09a6\u09c7\u0993\u09af\u09bc\u09be \u09a4\u09a5\u09cd\u09af \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8",
51
+ "sessionRequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be \u09a6\u09c7\u0996\u09a4\u09c7 \u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u0996\u09be\u09a8\u09c7 \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8...",
61
+ "actions": {
62
+ "send": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09be\u09a0\u09be\u09a8",
63
+ "stop": "\u0995\u09be\u099c \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
64
+ "attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
69
+ "stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
70
+ "connecting": "\u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09be\u0987\u09b2 \u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c1\u09a8",
74
+ "browse": "\u09ab\u09be\u0987\u09b2 \u09ac\u09cd\u09b0\u09be\u0989\u099c \u0995\u09b0\u09c1\u09a8",
75
+ "sizeLimit": "\u09b8\u09c0\u09ae\u09be:",
76
+ "errors": {
77
+ "failed": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
78
+ "cancelled": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u099b\u09c7",
84
+ "used": "\u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1\u09c7 \u0995\u09aa\u09bf \u0995\u09b0\u09c1\u09a8",
89
+ "success": "\u0995\u09aa\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u09b8\u09b9\u09be\u09af\u09bc\u0995",
94
+ "negative": "\u09b8\u09b9\u09be\u09af\u09bc\u0995 \u09a8\u09af\u09bc",
95
+ "edit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09a8\u09be \u0995\u09b0\u09c1\u09a8",
96
+ "dialog": {
97
+ "title": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8",
98
+ "submit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u099c\u09ae\u09be \u09a6\u09bf\u09a8"
99
+ },
100
+ "status": {
101
+ "updating": "\u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7",
102
+ "updated": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
108
+ "empty": "\u0995\u09cb\u09a8\u09cb \u09a4\u09a5\u09cd\u09af \u09a8\u09c7\u0987...",
109
+ "show": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09c1\u09a8"
110
+ },
111
+ "settings": {
112
+ "title": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2"
113
+ },
114
+ "watermark": "\u09a6\u09cd\u09ac\u09be\u09b0\u09be \u09a8\u09bf\u09b0\u09cd\u09ae\u09bf\u09a4"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f",
119
+ "filters": {
120
+ "search": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0986\u099c",
125
+ "yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
126
+ "previous7days": "\u0997\u09a4 \u09ed \u09a6\u09bf\u09a8",
127
+ "previous30days": "\u0997\u09a4 \u09e9\u09e6 \u09a6\u09bf\u09a8"
128
+ },
129
+ "empty": "\u0995\u09cb\u09a8\u09cb \u09a5\u09cd\u09b0\u09c7\u09a1 \u09aa\u09be\u0993\u09af\u09bc\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf",
130
+ "actions": {
131
+ "close": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
132
+ "open": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae\u09b9\u09c0\u09a8 \u0986\u09b2\u09cb\u099a\u09a8\u09be",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
144
+ "description": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1 \u098f\u09ac\u0982 \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u0993 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u098f\u0987 \u0995\u09be\u099c\u099f\u09bf \u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09ac\u09b8\u09cd\u09a5\u09be\u09af\u09bc \u09ab\u09c7\u09b0\u09be\u09a8\u09cb \u09af\u09be\u09ac\u09c7 \u09a8\u09be",
145
+ "success": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
146
+ "inProgress": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u099a\u09cd\u099b\u09c7"
147
+ },
148
+ "rename": {
149
+ "title": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09c1\u09a8",
150
+ "description": "\u098f\u0987 \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09a6\u09bf\u09a8",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u09a8\u09be\u09ae",
154
+ "placeholder": "\u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c1\u09a8"
155
+ }
156
+ },
157
+ "success": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!",
158
+ "inProgress": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u099a\u09cd\u09af\u09be\u099f",
166
+ "readme": "\u09b0\u09bf\u09a1\u09ae\u09bf",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f",
175
+ "dialog": {
176
+ "title": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",
177
+ "description": "\u098f\u099f\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u099a\u09cd\u09af\u09be\u099f \u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u0995\u09bf \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09c7\u09a4\u09c7 \u099a\u09be\u09a8?",
178
+ "tooltip": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
184
+ "settingsKey": "S",
185
+ "apiKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
186
+ "logout": "\u09b2\u0997\u0986\u0989\u099f"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
192
+ "description": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u0964 \u0995\u09c0\u0997\u09c1\u09b2\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09a1\u09bf\u09ad\u09be\u0987\u09b8\u09c7\u09b0 \u09b2\u09cb\u0995\u09be\u09b2 \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09a5\u09be\u0995\u09c7\u0964",
193
+ "success": {
194
+ "saved": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/en-US.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "Cancel",
5
+ "confirm": "Confirm",
6
+ "continue": "Continue",
7
+ "goBack": "Go Back",
8
+ "reset": "Reset",
9
+ "submit": "Submit"
10
+ },
11
+ "status": {
12
+ "loading": "Loading...",
13
+ "error": {
14
+ "default": "An error occurred",
15
+ "serverConnection": "Could not reach the server"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "Login to access the app",
22
+ "form": {
23
+ "email": {
24
+ "label": "Email address",
25
+ "required": "email is a required field"
26
+ },
27
+ "password": {
28
+ "label": "Password",
29
+ "required": "password is a required field"
30
+ },
31
+ "actions": {
32
+ "signin": "Sign In"
33
+ },
34
+ "alternativeText": {
35
+ "or": "OR"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "Unable to sign in",
40
+ "signin": "Try signing in with a different account",
41
+ "oauthSignin": "Try signing in with a different account",
42
+ "redirectUriMismatch": "The redirect URI is not matching the oauth app configuration",
43
+ "oauthCallback": "Try signing in with a different account",
44
+ "oauthCreateAccount": "Try signing in with a different account",
45
+ "emailCreateAccount": "Try signing in with a different account",
46
+ "callback": "Try signing in with a different account",
47
+ "oauthAccountNotLinked": "To confirm your identity, sign in with the same account you used originally",
48
+ "emailSignin": "The e-mail could not be sent",
49
+ "emailVerify": "Please verify your email, a new email has been sent",
50
+ "credentialsSignin": "Sign in failed. Check the details you provided are correct",
51
+ "sessionRequired": "Please sign in to access this page"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "Continue with {{provider}}"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "Type your message here...",
61
+ "actions": {
62
+ "send": "Send message",
63
+ "stop": "Stop Task",
64
+ "attachFiles": "Attach files"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "Start recording",
69
+ "stop": "Stop recording",
70
+ "connecting": "Connecting"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "Drag and drop files here",
74
+ "browse": "Browse Files",
75
+ "sizeLimit": "Limit:",
76
+ "errors": {
77
+ "failed": "Failed to upload",
78
+ "cancelled": "Cancelled upload of"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "Using",
84
+ "used": "Used"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "Copy to clipboard",
89
+ "success": "Copied!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "Helpful",
94
+ "negative": "Not helpful",
95
+ "edit": "Edit feedback",
96
+ "dialog": {
97
+ "title": "Add a comment",
98
+ "submit": "Submit feedback"
99
+ },
100
+ "status": {
101
+ "updating": "Updating",
102
+ "updated": "Feedback updated"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "Last Inputs",
108
+ "empty": "Such empty...",
109
+ "show": "Show history"
110
+ },
111
+ "settings": {
112
+ "title": "Settings panel"
113
+ },
114
+ "watermark": "Built with"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "Past Chats",
119
+ "filters": {
120
+ "search": "Search",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "Today",
125
+ "yesterday": "Yesterday",
126
+ "previous7days": "Previous 7 days",
127
+ "previous30days": "Previous 30 days"
128
+ },
129
+ "empty": "No threads found",
130
+ "actions": {
131
+ "close": "Close sidebar",
132
+ "open": "Open sidebar"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "Untitled Conversation",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "Confirm deletion",
144
+ "description": "This will delete the thread as well as its messages and elements. This action cannot be undone",
145
+ "success": "Chat deleted",
146
+ "inProgress": "Deleting chat"
147
+ },
148
+ "rename": {
149
+ "title": "Rename Thread",
150
+ "description": "Enter a new name for this thread",
151
+ "form": {
152
+ "name": {
153
+ "label": "Name",
154
+ "placeholder": "Enter new name"
155
+ }
156
+ },
157
+ "success": "Thread renamed!",
158
+ "inProgress": "Renaming thread"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "Chat",
166
+ "readme": "Readme",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "New Chat",
175
+ "dialog": {
176
+ "title": "Create New Chat",
177
+ "description": "This will clear your current chat history. Are you sure you want to continue?",
178
+ "tooltip": "New Chat"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "Settings",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API Keys",
186
+ "logout": "Logout"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "Required API Keys",
192
+ "description": "To use this app, the following API keys are required. The keys are stored on your device's local storage.",
193
+ "success": {
194
+ "saved": "Saved successfully"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/gu.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
5
+ "confirm": "\u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
6
+ "continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
7
+ "goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
8
+ "reset": "\u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0acb",
9
+ "submit": "\u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
10
+ },
11
+ "status": {
12
+ "loading": "\u0ab2\u0acb\u0aa1 \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7...",
13
+ "error": {
14
+ "default": "\u0a8f\u0a95 \u0aad\u0ac2\u0ab2 \u0aa5\u0a88",
15
+ "serverConnection": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0ac9\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0a88\u0aae\u0ac7\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8",
25
+ "required": "\u0a88\u0aae\u0ac7\u0ab2 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
26
+ },
27
+ "password": {
28
+ "label": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
29
+ "required": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0a85\u0aa5\u0ab5\u0abe"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0",
40
+ "signin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
41
+ "oauthSignin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
42
+ "redirectUriMismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI oauth \u0a8d\u0aaa \u0a95\u0aa8\u0acd\u0aab\u0abf\u0a97\u0ab0\u0ac7\u0ab6\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aae\u0ac7\u0ab3 \u0a96\u0abe\u0aa4\u0acb \u0aa8\u0aa5\u0ac0",
43
+ "oauthCallback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
44
+ "oauthCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
45
+ "emailCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
46
+ "callback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
47
+ "oauthAccountNotLinked": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0a93\u0ab3\u0a96\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aae\u0ac2\u0ab3 \u0ab0\u0ac2\u0aaa\u0ac7 \u0ab5\u0abe\u0aaa\u0ab0\u0ac7\u0ab2\u0abe \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
48
+ "emailSignin": "\u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0aa5\u0ac0",
49
+ "emailVerify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0a9a\u0a95\u0abe\u0ab8\u0acb, \u0aa8\u0ab5\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0acb \u0a9b\u0ac7",
50
+ "credentialsSignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0a86\u0aaa\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0a95\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb",
51
+ "sessionRequired": "\u0a86 \u0aaa\u0ac7\u0a9c\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0a85\u0ab9\u0ac0\u0a82 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0ab2\u0a96\u0acb...",
61
+ "actions": {
62
+ "send": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0aae\u0acb\u0a95\u0ab2\u0acb",
63
+ "stop": "\u0a95\u0abe\u0ab0\u0acd\u0aaf \u0ab0\u0acb\u0a95\u0acb",
64
+ "attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a9c\u0acb\u0aa1\u0acb"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
69
+ "stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
70
+ "connecting": "\u0a95\u0aa8\u0ac7\u0a95\u0acd\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u0a85\u0ab9\u0ac0\u0a82 \u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a96\u0ac7\u0a82\u0a9a\u0acb \u0a85\u0aa8\u0ac7 \u0a9b\u0acb\u0aa1\u0acb",
74
+ "browse": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0aac\u0acd\u0ab0\u0abe\u0a89\u0a9d \u0a95\u0ab0\u0acb",
75
+ "sizeLimit": "\u0aae\u0ab0\u0acd\u0aaf\u0abe\u0aa6\u0abe:",
76
+ "errors": {
77
+ "failed": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
78
+ "cancelled": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0a95\u0ab0\u0acd\u0aaf\u0ac1\u0a82"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7",
84
+ "used": "\u0ab5\u0aaa\u0ab0\u0abe\u0aaf\u0ac7\u0ab2"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0a95\u0acd\u0ab2\u0abf\u0aaa\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0aaa\u0ab0 \u0a95\u0ac9\u0aaa\u0abf \u0a95\u0ab0\u0acb",
89
+ "success": "\u0a95\u0ac9\u0aaa\u0abf \u0aa5\u0aaf\u0ac1\u0a82!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
94
+ "negative": "\u0aac\u0abf\u0aa8\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
95
+ "edit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0a82\u0aaa\u0abe\u0aa6\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
96
+ "dialog": {
97
+ "title": "\u0a9f\u0abf\u0aaa\u0acd\u0aaa\u0aa3\u0ac0 \u0a89\u0aae\u0ac7\u0ab0\u0acb",
98
+ "submit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
99
+ },
100
+ "status": {
101
+ "updating": "\u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7",
102
+ "updated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0aaf\u0acb"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
108
+ "empty": "\u0a96\u0abe\u0ab2\u0ac0 \u0a9b\u0ac7...",
109
+ "show": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb"
110
+ },
111
+ "settings": {
112
+ "title": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac7\u0aa8\u0ab2"
113
+ },
114
+ "watermark": "\u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0aa8\u0abe\u0ab5\u0ac7\u0ab2"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u0aaa\u0abe\u0a9b\u0ab2\u0ac0 \u0a9a\u0ac7\u0a9f\u0acd\u0ab8",
119
+ "filters": {
120
+ "search": "\u0ab6\u0acb\u0aa7\u0acb",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0a86\u0a9c\u0ac7",
125
+ "yesterday": "\u0a97\u0a88\u0a95\u0abe\u0ab2\u0ac7",
126
+ "previous7days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 7 \u0aa6\u0abf\u0ab5\u0ab8",
127
+ "previous30days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 30 \u0aa6\u0abf\u0ab5\u0ab8"
128
+ },
129
+ "empty": "\u0a95\u0acb\u0a88 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0acd\u0ab8 \u0aae\u0ab3\u0acd\u0aaf\u0abe \u0aa8\u0aa5\u0ac0",
130
+ "actions": {
131
+ "close": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
132
+ "open": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0a96\u0acb\u0ab2\u0acb"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0ab6\u0ac0\u0ab0\u0acd\u0ab7\u0a95 \u0ab5\u0a97\u0ab0\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab5\u0abe\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
144
+ "description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0a85\u0aa8\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7. \u0a86 \u0a95\u0acd\u0ab0\u0abf\u0aaf\u0abe \u0aaa\u0abe\u0a9b\u0ac0 \u0aab\u0ac7\u0ab0\u0ab5\u0ac0 \u0ab6\u0a95\u0abe\u0ab6\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82",
145
+ "success": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0",
146
+ "inProgress": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
147
+ },
148
+ "rename": {
149
+ "title": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0acb",
150
+ "description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0aae\u0abe\u0a9f\u0ac7 \u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0aa8\u0abe\u0aae",
154
+ "placeholder": "\u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb"
155
+ }
156
+ },
157
+ "success": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0abe\u0aaf\u0ac1\u0a82!",
158
+ "inProgress": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u0a9a\u0ac7\u0a9f",
166
+ "readme": "\u0ab5\u0abe\u0a82\u0a9a\u0acb",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f",
175
+ "dialog": {
176
+ "title": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f \u0aac\u0aa8\u0abe\u0ab5\u0acb",
177
+ "description": "\u0a86 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0a9a\u0ac7\u0a9f \u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7. \u0ab6\u0ac1\u0a82 \u0aa4\u0aae\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ab5\u0abe \u0aae\u0abe\u0a82\u0a97\u0acb \u0a9b\u0acb?",
178
+ "tooltip": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0a95\u0ac0",
186
+ "logout": "\u0ab2\u0ac9\u0a97\u0a86\u0a89\u0a9f"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0",
192
+ "description": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab5\u0abe\u0aaa\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab2\u0acb\u0a95\u0ab2 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c\u0aae\u0abe\u0a82 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0ab6\u0ac7.",
193
+ "success": {
194
+ "saved": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0abe\u0a9a\u0ab5\u0acd\u0aaf\u0ac1\u0a82"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/he-IL.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc",
5
+ "confirm": "\u05d0\u05d9\u05e9\u05d5\u05e8",
6
+ "continue": "\u05d4\u05de\u05e9\u05da",
7
+ "goBack": "\u05d7\u05d6\u05d5\u05e8",
8
+ "reset": "\u05d0\u05d9\u05e4\u05d5\u05e1",
9
+ "submit": "\u05e9\u05dc\u05d7"
10
+ },
11
+ "status": {
12
+ "loading": "\u05d8\u05d5\u05e2\u05df...",
13
+ "error": {
14
+ "default": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4",
15
+ "serverConnection": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05dc\u05e9\u05e8\u05ea"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
25
+ "required": "\u05e9\u05d3\u05d4 \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
26
+ },
27
+ "password": {
28
+ "label": "\u05e1\u05d9\u05e1\u05de\u05d4",
29
+ "required": "\u05e9\u05d3\u05d4 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
30
+ },
31
+ "actions": {
32
+ "signin": "\u05d4\u05ea\u05d7\u05d1\u05e8"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u05d0\u05d5"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8",
40
+ "signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
41
+ "oauthSignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
42
+ "redirectUriMismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05d0\u05ea \u05ea\u05e6\u05d5\u05e8\u05ea \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea OAuth",
43
+ "oauthCallback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
44
+ "oauthCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
45
+ "emailCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
46
+ "callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
47
+ "oauthAccountNotLinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8",
48
+ "emailSignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
49
+ "emailVerify": "\u05d0\u05e0\u05d0 \u05d0\u05de\u05ea \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05e0\u05e9\u05dc\u05d7 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9",
50
+ "credentialsSignin": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05d4\u05d6\u05e0\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd",
51
+ "sessionRequired": "\u05d0\u05e0\u05d0 \u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u05d4\u05e7\u05dc\u05d3 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05db\u05d0\u05df...",
61
+ "actions": {
62
+ "send": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
63
+ "stop": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4",
64
+ "attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
69
+ "stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4",
70
+ "connecting": "\u05de\u05ea\u05d7\u05d1\u05e8"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u05d2\u05e8\u05d5\u05e8 \u05d5\u05e9\u05d7\u05e8\u05e8 \u05e7\u05d1\u05e6\u05d9\u05dd \u05db\u05d0\u05df",
74
+ "browse": "\u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d1\u05e6\u05d9\u05dd",
75
+ "sizeLimit": "\u05de\u05d2\u05d1\u05dc\u05d4:",
76
+ "errors": {
77
+ "failed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
78
+ "cancelled": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4 \u05e9\u05dc"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1",
84
+ "used": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u05d4\u05e2\u05ea\u05e7 \u05dc\u05dc\u05d5\u05d7",
89
+ "success": "\u05d4\u05d5\u05e2\u05ea\u05e7!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u05de\u05d5\u05e2\u05d9\u05dc",
94
+ "negative": "\u05dc\u05d0 \u05de\u05d5\u05e2\u05d9\u05dc",
95
+ "edit": "\u05e2\u05e8\u05d5\u05da \u05de\u05e9\u05d5\u05d1",
96
+ "dialog": {
97
+ "title": "\u05d4\u05d5\u05e1\u05e3 \u05ea\u05d2\u05d5\u05d1\u05d4",
98
+ "submit": "\u05e9\u05dc\u05d7 \u05de\u05e9\u05d5\u05d1"
99
+ },
100
+ "status": {
101
+ "updating": "\u05de\u05e2\u05d3\u05db\u05df",
102
+ "updated": "\u05d4\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u05e7\u05dc\u05d8\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
108
+ "empty": "\u05db\u05dc \u05db\u05da \u05e8\u05d9\u05e7...",
109
+ "show": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4"
110
+ },
111
+ "settings": {
112
+ "title": "\u05e4\u05d0\u05e0\u05dc \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea"
113
+ },
114
+ "watermark": "\u05e0\u05d1\u05e0\u05d4 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
119
+ "filters": {
120
+ "search": "\u05d7\u05d9\u05e4\u05d5\u05e9",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u05d4\u05d9\u05d5\u05dd",
125
+ "yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
126
+ "previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
127
+ "previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd"
128
+ },
129
+ "empty": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05d9\u05d7\u05d5\u05ea",
130
+ "actions": {
131
+ "close": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
132
+ "open": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u05e9\u05d9\u05d7\u05d4 \u05dc\u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05d4",
144
+ "description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05d0\u05dc\u05de\u05e0\u05d8\u05d9\u05dd \u05e9\u05dc\u05d4. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5",
145
+ "success": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7",
146
+ "inProgress": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8"
147
+ },
148
+ "rename": {
149
+ "title": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4",
150
+ "description": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9 \u05dc\u05e9\u05d9\u05d7\u05d4 \u05d6\u05d5",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u05e9\u05dd",
154
+ "placeholder": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9"
155
+ }
156
+ },
157
+ "success": "\u05e9\u05dd \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05d5\u05e0\u05d4!",
158
+ "inProgress": "\u05de\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u05e6'\u05d0\u05d8",
166
+ "readme": "\u05e7\u05e8\u05d0 \u05d0\u05d5\u05ea\u05d9",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
175
+ "dialog": {
176
+ "title": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
177
+ "description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d9\u05ea \u05d4\u05e6'\u05d0\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
178
+ "tooltip": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
184
+ "settingsKey": "\u05d4",
185
+ "apiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API",
186
+ "logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
192
+ "description": "\u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05d6\u05d5, \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd \u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05d4\u05d1\u05d0\u05d9\u05dd. \u05d4\u05de\u05e4\u05ea\u05d7\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e1\u05e0\u05d9\u05dd \u05d1\u05d0\u05d7\u05e1\u05d5\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc \u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05e9\u05dc\u05da.",
193
+ "success": {
194
+ "saved": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/hi.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
5
+ "confirm": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
6
+ "continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
7
+ "goBack": "\u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
8
+ "reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902",
9
+ "submit": "\u091c\u092e\u093e \u0915\u0930\u0947\u0902"
10
+ },
11
+ "status": {
12
+ "loading": "\u0932\u094b\u0921 \u0939\u094b \u0930\u0939\u093e \u0939\u0948...",
13
+ "error": {
14
+ "default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u093f \u0939\u0941\u0908",
15
+ "serverConnection": "\u0938\u0930\u094d\u0935\u0930 \u0938\u0947 \u0938\u0902\u092a\u0930\u094d\u0915 \u0928\u0939\u0940\u0902 \u0939\u094b \u092a\u093e \u0930\u0939\u093e"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
25
+ "required": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
26
+ },
27
+ "password": {
28
+ "label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
29
+ "required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u092f\u093e"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925",
40
+ "signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
41
+ "oauthSignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
42
+ "redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI oauth \u0910\u092a \u0915\u0949\u0928\u094d\u092b\u093c\u093f\u0917\u0930\u0947\u0936\u0928 \u0938\u0947 \u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u0916\u093e \u0930\u0939\u093e",
43
+ "oauthCallback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
44
+ "oauthCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
45
+ "emailCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
46
+ "callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
47
+ "oauthAccountNotLinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0909\u0938\u0940 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902 \u091c\u093f\u0938\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0906\u092a\u0928\u0947 \u092e\u0942\u0932 \u0930\u0942\u092a \u0938\u0947 \u0915\u093f\u092f\u093e \u0925\u093e",
48
+ "emailSignin": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u093e \u091c\u093e \u0938\u0915\u093e",
49
+ "emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902, \u090f\u0915 \u0928\u092f\u093e \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0917\u092f\u093e \u0939\u0948",
50
+ "credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932\u0964 \u0906\u092a\u0915\u0947 \u0926\u094d\u0935\u093e\u0930\u093e \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u093f\u090f \u0917\u090f \u0935\u093f\u0935\u0930\u0923 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0947\u0902",
51
+ "sessionRequired": "\u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0902 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902...",
61
+ "actions": {
62
+ "send": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
63
+ "stop": "\u0915\u093e\u0930\u094d\u092f \u0930\u094b\u0915\u0947\u0902",
64
+ "attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
69
+ "stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0930\u094b\u0915\u0947\u0902",
70
+ "connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u092b\u093c\u093e\u0907\u0932\u094b\u0902 \u0915\u094b \u092f\u0939\u093e\u0902 \u0916\u0940\u0902\u091a\u0947\u0902 \u0914\u0930 \u091b\u094b\u0921\u093c\u0947\u0902",
74
+ "browse": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092c\u094d\u0930\u093e\u0909\u091c\u093c \u0915\u0930\u0947\u0902",
75
+ "sizeLimit": "\u0938\u0940\u092e\u093e:",
76
+ "errors": {
77
+ "failed": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
78
+ "cancelled": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0909\u092a\u092f\u094b\u0917 \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
84
+ "used": "\u0909\u092a\u092f\u094b\u0917 \u0915\u093f\u092f\u093e"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921 \u092a\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u0947\u0902",
89
+ "success": "\u0915\u0949\u092a\u0940 \u0915\u093f\u092f\u093e \u0917\u092f\u093e!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0938\u0939\u093e\u092f\u0915",
94
+ "negative": "\u0938\u0939\u093e\u092f\u0915 \u0928\u0939\u0940\u0902",
95
+ "edit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u0947\u0902",
96
+ "dialog": {
97
+ "title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093c\u0947\u0902",
98
+ "submit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u091c\u092e\u093e \u0915\u0930\u0947\u0902"
99
+ },
100
+ "status": {
101
+ "updating": "\u0905\u092a\u0921\u0947\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948",
102
+ "updated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u092a\u093f\u091b\u0932\u0947 \u0907\u0928\u092a\u0941\u091f",
108
+ "empty": "\u0915\u0941\u091b \u092d\u0940 \u0928\u0939\u0940\u0902 \u0939\u0948...",
109
+ "show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902"
110
+ },
111
+ "settings": {
112
+ "title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932"
113
+ },
114
+ "watermark": "\u0915\u0947 \u0938\u093e\u0925 \u092c\u0928\u093e\u092f\u093e \u0917\u092f\u093e"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f",
119
+ "filters": {
120
+ "search": "\u0916\u094b\u091c\u0947\u0902",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0906\u091c",
125
+ "yesterday": "\u0915\u0932",
126
+ "previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
127
+ "previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
128
+ },
129
+ "empty": "\u0915\u094b\u0908 \u0925\u094d\u0930\u0947\u0921 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932\u093e",
130
+ "actions": {
131
+ "close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
132
+ "open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0939\u0940\u0928 \u0935\u093e\u0930\u094d\u0924\u093e\u0932\u093e\u092a",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0939\u091f\u093e\u0928\u0947 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
144
+ "description": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0914\u0930 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964 \u092f\u0939 \u0915\u094d\u0930\u093f\u092f\u093e \u0935\u093e\u092a\u0938 \u0928\u0939\u0940\u0902 \u0915\u0940 \u091c\u093e \u0938\u0915\u0924\u0940",
145
+ "success": "\u091a\u0948\u091f \u0939\u091f\u093e \u0926\u0940 \u0917\u0908",
146
+ "inProgress": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948"
147
+ },
148
+ "rename": {
149
+ "title": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902",
150
+ "description": "\u0907\u0938 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0932\u093f\u090f \u090f\u0915 \u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0928\u093e\u092e",
154
+ "placeholder": "\u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902"
155
+ }
156
+ },
157
+ "success": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932 \u0926\u093f\u092f\u093e \u0917\u092f\u093e!",
158
+ "inProgress": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u093e \u091c\u093e \u0930\u0939\u093e \u0939\u0948"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u091a\u0948\u091f",
166
+ "readme": "\u0930\u0940\u0921\u092e\u0940",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0928\u0908 \u091a\u0948\u091f",
175
+ "dialog": {
176
+ "title": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0902",
177
+ "description": "\u092f\u0939 \u0906\u092a\u0915\u093e \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u091a\u0948\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b\u093c \u0915\u0930 \u0926\u0947\u0917\u093e\u0964 \u0915\u094d\u092f\u093e \u0906\u092a \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?",
178
+ "tooltip": "\u0928\u0908 \u091a\u0948\u091f"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
186
+ "logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
192
+ "description": "\u0907\u0938 \u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u0935\u0936\u094d\u092f\u0915 \u0939\u0948\u0902\u0964 \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u092a\u0915\u0947 \u0921\u093f\u0935\u093e\u0907\u0938 \u0915\u0947 \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u0938\u0902\u0917\u094d\u0930\u0939\u0923 \u092e\u0947\u0902 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964",
193
+ "success": {
194
+ "saved": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/ja.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
5
+ "confirm": "\u78ba\u8a8d",
6
+ "continue": "\u7d9a\u3051\u308b",
7
+ "goBack": "\u623b\u308b",
8
+ "reset": "\u30ea\u30bb\u30c3\u30c8",
9
+ "submit": "\u9001\u4fe1"
10
+ },
11
+ "status": {
12
+ "loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
13
+ "error": {
14
+ "default": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f",
15
+ "serverConnection": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u30a2\u30d7\u30ea\u306b\u30ed\u30b0\u30a4\u30f3",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9",
25
+ "required": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
26
+ },
27
+ "password": {
28
+ "label": "\u30d1\u30b9\u30ef\u30fc\u30c9",
29
+ "required": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
30
+ },
31
+ "actions": {
32
+ "signin": "\u30b5\u30a4\u30f3\u30a4\u30f3"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u307e\u305f\u306f"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u30b5\u30a4\u30f3\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093",
40
+ "signin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
41
+ "oauthSignin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
42
+ "redirectUriMismatch": "\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u304cOAuth\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093",
43
+ "oauthCallback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
44
+ "oauthCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
45
+ "emailCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
46
+ "callback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
47
+ "oauthAccountNotLinked": "\u672c\u4eba\u78ba\u8a8d\u306e\u305f\u3081\u3001\u6700\u521d\u306b\u4f7f\u7528\u3057\u305f\u306e\u3068\u540c\u3058\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
48
+ "emailSignin": "\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",
49
+ "emailVerify": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u65b0\u3057\u3044\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f",
50
+ "credentialsSignin": "\u30b5\u30a4\u30f3\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u5165\u529b\u3057\u305f\u60c5\u5831\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044",
51
+ "sessionRequired": "\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}}\u3067\u7d9a\u3051\u308b"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...",
61
+ "actions": {
62
+ "send": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1",
63
+ "stop": "\u30bf\u30b9\u30af\u3092\u505c\u6b62",
64
+ "attachFiles": "\u30d5\u30a1\u30a4\u30eb\u3092\u6dfb\u4ed8"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u9332\u97f3\u958b\u59cb",
69
+ "stop": "\u9332\u97f3\u505c\u6b62",
70
+ "connecting": "\u63a5\u7d9a\u4e2d"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u3053\u3053\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30c9\u30ed\u30c3\u30d7",
74
+ "browse": "\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167",
75
+ "sizeLimit": "\u5236\u9650\uff1a",
76
+ "errors": {
77
+ "failed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
78
+ "cancelled": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3057\u305f\uff1a"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u4f7f\u7528\u4e2d",
84
+ "used": "\u4f7f\u7528\u6e08\u307f"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc",
89
+ "success": "\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u5f79\u306b\u7acb\u3063\u305f",
94
+ "negative": "\u5f79\u306b\u7acb\u305f\u306a\u304b\u3063\u305f",
95
+ "edit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u7de8\u96c6",
96
+ "dialog": {
97
+ "title": "\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0",
98
+ "submit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1"
99
+ },
100
+ "status": {
101
+ "updating": "\u66f4\u65b0\u4e2d",
102
+ "updated": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u6700\u8fd1\u306e\u5165\u529b",
108
+ "empty": "\u4f55\u3082\u3042\u308a\u307e\u305b\u3093...",
109
+ "show": "\u5c65\u6b74\u3092\u8868\u793a"
110
+ },
111
+ "settings": {
112
+ "title": "\u8a2d\u5b9a\u30d1\u30cd\u30eb"
113
+ },
114
+ "watermark": "\u958b\u767a\u5143\uff1a"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u904e\u53bb\u306e\u30c1\u30e3\u30c3\u30c8",
119
+ "filters": {
120
+ "search": "\u691c\u7d22",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u4eca\u65e5",
125
+ "yesterday": "\u6628\u65e5",
126
+ "previous7days": "\u904e\u53bb7\u65e5\u9593",
127
+ "previous30days": "\u904e\u53bb30\u65e5\u9593"
128
+ },
129
+ "empty": "\u30b9\u30ec\u30c3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
130
+ "actions": {
131
+ "close": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u9589\u3058\u308b",
132
+ "open": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u958b\u304f"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u7121\u984c\u306e\u4f1a\u8a71",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u524a\u9664\u306e\u78ba\u8a8d",
144
+ "description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u3068\u305d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u8981\u7d20\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u64cd\u4f5c\u306f\u53d6\u308a\u6d88\u305b\u307e\u305b\u3093",
145
+ "success": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f",
146
+ "inProgress": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u4e2d"
147
+ },
148
+ "rename": {
149
+ "title": "\u30b9\u30ec\u30c3\u30c9\u306e\u540d\u524d\u3092\u5909\u66f4",
150
+ "description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u540d\u524d",
154
+ "placeholder": "\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b"
155
+ }
156
+ },
157
+ "success": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\uff01",
158
+ "inProgress": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u4e2d"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u30c1\u30e3\u30c3\u30c8",
166
+ "readme": "\u8aac\u660e\u66f8",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8",
175
+ "dialog": {
176
+ "title": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8\u306e\u4f5c\u6210",
177
+ "description": "\u73fe\u5728\u306e\u30c1\u30e3\u30c3\u30c8\u5c65\u6b74\u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f",
178
+ "tooltip": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u8a2d\u5b9a",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API\u30ad\u30fc",
186
+ "logout": "\u30ed\u30b0\u30a2\u30a6\u30c8"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u5fc5\u8981\u306aAPI\u30ad\u30fc",
192
+ "description": "\u3053\u306e\u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306eAPI\u30ad\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u30ad\u30fc\u306f\u304a\u4f7f\u3044\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002",
193
+ "success": {
194
+ "saved": "\u4fdd\u5b58\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/kn.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
5
+ "confirm": "\u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
6
+ "continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
7
+ "goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0ccb\u0c97\u0cbf",
8
+ "reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
9
+ "submit": "\u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
10
+ },
11
+ "status": {
12
+ "loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
13
+ "error": {
14
+ "default": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6",
15
+ "serverConnection": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd\u200c \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
25
+ "required": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
26
+ },
27
+ "password": {
28
+ "label": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
29
+ "required": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0c85\u0ca5\u0cb5\u0cbe"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
40
+ "signin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
41
+ "oauthSignin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
42
+ "redirectUriMismatch": "\u0cb0\u0cc0\u0ca1\u0cc8\u0cb0\u0cc6\u0c95\u0ccd\u0c9f\u0ccd URI \u0c93\u0ca5\u0ccd \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2",
43
+ "oauthCallback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
44
+ "oauthCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
45
+ "emailCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
46
+ "callback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
47
+ "oauthAccountNotLinked": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c97\u0cc1\u0cb0\u0cc1\u0ca4\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cc1, \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cca\u0ca6\u0cb2\u0cc1 \u0cac\u0cb3\u0cb8\u0cbf\u0ca6 \u0c85\u0ca6\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
48
+ "emailSignin": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
49
+ "emailVerify": "\u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf, \u0cb9\u0cca\u0cb8 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
50
+ "credentialsSignin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0c92\u0ca6\u0c97\u0cbf\u0cb8\u0cbf\u0ca6 \u0cb5\u0cbf\u0cb5\u0cb0\u0c97\u0cb3\u0cc1 \u0cb8\u0cb0\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0cb5\u0cc6\u0caf\u0cc7 \u0c8e\u0c82\u0ca6\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf",
51
+ "sessionRequired": "\u0c88 \u0caa\u0cc1\u0c9f\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c9f\u0cc8\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf...",
61
+ "actions": {
62
+ "send": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf",
63
+ "stop": "\u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
64
+ "attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
69
+ "stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
70
+ "connecting": "\u0cb8\u0c82\u0caa\u0cb0\u0ccd\u0c95\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c8e\u0cb3\u0cc6\u0ca6\u0cc1 \u0cac\u0cbf\u0ca1\u0cbf",
74
+ "browse": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0ccd\u0cb0\u0ccc\u0cb8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
75
+ "sizeLimit": "\u0cae\u0cbf\u0ca4\u0cbf:",
76
+ "errors": {
77
+ "failed": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
78
+ "cancelled": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0cac\u0cb3\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0cc1\u0cb5\u0cc1\u0ca6\u0cc1",
84
+ "used": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0c95\u0ccd\u0cb2\u0cbf\u0caa\u0ccd\u200c\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd\u200c\u0c97\u0cc6 \u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cbf",
89
+ "success": "\u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
94
+ "negative": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2",
95
+ "edit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0c82\u0caa\u0cbe\u0ca6\u0cbf\u0cb8\u0cbf",
96
+ "dialog": {
97
+ "title": "\u0c95\u0cbe\u0cae\u0cc6\u0c82\u0c9f\u0ccd \u0cb8\u0cc7\u0cb0\u0cbf\u0cb8\u0cbf",
98
+ "submit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
99
+ },
100
+ "status": {
101
+ "updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
102
+ "updated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd\u200c\u0c97\u0cb3\u0cc1",
108
+ "empty": "\u0c96\u0cbe\u0cb2\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0ca6\u0cc6...",
109
+ "show": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cbf"
110
+ },
111
+ "settings": {
112
+ "title": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cc6\u0cb2\u0ccd"
113
+ },
114
+ "watermark": "\u0c87\u0ca6\u0cb0\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0ca8\u0cbf\u0cb0\u0ccd\u0cae\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1",
119
+ "filters": {
120
+ "search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cbf",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0c87\u0c82\u0ca6\u0cc1",
125
+ "yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
126
+ "previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
127
+ "previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
128
+ },
129
+ "empty": "\u0caf\u0cbe\u0cb5\u0cc1\u0ca6\u0cc7 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1 \u0c95\u0c82\u0ca1\u0cc1\u0cac\u0c82\u0ca6\u0cbf\u0cb2\u0ccd\u0cb2",
130
+ "actions": {
131
+ "close": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cbf",
132
+ "open": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0cb6\u0cc0\u0cb0\u0ccd\u0cb7\u0cbf\u0c95\u0cc6\u0cb0\u0cb9\u0cbf\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0cb5\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
144
+ "description": "\u0c87\u0ca6\u0cc1 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cbe\u0c97\u0cc2 \u0c85\u0ca6\u0cb0 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0c85\u0c82\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0c88 \u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2",
145
+ "success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
146
+ "inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
147
+ },
148
+ "rename": {
149
+ "title": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cbf",
150
+ "description": "\u0c88 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cc6 \u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0cb9\u0cc6\u0cb8\u0cb0\u0cc1",
154
+ "placeholder": "\u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf"
155
+ }
156
+ },
157
+ "success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!",
158
+ "inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
166
+ "readme": "\u0c93\u0ca6\u0cbf",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
175
+ "dialog": {
176
+ "title": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0cb0\u0c9a\u0cbf\u0cb8\u0cbf",
177
+ "description": "\u0c87\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cc6\u0caf\u0cb2\u0cc1 \u0cac\u0caf\u0cb8\u0cc1\u0cb5\u0cbf\u0cb0\u0cbe?",
178
+ "tooltip": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0cc1",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
186
+ "logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
192
+ "description": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1 \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cbe\u0ca7\u0ca8\u0ca6 \u0cb8\u0ccd\u0ca5\u0cb3\u0cc0\u0caf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0ca3\u0cc6\u0caf\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
193
+ "success": {
194
+ "saved": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/ml.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
5
+ "confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
6
+ "continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
7
+ "goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d15\u0d46 \u0d2a\u0d4b\u0d15\u0d41\u0d15",
8
+ "reset": "\u0d2a\u0d41\u0d28\u0d03\u0d38\u0d1c\u0d4d\u0d1c\u0d2e\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
9
+ "submit": "\u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
10
+ },
11
+ "status": {
12
+ "loading": "\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...",
13
+ "error": {
14
+ "default": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
15
+ "serverConnection": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
25
+ "required": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
26
+ },
27
+ "password": {
28
+ "label": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d",
29
+ "required": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
40
+ "signin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
41
+ "oauthSignin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
42
+ "redirectUriMismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d URI oauth \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d15\u0d4b\u0d7a\u0d2b\u0d3f\u0d17\u0d31\u0d47\u0d37\u0d28\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
43
+ "oauthCallback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
44
+ "oauthCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
45
+ "emailCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
46
+ "callback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
47
+ "oauthAccountNotLinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d35\u0d4d\u0d2f\u0d15\u0d4d\u0d24\u0d3f\u0d24\u0d4d\u0d35\u0d02 \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a \u0d05\u0d24\u0d47 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
48
+ "emailSignin": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
49
+ "emailVerify": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15, \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d",
50
+ "credentialsSignin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d7d\u0d15\u0d3f\u0d2f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
51
+ "sessionRequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d1f\u0d48\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15...",
61
+ "actions": {
62
+ "send": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
63
+ "stop": "\u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
64
+ "attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
69
+ "stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
70
+ "connecting": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d35\u0d32\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d41\u0d15",
74
+ "browse": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
75
+ "sizeLimit": "\u0d2a\u0d30\u0d3f\u0d27\u0d3f:",
76
+ "errors": {
77
+ "failed": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
78
+ "cancelled": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
84
+ "used": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0d15\u0d4d\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d\u0d2c\u0d4b\u0d7c\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
89
+ "success": "\u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d02",
94
+ "negative": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d2e\u0d32\u0d4d\u0d32",
95
+ "edit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d0e\u0d21\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
96
+ "dialog": {
97
+ "title": "\u0d12\u0d30\u0d41 \u0d15\u0d2e\u0d28\u0d4d\u0d31\u0d4d \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15",
98
+ "submit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
99
+ },
100
+ "status": {
101
+ "updating": "\u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41",
102
+ "updated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
108
+ "empty": "\u0d12\u0d28\u0d4d\u0d28\u0d41\u0d2e\u0d3f\u0d32\u0d4d\u0d32...",
109
+ "show": "\u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
110
+ },
111
+ "settings": {
112
+ "title": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d3e\u0d28\u0d7d"
113
+ },
114
+ "watermark": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d28\u0d3f\u0d7c\u0d2e\u0d4d\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d24\u0d4d"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u0d2e\u0d41\u0d7b \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e",
119
+ "filters": {
120
+ "search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
125
+ "yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
126
+ "previous7days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
127
+ "previous30days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
128
+ },
129
+ "empty": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d15\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
130
+ "actions": {
131
+ "close": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
132
+ "open": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 \u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
144
+ "description": "\u0d07\u0d24\u0d4d \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d02 \u0d05\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d18\u0d1f\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02. \u0d08 \u0d2a\u0d4d\u0d30\u0d35\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d2a\u0d34\u0d2f\u0d2a\u0d1f\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
145
+ "success": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41",
146
+ "inProgress": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
147
+ },
148
+ "rename": {
149
+ "title": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
150
+ "description": "\u0d08 \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d3f\u0d28\u0d4d \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0d2a\u0d47\u0d30\u0d4d",
154
+ "placeholder": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15"
155
+ }
156
+ },
157
+ "success": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41!",
158
+ "inProgress": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
166
+ "readme": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
175
+ "dialog": {
176
+ "title": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
177
+ "description": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2e\u0d3e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02. \u0d24\u0d41\u0d1f\u0d30\u0d3e\u0d7b \u0d24\u0d3e\u0d7d\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u0d2f\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d4b?",
178
+ "tooltip": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0d15\u0d40\u0d15\u0d7e",
186
+ "logout": "\u0d32\u0d4b\u0d17\u0d4d\u0d14\u0d1f\u0d4d\u0d1f\u0d4d"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f API \u0d15\u0d40\u0d15\u0d7e",
192
+ "description": "\u0d08 \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d24\u0d3e\u0d34\u0d46\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 API \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d15\u0d40\u0d15\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d32\u0d4b\u0d15\u0d4d\u0d15\u0d7d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d47\u0d1c\u0d3f\u0d7d \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41.",
193
+ "success": {
194
+ "saved": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/mr.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
5
+ "confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
6
+ "continue": "\u092a\u0941\u0922\u0947 \u091c\u093e",
7
+ "goBack": "\u092e\u093e\u0917\u0947 \u091c\u093e",
8
+ "reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
9
+ "submit": "\u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
10
+ },
11
+ "status": {
12
+ "loading": "\u0932\u094b\u0921 \u0915\u0930\u0924 \u0906\u0939\u0947...",
13
+ "error": {
14
+ "default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u0906\u0932\u0940",
15
+ "serverConnection": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u0936\u0940 \u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b\u090a \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
25
+ "required": "\u0908\u092e\u0947\u0932 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
26
+ },
27
+ "password": {
28
+ "label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
29
+ "required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0915\u093f\u0902\u0935\u093e"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942 \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
40
+ "signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
41
+ "oauthSignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
42
+ "redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI \u0913\u0925 \u0905\u0945\u092a \u0915\u0949\u0928\u094d\u092b\u093f\u0917\u0930\u0947\u0936\u0928\u0936\u0940 \u091c\u0941\u0933\u0924 \u0928\u093e\u0939\u0940",
43
+ "oauthCallback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
44
+ "oauthCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
45
+ "emailCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
46
+ "callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
47
+ "oauthAccountNotLinked": "\u0924\u0941\u092e\u091a\u0940 \u0913\u0933\u0916 \u092a\u091f\u0935\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u092e\u0942\u0933 \u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947\u091a \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e",
48
+ "emailSignin": "\u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
49
+ "emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0924\u0941\u092e\u091a\u093e \u0908\u092e\u0947\u0932 \u0924\u092a\u093e\u0938\u093e, \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947",
50
+ "credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940. \u0924\u0941\u092e\u094d\u0939\u0940 \u0926\u093f\u0932\u0947\u0932\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0915\u093e \u0924\u0947 \u0924\u092a\u093e\u0938\u093e",
51
+ "sessionRequired": "\u092f\u093e \u092a\u0943\u0937\u094d\u0920\u093e\u0935\u0930 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0938\u0939 \u092a\u0941\u0922\u0947 \u091c\u093e"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0924\u0941\u092e\u091a\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0947\u0925\u0947 \u091f\u093e\u0907\u092a \u0915\u0930\u093e...",
61
+ "actions": {
62
+ "send": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
63
+ "stop": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e",
64
+ "attachFiles": "\u092b\u093e\u0907\u0932\u094d\u0938 \u091c\u094b\u0921\u093e"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
69
+ "stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e",
70
+ "connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0915\u0930\u0924 \u0906\u0939\u0947"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092f\u0947\u0925\u0947 \u0921\u094d\u0930\u0945\u0917 \u0906\u0923\u093f \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u093e",
74
+ "browse": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092c\u094d\u0930\u093e\u0909\u091d \u0915\u0930\u093e",
75
+ "sizeLimit": "\u092e\u0930\u094d\u092f\u093e\u0926\u093e:",
76
+ "errors": {
77
+ "failed": "\u0905\u092a\u0932\u094b\u0921 \u0905\u092f\u0936\u0938\u094d\u0935\u0940",
78
+ "cancelled": "\u092f\u093e\u0902\u091a\u0947 \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0935\u093e\u092a\u0930\u0924 \u0906\u0939\u0947",
84
+ "used": "\u0935\u093e\u092a\u0930\u0932\u0947"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921\u0935\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u093e",
89
+ "success": "\u0915\u0949\u092a\u0940 \u0915\u0947\u0932\u0947!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924",
94
+ "negative": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924 \u0928\u093e\u0939\u0940",
95
+ "edit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u093e",
96
+ "dialog": {
97
+ "title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093e",
98
+ "submit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
99
+ },
100
+ "status": {
101
+ "updating": "\u0905\u092a\u0921\u0947\u091f \u0915\u0930\u0924 \u0906\u0939\u0947",
102
+ "updated": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0905\u092a\u0921\u0947\u091f \u0915\u0947\u0932\u0947"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0936\u0947\u0935\u091f\u091a\u0947 \u0907\u0928\u092a\u0941\u091f",
108
+ "empty": "\u0930\u093f\u0915\u093e\u092e\u0947 \u0906\u0939\u0947...",
109
+ "show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e"
110
+ },
111
+ "settings": {
112
+ "title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0945\u0928\u0932"
113
+ },
114
+ "watermark": "\u0938\u0939 \u092c\u0928\u0935\u0932\u0947"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u092e\u093e\u0917\u0940\u0932 \u091a\u0945\u091f\u094d\u0938",
119
+ "filters": {
120
+ "search": "\u0936\u094b\u0927\u093e",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0906\u091c",
125
+ "yesterday": "\u0915\u093e\u0932",
126
+ "previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
127
+ "previous30days": "\u092e\u093e\u0917\u0940\u0932 30 \u0926\u093f\u0935\u0938"
128
+ },
129
+ "empty": "\u0915\u094b\u0923\u0924\u0947\u0939\u0940 \u0925\u094d\u0930\u0947\u0921 \u0938\u093e\u092a\u0921\u0932\u0947 \u0928\u093e\u0939\u0940\u0924",
130
+ "actions": {
131
+ "close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
132
+ "open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0909\u0918\u0921\u093e"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0935\u093f\u0930\u0939\u093f\u0924 \u0938\u0902\u092d\u093e\u0937\u0923",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0939\u091f\u0935\u093f\u0923\u094d\u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
144
+ "description": "\u0939\u0947 \u0925\u094d\u0930\u0947\u0921 \u0906\u0923\u093f \u0924\u094d\u092f\u093e\u091a\u0947 \u0938\u0902\u0926\u0947\u0936 \u0935 \u0918\u091f\u0915 \u0939\u091f\u0935\u0947\u0932. \u0939\u0940 \u0915\u094d\u0930\u093f\u092f\u093e \u092a\u0942\u0930\u094d\u0935\u0935\u0924 \u0915\u0947\u0932\u0940 \u091c\u093e\u090a \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
145
+ "success": "\u091a\u0945\u091f \u0939\u091f\u0935\u0932\u093e",
146
+ "inProgress": "\u091a\u0945\u091f \u0939\u091f\u0935\u0924 \u0906\u0939\u0947"
147
+ },
148
+ "rename": {
149
+ "title": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u093e",
150
+ "description": "\u092f\u093e \u0925\u094d\u0930\u0947\u0921\u0938\u093e\u0920\u0940 \u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0928\u093e\u0935",
154
+ "placeholder": "\u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e"
155
+ }
156
+ },
157
+ "success": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0932\u0947!",
158
+ "inProgress": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0924 \u0906\u0939\u0947"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u091a\u0945\u091f",
166
+ "readme": "\u0935\u093e\u091a\u093e",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f",
175
+ "dialog": {
176
+ "title": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e",
177
+ "description": "\u0939\u0947 \u0924\u0941\u092e\u091a\u093e \u0938\u0927\u094d\u092f\u093e\u091a\u093e \u091a\u0945\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b \u0915\u0930\u0947\u0932. \u0924\u0941\u092e\u094d\u0939\u093e\u0932\u093e \u0916\u093e\u0924\u094d\u0930\u0940 \u0906\u0939\u0947 \u0915\u0940 \u0924\u0941\u092e\u094d\u0939\u0940 \u092a\u0941\u0922\u0947 \u091c\u093e\u090a \u0907\u091a\u094d\u091b\u093f\u0924\u093e?",
178
+ "tooltip": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0915\u0940\u091c",
186
+ "logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0940\u091c",
192
+ "description": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 API \u0915\u0940\u091c \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u0915\u0940\u091c \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0932\u094b\u0915\u0932 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u092e\u0927\u094d\u092f\u0947 \u0938\u093e\u0920\u0935\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924.",
193
+ "success": {
194
+ "saved": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u091c\u0924\u0928 \u0915\u0947\u0932\u0947"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/nl-NL.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "Annuleren",
5
+ "confirm": "Bevestigen",
6
+ "continue": "Doorgaan",
7
+ "goBack": "Terug",
8
+ "reset": "Herstellen",
9
+ "submit": "Versturen"
10
+ },
11
+ "status": {
12
+ "loading": "Laden...",
13
+ "error": {
14
+ "default": "Er is een fout opgetreden",
15
+ "serverConnection": "Kon geen verbinding maken met de server"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "Inloggen om toegang te krijgen tot de app",
22
+ "form": {
23
+ "email": {
24
+ "label": "E-mailadres",
25
+ "required": "e-mail is een verplicht veld"
26
+ },
27
+ "password": {
28
+ "label": "Wachtwoord",
29
+ "required": "wachtwoord is een verplicht veld"
30
+ },
31
+ "actions": {
32
+ "signin": "Inloggen"
33
+ },
34
+ "alternativeText": {
35
+ "or": "OF"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "Kan niet inloggen",
40
+ "signin": "Probeer in te loggen met een ander account",
41
+ "oauthSignin": "Probeer in te loggen met een ander account",
42
+ "redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie",
43
+ "oauthCallback": "Probeer in te loggen met een ander account",
44
+ "oauthCreateAccount": "Probeer in te loggen met een ander account",
45
+ "emailCreateAccount": "Probeer in te loggen met een ander account",
46
+ "callback": "Probeer in te loggen met een ander account",
47
+ "oauthAccountNotLinked": "Om je identiteit te bevestigen, log in met hetzelfde account dat je oorspronkelijk hebt gebruikt",
48
+ "emailSignin": "De e-mail kon niet worden verzonden",
49
+ "emailVerify": "Verifieer je e-mail, er is een nieuwe e-mail verzonden",
50
+ "credentialsSignin": "Inloggen mislukt. Controleer of de ingevoerde gegevens correct zijn",
51
+ "sessionRequired": "Log in om toegang te krijgen tot deze pagina"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "Doorgaan met {{provider}}"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "Typ hier je bericht...",
61
+ "actions": {
62
+ "send": "Bericht versturen",
63
+ "stop": "Taak stoppen",
64
+ "attachFiles": "Bestanden bijvoegen"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "Start opname",
69
+ "stop": "Stop opname",
70
+ "connecting": "Verbinden"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "Sleep bestanden hierheen",
74
+ "browse": "Bestanden zoeken",
75
+ "sizeLimit": "Limiet:",
76
+ "errors": {
77
+ "failed": "Uploaden mislukt",
78
+ "cancelled": "Upload geannuleerd van"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "In gebruik",
84
+ "used": "Gebruikt"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "Kopi\u00ebren naar klembord",
89
+ "success": "Gekopieerd!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "Nuttig",
94
+ "negative": "Niet nuttig",
95
+ "edit": "Feedback bewerken",
96
+ "dialog": {
97
+ "title": "Voeg een opmerking toe",
98
+ "submit": "Feedback versturen"
99
+ },
100
+ "status": {
101
+ "updating": "Bijwerken",
102
+ "updated": "Feedback bijgewerkt"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "Laatste invoer",
108
+ "empty": "Zo leeg...",
109
+ "show": "Toon geschiedenis"
110
+ },
111
+ "settings": {
112
+ "title": "Instellingenpaneel"
113
+ },
114
+ "watermark": "Gebouwd met"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "Eerdere chats",
119
+ "filters": {
120
+ "search": "Zoeken",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "Vandaag",
125
+ "yesterday": "Gisteren",
126
+ "previous7days": "Afgelopen 7 dagen",
127
+ "previous30days": "Afgelopen 30 dagen"
128
+ },
129
+ "empty": "Geen gesprekken gevonden",
130
+ "actions": {
131
+ "close": "Zijbalk sluiten",
132
+ "open": "Zijbalk openen"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "Naamloos gesprek",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "Verwijdering bevestigen",
144
+ "description": "Dit zal het gesprek en bijbehorende berichten en elementen verwijderen. Deze actie kan niet ongedaan worden gemaakt",
145
+ "success": "Chat verwijderd",
146
+ "inProgress": "Chat verwijderen"
147
+ },
148
+ "rename": {
149
+ "title": "Gesprek hernoemen",
150
+ "description": "Voer een nieuwe naam in voor dit gesprek",
151
+ "form": {
152
+ "name": {
153
+ "label": "Naam",
154
+ "placeholder": "Voer nieuwe naam in"
155
+ }
156
+ },
157
+ "success": "Gesprek hernoemd!",
158
+ "inProgress": "Gesprek hernoemen"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "Chat",
166
+ "readme": "Leesmij",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "Nieuwe chat",
175
+ "dialog": {
176
+ "title": "Nieuwe chat aanmaken",
177
+ "description": "Dit zal je huidige chatgeschiedenis wissen. Weet je zeker dat je door wilt gaan?",
178
+ "tooltip": "Nieuwe chat"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "Instellingen",
184
+ "settingsKey": "I",
185
+ "apiKeys": "API-sleutels",
186
+ "logout": "Uitloggen"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "Vereiste API-sleutels",
192
+ "description": "Om deze app te gebruiken zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van je apparaat.",
193
+ "success": {
194
+ "saved": "Succesvol opgeslagen"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/nl.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "Annuleren",
5
+ "confirm": "Bevestigen",
6
+ "continue": "Doorgaan",
7
+ "goBack": "Terug",
8
+ "reset": "Herstellen",
9
+ "submit": "Versturen"
10
+ },
11
+ "status": {
12
+ "loading": "Laden...",
13
+ "error": {
14
+ "default": "Er is een fout opgetreden",
15
+ "serverConnection": "Kon geen verbinding maken met de server"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "Inloggen om toegang te krijgen tot de app",
22
+ "form": {
23
+ "email": {
24
+ "label": "E-mailadres",
25
+ "required": "e-mail is een verplicht veld"
26
+ },
27
+ "password": {
28
+ "label": "Wachtwoord",
29
+ "required": "wachtwoord is een verplicht veld"
30
+ },
31
+ "actions": {
32
+ "signin": "Inloggen"
33
+ },
34
+ "alternativeText": {
35
+ "or": "OF"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "Kan niet inloggen",
40
+ "signin": "Probeer in te loggen met een ander account",
41
+ "oauthSignin": "Probeer in te loggen met een ander account",
42
+ "redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie",
43
+ "oauthCallback": "Probeer in te loggen met een ander account",
44
+ "oauthCreateAccount": "Probeer in te loggen met een ander account",
45
+ "emailCreateAccount": "Probeer in te loggen met een ander account",
46
+ "callback": "Probeer in te loggen met een ander account",
47
+ "oauthAccountNotLinked": "Om je identiteit te bevestigen, log in met hetzelfde account dat je oorspronkelijk hebt gebruikt",
48
+ "emailSignin": "De e-mail kon niet worden verzonden",
49
+ "emailVerify": "Verifieer je e-mail, er is een nieuwe e-mail verzonden",
50
+ "credentialsSignin": "Inloggen mislukt. Controleer of de ingevoerde gegevens correct zijn",
51
+ "sessionRequired": "Log in om toegang te krijgen tot deze pagina"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "Doorgaan met {{provider}}"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "Typ hier je bericht...",
61
+ "actions": {
62
+ "send": "Bericht versturen",
63
+ "stop": "Taak stoppen",
64
+ "attachFiles": "Bestanden bijvoegen"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "Start opname",
69
+ "stop": "Stop opname",
70
+ "connecting": "Verbinden"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "Sleep bestanden hierheen",
74
+ "browse": "Bestanden zoeken",
75
+ "sizeLimit": "Limiet:",
76
+ "errors": {
77
+ "failed": "Uploaden mislukt",
78
+ "cancelled": "Upload geannuleerd van"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "In gebruik",
84
+ "used": "Gebruikt"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "Kopi\u00ebren naar klembord",
89
+ "success": "Gekopieerd!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "Nuttig",
94
+ "negative": "Niet nuttig",
95
+ "edit": "Feedback bewerken",
96
+ "dialog": {
97
+ "title": "Voeg een opmerking toe",
98
+ "submit": "Feedback versturen"
99
+ },
100
+ "status": {
101
+ "updating": "Bijwerken",
102
+ "updated": "Feedback bijgewerkt"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "Laatste invoer",
108
+ "empty": "Zo leeg...",
109
+ "show": "Toon geschiedenis"
110
+ },
111
+ "settings": {
112
+ "title": "Instellingenpaneel"
113
+ },
114
+ "watermark": "LLM's kunnen fouten maken. Overweeg het controleren van belangrijke informatie."
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "Eerdere chats",
119
+ "filters": {
120
+ "search": "Zoeken",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "Vandaag",
125
+ "yesterday": "Gisteren",
126
+ "previous7days": "Afgelopen 7 dagen",
127
+ "previous30days": "Afgelopen 30 dagen"
128
+ },
129
+ "empty": "Geen gesprekken gevonden",
130
+ "actions": {
131
+ "close": "Zijbalk sluiten",
132
+ "open": "Zijbalk openen"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "Naamloos gesprek",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "Verwijdering bevestigen",
144
+ "description": "Dit zal het gesprek en bijbehorende berichten en elementen verwijderen. Deze actie kan niet ongedaan worden gemaakt",
145
+ "success": "Chat verwijderd",
146
+ "inProgress": "Chat verwijderen"
147
+ },
148
+ "rename": {
149
+ "title": "Gesprek hernoemen",
150
+ "description": "Voer een nieuwe naam in voor dit gesprek",
151
+ "form": {
152
+ "name": {
153
+ "label": "Naam",
154
+ "placeholder": "Voer nieuwe naam in"
155
+ }
156
+ },
157
+ "success": "Gesprek hernoemd!",
158
+ "inProgress": "Gesprek hernoemen"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "Chat",
166
+ "readme": "Leesmij",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "Nieuwe chat",
175
+ "dialog": {
176
+ "title": "Nieuwe chat aanmaken",
177
+ "description": "Dit zal je huidige chatgeschiedenis wissen. Weet je zeker dat je door wilt gaan?",
178
+ "tooltip": "Nieuwe chat"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "Instellingen",
184
+ "settingsKey": "I",
185
+ "apiKeys": "API-sleutels",
186
+ "logout": "Uitloggen"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "Vereiste API-sleutels",
192
+ "description": "Om deze app te gebruiken zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van je apparaat.",
193
+ "success": {
194
+ "saved": "Succesvol opgeslagen"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/ta.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
5
+ "confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
6
+ "continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0b95",
7
+ "goBack": "\u0ba4\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bbf\u0b9a\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
8
+ "reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
9
+ "submit": "\u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
10
+ },
11
+ "status": {
12
+ "loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
13
+ "error": {
14
+ "default": "\u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
15
+ "serverConnection": "\u0b9a\u0bc7\u0bb5\u0bc8\u0baf\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0b9f\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
25
+ "required": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
26
+ },
27
+ "password": {
28
+ "label": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
29
+ "required": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
40
+ "signin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
41
+ "oauthSignin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
42
+ "redirectUriMismatch": "\u0ba4\u0bbf\u0b9a\u0bc8\u0ba4\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bb2\u0bcd URI \u0b93\u0b86\u0ba4\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b95\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
43
+ "oauthCallback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
44
+ "oauthCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
45
+ "emailCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
46
+ "callback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
47
+ "oauthAccountNotLinked": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b85\u0b9f\u0bc8\u0baf\u0bbe\u0bb3\u0ba4\u0bcd\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0bae\u0bc1\u0ba4\u0bb2\u0bbf\u0bb2\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0ba4\u0bc7 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
48
+ "emailSignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
49
+ "emailVerify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd, \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1",
50
+ "credentialsSignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bbf\u0baf \u0bb5\u0bbf\u0bb5\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0ba9\u0bb5\u0bc8 \u0b8e\u0ba9 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
51
+ "sessionRequired": "\u0b87\u0ba8\u0bcd\u0ba4\u0baa\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}} \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0baf\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd...",
61
+ "actions": {
62
+ "send": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
63
+ "stop": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
64
+ "attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
69
+ "stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
70
+ "connecting": "\u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
74
+ "browse": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1",
75
+ "sizeLimit": "\u0bb5\u0bb0\u0bae\u0bcd\u0baa\u0bc1:",
76
+ "errors": {
77
+ "failed": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
78
+ "cancelled": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
84
+ "used": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0b95\u0bbf\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bcb\u0bb0\u0bcd\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1",
89
+ "success": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
94
+ "negative": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
95
+ "edit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
96
+ "dialog": {
97
+ "title": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8\u0b9a\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd",
98
+ "submit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
99
+ },
100
+ "status": {
101
+ "updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
102
+ "updated": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
108
+ "empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1...",
109
+ "show": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1"
110
+ },
111
+ "settings": {
112
+ "title": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bb2\u0b95\u0bae\u0bcd"
113
+ },
114
+ "watermark": "\u0b89\u0b9f\u0ba9\u0bcd \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd",
119
+ "filters": {
120
+ "search": "\u0ba4\u0bc7\u0b9f\u0bc1",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
125
+ "yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
126
+ "previous7days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
127
+ "previous30days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
128
+ },
129
+ "empty": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
130
+ "actions": {
131
+ "close": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
132
+ "open": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0ba4\u0bbf\u0bb1"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bbe\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
144
+ "description": "\u0b87\u0ba4\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd, \u0b89\u0bb1\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0b87\u0ba8\u0bcd\u0ba4 \u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bbe\u0ba4\u0bc1",
145
+ "success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
146
+ "inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
147
+ },
148
+ "rename": {
149
+ "title": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1",
150
+ "description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
154
+ "placeholder": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd"
155
+ }
156
+ },
157
+ "success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!",
158
+ "inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
166
+ "readme": "\u0baa\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
175
+ "dialog": {
176
+ "title": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
177
+ "description": "\u0b87\u0ba4\u0bc1 \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0ba4\u0bca\u0b9f\u0bb0 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
178
+ "tooltip": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
186
+ "logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
192
+ "description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8\u0baa\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0baa\u0bbf\u0ba9\u0bcd\u0bb5\u0bb0\u0bc1\u0bae\u0bcd API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8. \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bbe\u0ba4\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bc2\u0bb0\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
193
+ "success": {
194
+ "saved": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/te.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
5
+ "confirm": "\u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
6
+ "continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
7
+ "goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c02\u0c21\u0c3f",
8
+ "reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
9
+ "submit": "\u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
10
+ },
11
+ "status": {
12
+ "loading": "\u0c32\u0c4b\u0c21\u0c4d \u0c05\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
13
+ "error": {
14
+ "default": "\u0c32\u0c4b\u0c2a\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f",
15
+ "serverConnection": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d\u200c\u0c28\u0c3f \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
25
+ "required": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
26
+ },
27
+ "password": {
28
+ "label": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d",
29
+ "required": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
30
+ },
31
+ "actions": {
32
+ "signin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u0c32\u0c47\u0c26\u0c3e"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41",
40
+ "signin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
41
+ "oauthSignin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
42
+ "redirectUriMismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI oauth \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d\u200c\u0c24\u0c4b \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41",
43
+ "oauthCallback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
44
+ "oauthCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
45
+ "emailCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
46
+ "callback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
47
+ "oauthAccountNotLinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c2e\u0c40\u0c30\u0c41 \u0c2e\u0c4a\u0c26\u0c1f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c05\u0c26\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
48
+ "emailSignin": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
49
+ "emailVerify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d\u200c\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f, \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
50
+ "credentialsSignin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c05\u0c02\u0c26\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c35\u0c3f\u0c35\u0c30\u0c3e\u0c32\u0c41 \u0c38\u0c30\u0c48\u0c28\u0c35\u0c47\u0c28\u0c3e \u0c05\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
51
+ "sessionRequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "{{provider}}\u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u0c2e\u0c40 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c1f\u0c48\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f...",
61
+ "actions": {
62
+ "send": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
63
+ "stop": "\u0c2a\u0c28\u0c3f \u0c06\u0c2a\u0c02\u0c21\u0c3f",
64
+ "attachFiles": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
69
+ "stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f",
70
+ "connecting": "\u0c05\u0c28\u0c41\u0c38\u0c02\u0c27\u0c3e\u0c28\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d\u200c\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c17\u0c4d \u0c1a\u0c47\u0c38\u0c3f \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
74
+ "browse": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c2c\u0c4d\u0c30\u0c4c\u0c1c\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
75
+ "sizeLimit": "\u0c2a\u0c30\u0c3f\u0c2e\u0c3f\u0c24\u0c3f:",
76
+ "errors": {
77
+ "failed": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
78
+ "cancelled": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
84
+ "used": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u0c15\u0c4d\u0c32\u0c3f\u0c2a\u0c4d\u200c\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d\u200c\u0c15\u0c3f \u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
89
+ "success": "\u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02",
94
+ "negative": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02 \u0c15\u0c3e\u0c26\u0c41",
95
+ "edit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
96
+ "dialog": {
97
+ "title": "\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
98
+ "submit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
99
+ },
100
+ "status": {
101
+ "updating": "\u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
102
+ "updated": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c02 \u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d\u200c\u0c2a\u0c41\u0c1f\u0c4d\u200c\u0c32\u0c41",
108
+ "empty": "\u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e \u0c09\u0c02\u0c26\u0c3f...",
109
+ "show": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41"
110
+ },
111
+ "settings": {
112
+ "title": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d"
113
+ },
114
+ "watermark": "\u0c24\u0c4b \u0c28\u0c3f\u0c30\u0c4d\u0c2e\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c32\u0c41",
119
+ "filters": {
120
+ "search": "\u0c35\u0c46\u0c24\u0c15\u0c02\u0c21\u0c3f",
121
+ "placeholder": "Search conversations..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u0c08\u0c30\u0c4b\u0c1c\u0c41",
125
+ "yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
126
+ "previous7days": "\u0c17\u0c24 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
127
+ "previous30days": "\u0c17\u0c24 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
128
+ },
129
+ "empty": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c32\u0c41 \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c2c\u0c21\u0c32\u0c47\u0c26\u0c41",
130
+ "actions": {
131
+ "close": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c2e\u0c42\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c02\u0c21\u0c3f",
132
+ "open": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c24\u0c46\u0c30\u0c35\u0c02\u0c21\u0c3f"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u0c2a\u0c47\u0c30\u0c41 \u0c32\u0c47\u0c28\u0c3f \u0c38\u0c02\u0c2d\u0c3e\u0c37\u0c23",
137
+ "menu": {
138
+ "rename": "Rename",
139
+ "delete": "Delete"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
144
+ "description": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c05\u0c02\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c08 \u0c1a\u0c30\u0c4d\u0c2f\u0c28\u0c41 \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c30\u0c41",
145
+ "success": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
146
+ "inProgress": "\u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c28\u0c3f \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
147
+ },
148
+ "rename": {
149
+ "title": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
150
+ "description": "\u0c08 \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c15\u0c4b\u0c38\u0c02 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u0c2a\u0c47\u0c30\u0c41",
154
+ "placeholder": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
155
+ }
156
+ },
157
+ "success": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!",
158
+ "inProgress": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c41\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u0c1a\u0c3e\u0c1f\u0c4d",
166
+ "readme": "\u0c1a\u0c26\u0c35\u0c02\u0c21\u0c3f",
167
+ "theme": {
168
+ "light": "Light Theme",
169
+ "dark": "Dark Theme",
170
+ "system": "Follow System"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d",
175
+ "dialog": {
176
+ "title": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
177
+ "description": "\u0c07\u0c26\u0c3f \u0c2e\u0c40 \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c24\u0c41\u0c21\u0c3f\u0c1a\u0c3f\u0c35\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c28\u0c41\u0c15\u0c41\u0c02\u0c1f\u0c41\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c3e?",
178
+ "tooltip": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c41",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API \u0c15\u0c40\u0c32\u0c41",
186
+ "logout": "\u0c32\u0c3e\u0c17\u0c4d \u0c05\u0c35\u0c41\u0c1f\u0c4d"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
192
+ "description": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c15\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c28\u0c3f\u0c32\u0c4d\u0c35\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f.",
193
+ "success": {
194
+ "saved": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "Info",
199
+ "note": "Note",
200
+ "tip": "Tip",
201
+ "important": "Important",
202
+ "warning": "Warning",
203
+ "caution": "Caution",
204
+ "debug": "Debug",
205
+ "example": "Example",
206
+ "success": "Success",
207
+ "help": "Help",
208
+ "idea": "Idea",
209
+ "pending": "Pending",
210
+ "security": "Security",
211
+ "beta": "Beta",
212
+ "best-practice": "Best Practice"
213
+ }
214
+ }
.chainlit/translations/zh-CN.json ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "\u53d6\u6d88",
5
+ "confirm": "\u786e\u8ba4",
6
+ "continue": "\u7ee7\u7eed",
7
+ "goBack": "\u8fd4\u56de",
8
+ "reset": "\u91cd\u7f6e",
9
+ "submit": "\u63d0\u4ea4"
10
+ },
11
+ "status": {
12
+ "loading": "\u52a0\u8f7d\u4e2d...",
13
+ "error": {
14
+ "default": "\u53d1\u751f\u9519\u8bef",
15
+ "serverConnection": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528",
22
+ "form": {
23
+ "email": {
24
+ "label": "\u7535\u5b50\u90ae\u7bb1",
25
+ "required": "\u90ae\u7bb1\u662f\u5fc5\u586b\u9879"
26
+ },
27
+ "password": {
28
+ "label": "\u5bc6\u7801",
29
+ "required": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
30
+ },
31
+ "actions": {
32
+ "signin": "\u767b\u5f55"
33
+ },
34
+ "alternativeText": {
35
+ "or": "\u6216"
36
+ }
37
+ },
38
+ "errors": {
39
+ "default": "\u65e0\u6cd5\u767b\u5f55",
40
+ "signin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
41
+ "oauthSignin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
42
+ "redirectUriMismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d",
43
+ "oauthCallback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
44
+ "oauthCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
45
+ "emailCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
46
+ "callback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
47
+ "oauthAccountNotLinked": "\u4e3a\u786e\u8ba4\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u539f\u59cb\u8d26\u53f7\u767b\u5f55",
48
+ "emailSignin": "\u90ae\u4ef6\u53d1\u9001\u5931\u8d25",
49
+ "emailVerify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u90ae\u7bb1\uff0c\u65b0\u7684\u9a8c\u8bc1\u90ae\u4ef6\u5df2\u53d1\u9001",
50
+ "credentialsSignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u4fe1\u606f\u662f\u5426\u6b63\u786e",
51
+ "sessionRequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762"
52
+ }
53
+ },
54
+ "provider": {
55
+ "continue": "\u7ee7\u7eed\u4f7f\u7528{{provider}}"
56
+ }
57
+ },
58
+ "chat": {
59
+ "input": {
60
+ "placeholder": "\u5728\u6b64\u8f93\u5165\u60a8\u7684\u6d88\u606f...",
61
+ "actions": {
62
+ "send": "\u53d1\u9001\u6d88\u606f",
63
+ "stop": "\u505c\u6b62\u4efb\u52a1",
64
+ "attachFiles": "\u9644\u52a0\u6587\u4ef6"
65
+ }
66
+ },
67
+ "speech": {
68
+ "start": "\u5f00\u59cb\u5f55\u97f3",
69
+ "stop": "\u505c\u6b62\u5f55\u97f3",
70
+ "connecting": "\u8fde\u63a5\u4e2d"
71
+ },
72
+ "fileUpload": {
73
+ "dragDrop": "\u5c06\u6587\u4ef6\u62d6\u653e\u5230\u8fd9\u91cc",
74
+ "browse": "\u6d4f\u89c8\u6587\u4ef6",
75
+ "sizeLimit": "\u9650\u5236\uff1a",
76
+ "errors": {
77
+ "failed": "\u4e0a\u4f20\u5931\u8d25",
78
+ "cancelled": "\u5df2\u53d6\u6d88\u4e0a\u4f20"
79
+ }
80
+ },
81
+ "messages": {
82
+ "status": {
83
+ "using": "\u4f7f\u7528\u4e2d",
84
+ "used": "\u5df2\u4f7f\u7528"
85
+ },
86
+ "actions": {
87
+ "copy": {
88
+ "button": "\u590d\u5236\u5230\u526a\u8d34\u677f",
89
+ "success": "\u5df2\u590d\u5236\uff01"
90
+ }
91
+ },
92
+ "feedback": {
93
+ "positive": "\u6709\u5e2e\u52a9",
94
+ "negative": "\u6ca1\u6709\u5e2e\u52a9",
95
+ "edit": "\u7f16\u8f91\u53cd\u9988",
96
+ "dialog": {
97
+ "title": "\u6dfb\u52a0\u8bc4\u8bba",
98
+ "submit": "\u63d0\u4ea4\u53cd\u9988"
99
+ },
100
+ "status": {
101
+ "updating": "\u66f4\u65b0\u4e2d",
102
+ "updated": "\u53cd\u9988\u5df2\u66f4\u65b0"
103
+ }
104
+ }
105
+ },
106
+ "history": {
107
+ "title": "\u6700\u8fd1\u8f93\u5165",
108
+ "empty": "\u7a7a\u7a7a\u5982\u4e5f...",
109
+ "show": "\u663e\u793a\u5386\u53f2"
110
+ },
111
+ "settings": {
112
+ "title": "\u8bbe\u7f6e\u9762\u677f"
113
+ },
114
+ "watermark": "\u6280\u672f\u652f\u6301"
115
+ },
116
+ "threadHistory": {
117
+ "sidebar": {
118
+ "title": "\u5386\u53f2\u5bf9\u8bdd",
119
+ "filters": {
120
+ "search": "\u641c\u7d22",
121
+ "placeholder": "\u641c\u7d22\u4f1a\u8bdd..."
122
+ },
123
+ "timeframes": {
124
+ "today": "\u4eca\u5929",
125
+ "yesterday": "\u6628\u5929",
126
+ "previous7days": "\u8fc7\u53bb7\u5929",
127
+ "previous30days": "\u8fc7\u53bb30\u5929"
128
+ },
129
+ "empty": "\u672a\u627e\u5230\u5bf9\u8bdd",
130
+ "actions": {
131
+ "close": "\u5173\u95ed\u4fa7\u8fb9\u680f",
132
+ "open": "\u6253\u5f00\u4fa7\u8fb9\u680f"
133
+ }
134
+ },
135
+ "thread": {
136
+ "untitled": "\u672a\u547d\u540d\u5bf9\u8bdd",
137
+ "menu": {
138
+ "rename": "\u91cd\u547d\u540d",
139
+ "delete": "\u5220\u9664"
140
+ },
141
+ "actions": {
142
+ "delete": {
143
+ "title": "\u786e\u8ba4\u5220\u9664",
144
+ "description": "\u8fd9\u5c06\u5220\u9664\u8be5\u5bf9\u8bdd\u53ca\u5176\u6240\u6709\u6d88\u606f\u548c\u5143\u7d20\u3002\u6b64\u64cd\u4f5c\u65e0\u6cd5\u64a4\u9500",
145
+ "success": "\u5bf9\u8bdd\u5df2\u5220\u9664",
146
+ "inProgress": "\u6b63\u5728\u5220\u9664\u5bf9\u8bdd"
147
+ },
148
+ "rename": {
149
+ "title": "\u91cd\u547d\u540d\u5bf9\u8bdd",
150
+ "description": "\u4e3a\u6b64\u5bf9\u8bdd\u8f93\u5165\u65b0\u540d\u79f0",
151
+ "form": {
152
+ "name": {
153
+ "label": "\u540d\u79f0",
154
+ "placeholder": "\u8f93\u5165\u65b0\u540d\u79f0"
155
+ }
156
+ },
157
+ "success": "\u5bf9\u8bdd\u5df2\u91cd\u547d\u540d\uff01",
158
+ "inProgress": "\u6b63\u5728\u91cd\u547d\u540d\u5bf9\u8bdd"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "navigation": {
164
+ "header": {
165
+ "chat": "\u804a\u5929",
166
+ "readme": "\u8bf4\u660e",
167
+ "theme": {
168
+ "light": "\u6d45\u8272\u4e3b\u9898",
169
+ "dark": "\u6df1\u8272\u4e3b\u9898",
170
+ "system": "\u8ddf\u968f\u7cfb\u7edf"
171
+ }
172
+ },
173
+ "newChat": {
174
+ "button": "\u65b0\u5efa\u5bf9\u8bdd",
175
+ "dialog": {
176
+ "title": "\u521b\u5efa\u65b0\u5bf9\u8bdd",
177
+ "description": "\u8fd9\u5c06\u6e05\u9664\u60a8\u5f53\u524d\u7684\u804a\u5929\u8bb0\u5f55\u3002\u786e\u5b9a\u8981\u7ee7\u7eed\u5417\uff1f",
178
+ "tooltip": "\u65b0\u5efa\u5bf9\u8bdd"
179
+ }
180
+ },
181
+ "user": {
182
+ "menu": {
183
+ "settings": "\u8bbe\u7f6e",
184
+ "settingsKey": "S",
185
+ "apiKeys": "API\u5bc6\u94a5",
186
+ "logout": "\u9000\u51fa\u767b\u5f55"
187
+ }
188
+ }
189
+ },
190
+ "apiKeys": {
191
+ "title": "\u6240\u9700API\u5bc6\u94a5",
192
+ "description": "\u4f7f\u7528\u6b64\u5e94\u7528\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u8bbe\u5907\u7684\u672c\u5730\u5b58\u50a8\u4e2d\u3002",
193
+ "success": {
194
+ "saved": "\u4fdd\u5b58\u6210\u529f"
195
+ }
196
+ },
197
+ "alerts": {
198
+ "info": "\u4fe1\u606f",
199
+ "note": "\u6ce8\u91ca",
200
+ "tip": "\u63d0\u793a",
201
+ "important": "\u91cd\u8981",
202
+ "warning": "\u8b66\u544a",
203
+ "caution": "\u6ce8\u610f",
204
+ "debug": "\u8c03\u8bd5",
205
+ "example": "\u793a\u4f8b",
206
+ "success": "\u6210\u529f",
207
+ "help": "\u5e2e\u52a9",
208
+ "idea": "\u60f3\u6cd5",
209
+ "pending": "\u5f85\u5904\u7406",
210
+ "security": "\u5b89\u5168",
211
+ "beta": "\u6d4b\u8bd5",
212
+ "best-practice": "\u6700\u4f73\u5b9e\u8df5"
213
+ }
214
+ }
.gitattributes ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ *.gif filter=lfs diff=lfs merge=lfs -text
2
+ *.png filter=lfs diff=lfs merge=lfs -text
3
+ public/*.gif filter=lfs diff=lfs merge=lfs -text
4
+ public/*.png filter=lfs diff=lfs merge=lfs -text
5
+ public/avatars/*.png filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use the official Python 3.12 image
2
+ FROM python:3.12-slim
3
+
4
+ # Set the working directory
5
+ WORKDIR /app
6
+
7
+ # Install required system dependencies
8
+ RUN apt-get update && apt-get install -y \
9
+ curl \
10
+ git \
11
+ libpq-dev \
12
+ gcc \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ # Create the /app/files directory and set full permissions
16
+ RUN mkdir -p /app/.files && chmod 777 /app/.files
17
+ RUN mkdir -p /app/logs && chmod 777 /app/logs
18
+ RUN mkdir -p /app/observability_data && chmod 777 /app/observability_data
19
+ RUN mkdir -p /app/storage && chmod 777 /app/storage
20
+ RUN mkdir -p /app/sessions && chmod 777 /app/sessions
21
+
22
+ # Copy the current repository into the container
23
+ COPY . /app
24
+
25
+ # Upgrade pip and install dependencies
26
+ RUN pip install --upgrade pip && \
27
+ pip install -r requirements.txt
28
+
29
+ EXPOSE 7860
30
+
31
+ CMD uvicorn api:app --host 0.0.0.0 --port 7860
README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Agent Tide Demo
3
+ emoji: 🌊
4
+ colorFrom: indigo
5
+ colorTo: blue
6
+ sdk: docker
7
+ pinned: true
8
+ license: apache-2.0
9
+ short_description: Your new coding companion that actually knows the codebase!
10
+ ---
api.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi.responses import HTMLResponse, FileResponse, RedirectResponse
2
+ from fastapi.templating import Jinja2Templates
3
+ from fastapi.staticfiles import StaticFiles
4
+ from fastapi import FastAPI, Request
5
+ from chainlit.utils import mount_chainlit
6
+ from pathlib import Path
7
+ import os
8
+
9
+ ROOT_PATH = os.getenv("API_ROOT_PATH", "./")
10
+ app = FastAPI(title="AgentTide", description="Precision-Driven Software Engineering Agent")
11
+
12
+ # Mount static files directory for assets (logo, CSS, JS, etc.)
13
+ app.mount("/static", StaticFiles(directory=F"{ROOT_PATH}/public"), name="static")
14
+
15
+ templates = Jinja2Templates(directory=F"{ROOT_PATH}/static")
16
+
17
+ @app.get("/", response_class=HTMLResponse)
18
+ async def root(request: Request):
19
+ """Serve the AgentTide landing page"""
20
+ demo_base_url = os.getenv("DEMO_BASE_URL", "")
21
+ return RedirectResponse(url=f"{demo_base_url}/landing_page")
22
+
23
+ @app.get("/landing_page", response_class=HTMLResponse)
24
+ async def landing_page(request: Request):
25
+ """Serve the AgentTide landing page"""
26
+ demo_base_url = os.getenv("DEMO_BASE_URL", "")
27
+ return templates.TemplateResponse(
28
+ "landing_page.html",
29
+ {"request": request, "DEMO_BASE_URL": demo_base_url}
30
+ )
31
+
32
+ @app.get("/health")
33
+ async def health_check():
34
+ """Health check endpoint"""
35
+ return {"status": "healthy", "service": "AgentTide"}
36
+
37
+ @app.get("/favicon.ico", include_in_schema=False)
38
+ async def favicon():
39
+ """Serve favicon"""
40
+ favicon_path = Path(F"{ROOT_PATH}/public/favicon.ico")
41
+ if favicon_path.exists():
42
+ return FileResponse(favicon_path)
43
+ else:
44
+ # Return 204 No Content if favicon doesn't exist
45
+ return HTMLResponse(status_code=204)
46
+
47
+ @app.get("/logo_dark.png", include_in_schema=False)
48
+ async def logo_dark():
49
+ """Serve favicon"""
50
+ favicon_path = Path(F"{ROOT_PATH}/public/logo_dark.png")
51
+ if favicon_path.exists():
52
+ return FileResponse(favicon_path)
53
+ else:
54
+ # Return 204 No Content if favicon doesn't exist
55
+ return HTMLResponse(status_code=204)
56
+
57
+ @app.get("/codetide-banner.png", include_in_schema=False)
58
+ async def codetide_banner():
59
+ """Serve favicon"""
60
+ favicon_path = Path(F"{ROOT_PATH}/public/codetide-banner.png")
61
+ if favicon_path.exists():
62
+ return FileResponse(favicon_path)
63
+ else:
64
+ # Return 204 No Content if favicon doesn't exist
65
+ return HTMLResponse(status_code=204)
66
+
67
+ @app.get("/agent-tide-demo.gif", include_in_schema=False)
68
+ async def agent_tide_deo_gif():
69
+ """Serve favicon"""
70
+ favicon_path = Path(F"{ROOT_PATH}/public/agent-tide-demo.gif")
71
+ if favicon_path.exists():
72
+ return FileResponse(favicon_path)
73
+ else:
74
+ # Return 204 No Content if favicon doesn't exist
75
+ return HTMLResponse(status_code=204)
76
+
77
+ mount_chainlit(app=app, target=F"{ROOT_PATH}/app.py", path="/tide")
78
+
79
+ if __name__ == "__main__":
80
+ from dotenv import load_dotenv
81
+ import uvicorn
82
+
83
+ load_dotenv()
84
+ uvicorn.run(app, host="0.0.0.0", port=7860)
app.py ADDED
@@ -0,0 +1,454 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### chainlit app without data persistance enabled
2
+ # ruff: noqa: E402
3
+ from pathlib import Path
4
+ import os
5
+
6
+ os.environ.setdefault("CHAINLIT_APP_ROOT", str(Path(os.path.abspath(__file__)).parent))
7
+
8
+ from codetide.agents.tide.ui.defaults import AICORE_CONFIG_EXAMPLE, EXCEPTION_MESSAGE, MISSING_CONFIG_MESSAGE, STARTERS
9
+ from codetide.agents.tide.ui.stream_processor import StreamProcessor, MarkerConfig
10
+ from codetide.agents.tide.ui.utils import run_concurrent_tasks, send_reasoning_msg
11
+ from codetide.agents.tide.ui.agent_tide_ui import AgentTideUi
12
+ from codetide.core.defaults import DEFAULT_ENCODING
13
+ from codetide.core.logs import logger
14
+ from codetide.agents.tide.models import Step
15
+
16
+ from aicore.const import STREAM_END_TOKEN, STREAM_START_TOKEN
17
+ from aicore.models import AuthenticationError, ModelError
18
+ from aicore.llm import Llm, LlmConfig
19
+ from aicore.config import Config
20
+
21
+ from git_utils import commit_and_push_changes, validate_git_url, checkout_new_branch
22
+ from chainlit.cli import run_chainlit
23
+ from typing import Optional
24
+ from pathlib import Path
25
+ from ulid import ulid
26
+ import chainlit as cl
27
+ import subprocess
28
+ import asyncio
29
+ import shutil
30
+ import json
31
+ import stat
32
+ import yaml
33
+ import time
34
+ import os
35
+
36
+ DEFAULT_SESSIONS_WORKSPACE = Path(os.getcwd()) / "sessions"
37
+
38
+ @cl.on_chat_start
39
+ async def start_chat():
40
+ session_id = ulid()
41
+ cl.user_session.set("session_id", session_id)
42
+ await cl.context.emitter.set_commands(AgentTideUi.commands)
43
+ cl.user_session.set("chat_history", [])
44
+
45
+ exception = True
46
+ while exception:
47
+ try:
48
+ user_message = await cl.AskUserMessage(
49
+ content="Provide a valid github url to give AgentTide some context!",
50
+ timeout=3600
51
+ ).send()
52
+ url = user_message.get("output")
53
+ await validate_git_url(url)
54
+ exception = None
55
+ except Exception as e:
56
+ await cl.Message(f"Invalid url found, please provide only the url, if it is a private repo you can inlucde a PAT in the url: {e}").send()
57
+ exception = e
58
+
59
+ process = await asyncio.create_subprocess_exec(
60
+ "git", "clone", url, str(DEFAULT_SESSIONS_WORKSPACE / session_id),
61
+ stdout=asyncio.subprocess.PIPE,
62
+ stderr=asyncio.subprocess.PIPE
63
+ )
64
+
65
+ try:
66
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=300)
67
+ except asyncio.TimeoutError:
68
+ process.kill()
69
+ await process.wait()
70
+ raise
71
+
72
+ if process.returncode != 0:
73
+ raise subprocess.CalledProcessError(process.returncode, ["git", "clone", url], stdout, stderr)
74
+
75
+ logger.info(f"finished cloning to {DEFAULT_SESSIONS_WORKSPACE / session_id}")
76
+
77
+ res = await cl.AskActionMessage(
78
+ content="Select the LLM to power Agent Tide! You can use one of the following free options or configure your own via api key! We recommend `gpt-4.1` or `sonnet-4` for ultimate performance (don't worry we are not logging api keys, you can check the code yourself)! Bear in mind that free alternatives can be context and rate limited.",
79
+ actions=[
80
+ cl.Action(name="kimi-k2", payload={"model": "moonshotai/kimi-k2:free"}, label="kimi-k2"),
81
+ cl.Action(name="qwen3-coder", payload={"model": "qwen/qwen3-coder:free"}, label="qwen3-coder"),
82
+ cl.Action(name="gpt-oss-20b", payload={"model": "openai/gpt-oss-20b:free"}, label="gpt-oss-20b"),
83
+ cl.Action(name="custom", payload={"model": "custom"}, label="bring your model")
84
+ ],
85
+ timeout=3600
86
+ ).send()
87
+
88
+
89
+ if res and res.get("payload").get("model") != "custom":
90
+ llm_config = LlmConfig(
91
+ provider="openrouter",
92
+ model=res.get("payload").get("model"),
93
+ api_key=os.getenv("OPENROUTER_API_KEY"),
94
+ max_tokens=int(os.getenv("OPENROUTER_MAX_TOKENS"))
95
+ )
96
+ agent_tide_ui = AgentTideUi(
97
+ DEFAULT_SESSIONS_WORKSPACE / session_id,
98
+ history=cl.user_session.get("chat_history"),
99
+ llm_config=llm_config,
100
+ session_id=session_id
101
+ )
102
+ await agent_tide_ui.load()
103
+
104
+ elif res.get("payload").get("model") == "custom":
105
+ agent_tide_ui = AgentTideUi(
106
+ DEFAULT_SESSIONS_WORKSPACE / session_id,
107
+ history=cl.user_session.get("chat_history"),
108
+ llm_config=cl.user_session.get("settings") or None,
109
+ session_id=session_id
110
+ )
111
+ await agent_tide_ui.load()
112
+
113
+ exception = True
114
+
115
+ while exception:
116
+ try:
117
+ agent_tide_ui.agent_tide.llm.provider.validate_config(force_check_against_provider=True)
118
+ exception = None
119
+
120
+ except (AuthenticationError, ModelError) as e:
121
+ exception = e
122
+ await cl.Message(
123
+ content=MISSING_CONFIG_MESSAGE.format(
124
+ agent_tide_config_path="because-we-dont-actually-store-it-it-only-exists-while-this-session-is-alive",
125
+ config_file="config-file-in-yaml",
126
+ example_config=AICORE_CONFIG_EXAMPLE
127
+ ),
128
+ elements=[
129
+ cl.File(
130
+ name="config.yml",
131
+ display="inline",
132
+ content=AICORE_CONFIG_EXAMPLE,
133
+ size="small"
134
+ ),
135
+ ]
136
+ ).send()
137
+
138
+ _config_files = None
139
+ while _config_files is None:
140
+ _config_files = await cl.AskFileMessage(
141
+ content=EXCEPTION_MESSAGE.format(exception=json.dumps(exception.__dict__, indent=4)),
142
+ accept=[".yml", ".yaml"],
143
+ timeout=3600
144
+ ).send()
145
+
146
+ if _config_files:
147
+ _config_file = _config_files[0]
148
+
149
+ try:
150
+ with open(_config_file.path, "r", encoding=DEFAULT_ENCODING) as _file:
151
+ config_raw = _file.read()
152
+ config_dict = yaml.safe_load(config_raw)
153
+ config = Config(**config_dict)
154
+
155
+ agent_tide_ui.agent_tide.llm = Llm.from_config(config.llm)
156
+ agent_tide_ui.agent_tide.llm.provider.session_id = agent_tide_ui.agent_tide.session_id
157
+ agent_tide_ui.agent_tide.pass_custom_logger_fn()
158
+
159
+ session_dir_path = DEFAULT_SESSIONS_WORKSPACE / session_id
160
+ if not os.path.exists(session_dir_path):
161
+ os.makedirs(session_dir_path, exist_ok=True)
162
+
163
+ except Exception as e:
164
+ exception = e
165
+
166
+ await cl.Message(
167
+ content="Hi, I'm Tide... Nice to meet you!"
168
+ ).send()
169
+
170
+ new_branch_name = f"agent-tide-{ulid()}"
171
+ cl.user_session.set("current_branch_name", new_branch_name)
172
+ checkout_new_branch(agent_tide_ui.agent_tide.tide.repo, new_branch_name=new_branch_name)
173
+ cl.user_session.set("AgentTideUi", agent_tide_ui)
174
+
175
+ @cl.set_starters
176
+ async def set_starters():
177
+ return [cl.Starter(**kwargs) for kwargs in STARTERS]
178
+
179
+ @cl.on_chat_end
180
+ async def empty_current_session():
181
+ session_id = cl.user_session.get("session_id")
182
+ session_path = DEFAULT_SESSIONS_WORKSPACE / session_id
183
+ if os.path.exists(session_path):
184
+ shutil.rmtree(session_path)
185
+
186
+ def remove_readonly(func, path, _):
187
+ """Clear the readonly bit and reattempt the removal"""
188
+ os.chmod(path, stat.S_IWRITE)
189
+ func(path)
190
+
191
+ @cl.on_app_shutdown
192
+ async def empty_all_sessions():
193
+ if os.path.exists(DEFAULT_SESSIONS_WORKSPACE):
194
+ shutil.rmtree(DEFAULT_SESSIONS_WORKSPACE, onexc=remove_readonly)
195
+
196
+ @cl.action_callback("execute_steps")
197
+ async def on_execute_steps(action :cl.Action):
198
+ agent_tide_ui: AgentTideUi = cl.user_session.get("AgentTideUi")
199
+
200
+ latest_step_message :cl.Message = cl.user_session.get("latest_step_message")
201
+ if latest_step_message and latest_step_message.id == action.payload.get("msg_id"):
202
+ await latest_step_message.remove_actions()
203
+ await latest_step_message.send() # close message ?
204
+
205
+ if agent_tide_ui.current_step is None:
206
+ task_list = cl.TaskList("Steps")
207
+ for step in agent_tide_ui.agent_tide.steps.root:
208
+ task = cl.Task(title=step.description)#, forId=message.id)
209
+ await task_list.add_task(task)
210
+
211
+ # Update the task list in the interface
212
+ await task_list.send()
213
+ cl.user_session.set("StepsTaskList", task_list)
214
+
215
+ else:
216
+ task_list = cl.user_session.get("StepsTaskList")
217
+
218
+ is_done = agent_tide_ui.increment_step()
219
+ # Optionally remove the action button from the chatbot user interface
220
+
221
+ if is_done:
222
+ task_list.tasks[-1].status = cl.TaskStatus.DONE
223
+ await cl.sleep(3)
224
+ await task_list.remove()
225
+ await action.remove()
226
+
227
+ # await cl.send_window_message("Finished implementing Steps")
228
+
229
+ else:
230
+ current_task_idx = agent_tide_ui.current_step
231
+ if current_task_idx >= 1:
232
+ task_list.tasks[current_task_idx-1].status = cl.TaskStatus.DONE
233
+
234
+ step :Step = agent_tide_ui.agent_tide.steps.root[agent_tide_ui.current_step]
235
+
236
+ task_list.status = f"Executing step {current_task_idx}"
237
+ await task_list.send()
238
+ await action.remove()
239
+
240
+ step_instructions_msg = await cl.Message(
241
+ content=step.as_instruction(),
242
+ author="Agent Tide"
243
+ ).send()
244
+
245
+ await agent_loop(step_instructions_msg, codeIdentifiers=step.get_code_identifiers(agent_tide_ui.agent_tide.tide._as_file_paths), agent_tide_ui=agent_tide_ui)
246
+
247
+ task_list.status = f"Waiting feedback on step {current_task_idx}"
248
+ await task_list.send()
249
+
250
+ @cl.action_callback("stop_steps")
251
+ async def on_stop_steps(action :cl.Action):
252
+ agent_tide_ui: AgentTideUi = cl.user_session.get("AgentTideUi")
253
+
254
+ latest_step_message :cl.Message = cl.user_session.get("latest_step_message")
255
+ if latest_step_message and latest_step_message.id == action.payload.get("msg_id"):
256
+ await latest_step_message.remove_actions()
257
+ await latest_step_message.send() # close message ?
258
+
259
+ task_list = cl.user_session.get("StepsTaskList")
260
+ if task_list:
261
+ agent_tide_ui.current_step = None
262
+ await task_list.remove()
263
+
264
+ @cl.action_callback("checkout_commit_push")
265
+ async def on_checkout_commit_push(action :cl.Action):
266
+ agent_tide_ui: AgentTideUi = cl.user_session.get("AgentTideUi")
267
+ # await agent_tide_ui.agent_tide.prepare_commit()
268
+ # agent_tide_ui.agent_tide.commit("AgentTide - add all and push")
269
+ await commit_and_push_changes(agent_tide_ui.agent_tide.tide.rootpath, branch_name=cl.user_session.get("current_branch_name"), commit_message="AgentTide - add all and push", checkout=False)
270
+
271
+ @cl.action_callback("inspect_code_context")
272
+ async def on_inspect_context(action :cl.Action):
273
+ agent_tide_ui: AgentTideUi = cl.user_session.get("AgentTideUi")
274
+
275
+ await action.remove()
276
+
277
+ inspect_msg = cl.Message(
278
+ content="",
279
+ author="Agent Tide",
280
+ elements= [
281
+ cl.Text(
282
+ name="CodeTIde Retrieved Identifiers",
283
+ content=f"""```json\n{json.dumps(list(agent_tide_ui.agent_tide._last_code_identifers), indent=4)}\n```"""
284
+ )
285
+ ]
286
+ )
287
+ agent_tide_ui.agent_tide._last_code_identifers = None
288
+
289
+ if agent_tide_ui.agent_tide._last_code_context:
290
+ inspect_msg.elements.append(
291
+ cl.File(
292
+ name=f"codetide_context_{ulid()}.txt",
293
+ content=agent_tide_ui.agent_tide._last_code_context
294
+ )
295
+ )
296
+ agent_tide_ui.agent_tide._last_code_context = None
297
+
298
+ await inspect_msg.send()
299
+
300
+ @cl.on_message
301
+ async def agent_loop(message: Optional[cl.Message]=None, codeIdentifiers: Optional[list] = None, agent_tide_ui :Optional[AgentTideUi]=None):
302
+
303
+ loading_msg = await cl.Message(
304
+ content="",
305
+ elements=[
306
+ cl.CustomElement(
307
+ name="LoadingMessage",
308
+ props={
309
+ "messages": ["Working", "Syncing CodeTide", "Thinking", "Looking for context"],
310
+ "interval": 1500, # 1.5 seconds between messages
311
+ "showIcon": True
312
+ }
313
+ )
314
+ ]
315
+ ).send()
316
+
317
+ if agent_tide_ui is None:
318
+ agent_tide_ui = cl.user_session.get("AgentTideUi")
319
+
320
+ chat_history = cl.user_session.get("chat_history")
321
+
322
+ if message is not None:
323
+ if message.command:
324
+ command_prompt = await agent_tide_ui.get_command_prompt(message.command)
325
+ if command_prompt:
326
+ message.content = "\n\n---\n\n".join([command_prompt, message.content])
327
+
328
+ chat_history.append({"role": "user", "content": message.content})
329
+ await agent_tide_ui.add_to_history(message.content)
330
+
331
+ context_msg = cl.Message(content="", author="AgentTide")
332
+ msg = cl.Message(content="", author="Agent Tide")
333
+ async with cl.Step("ApplyPatch", type="tool") as diff_step:
334
+ await diff_step.remove()
335
+
336
+ # Initialize the stream processor
337
+ stream_processor = StreamProcessor(
338
+ marker_configs=[
339
+ MarkerConfig(
340
+ begin_marker="*** Begin Commit",
341
+ end_marker="*** End Commit",
342
+ start_wrapper="\n```shell\n",
343
+ end_wrapper="\n```\n",
344
+ target_step=msg
345
+ ),
346
+ MarkerConfig(
347
+ begin_marker="*** Begin Patch",
348
+ end_marker="*** End Patch",
349
+ start_wrapper="\n```shell\n",
350
+ end_wrapper="\n```\n",
351
+ target_step=diff_step
352
+ ),
353
+ MarkerConfig(
354
+ begin_marker="*** Begin Steps",
355
+ end_marker="*** End Steps",
356
+ start_wrapper="\n```shell\n",
357
+ end_wrapper="\n```\n",
358
+ target_step=msg
359
+ )
360
+ ],
361
+ global_fallback_msg=msg
362
+ )
363
+
364
+ st = time.time()
365
+ is_reasonig_sent = False
366
+ async for chunk in run_concurrent_tasks(agent_tide_ui, codeIdentifiers):
367
+ if chunk == STREAM_START_TOKEN:
368
+ is_reasonig_sent = await send_reasoning_msg(loading_msg, context_msg, agent_tide_ui, st)
369
+ continue
370
+
371
+ elif not is_reasonig_sent:
372
+ is_reasonig_sent = await send_reasoning_msg(loading_msg, context_msg, agent_tide_ui, st)
373
+
374
+ elif chunk == STREAM_END_TOKEN:
375
+ # Handle any remaining content
376
+ await stream_processor.finalize()
377
+ break
378
+
379
+ await stream_processor.process_chunk(chunk)
380
+
381
+ await asyncio.sleep(0.5)
382
+ if agent_tide_ui.agent_tide.steps:
383
+ cl.user_session.set("latest_step_message", msg)
384
+ msg.actions = [
385
+ cl.Action(
386
+ name="stop_steps",
387
+ tooltip="stop",
388
+ icon="octagon-x",
389
+ payload={"msg_id": msg.id}
390
+ ),
391
+ cl.Action(
392
+ name="execute_steps",
393
+ tooltip="Next step",
394
+ icon="fast-forward",
395
+ payload={"msg_id": msg.id}
396
+ )
397
+ ]
398
+
399
+ if agent_tide_ui.agent_tide._last_code_identifers:
400
+ msg.actions.append(
401
+ cl.Action(
402
+ name="inspect_code_context",
403
+ tooltip="Inspect CodeContext",
404
+ icon= "telescope",
405
+ payload={"msg_id": msg.id}
406
+ )
407
+ )
408
+
409
+ msg.actions.append(
410
+ cl.Action(
411
+ name="checkout_commit_push",
412
+ tooltip="A new branch will be created and the changes made so far will be commited and pushed to the upstream repository",
413
+ icon="circle-fading-arrow-up",
414
+ payload={"msg_id": msg.id}
415
+ )
416
+ )
417
+
418
+ # Send the final message
419
+ await msg.send()
420
+
421
+ chat_history.append({"role": "assistant", "content": msg.content})
422
+ await agent_tide_ui.add_to_history(msg.content)
423
+
424
+ if agent_tide_ui.agent_tide._has_patch:
425
+ choice = await cl.AskActionMessage(
426
+ content="AgentTide is asking you to review the Patch before applying it.",
427
+ actions=[
428
+ cl.Action(name="approve_patch", payload={"lgtm": True}, label="βœ”οΈ Approve"),
429
+ cl.Action(name="reject_patch", payload={"lgtm": False}, label="❌ Reject"),
430
+ ],
431
+ timeout=3600
432
+ ).send()
433
+
434
+ if choice:
435
+ lgtm = choice.get("payload", []).get("lgtm")
436
+ if lgtm:
437
+ agent_tide_ui.agent_tide.approve()
438
+ else:
439
+ response = await cl.AskUserMessage(
440
+ content="""Please provide specific feedback explaining why the patch was rejected. Include what's wrong, which parts are problematic, and what needs to change. Avoid vague responses like "doesn't work" - instead be specific like "missing error handling for FileNotFoundError" or "function should return boolean, not None." Your detailed feedback helps generate a better solution.""",
441
+ timeout=3600
442
+ ).send()
443
+
444
+ feedback = response.get("output")
445
+ agent_tide_ui.agent_tide.reject(feedback)
446
+ chat_history.append({"role": "user", "content": feedback})
447
+ await agent_loop(agent_tide_ui=agent_tide_ui)
448
+
449
+ if __name__ == "__main__":
450
+ from dotenv import load_dotenv
451
+ load_dotenv()
452
+
453
+ # TODO add button button to ckeckout and push
454
+ run_chainlit(os.path.abspath(__file__))
chainlit.md ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ![Agent Tide Logo](public/logo_dark.png)
2
+
3
+ ---
4
+
5
+ # Welcome to Agent Tide! πŸš€πŸ€–
6
+
7
+ ```
8
+ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
9
+ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β•šβ•β•β–ˆβ–ˆβ•”β•β•β• β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•
10
+ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
11
+ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•
12
+ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
13
+ β•šβ•β• β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•β• β•šβ•β• β•šβ•β• β•šβ•β•β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•
14
+ ```
15
+
16
+ ---
17
+
18
+ ## What is Agent Tide?
19
+
20
+ **Agent Tide** is a next-generation, precision-driven software engineering agent built on top of [CodeTide](https://github.com/BrunoV21/CodeTide). It enables you to interact directly with your local codebaseβ€”**everything is local and stays local**. No code, context, or metadata ever leaves your machine.
21
+
22
+ Unlike most agent frameworks that rely on hidden inner logic, opaque planning, or LLMs doing everything in a single pass, Agent Tide offers a transparent, stepwise, and human-in-the-loop workflow. Think of it as "ChatGPT, but connected to your codebase"β€”with full visibility and control over every change.
23
+
24
+ ---
25
+
26
+ ## How Does Agent Tide Work?
27
+
28
+ 1. **Direct Codebase Connection & Context Loading**
29
+ - Agent Tide uses CodeTide's fast, symbolic codebase parser to build a tree of all code identifiers (functions, classes, methods, etc.).
30
+ - When you make a request, Agent Tide analyzes it and loads only the relevant identifiers and their dependenciesβ€”retrieving just the code snippets needed for your task.
31
+ - This context loading is fast, deterministic, and fully local.
32
+
33
+ 2. **Three Modes of Operation**
34
+ - **Clarification:** If your request is ambiguous, Agent Tide will ask for more information before proceeding.
35
+ - **Direct Implementation:** For simple, clear requests, Agent Tide will immediately generate a patch to fulfill your request.
36
+ - **Planning Mode:** For complex tasks, Agent Tide enters a planning modeβ€”decomposing your request into a step-by-step plan. You can review, edit, or reorder steps before execution.
37
+
38
+ 3. **Human-in-the-Loop, Stepwise Execution**
39
+ - You always see the plan before any code is changed. You can modify steps, request clarifications, or approve the plan.
40
+ - When ready, click "Proceed to next step" to have Agent Tide implement each step sequentially.
41
+ - After each step, you can review the patch, provide feedback, or continue to the next stepβ€”**keeping you in control at all times**.
42
+
43
+ 4. **Patch-Based, Token-Efficient Editing**
44
+ - All code changes are generated as atomic, high-precision diffs (patches), not full file rewrites.
45
+ - This means you see exactly what will change, and can stop or correct the agent at any pointβ€”no waiting for a huge batch of changes to finish before intervening.
46
+ - This approach is also highly efficient for LLM token usage and latency.
47
+
48
+ 5. **Privacy & Local-First Philosophy**
49
+ - No code, context, or metadata is sent to any external service other than the selected LLM provider.
50
+ - All code analysis, context building, and patching is performed locally.
51
+
52
+ 6. **Model Compatibility**
53
+ - Agent Tide works best with GPT-4.1, Claude Sonnet 4, and Opus 4.1.
54
+ - Some models (e.g., DeepSeek Chat) may struggle with patch/diff generation.
55
+
56
+ 7. **Terminal & MCP Integration**
57
+ - Terminal access is not available yet.
58
+ - MCP (Multi-Component Patch) integration via aicore is deactivated by default in this demo, but can be enabled for more advanced use cases.
59
+
60
+ ---
61
+
62
+ ## Why Agent Tide?
63
+
64
+ - **Transparency:** Every step, plan, and patch is visible and editable before execution.
65
+ - **Control:** You decide when and how changes are appliedβ€”no "black box" agent behavior.
66
+ - **Precision:** Code changes are atomic, minimal, and always shown as diffs.
67
+ - **Speed:** Context loading and patching are fast, thanks to CodeTide's symbolic engine.
68
+ - **Privacy:** Your code never leaves your machine.
69
+
70
+ ---
71
+
72
+ ## Example Things to Ask Agent Tide
73
+
74
+ You can ask Agent Tide to perform a wide variety of code-related tasks. Here are some example prompts to get you started:
75
+
76
+ - **Add new functionality**
77
+ - "Add a function to calculate the factorial of a number in `utils.py`."
78
+ - "Implement a REST API endpoint for user registration."
79
+
80
+ - **Refactor or improve code**
81
+ - "Refactor the `process_data` function to improve readability and performance."
82
+ - "Rename the variable `x` to `user_id` throughout `models/user.py`."
83
+
84
+ - **Fix bugs**
85
+ - "Fix the bug where the login form crashes on empty input."
86
+ - "Resolve the off-by-one error in the `get_page` method."
87
+
88
+ - **Write or update tests**
89
+ - "Add unit tests for the `EmailSender` class."
90
+ - "Increase test coverage for `api/views.py`."
91
+
92
+ - **Documentation**
93
+ - "Generate a docstring for the `parse_config` function."
94
+ - "Update the README with installation instructions."
95
+
96
+ - **Code analysis and suggestions**
97
+ - "List all functions in `main.py` that are missing type annotations."
98
+ - "Suggest performance improvements for the `data_loader` module."
99
+
100
+ - **Other codebase tasks**
101
+ - "Delete the deprecated `old_utils.py` file."
102
+ - "Move the `helpers` directory into `core/`."
103
+
104
+ Feel free to be specific or general in your requests. Agent Tide will analyze your codebase and generate precise, production-ready patches to fulfill your needs!
105
+
106
+ ---
107
+
108
+ ## Usage Tips & Advanced Workflows
109
+
110
+ - **Direct Context Control:**
111
+ If you already know the exact code context you want Agent Tide to use, you can specify identifiers directly in your request.
112
+ Use the format:
113
+ ```
114
+ module.submodule.file_withoutextension.object
115
+ ```
116
+ For example:
117
+ ```
118
+ Please update codetide.agents.tide.ui.app.agent_loop to support async.
119
+ ```
120
+ This helps Agent Tide load only the relevant code blocks, making the process faster and more precise.
121
+
122
+ - **Planning and Human-in-the-Loop:**
123
+ Agent Tide allows you to interact directly with your local codebaseβ€”everything is local and will stay local.
124
+ Most agent frameworks are filled with hidden logic, letting the LLM do all the planning and execution at once.
125
+ Agent Tide offers a more direct perspective:
126
+ - The first thing Agent Tide does is use the CodeTide repo tree to load identifiers related to your request, then builds context blocks with the relevant code snippets (and their dependencies).
127
+ - Once context is loaded, Agent Tide can:
128
+ 1. Ask for more information or clarification if your request is ambiguous.
129
+ 2. Start implementing changes right away if the request is simple.
130
+ 3. Enter planning mode and present you with a step-by-step plan (you can also request this explicitly: "create me a plan to do X").
131
+ - You can edit the plan, reorder steps, or request changes until you are satisfied.
132
+ - Click "Start implementing steps" and Agent Tide will go step by step, letting you review, correct, or continue after each one.
133
+ - This keeps you in the loop and gives you direct control and visualization of every change.
134
+ - Code is generated as diffs for optimized token usage and latencyβ€”so you can intervene at any point, even if the agent is working on many files.
135
+
136
+ - **Model and Integration Notes:**
137
+ - Agent Tide works best with GPT-4.1, Claude Sonnet 4, and Opus 4.1.
138
+ - Models like DeepSeek Chat may struggle with patch generation.
139
+ - Terminal access is available for advanced workflows.
140
+ - MCP integration (via aicore) is deactivated by default in this demo.
141
+
142
+ ---
143
+
144
+ ## Available Slash Commands
145
+
146
+ Agent Tide supports special commands that can be invoked directly from the chat input using a `/command` syntax. These commands provide quick access to advanced features and workflows.
147
+
148
+ ### How to Use
149
+
150
+ Type `/command` (replace `command` with the actual command name) in the text input box and press Enter. Agent Tide will recognize and execute the command.
151
+
152
+ ### Available Commands
153
+
154
+ 1. **/test**
155
+ - **Description:** Request test implementations for a specific element.
156
+ - **Usage:**
157
+ `/test` add coverage for apply_patch tool.
158
+
159
+ 2. **/review**
160
+ - **Description:** Request a code review for a specific file, function, or recent patch.
161
+ - **Usage:**
162
+ `/review` codetide/agents/tide/ui/app.py
163
+
164
+ 3. **/commit**
165
+ - **Description:** Commit changed files. This command will stage and commit all recent changes, generating a conventional commit message.
166
+ - **Usage:**
167
+ `/commit` the changes we just made
168
+
169
+ 4. **/plan**
170
+ - **Description:** Create a step-by-step task plan for your request. This command will instruct Agent Tide to decompose your request into actionable steps, which you can review and edit before execution.
171
+ - **Usage:**
172
+ `/plan` add a new authentication system to the project
173
+
174
+ You can use these commands at any time to guide Agent Tide's workflow, request reviews, generate commit messages, or create implementation plans. More commands may be added in the futureβ€”refer to this section for updates.
175
+
176
+ ---
177
+
178
+ **Original repository:** [https://github.com/BrunoV21/CodeTide](https://github.com/BrunoV21/CodeTide)
179
+
180
+ ---
181
+
182
+ _This README was written by AgentTide!_
docker-compose.yaml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: "3.8"
2
+
3
+ services:
4
+ app:
5
+ build:
6
+ context: .
7
+ dockerfile: Dockerfile
8
+ ports:
9
+ - "7860:7860"
10
+ restart: unless-stopped
11
+ command: python -m chainlit run app.py -w --host 0.0.0.0 --port 7860
git_utils.py ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ from ulid import ulid
3
+ import subprocess
4
+ import asyncio
5
+ import pygit2
6
+ import re
7
+
8
+
9
+ GIT_URL_PATTERN = re.compile(
10
+ r'^(?:http|https|git|ssh)://' # Protocol
11
+ r'(?:\S+@)?' # Optional username
12
+ r'([^/]+)' # Domain
13
+ r'(?:[:/])([^/]+/[^/]+?)(?:\.git)?$' # Repo path
14
+ )
15
+
16
+ async def validate_git_url(url) -> None:
17
+ """Validate the Git repository URL using git ls-remote."""
18
+
19
+ if not GIT_URL_PATTERN.match(url):
20
+ raise ValueError(f"Invalid Git repository URL format: {url}")
21
+
22
+ try:
23
+ process = await asyncio.create_subprocess_exec(
24
+ "git", "ls-remote", url,
25
+ stdout=asyncio.subprocess.PIPE,
26
+ stderr=asyncio.subprocess.PIPE
27
+ )
28
+
29
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=10)
30
+
31
+ if process.returncode != 0:
32
+ raise subprocess.CalledProcessError(process.returncode, ["git", "ls-remote", url], stdout, stderr)
33
+
34
+ if not stdout.strip():
35
+ raise ValueError(f"URL {url} points to an empty repository")
36
+
37
+ except asyncio.TimeoutError:
38
+ process.kill()
39
+ await process.wait()
40
+ raise ValueError(f"Timeout while validating URL {url}")
41
+ except subprocess.CalledProcessError as e:
42
+ raise ValueError(f"Invalid Git repository URL: {url}. Error: {e.stderr}") from e
43
+
44
+ async def commit_and_push_changes(repo_path: Path, branch_name: str = None, commit_message: str = "Auto-commit: Save changes", checkout :bool=True) -> None:
45
+ """Add all changes, commit with default message, and push to remote."""
46
+
47
+ repo_path_str = str(repo_path)
48
+
49
+ try:
50
+ # Create new branch with Agent Tide + ULID name if not provided
51
+ if not branch_name:
52
+ branch_name = f"agent-tide-{ulid()}"
53
+
54
+ if checkout:
55
+ # Create and checkout new branch
56
+ process = await asyncio.create_subprocess_exec(
57
+ "git", "checkout", "-b", branch_name,
58
+ cwd=repo_path_str,
59
+ stdout=asyncio.subprocess.PIPE,
60
+ stderr=asyncio.subprocess.PIPE
61
+ )
62
+
63
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=10)
64
+
65
+ if process.returncode != 0:
66
+ raise subprocess.CalledProcessError(process.returncode, ["git", "checkout", "-b", branch_name], stdout, stderr)
67
+
68
+ # Add all changes
69
+ process = await asyncio.create_subprocess_exec(
70
+ "git", "add", ".",
71
+ cwd=repo_path_str,
72
+ stdout=asyncio.subprocess.PIPE,
73
+ stderr=asyncio.subprocess.PIPE
74
+ )
75
+
76
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=30)
77
+
78
+ if process.returncode != 0:
79
+ raise subprocess.CalledProcessError(process.returncode, ["git", "add", "."], stdout, stderr)
80
+
81
+ # Commit changes
82
+ process = await asyncio.create_subprocess_exec(
83
+ "git", "commit", "-m", commit_message,
84
+ cwd=repo_path_str,
85
+ stdout=asyncio.subprocess.PIPE,
86
+ stderr=asyncio.subprocess.PIPE
87
+ )
88
+
89
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=30)
90
+
91
+ if process.returncode != 0:
92
+ # Check if it's because there are no changes to commit
93
+ if "nothing to commit" in stderr or "nothing to commit" in stdout:
94
+ return # No changes to commit, exit gracefully
95
+ raise subprocess.CalledProcessError(process.returncode, ["git", "commit", "-m", commit_message], stdout, stderr)
96
+
97
+ # Push to remote
98
+ process = await asyncio.create_subprocess_exec(
99
+ "git", "push", "origin", branch_name,
100
+ cwd=repo_path_str,
101
+ stdout=asyncio.subprocess.PIPE,
102
+ stderr=asyncio.subprocess.PIPE
103
+ )
104
+
105
+ stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=60)
106
+
107
+ if process.returncode != 0:
108
+ raise subprocess.CalledProcessError(process.returncode, ["git", "push", "origin", branch_name], stdout, stderr)
109
+
110
+ except asyncio.TimeoutError:
111
+ process.kill()
112
+ await process.wait()
113
+ raise ValueError(f"Timeout during git operation in {repo_path}")
114
+ except subprocess.CalledProcessError as e:
115
+ raise ValueError(f"Git operation failed in {repo_path}. Error: {e.stderr}") from e
116
+
117
+ def push_new_branch(repo :pygit2.Repository, branch_name :str, remote_name :str='origin'):
118
+ """
119
+ Push a new branch to remote origin (equivalent to 'git push origin branch_name')
120
+
121
+ Args:
122
+ repo (pygit2.Repository): Repo Obj
123
+ branch_name (str): Name of the branch to push
124
+ remote_name (str): Name of the remote (default: 'origin')
125
+
126
+ Returns:
127
+ bool: True if push was successful, False otherwise
128
+ """
129
+
130
+ # Get the remote
131
+ remote = repo.remotes[remote_name]
132
+
133
+ # Create refspec for pushing new branch
134
+ # Format: local_branch:remote_branch (this publishes the new branch)
135
+ refspec = f'refs/heads/{branch_name}:refs/heads/{branch_name}'
136
+
137
+ # Push to remote
138
+ result = remote.push([refspec])
139
+
140
+ # Check if push was successful (no error message means success)
141
+ return not result.error_message
142
+
143
+ def checkout_new_branch(repo :pygit2.Repository, new_branch_name :str, start_point=None):
144
+ """
145
+ Create and checkout a new branch from the current HEAD or specified start point.
146
+
147
+ Args:
148
+ repo_path (str): Path to the git repository
149
+ new_branch_name (str): Name of the new branch to create and checkout
150
+ start_point (pygit2.Oid or Reference, optional): Commit or reference to start from.
151
+ If None, uses current HEAD.
152
+
153
+ Returns:
154
+ pygit2.Reference: The newly created branch reference
155
+
156
+ Raises:
157
+ ValueError: If branch already exists or invalid start point
158
+ Exception: For other git-related errors
159
+ """
160
+
161
+ # Check if branch already exists
162
+ if new_branch_name in repo.branches.local:
163
+ raise ValueError(f"Branch '{new_branch_name}' already exists")
164
+
165
+ # Get the start point commit (default to HEAD)
166
+ if start_point is None:
167
+ if repo.head_is_detached:
168
+ raise ValueError("HEAD is detached, please specify a start point")
169
+ start_point = repo.head.target
170
+
171
+ # Create the new branch
172
+ new_branch = repo.branches.local.create(new_branch_name, repo[start_point])
173
+
174
+ # Checkout the new branch
175
+ repo.checkout(new_branch, strategy=pygit2.GIT_CHECKOUT_SAFE)
176
+
177
+ return new_branch
public/agent-tide-demo.gif ADDED

Git LFS Details

  • SHA256: dc5e4dcff9fdfb3d56f6c36c17408873b0e61a35ee48a4dad33a6fbff85fbe6e
  • Pointer size: 132 Bytes
  • Size of remote file: 3.12 MB
public/avatars/agent_tide.png ADDED

Git LFS Details

  • SHA256: d6c452c4752001a5bd77eb0a5c9e6ba41f2df4b962b327f2bd109489fd99c3f2
  • Pointer size: 132 Bytes
  • Size of remote file: 1.56 MB
public/codetide-banner.png ADDED

Git LFS Details

  • SHA256: ba52be79338e2a0cf99c1b08e3f2759f6dd5dbe1fe6439d1f9db6ffe25c0c66b
  • Pointer size: 131 Bytes
  • Size of remote file: 279 kB
public/diagram.svg ADDED
public/docker.svg ADDED
public/elements/HtmlRenderer.jsx ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Card, CardContent } from "@/components/ui/card"
2
+ import { Button } from "@/components/ui/button"
3
+ import { X, RefreshCw } from "lucide-react"
4
+
5
+ export default function HtmlRenderer() {
6
+ // Function to sanitize HTML (basic approach)
7
+ const sanitizeHtml = (html) => {
8
+ // Create a temporary div to parse the HTML
9
+ const temp = document.createElement('div');
10
+ temp.innerHTML = html;
11
+
12
+ // Remove potentially dangerous elements
13
+ const dangerousElements = temp.querySelectorAll('script, object, embed, iframe');
14
+ dangerousElements.forEach(el => el.remove());
15
+
16
+ return temp.innerHTML;
17
+ };
18
+
19
+ const handleRefresh = () => {
20
+ // Re-render the component by updating props
21
+ updateElement(props);
22
+ };
23
+
24
+ const handleRemove = () => {
25
+ deleteElement();
26
+ };
27
+
28
+ // Get the HTML content from props
29
+ const htmlContent = props.html || props.content || '<p>No HTML content provided</p>';
30
+ const title = props.title || 'HTML Content';
31
+ const showControls = props.showControls !== false; // Default to true
32
+
33
+ return (
34
+ <div className="w-full">
35
+ {showControls && (
36
+ <div className="flex justify-between items-center mb-2">
37
+ <h3 className="text-sm font-medium text-muted-foreground">{title}</h3>
38
+ <div className="flex gap-1">
39
+ <Button
40
+ size="sm"
41
+ variant="outline"
42
+ onClick={handleRefresh}
43
+ className="h-6 px-2"
44
+ >
45
+ <RefreshCw className="h-3 w-3" />
46
+ </Button>
47
+ <Button
48
+ size="sm"
49
+ variant="outline"
50
+ onClick={handleRemove}
51
+ className="h-6 px-2"
52
+ >
53
+ <X className="h-3 w-3" />
54
+ </Button>
55
+ </div>
56
+ </div>
57
+ )}
58
+
59
+ <Card className="w-full">
60
+ <CardContent className="p-4">
61
+ <div
62
+ className="prose prose-sm max-w-none dark:prose-invert"
63
+ dangerouslySetInnerHTML={{
64
+ __html: sanitizeHtml(htmlContent)
65
+ }}
66
+ />
67
+ </CardContent>
68
+ </Card>
69
+ </div>
70
+ );
71
+ }
public/elements/LoadingMessage.jsx ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React, { useState, useEffect } from 'react';
2
+
3
+ const LoadingMessage = ({ messages = ['Working...', 'Syncing CodeTide', 'Thinking...', 'Looking for context'], interval = 3000 }) => {
4
+ const [currentIndex, setCurrentIndex] = useState(0);
5
+
6
+ useEffect(() => {
7
+ const timer = setInterval(() => {
8
+ setCurrentIndex((prevIndex) => (prevIndex + 1) % messages.length);
9
+ }, interval);
10
+
11
+ return () => clearInterval(timer);
12
+ }, [messages.length, interval]);
13
+
14
+ /* TODO update styles and fonts to match current - increase size a bit*/
15
+ const loadingWaveStyle = {
16
+ display: 'inline-flex',
17
+ alignItems: 'center',
18
+ gap: '8px',
19
+ padding: '8px 12px',
20
+ background: 'rgba(255, 255, 255, 0.05)',
21
+ border: '1px solid rgba(255, 255, 255, 0.1)',
22
+ borderRadius: '20px',
23
+ backdropFilter: 'blur(10px)',
24
+ color: '#e0e0e0',
25
+ fontSize: '12px',
26
+ fontWeight: '500',
27
+ letterSpacing: '0.3px',
28
+ minHeight: '20px',
29
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif'
30
+ };
31
+
32
+ const waveContainerStyle = {
33
+ display: 'flex',
34
+ gap: '2px'
35
+ };
36
+
37
+ const waveDotStyle = {
38
+ width: '3px',
39
+ height: '3px',
40
+ background: '#00d4ff',
41
+ borderRadius: '50%',
42
+ animation: 'wave 1.2s ease-in-out infinite'
43
+ };
44
+
45
+ const loadingTextStyle = {
46
+ minWidth: '120px',
47
+ transition: 'opacity 0.3s ease-in-out'
48
+ };
49
+
50
+ return (
51
+ <>
52
+ <style>
53
+ {`
54
+ @keyframes wave {
55
+ 0%, 60%, 100% {
56
+ transform: scaleY(1);
57
+ opacity: 0.4;
58
+ }
59
+ 30% {
60
+ transform: scaleY(2.5);
61
+ opacity: 1;
62
+ }
63
+ }
64
+ `}
65
+ </style>
66
+ <div style={loadingWaveStyle}>
67
+ <div style={waveContainerStyle}>
68
+ <div style={{...waveDotStyle, animationDelay: '0s'}}></div>
69
+ <div style={{...waveDotStyle, animationDelay: '0.15s'}}></div>
70
+ <div style={{...waveDotStyle, animationDelay: '0.3s'}}></div>
71
+ <div style={{...waveDotStyle, animationDelay: '0.45s'}}></div>
72
+ </div>
73
+ <div style={loadingTextStyle}>
74
+ {messages[currentIndex]}
75
+ </div>
76
+ </div>
77
+ </>
78
+ );
79
+ };
80
+
81
+ export default LoadingMessage;
public/elements/ReasoningMessage.jsx ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Card, CardContent } from "@/components/ui/card"
2
+ import { Button } from "@/components/ui/button"
3
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
4
+ import { ChevronDown, ChevronRight } from "lucide-react"
5
+ import { useState } from "react"
6
+
7
+ export default function ReasoningMessage() {
8
+ const [isExpanded, setIsExpanded] = useState(props.defaultExpanded !== false);
9
+
10
+ const toggleExpanded = () => {
11
+ setIsExpanded(!isExpanded);
12
+ };
13
+
14
+ // Get data from props
15
+ const reasoning = props.reasoning || "No reasoning provided";
16
+ const data = props.data || {};
17
+ const title = props.title || "Analysis Result";
18
+ const summaryText = props.summaryText || "Click to view details";
19
+
20
+ // Convert data object to array and take first two entries
21
+ const dataEntries = Object.entries(data).slice(0, 2);
22
+
23
+ // Generate HTML content
24
+ const generateHtml = () => {
25
+ let html = `
26
+ <div class="reasoning-message">
27
+ <div class="p-4 space-y-4">
28
+ <div class="reasoning-block text-sm text-muted-foreground bg-muted/30 p-3 rounded-md">
29
+ ${reasoning}
30
+ </div>`;
31
+
32
+ // Add key-value entries if they exist
33
+ if (dataEntries.length > 0) {
34
+ html += `<div class="data-entries space-y-3">`;
35
+
36
+ dataEntries.forEach(([key, value], index) => {
37
+ html += `
38
+ <div class="entry-block">
39
+ <h5 class="font-medium text-sm mb-1 text-foreground">${key}</h5>
40
+ <div class="text-sm text-muted-foreground bg-background p-2 rounded border">
41
+ ${typeof value === 'object' ? JSON.stringify(value, null, 2) : String(value)}
42
+ </div>
43
+ </div>`;
44
+ });
45
+
46
+ html += `</div>`;
47
+ }
48
+
49
+ html += `
50
+ </div>
51
+ </div>`;
52
+
53
+ return html;
54
+ };
55
+
56
+ return (
57
+ <div className="w-full">
58
+ <div className="flex justify-between items-center mb-2">
59
+ <h3 className="text-sm font-medium text-muted-foreground">{title}</h3>
60
+ <TooltipProvider>
61
+ <Tooltip>
62
+ <TooltipTrigger asChild>
63
+ <Button
64
+ size="sm"
65
+ variant="outline"
66
+ onClick={toggleExpanded}
67
+ className="h-6 px-2"
68
+ >
69
+ {isExpanded ? <ChevronDown className="h-3 w-3" /> : <ChevronRight className="h-3 w-3" />}
70
+ </Button>
71
+ </TooltipTrigger>
72
+ <TooltipContent>
73
+ <p>{summaryText}</p>
74
+ </TooltipContent>
75
+ </Tooltip>
76
+ </TooltipProvider>
77
+ </div>
78
+
79
+ <Card className="w-full">
80
+ <CardContent className="p-0">
81
+ {isExpanded && (
82
+ <div
83
+ className="prose prose-sm max-w-none dark:prose-invert"
84
+ dangerouslySetInnerHTML={{
85
+ __html: generateHtml()
86
+ }}
87
+ />
88
+ )}
89
+ </CardContent>
90
+ </Card>
91
+
92
+ <style jsx>{`
93
+ .reasoning-message pre {
94
+ white-space: pre-wrap;
95
+ word-wrap: break-word;
96
+ }
97
+ `}</style>
98
+ </div>
99
+ );
100
+ }
public/favicon.ico ADDED
public/logo_dark.png ADDED

Git LFS Details

  • SHA256: abdb3315788133438464c5da6d5b245cdaa8e6ba7ed92ee96b8a5d892465ce6d
  • Pointer size: 132 Bytes
  • Size of remote file: 2.25 MB
public/logo_light.png ADDED

Git LFS Details

  • SHA256: abdb3315788133438464c5da6d5b245cdaa8e6ba7ed92ee96b8a5d892465ce6d
  • Pointer size: 132 Bytes
  • Size of remote file: 2.25 MB
public/stylesheet.css ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Only resize avatars where the image's alt text contains 'Avatar for Assistant' */
2
+ span.relative.flex.shrink-0.overflow-hidden.rounded-full:has(img[alt="Avatar for Agent Tide"]) {
3
+ width: 48px !important;
4
+ height: 48px !important;
5
+ }
6
+
7
+ span.relative.flex.shrink-0.overflow-hidden.rounded-full img[alt="Avatar for Agent Tide"] {
8
+ width: 100% !important;
9
+ height: 100% !important;
10
+ border-radius: 50% !important; /* keep them round */
11
+ }
12
+
13
+ img.logo.w-\[200px\] {
14
+ width: 1000px !important;
15
+ height: auto;
16
+ }
public/test.svg ADDED
public/theme.json ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "custom_fonts": [],
3
+ "variables": {
4
+ "light": {
5
+ "--font-sans": "'Inter', sans-serif",
6
+ "--font-mono": "source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace",
7
+ "--background": "210 100% 98%",
8
+ "--foreground": "217 100% 12%",
9
+ "--card": "210 100% 97%",
10
+ "--card-foreground": "217 100% 15%",
11
+ "--popover": "210 100% 97%",
12
+ "--popover-foreground": "217 100% 15%",
13
+ "--primary": "217 91% 60%",
14
+ "--primary-foreground": "0 0% 100%",
15
+ "--secondary": "210 60% 90%",
16
+ "--secondary-foreground": "217 100% 20%",
17
+ "--muted": "210 40% 85%",
18
+ "--muted-foreground": "217 20% 35%",
19
+ "--accent": "200 100% 94%",
20
+ "--accent-foreground": "217 100% 20%",
21
+ "--destructive": "0 84.2% 60.2%",
22
+ "--destructive-foreground": "210 40% 98%",
23
+ "--border": "210 40% 90%",
24
+ "--input": "210 40% 90%",
25
+ "--ring": "217 91% 60%",
26
+ "--radius": "0.75rem",
27
+ "--sidebar-background": "210 100% 97%",
28
+ "--sidebar-foreground": "217 100% 15%",
29
+ "--sidebar-primary": "217 91% 60%",
30
+ "--sidebar-primary-foreground": "0 0% 100%",
31
+ "--sidebar-accent": "210 100% 92%",
32
+ "--sidebar-accent-foreground": "217 100% 20%",
33
+ "--sidebar-border": "210 40% 88%",
34
+ "--sidebar-ring": "217 91% 60%"
35
+ },
36
+ "dark": {
37
+ "--font-sans": "'Inter', sans-serif",
38
+ "--font-mono": "source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace",
39
+ "--background": "217 100% 8%",
40
+ "--foreground": "210 20% 90%",
41
+ "--card": "217 100% 10%",
42
+ "--card-foreground": "210 20% 95%",
43
+ "--popover": "217 100% 10%",
44
+ "--popover-foreground": "210 20% 95%",
45
+ "--primary": "199 100% 55%",
46
+ "--primary-foreground": "0 0% 100%",
47
+ "--secondary": "217 50% 18%",
48
+ "--secondary-foreground": "210 40% 95%",
49
+ "--muted": "215 30% 25%",
50
+ "--muted-foreground": "210 10% 70%",
51
+ "--accent": "217 100% 15%",
52
+ "--accent-foreground": "210 20% 95%",
53
+ "--destructive": "0 62.8% 40%",
54
+ "--destructive-foreground": "0 0% 100%",
55
+ "--border": "217 50% 20%",
56
+ "--input": "217 50% 20%",
57
+ "--ring": "199 100% 55%",
58
+ "--sidebar-background": "217 100% 6%",
59
+ "--sidebar-foreground": "210 20% 95%",
60
+ "--sidebar-primary": "217 91% 60%",
61
+ "--sidebar-primary-foreground": "0 0% 100%",
62
+ "--sidebar-accent": "217 100% 10%",
63
+ "--sidebar-accent-foreground": "210 20% 95%",
64
+ "--sidebar-border": "217 40% 20%",
65
+ "--sidebar-ring": "199 100% 55%"
66
+ }
67
+ }
68
+ }
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ codetide @ git+https://github.com/BrunoV21/codetide.git#egg=codetide[agents-ui]
2
+ fastapi==0.115.7
static/landing_page.html ADDED
@@ -0,0 +1,686 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>AgentTide - Precision-Driven Software Engineering Agent</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
8
+ <style>
9
+ :root {
10
+ --font-sans: 'Inter', sans-serif;
11
+ --font-mono: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
12
+ }
13
+
14
+ .light {
15
+ --background: 210 100% 98%;
16
+ --foreground: 217 100% 12%;
17
+ --card: 210 100% 97%;
18
+ --card-foreground: 217 100% 15%;
19
+ --primary: 217 91% 60%;
20
+ --primary-foreground: 0 0% 100%;
21
+ --secondary: 210 60% 90%;
22
+ --secondary-foreground: 217 100% 20%;
23
+ --muted: 210 40% 85%;
24
+ --muted-foreground: 217 20% 35%;
25
+ --accent: 200 100% 94%;
26
+ --accent-foreground: 217 100% 20%;
27
+ --border: 210 40% 90%;
28
+ --radius: 0.75rem;
29
+ }
30
+
31
+ .dark {
32
+ --background: 217 100% 8%;
33
+ --foreground: 210 20% 90%;
34
+ --card: 217 100% 10%;
35
+ --card-foreground: 210 20% 95%;
36
+ --primary: 199 100% 55%;
37
+ --primary-foreground: 0 0% 100%;
38
+ --secondary: 217 50% 18%;
39
+ --secondary-foreground: 210 40% 95%;
40
+ --muted: 215 30% 25%;
41
+ --muted-foreground: 210 10% 70%;
42
+ --accent: 217 100% 15%;
43
+ --accent-foreground: 210 20% 95%;
44
+ --border: 217 50% 20%;
45
+ --radius: 0.75rem;
46
+ }
47
+
48
+ * {
49
+ margin: 0;
50
+ padding: 0;
51
+ box-sizing: border-box;
52
+ }
53
+
54
+ body {
55
+ font-family: var(--font-sans);
56
+ background: hsl(var(--background));
57
+ color: hsl(var(--foreground));
58
+ line-height: 1.6;
59
+ min-height: 100vh;
60
+ position: relative;
61
+ overflow-x: hidden;
62
+ }
63
+
64
+ /* Animated background elements */
65
+ .background-elements {
66
+ position: fixed;
67
+ top: 0;
68
+ left: 0;
69
+ width: 100%;
70
+ height: 100%;
71
+ pointer-events: none;
72
+ z-index: -1;
73
+ }
74
+
75
+ .floating-code {
76
+ position: absolute;
77
+ font-family: var(--font-mono);
78
+ color: hsl(var(--muted-foreground) / 0.1);
79
+ font-size: 0.875rem;
80
+ animation: float 20s infinite linear;
81
+ }
82
+
83
+ .floating-code:nth-child(1) {
84
+ top: 10%;
85
+ left: -10%;
86
+ animation-delay: 0s;
87
+ }
88
+
89
+ .floating-code:nth-child(2) {
90
+ top: 30%;
91
+ left: -15%;
92
+ animation-delay: -5s;
93
+ }
94
+
95
+ .floating-code:nth-child(3) {
96
+ top: 50%;
97
+ left: -12%;
98
+ animation-delay: -10s;
99
+ }
100
+
101
+ .floating-code:nth-child(4) {
102
+ top: 70%;
103
+ left: -8%;
104
+ animation-delay: -15s;
105
+ }
106
+
107
+ @keyframes float {
108
+ 0% {
109
+ transform: translateX(-100px) rotate(0deg);
110
+ opacity: 0;
111
+ }
112
+ 10% {
113
+ opacity: 1;
114
+ }
115
+ 90% {
116
+ opacity: 1;
117
+ }
118
+ 100% {
119
+ transform: translateX(calc(100vw + 100px)) rotate(360deg);
120
+ opacity: 0;
121
+ }
122
+ }
123
+
124
+ .container {
125
+ max-width: 1200px;
126
+ margin: 0 auto;
127
+ padding: 0 2rem;
128
+ }
129
+
130
+ .header {
131
+ padding: 1.5rem 0 0.5rem;
132
+ text-align: center;
133
+ background: linear-gradient(135deg, hsl(var(--background)) 0%, hsl(var(--card)) 100%);
134
+ }
135
+
136
+ .logo {
137
+ max-width: 650px; /* won’t exceed 650px on big screens */
138
+ width: 100%; /* scales down to fit smaller screens */
139
+ height: auto; /* maintains aspect ratio */
140
+ margin-bottom: 0.5rem;
141
+ filter: drop-shadow(0 4px 8px hsl(var(--foreground) / 0.1));
142
+ animation: logoGlow 3s ease-in-out infinite alternate;
143
+ }
144
+
145
+ @keyframes logoGlow {
146
+ 0% {
147
+ filter: drop-shadow(0 4px 8px hsl(var(--foreground) / 0.1));
148
+ }
149
+ 100% {
150
+ filter: drop-shadow(0 6px 12px hsl(var(--primary) / 0.2));
151
+ }
152
+ }
153
+
154
+ .hero {
155
+ padding: 1rem 0 2rem;
156
+ text-align: center;
157
+ background: linear-gradient(135deg, hsl(var(--background)) 0%, hsl(var(--card)) 100%);
158
+ position: relative;
159
+ }
160
+
161
+ .hero-tagline {
162
+ font-size: 1.75rem;
163
+ font-weight: 600;
164
+ margin-bottom: 1rem;
165
+ background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--accent-foreground)));
166
+ -webkit-background-clip: text;
167
+ -webkit-text-fill-color: transparent;
168
+ background-clip: text;
169
+ animation: fadeInUp 0.8s ease-out;
170
+ }
171
+
172
+ .hero .subtitle {
173
+ font-size: 1.1rem;
174
+ color: hsl(var(--muted-foreground));
175
+ margin-bottom: 2rem;
176
+ max-width: 700px;
177
+ margin-left: auto;
178
+ margin-right: auto;
179
+ font-weight: 400;
180
+ line-height: 1.7;
181
+ animation: fadeInUp 0.8s ease-out 0.2s both;
182
+ }
183
+
184
+ .highlight {
185
+ color: hsl(var(--primary));
186
+ font-weight: 500;
187
+ }
188
+
189
+ .nav-links {
190
+ display: flex;
191
+ justify-content: center;
192
+ gap: 1rem;
193
+ margin-bottom: 2.5rem;
194
+ flex-wrap: wrap;
195
+ animation: fadeInUp 0.8s ease-out 0.4s both;
196
+ }
197
+
198
+ .nav-link {
199
+ padding: 0.875rem 2rem;
200
+ border-radius: var(--radius);
201
+ text-decoration: none;
202
+ font-weight: 500;
203
+ transition: all 0.3s ease;
204
+ border: 1px solid hsl(var(--border));
205
+ background: hsl(var(--card));
206
+ color: hsl(var(--card-foreground));
207
+ position: relative;
208
+ overflow: hidden;
209
+ }
210
+
211
+ .nav-link:hover {
212
+ background: hsl(var(--accent));
213
+ color: hsl(var(--accent-foreground));
214
+ transform: translateY(-3px);
215
+ box-shadow: 0 8px 25px hsl(var(--foreground) / 0.15);
216
+ }
217
+
218
+ .cta-button {
219
+ background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary) / 0.8));
220
+ color: hsl(var(--primary-foreground));
221
+ border: none !important;
222
+ font-size: 1.1rem;
223
+ padding: 1rem 2.5rem !important;
224
+ font-weight: 600;
225
+ position: relative;
226
+ overflow: hidden;
227
+ }
228
+
229
+ .cta-button::before {
230
+ content: '';
231
+ position: absolute;
232
+ top: 0;
233
+ left: -100%;
234
+ width: 100%;
235
+ height: 100%;
236
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
237
+ transition: left 0.5s;
238
+ }
239
+
240
+ .cta-button:hover::before {
241
+ left: 100%;
242
+ }
243
+
244
+ .cta-button:hover {
245
+ background: linear-gradient(135deg, hsl(var(--primary) / 0.9), hsl(var(--primary)));
246
+ color: hsl(var(--primary-foreground));
247
+ transform: translateY(-3px);
248
+ box-shadow: 0 12px 30px hsl(var(--primary) / 0.4);
249
+ }
250
+
251
+ .code-snippet {
252
+ background: hsl(var(--muted));
253
+ border: 1px solid hsl(var(--border));
254
+ border-radius: var(--radius);
255
+ padding: 1.25rem;
256
+ font-family: var(--font-mono);
257
+ font-size: 0.95rem;
258
+ color: hsl(var(--primary));
259
+ margin: 0 auto;
260
+ overflow-x: auto;
261
+ max-width: 600px;
262
+ position: relative;
263
+ animation: fadeInUp 0.8s ease-out 0.6s both;
264
+ }
265
+
266
+ .code-snippet::before {
267
+ content: '';
268
+ position: absolute;
269
+ top: 0;
270
+ left: 0;
271
+ right: 0;
272
+ height: 2px;
273
+ background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--primary) / 0.5));
274
+ }
275
+
276
+ /* Quick Features Row */
277
+ .quick-features {
278
+ padding: 3rem 0;
279
+ background: hsl(var(--background));
280
+ border-bottom: 1px solid hsl(var(--border));
281
+ }
282
+
283
+ .quick-features-grid {
284
+ display: grid;
285
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
286
+ gap: 2rem;
287
+ margin-top: 2rem;
288
+ }
289
+
290
+ .quick-feature {
291
+ text-align: center;
292
+ padding: 1.5rem;
293
+ transition: transform 0.3s ease;
294
+ }
295
+
296
+ .quick-feature:hover {
297
+ transform: translateY(-5px);
298
+ }
299
+
300
+ .quick-feature-icon {
301
+ font-size: 2.5rem;
302
+ margin-bottom: 1rem;
303
+ display: block;
304
+ }
305
+
306
+ .quick-feature h3 {
307
+ font-size: 1.125rem;
308
+ font-weight: 600;
309
+ margin-bottom: 0.75rem;
310
+ color: hsl(var(--foreground));
311
+ }
312
+
313
+ .quick-feature p {
314
+ color: hsl(var(--muted-foreground));
315
+ font-size: 0.95rem;
316
+ line-height: 1.5;
317
+ }
318
+
319
+ /* Wave Divider */
320
+ .wave-divider {
321
+ height: 100px;
322
+ background: hsl(var(--background));
323
+ position: relative;
324
+ overflow: hidden;
325
+ }
326
+
327
+ .wave-divider::before {
328
+ content: '';
329
+ position: absolute;
330
+ bottom: 0;
331
+ left: 0;
332
+ width: 200%;
333
+ height: 100%;
334
+ background: hsl(var(--card));
335
+ border-radius: 50%;
336
+ animation: wave 8s ease-in-out infinite;
337
+ }
338
+
339
+ @keyframes wave {
340
+ 0%, 100% {
341
+ transform: translateX(-50%) translateY(60%);
342
+ }
343
+ 50% {
344
+ transform: translateX(-50%) translateY(40%);
345
+ }
346
+ }
347
+
348
+ .features {
349
+ padding: 4rem 0;
350
+ background: hsl(var(--card));
351
+ }
352
+
353
+ .features-grid {
354
+ display: grid;
355
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
356
+ gap: 2rem;
357
+ margin-top: 3rem;
358
+ }
359
+
360
+ .feature-card {
361
+ padding: 2rem;
362
+ background: hsl(var(--background));
363
+ border: 1px solid hsl(var(--border));
364
+ border-radius: var(--radius);
365
+ transition: all 0.3s ease;
366
+ position: relative;
367
+ overflow: hidden;
368
+ }
369
+
370
+ .feature-card::before {
371
+ content: '';
372
+ position: absolute;
373
+ top: -2px;
374
+ left: -2px;
375
+ right: -2px;
376
+ bottom: -2px;
377
+ background: linear-gradient(45deg, hsl(var(--primary) / 0.1), transparent, hsl(var(--primary) / 0.1));
378
+ border-radius: var(--radius);
379
+ z-index: -1;
380
+ opacity: 0;
381
+ transition: opacity 0.3s ease;
382
+ }
383
+
384
+ .feature-card:hover::before {
385
+ opacity: 1;
386
+ }
387
+
388
+ .feature-card:hover {
389
+ transform: translateY(-8px);
390
+ box-shadow: 0 25px 50px hsl(var(--foreground) / 0.15);
391
+ }
392
+
393
+ .feature-icon {
394
+ width: 3rem;
395
+ height: 3rem;
396
+ background: linear-gradient(135deg, hsl(var(--primary) / 0.1), hsl(var(--primary) / 0.2));
397
+ border-radius: 50%;
398
+ display: flex;
399
+ align-items: center;
400
+ justify-content: center;
401
+ margin-bottom: 1rem;
402
+ font-size: 1.5rem;
403
+ color: hsl(var(--primary));
404
+ transition: transform 0.3s ease;
405
+ }
406
+
407
+ .feature-card:hover .feature-icon {
408
+ transform: rotate(360deg) scale(1.1);
409
+ }
410
+
411
+ .feature-card h3 {
412
+ font-size: 1.25rem;
413
+ font-weight: 600;
414
+ margin-bottom: 0.75rem;
415
+ color: hsl(var(--card-foreground));
416
+ }
417
+
418
+ .feature-card p {
419
+ color: hsl(var(--muted-foreground));
420
+ line-height: 1.6;
421
+ }
422
+
423
+ .section-title {
424
+ text-align: center;
425
+ font-size: 2.5rem;
426
+ font-weight: 700;
427
+ margin-bottom: 1rem;
428
+ background: linear-gradient(135deg, hsl(var(--foreground)), hsl(var(--primary)));
429
+ -webkit-background-clip: text;
430
+ -webkit-text-fill-color: transparent;
431
+ background-clip: text;
432
+ }
433
+
434
+ .section-subtitle {
435
+ text-align: center;
436
+ color: hsl(var(--muted-foreground));
437
+ font-size: 1.1rem;
438
+ }
439
+
440
+ .footer {
441
+ padding: 3rem 0;
442
+ border-top: 1px solid hsl(var(--border));
443
+ text-align: center;
444
+ }
445
+
446
+ .disclaimer {
447
+ background: hsl(var(--muted));
448
+ color: hsl(var(--muted-foreground));
449
+ padding: 1.5rem;
450
+ border-radius: var(--radius);
451
+ margin-bottom: 2rem;
452
+ border-left: 4px solid hsl(var(--primary));
453
+ }
454
+
455
+ .disclaimer h4 {
456
+ font-weight: 600;
457
+ margin-bottom: 0.5rem;
458
+ color: hsl(var(--foreground));
459
+ }
460
+
461
+ .theme-toggle {
462
+ position: fixed;
463
+ top: 2rem;
464
+ right: 2rem;
465
+ background: hsl(var(--card));
466
+ border: 1px solid hsl(var(--border));
467
+ color: hsl(var(--card-foreground));
468
+ padding: 0.75rem;
469
+ border-radius: var(--radius);
470
+ cursor: pointer;
471
+ font-size: 1.2rem;
472
+ transition: all 0.3s ease;
473
+ z-index: 1000;
474
+ }
475
+
476
+ .theme-toggle:hover {
477
+ background: hsl(var(--accent));
478
+ transform: scale(1.1) rotate(180deg);
479
+ }
480
+
481
+ @keyframes fadeInUp {
482
+ from {
483
+ opacity: 0;
484
+ transform: translateY(30px);
485
+ }
486
+ to {
487
+ opacity: 1;
488
+ transform: translateY(0);
489
+ }
490
+ }
491
+
492
+ @media (max-width: 768px) {
493
+ .hero-tagline {
494
+ font-size: 1.5rem;
495
+ }
496
+
497
+ .nav-links {
498
+ flex-direction: column;
499
+ align-items: center;
500
+ }
501
+
502
+ .nav-link {
503
+ width: 200px;
504
+ text-align: center;
505
+ }
506
+
507
+ .container {
508
+ padding: 0 1rem;
509
+ }
510
+
511
+ .quick-features-grid {
512
+ grid-template-columns: 1fr;
513
+ }
514
+
515
+ .floating-code {
516
+ display: none;
517
+ }
518
+ }
519
+ /* Style for Try Now button in disclaimer */
520
+ .disclaimer .cta-button {
521
+ font-size: 1rem;
522
+ padding: 0.7rem 2rem !important;
523
+ margin: 0.5rem auto 1rem auto;
524
+ display: inline-block;
525
+ box-shadow: 0 2px 8px hsl(var(--primary) / 0.10);
526
+ }
527
+ .disclaimer div {
528
+ text-align: center;
529
+ }
530
+ </style>
531
+ </head>
532
+ <body>
533
+ <div class="background-elements">
534
+ <div class="floating-code">function analyzeCode() { return insights; }</div>
535
+ <div class="floating-code">const agent = new AgentTide();</div>
536
+ <div class="floating-code">// Precision-driven refactoring</div>
537
+ <div class="floating-code">import { structuralAnalysis } from 'codetide';</div>
538
+ </div>
539
+
540
+ <button class="theme-toggle" onclick="toggleTheme()">πŸŒ™</button>
541
+
542
+ <header class="header">
543
+ <div class="container">
544
+ <img src="/static/logo_dark.png" alt="AgentTide Logo" class="logo">
545
+ </div>
546
+ </header>
547
+
548
+ <section class="hero">
549
+ <div class="container">
550
+ <h1 class="hero-tagline">AI Agents for Smarter Codebases</h1>
551
+ <p class="subtitle">
552
+ The next-generation, <span class="highlight">precision-driven</span> software engineering agent built on top of CodeTide.
553
+ Experience intelligent code generation with full <span class="highlight">structural understanding</span> of your codebase.
554
+ </p>
555
+
556
+ <div class="nav-links">
557
+ <a href="https://github.com/BrunoV21/CodeTide" class="nav-link">GitHub</a>
558
+ <a href="https://docs.codetide.dev" class="nav-link">Documentation</a>
559
+ <a href="{{ DEMO_BASE_URL }}/tide" class="nav-link cta-button">Try Now</a>
560
+ </div>
561
+
562
+ <div class="code-snippet">
563
+ $ uvx --from codetide[agents-ui] agent-tide-ui
564
+ </div>
565
+ </div>
566
+ </section>
567
+
568
+ <section class="quick-features">
569
+ <div class="container">
570
+ <div class="quick-features-grid">
571
+ <div class="quick-feature">
572
+ <span class="quick-feature-icon">🧠</span>
573
+ <h3>Understands Your Codebase</h3>
574
+ <p>Deep structural analysis of your entire project for context-aware modifications</p>
575
+ </div>
576
+
577
+ <div class="quick-feature">
578
+ <span class="quick-feature-icon">⚑</span>
579
+ <h3>Intelligent Refactoring</h3>
580
+ <p>Automated code improvements that maintain functionality while enhancing quality</p>
581
+ </div>
582
+
583
+ <div class="quick-feature">
584
+ <span class="quick-feature-icon">πŸ”—</span>
585
+ <h3>Seamless GitHub Integration</h3>
586
+ <p>Direct repository analysis and patch generation with full version control support</p>
587
+ </div>
588
+
589
+ <div class="quick-feature">
590
+ <span class="quick-feature-icon">🌊</span>
591
+ <h3>CodeTide MCP Support</h3>
592
+ <p>Empower AI agents and tools with dynamic codebase interaction while keeping your data secure.</p>
593
+ </div>
594
+ </div>
595
+ </div>
596
+ </section>
597
+
598
+ <div class="wave-divider"></div>
599
+
600
+ <section class="features">
601
+ <div class="container">
602
+ <h2 class="section-title">Why Choose AgentTide?</h2>
603
+ <p class="section-subtitle">Experience the power of context-aware, privacy-first software engineering</p>
604
+
605
+ <div class="features-grid">
606
+ <div class="feature-card">
607
+ <div class="feature-icon">πŸ”’</div>
608
+ <h3>Local-First & Private</h3>
609
+ <p>All code analysis and patching is performed locally. Your code never leaves your machine, ensuring complete privacy and security.</p>
610
+ </div>
611
+
612
+ <div class="feature-card">
613
+ <div class="feature-icon">πŸ‘οΈ</div>
614
+ <h3>Transparent & Stepwise</h3>
615
+ <p>See every plan and patch before it's applied. Edit, reorder, or approve steps-you're always in control of the process.</p>
616
+ </div>
617
+
618
+ <div class="feature-card">
619
+ <div class="feature-icon">🧠</div>
620
+ <h3>Context-Aware</h3>
621
+ <p>AgentTide loads only the relevant code identifiers and dependencies for your request, making it fast and precise.</p>
622
+ </div>
623
+
624
+ <div class="feature-card">
625
+ <div class="feature-icon">🀝</div>
626
+ <h3>Human-in-the-Loop</h3>
627
+ <p>After each step, review the patch, provide feedback, or continue-no black-box agent behavior.</p>
628
+ </div>
629
+
630
+ <div class="feature-card">
631
+ <div class="feature-icon">⚑</div>
632
+ <h3>Patch-Based Editing</h3>
633
+ <p>All changes are atomic diffs, not full file rewrites, for maximum clarity and efficiency.</p>
634
+ </div>
635
+
636
+ <div class="feature-card">
637
+ <div class="feature-icon">🎯</div>
638
+ <h3>Precision-Driven</h3>
639
+ <p>Built on CodeTide's symbolic code understanding for accurate, context-aware code modifications.</p>
640
+ </div>
641
+ </div>
642
+ </div>
643
+ </section>
644
+
645
+ <footer class="footer">
646
+ <div class="container">
647
+ <div class="disclaimer">
648
+ <h4>Getting Started</h4>
649
+ <p>
650
+ To use AgentTide, you'll need to provide a GitHub repository URL to give the agent context about your codebase.
651
+ You can use one of our pre-configured free LLM providers or bring your own model.
652
+ We do not persist any data regarding Git repositories or API keys - everything stays local and private.
653
+ </p>
654
+ <div style="text-align:center; margin-top: 1.5rem;">
655
+ <a href="{{ DEMO_BASE_URL }}/tide" class="nav-link cta-button">Try Now</a>
656
+ </div>
657
+
658
+ <p>&copy; 2025 AgentTide. Built with CodeTide. Licensed under Apache 2.0.</p>
659
+ </div>
660
+ </footer>
661
+
662
+ <script>
663
+ function toggleTheme() {
664
+ const html = document.documentElement;
665
+ const button = document.querySelector('.theme-toggle');
666
+
667
+ if (html.classList.contains('dark')) {
668
+ html.classList.remove('dark');
669
+ html.classList.add('light');
670
+ button.textContent = 'β˜€οΈ';
671
+ } else {
672
+ html.classList.remove('light');
673
+ html.classList.add('dark');
674
+ button.textContent = 'πŸŒ™';
675
+ }
676
+ }
677
+
678
+ // Initialize theme based on system preference
679
+ if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
680
+ document.documentElement.classList.remove('dark');
681
+ document.documentElement.classList.add('light');
682
+ document.querySelector('.theme-toggle').textContent = 'β˜€οΈ';
683
+ }
684
+ </script>
685
+ </body>
686
+ </html>