khoj 1.17.1.dev222__py3-none-any.whl → 1.20.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. khoj/routers/web_client.py +29 -130
  2. {khoj-1.17.1.dev222.dist-info → khoj-1.20.0.dist-info}/METADATA +1 -1
  3. {khoj-1.17.1.dev222.dist-info → khoj-1.20.0.dist-info}/RECORD +6 -52
  4. khoj/interface/web/404.html +0 -56
  5. khoj/interface/web/agent.html +0 -312
  6. khoj/interface/web/agents.html +0 -276
  7. khoj/interface/web/assets/icons/cancel.svg +0 -3
  8. khoj/interface/web/assets/icons/collapse.svg +0 -17
  9. khoj/interface/web/assets/icons/computer.png +0 -0
  10. khoj/interface/web/assets/icons/confirm-icon.svg +0 -1
  11. khoj/interface/web/assets/icons/copy-button-success.svg +0 -6
  12. khoj/interface/web/assets/icons/copy-button.svg +0 -5
  13. khoj/interface/web/assets/icons/credit-card.png +0 -0
  14. khoj/interface/web/assets/icons/delete.svg +0 -26
  15. khoj/interface/web/assets/icons/docx.svg +0 -7
  16. khoj/interface/web/assets/icons/edit.svg +0 -4
  17. khoj/interface/web/assets/icons/favicon.icns +0 -0
  18. khoj/interface/web/assets/icons/key.svg +0 -4
  19. khoj/interface/web/assets/icons/markdown.svg +0 -1
  20. khoj/interface/web/assets/icons/new.svg +0 -23
  21. khoj/interface/web/assets/icons/notion.svg +0 -4
  22. khoj/interface/web/assets/icons/openai-logomark.svg +0 -1
  23. khoj/interface/web/assets/icons/org.svg +0 -1
  24. khoj/interface/web/assets/icons/pdf.svg +0 -23
  25. khoj/interface/web/assets/icons/pencil-edit.svg +0 -5
  26. khoj/interface/web/assets/icons/plaintext.svg +0 -1
  27. khoj/interface/web/assets/icons/question-mark-icon.svg +0 -1
  28. khoj/interface/web/assets/icons/send.svg +0 -1
  29. khoj/interface/web/assets/icons/share.svg +0 -8
  30. khoj/interface/web/assets/icons/speaker.svg +0 -4
  31. khoj/interface/web/assets/icons/stop-solid.svg +0 -37
  32. khoj/interface/web/assets/icons/thumbs-down-svgrepo-com.svg +0 -6
  33. khoj/interface/web/assets/icons/thumbs-up-svgrepo-com.svg +0 -6
  34. khoj/interface/web/assets/icons/user-silhouette.svg +0 -4
  35. khoj/interface/web/assets/icons/voice.svg +0 -8
  36. khoj/interface/web/assets/icons/web.svg +0 -2
  37. khoj/interface/web/assets/icons/whatsapp.svg +0 -17
  38. khoj/interface/web/assets/markdown-it.min.js +0 -8476
  39. khoj/interface/web/assets/natural-cron.min.js +0 -1
  40. khoj/interface/web/assets/org.min.js +0 -1823
  41. khoj/interface/web/assets/pico.min.css +0 -5
  42. khoj/interface/web/assets/purify.min.js +0 -3
  43. khoj/interface/web/chat.html +0 -3436
  44. khoj/interface/web/config_automation.html +0 -1103
  45. khoj/interface/web/content_source_computer_input.html +0 -139
  46. khoj/interface/web/content_source_notion_input.html +0 -94
  47. khoj/interface/web/public_conversation.html +0 -2006
  48. khoj/interface/web/search.html +0 -470
  49. khoj/interface/web/settings.html +0 -1011
  50. {khoj-1.17.1.dev222.dist-info → khoj-1.20.0.dist-info}/WHEEL +0 -0
  51. {khoj-1.17.1.dev222.dist-info → khoj-1.20.0.dist-info}/entry_points.txt +0 -0
  52. {khoj-1.17.1.dev222.dist-info → khoj-1.20.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,27 +1,16 @@
1
1
  # System Packages
2
2
  import json
3
3
  import os
4
- from typing import Optional
5
4
 
6
5
  from fastapi import APIRouter, Request
7
6
  from fastapi.responses import FileResponse, HTMLResponse, RedirectResponse
8
7
  from fastapi.templating import Jinja2Templates
9
8
  from starlette.authentication import requires
10
9
 
11
- from khoj.database.adapters import (
12
- AgentAdapters,
13
- PublicConversationAdapters,
14
- get_user_github_config,
15
- get_user_notion_config,
16
- )
17
- from khoj.database.models import KhojUser
10
+ from khoj.database.adapters import get_user_github_config
18
11
  from khoj.routers.helpers import get_next_url, get_user_config
19
- from khoj.utils import constants, state
20
- from khoj.utils.rawconfig import (
21
- GithubContentConfig,
22
- GithubRepoConfig,
23
- NotionContentConfig,
24
- )
12
+ from khoj.utils import constants
13
+ from khoj.utils.rawconfig import GithubContentConfig, GithubRepoConfig
25
14
 
26
15
  # Initialize Router
27
16
  web_client = APIRouter()
@@ -30,39 +19,36 @@ templates = Jinja2Templates([constants.web_directory, constants.next_js_director
30
19
 
31
20
  # Create Routes
32
21
  @web_client.get("/", response_class=FileResponse)
33
- @requires(["authenticated"], redirect="login_page")
34
22
  def index(request: Request):
35
- user = request.user.object
36
- user_config = get_user_config(user, request)
37
-
38
- return templates.TemplateResponse("chat.html", context=user_config)
23
+ return templates.TemplateResponse("index.html", context={"request": request})
39
24
 
40
25
 
41
26
  @web_client.post("/", response_class=FileResponse)
42
27
  @requires(["authenticated"], redirect="login_page")
43
28
  def index_post(request: Request):
44
- user = request.user.object
45
- user_config = get_user_config(user, request)
46
-
47
- return templates.TemplateResponse("chat.html", context=user_config)
29
+ return templates.TemplateResponse("index.html", context={"request": request})
48
30
 
49
31
 
50
32
  @web_client.get("/search", response_class=FileResponse)
51
33
  @requires(["authenticated"], redirect="login_page")
52
34
  def search_page(request: Request):
53
- user = request.user.object
54
- user_config = get_user_config(user, request)
55
-
56
- return templates.TemplateResponse("search.html", context=user_config)
35
+ return templates.TemplateResponse(
36
+ "search/index.html",
37
+ context={
38
+ "request": request,
39
+ },
40
+ )
57
41
 
58
42
 
59
43
  @web_client.get("/chat", response_class=FileResponse)
60
44
  @requires(["authenticated"], redirect="login_page")
61
45
  def chat_page(request: Request):
62
- user = request.user.object
63
- user_config = get_user_config(user, request)
64
-
65
- return templates.TemplateResponse("chat.html", context=user_config)
46
+ return templates.TemplateResponse(
47
+ "chat/index.html",
48
+ context={
49
+ "request": request,
50
+ },
51
+ )
66
52
 
67
53
 
68
54
  @web_client.get("/experimental", response_class=FileResponse)
@@ -113,38 +99,10 @@ def agents_page(request: Request):
113
99
  )
114
100
 
115
101
 
116
- @web_client.get("/agent/{agent_slug}", response_class=HTMLResponse)
117
- def agent_page(request: Request, agent_slug: str):
118
- user: KhojUser = request.user.object if request.user.is_authenticated else None
119
- user_config = get_user_config(user, request)
120
- agent = AgentAdapters.get_agent_by_slug(agent_slug)
121
-
122
- if agent == None:
123
- user_config["has_documents"] = False
124
- return templates.TemplateResponse("404.html", context=user_config)
125
-
126
- user_config["agent"] = {
127
- "slug": agent.slug,
128
- "avatar": agent.avatar,
129
- "name": agent.name,
130
- "personality": agent.personality,
131
- "public": agent.public,
132
- "creator": agent.creator.username if agent.creator else None,
133
- "managed_by_admin": agent.managed_by_admin,
134
- "chat_model": agent.chat_model.chat_model,
135
- "creator_not_self": agent.creator != user,
136
- }
137
-
138
- return templates.TemplateResponse("agent.html", context=user_config)
139
-
140
-
141
102
  @web_client.get("/settings", response_class=HTMLResponse)
142
103
  @requires(["authenticated"], redirect="login_page")
143
104
  def config_page(request: Request):
144
- user: KhojUser = request.user.object
145
- user_config = get_user_config(user, request, is_detailed=True)
146
-
147
- return templates.TemplateResponse("settings.html", context=user_config)
105
+ return templates.TemplateResponse("settings/index.html", context={"request": request})
148
106
 
149
107
 
150
108
  @web_client.get("/settings/content/github", response_class=HTMLResponse)
@@ -177,82 +135,23 @@ def github_config_page(request: Request):
177
135
  return templates.TemplateResponse("content_source_github_input.html", context=user_config)
178
136
 
179
137
 
180
- @web_client.get("/settings/content/notion", response_class=HTMLResponse)
181
- @requires(["authenticated"], redirect="login_page")
182
- def notion_config_page(request: Request):
183
- user = request.user.object
184
- user_config = get_user_config(user, request)
185
-
186
- current_notion_config = get_user_notion_config(user)
187
- token = current_notion_config.token if current_notion_config else ""
188
- current_config = NotionContentConfig(token=token)
189
- current_config = json.loads(current_config.model_dump_json())
190
-
191
- user_config["current_config"] = current_config
192
- return templates.TemplateResponse("content_source_notion_input.html", context=user_config)
193
-
194
-
195
- @web_client.get("/settings/content/computer", response_class=HTMLResponse)
196
- @requires(["authenticated"], redirect="login_page")
197
- def computer_config_page(request: Request):
198
- user = request.user.object if request.user.is_authenticated else None
199
- user_config = get_user_config(user, request)
200
-
201
- return templates.TemplateResponse("content_source_computer_input.html", context=user_config)
202
-
203
-
204
138
  @web_client.get("/share/chat/{public_conversation_slug}", response_class=HTMLResponse)
205
139
  def view_public_conversation(request: Request):
206
- public_conversation_slug = request.path_params.get("public_conversation_slug")
207
- public_conversation = PublicConversationAdapters.get_public_conversation_by_slug(public_conversation_slug)
208
- if not public_conversation:
209
- return templates.TemplateResponse(
210
- "404.html",
211
- context={
212
- "request": request,
213
- "khoj_version": state.khoj_version,
214
- },
215
- )
216
- user = request.user.object if request.user.is_authenticated else None
217
- user_config = get_user_config(user, request)
218
- user_config["public_conversation_slug"] = public_conversation_slug
219
- user_config["google_client_id"] = os.environ.get("GOOGLE_CLIENT_ID")
220
-
221
- all_agents = AgentAdapters.get_all_accessible_agents(request.user.object if request.user.is_authenticated else None)
222
-
223
- # Filter out the current agent
224
- all_agents = [agent for agent in all_agents if agent != public_conversation.agent]
225
- agents_packet = []
226
- for agent in all_agents:
227
- agents_packet.append(
228
- {
229
- "slug": agent.slug,
230
- "avatar": agent.avatar,
231
- "name": agent.name,
232
- }
233
- )
234
- user_config["agents"] = agents_packet
235
-
236
- redirect_uri = str(request.app.url_path_for("auth"))
237
- next_url = str(
238
- request.app.url_path_for("view_public_conversation", public_conversation_slug=public_conversation_slug)
140
+ return templates.TemplateResponse(
141
+ "share/chat/index.html",
142
+ context={
143
+ "request": request,
144
+ },
239
145
  )
240
- user_config["redirect_uri"] = f"{redirect_uri}?next={next_url}"
241
-
242
- return templates.TemplateResponse("public_conversation.html", context=user_config)
243
146
 
244
147
 
245
148
  @web_client.get("/automations", response_class=HTMLResponse)
246
149
  def automations_config_page(
247
150
  request: Request,
248
- subject: Optional[str] = None,
249
- crontime: Optional[str] = None,
250
- queryToRun: Optional[str] = None,
251
151
  ):
252
- user = request.user.object if request.user.is_authenticated else None
253
- user_config = get_user_config(user, request)
254
- user_config["subject"] = subject if subject else ""
255
- user_config["crontime"] = crontime if crontime else ""
256
- user_config["queryToRun"] = queryToRun if queryToRun else ""
257
-
258
- return templates.TemplateResponse("config_automation.html", context=user_config)
152
+ return templates.TemplateResponse(
153
+ "automations/index.html",
154
+ context={
155
+ "request": request,
156
+ },
157
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.17.1.dev222
3
+ Version: 1.20.0
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -85,73 +85,27 @@ khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmk
85
85
  khoj/interface/email/magic_link.html,sha256=jXY_2hD3o15Ns5UDzbjLT8FHBnZiS7jo38YkYXIS-4w,947
86
86
  khoj/interface/email/task.html,sha256=yXywzC-5P4nXbhqvgCmwcCpTRbD5eWuDXMpgYSotztM,3311
87
87
  khoj/interface/email/welcome.html,sha256=Z4RP5J6c62adF7teH84OGx37shdsFzWQBwQjgfMjjUU,6577
88
- khoj/interface/web/404.html,sha256=_WKN17MwiW1b1-8-vx240ZxTO2LmPUh5YnUCaGQpoZk,1651
89
- khoj/interface/web/agent.html,sha256=vH3p6gwGlKkNmGO_TSwJMoOvZMvv8t4K8GwaN0QuOAU,9901
90
- khoj/interface/web/agents.html,sha256=_6WZIYGav87WGJR9QA_UTLESD_itSINuxVOl3ybnRRM,9320
91
88
  khoj/interface/web/base_config.html,sha256=vORIYJQ5UzaA3TAMcywRisk-YaaJEwkVAiEJGsbYxvA,12173
92
- khoj/interface/web/chat.html,sha256=0qLswm0SOQJ2ZbNOy968Mc9g14Lq0vYtF5zDIAeS0d8,149786
93
- khoj/interface/web/config_automation.html,sha256=B_-uUBi-uVlhPqFNsxxNdp-m0BGST0maqJ1qTzfkkzA,46095
94
- khoj/interface/web/content_source_computer_input.html,sha256=PGtEmmsAc0g0DQM5sNlvC5SexGzmn5aC6HYUvm3qr54,5956
95
89
  khoj/interface/web/content_source_github_input.html,sha256=YpsLBpsATW08ttrGysqktx2EczC4nebKlvWpwxtwmFY,8249
96
- khoj/interface/web/content_source_notion_input.html,sha256=0GB_q2uVQHLrz5dIT18LpzVcb-1LdbFlIUprxeZJgUk,3649
97
90
  khoj/interface/web/khoj.webmanifest,sha256=G_Aphzn6SMaY73AYLCD12mgztZvagh_U2YpkjQXIY1U,1628
98
91
  khoj/interface/web/login.html,sha256=U3rb0bZg06-dcR6swB-Ho33DX8V9-cqa-70yPIj8pKY,6838
99
- khoj/interface/web/public_conversation.html,sha256=tMmjO2Dz6Wcn83uTn_zvEg8yz_NNeuo_Jhv_vCO8JJ4,76251
100
- khoj/interface/web/search.html,sha256=vEgN-SHWuK6arArgvIn5uetsCb4tN2i19CWCr-p7Z0U,18329
101
- khoj/interface/web/settings.html,sha256=rVqlMrsxlXeH0oAKZwMn902nNICpwlVkdklfHLsUnxk,45908
102
92
  khoj/interface/web/utils.html,sha256=_UrcCvSkx1SAzhlTsvrj9LFlnJuJ-_cMtz6HY-rEIkI,3143
103
93
  khoj/interface/web/assets/khoj.css,sha256=rhW8-RwvkpTC5GbtBt0EByaXaHjlxpxPYxrUuzMWDC0,5659
104
- khoj/interface/web/assets/markdown-it.min.js,sha256=zu3EiJi63wq7KFBdLv3zrWI2enxgn3Ia-IKhWlTDIco,275822
105
- khoj/interface/web/assets/natural-cron.min.js,sha256=sck3Rmq6AUapLuBwj4A516n_BYQ2eNEICgQzwS83s0A,15760
106
- khoj/interface/web/assets/org.min.js,sha256=W-5YPxbKcOsA4Hisdc2agHF5XuyVlm3gpcppaloK7G8,58643
107
- khoj/interface/web/assets/pico.min.css,sha256=cjD_iUc4VEfrXRza2MvJiMWD3dxhtqV-9rT0rEfCJpA,73396
108
- khoj/interface/web/assets/purify.min.js,sha256=g8iGk4ZBsoelviNZVQcHkDe0trvTdboSo-QqnpDTYXc,21820
109
94
  khoj/interface/web/assets/utils.js,sha256=A22W1nOVuD1osI7TtZC8fZ0r1g4pE66tXQ_4XNbhreo,1269
110
95
  khoj/interface/web/assets/icons/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
111
96
  khoj/interface/web/assets/icons/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
112
- khoj/interface/web/assets/icons/cancel.svg,sha256=TDele79GSH_mnRsxEyw79uPd4lCmPXKlJ-tjFukICNU,1135
113
97
  khoj/interface/web/assets/icons/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
114
- khoj/interface/web/assets/icons/collapse.svg,sha256=0c35Qs68J-uGnj0yEFJSKgKdBxd_4AYMyynyoMAofbc,1661
115
- khoj/interface/web/assets/icons/computer.png,sha256=zScL3g154eH07qcMrEixLGRG6jSOBPq_A0w9DdQOsY8,10517
116
- khoj/interface/web/assets/icons/confirm-icon.svg,sha256=E-a5CML88ugwNdxoVk8jjA43oJag5mW9k7e0YjrScdw,549
117
- khoj/interface/web/assets/icons/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
118
- khoj/interface/web/assets/icons/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
119
- khoj/interface/web/assets/icons/credit-card.png,sha256=uPBC5CRzKUcRq4Vm4cjAd-RQsr4F6c-ksbvrCatFwGc,19662
120
- khoj/interface/web/assets/icons/delete.svg,sha256=wgVI_WiV_cGEsNg8DWUEhnu5DkjkWeI8xyIcFu1OTaA,914
121
- khoj/interface/web/assets/icons/docx.svg,sha256=o_WbsAvXgaKAsNMwY3VaEeUvmxzjqEt4fRvcna8rS2Q,1325
122
- khoj/interface/web/assets/icons/edit.svg,sha256=7aaMUYte2aSC3XsYMwzjx2pST1Bt34gLmiqA9N_aZ6A,571
123
98
  khoj/interface/web/assets/icons/favicon-128x128.ico,sha256=JMZf9aZor9AUbh5kuFNDaG3Mjxvoau5k80yRA9ly5TQ,205167
124
99
  khoj/interface/web/assets/icons/favicon-128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
125
100
  khoj/interface/web/assets/icons/favicon-256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
126
- khoj/interface/web/assets/icons/favicon.icns,sha256=34h6qrRMdzx16_d5Cy3zGMKXxztyWxmZjhfRR6oN3Fw,31531
127
101
  khoj/interface/web/assets/icons/github.svg,sha256=E789GwMweG0aU1wJNp0FjWHlFX1AxuA5H0durEnw5hQ,964
128
- khoj/interface/web/assets/icons/key.svg,sha256=ePgqDcsgBhIX6stfcDRlMkNMCggcRp8uoHtONqjj4X0,1100
129
102
  khoj/interface/web/assets/icons/khoj-logo-sideways-200.png,sha256=2_F1PpTZzfjvaHej9jjENx03H1vKtFsVkolwTPLJP9Q,6637
130
103
  khoj/interface/web/assets/icons/khoj-logo-sideways-500.png,sha256=VQsQ20NC-sKYHa9UgAvLM2N25DWRISZUIGW0zhnRres,18603
131
104
  khoj/interface/web/assets/icons/khoj-logo-sideways.svg,sha256=wLU1lBtzZMQNUS5maD0-vqY1q4D0vuqWnRmIUy7odk4,14772
132
105
  khoj/interface/web/assets/icons/khoj.svg,sha256=8QZ0q3vazgY0aGhTT9Um432GbwtY1Vn64vxvAfoSwaI,7967
133
106
  khoj/interface/web/assets/icons/logotype.svg,sha256=diy7UEKDBv9dFtGfE8Y5gf9JTdQUKTnq_dSdC2RGVIA,4031
134
- khoj/interface/web/assets/icons/markdown.svg,sha256=ngHbtxRmKcMVHv8NgscjS-azYp4hgzYQl2g0oGzYSTg,283
135
- khoj/interface/web/assets/icons/new.svg,sha256=pq1O8z7aMhDmWA8kKGLT5RPOpNu16ZOsQfmUdaVWMXs,949
136
- khoj/interface/web/assets/icons/notion.svg,sha256=G1KhhdgWbZM59cFt1ReJ7jD0mmW01Ac4KQtgQj4zEWA,1578
137
- khoj/interface/web/assets/icons/openai-logomark.svg,sha256=BEm8L47fqDkEDqoprIc4yNCOHzeChuTep6dftm0G_68,1736
138
- khoj/interface/web/assets/icons/org.svg,sha256=uWQOQJEV26Segoij2NhxJeDA6ICKtcZ_ihQNg84VsCM,7946
139
- khoj/interface/web/assets/icons/pdf.svg,sha256=lQObG1H7Lhj8CQAqb2dHMbRKg5RUUtiXUqVKgkwXMwU,2504
140
- khoj/interface/web/assets/icons/pencil-edit.svg,sha256=KqpjAdvlMw_VCYsTB5FbVh45LXEpjB9VgOtaqote8YM,1127
141
- khoj/interface/web/assets/icons/plaintext.svg,sha256=vghi0FAsOP_HRozqpv8bMgVgIj_aVkUzzsAu_Gkqnfw,2945
142
- khoj/interface/web/assets/icons/question-mark-icon.svg,sha256=MraaI16kiXfr4-_3Qz3efzX8OvOGrueXyVeBNi5Y6jI,1877
143
107
  khoj/interface/web/assets/icons/search.svg,sha256=TbKdOUEotv16JhpT3WV2Krxi-wTkPK3LrykrJhAkLFM,1210
144
- khoj/interface/web/assets/icons/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
145
- khoj/interface/web/assets/icons/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
146
- khoj/interface/web/assets/icons/speaker.svg,sha256=-CxYU1_iMNP5-YvELdr8phRA-Y-gVT0FC6chIp3VLj4,555
147
- khoj/interface/web/assets/icons/stop-solid.svg,sha256=up-hugJLqHYwFmJSOWkTwZ4rf9fNJHgZ4AtS5uN80_8,1319
148
108
  khoj/interface/web/assets/icons/sync.svg,sha256=ZmwPaLLUBLDkNIly8bC1nCcWNspl30Kneiq-W9oYm34,639
149
- khoj/interface/web/assets/icons/thumbs-down-svgrepo-com.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
150
- khoj/interface/web/assets/icons/thumbs-up-svgrepo-com.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
151
- khoj/interface/web/assets/icons/user-silhouette.svg,sha256=cVcnjO7gaN-sKKl3U5rkG2mx_ioM1ZK2sXTZENPs4yQ,2233
152
- khoj/interface/web/assets/icons/voice.svg,sha256=0tmz0tByFw1BdsBYuY9W5D1ljJJOGWqWllkOS_-E58I,758
153
- khoj/interface/web/assets/icons/web.svg,sha256=N0pAIs1YAXPGq8-3xZsYmsYuHqRuUXmkd5Ebt27MPb4,951
154
- khoj/interface/web/assets/icons/whatsapp.svg,sha256=MaJ44iD_sWNP4Ik_eiOd9KzYYEGMrX8nEo2isRwVNe8,2417
155
109
  khoj/interface/web/assets/samples/desktop-browse-draw-sample.png,sha256=v6u1g7_uEG_xN1D5UrulUC-rUkpzTlSPiUrbfxt4H2g,591182
156
110
  khoj/interface/web/assets/samples/desktop-plain-chat-sample.png,sha256=SG1nFvJ3kWs5F3XXZxnkE-UnXCWY0Mz-EqTeU0nhs30,197173
157
111
  khoj/interface/web/assets/samples/desktop-remember-plan-sample.png,sha256=i9QOSuWE6wKPP-qWcZisBrT3P7kRwq0yXKv7bV-kOSw,268309
@@ -218,7 +172,7 @@ khoj/routers/notion.py,sha256=0iG_DPVjg8n_LBWGHA8M6eHnJJDL-isARSEHTYStz6c,2809
218
172
  khoj/routers/storage.py,sha256=9ZfBsr_omxdFV-Lcj6p30xTQcF_7wwCZ9XFJukzjITE,1429
219
173
  khoj/routers/subscription.py,sha256=qEyV7m7mrY6MGtaij8W3v61tpzX2a7ydm2B-E8h_R-M,4285
220
174
  khoj/routers/twilio.py,sha256=MLsuCm4--ETvr3sLxbF0CL_ehlg_l2rKBSLR2Qh2Xls,1081
221
- khoj/routers/web_client.py,sha256=QraT0eCf7nTqsshSFBP5fWIfisZofk5xVB-818zZLgU,9014
175
+ khoj/routers/web_client.py,sha256=LZDOUyRzlqZxdtNxnPT1LfvGRfH1sgeMGYogSeS2IOs,4708
222
176
  khoj/search_filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
177
  khoj/search_filter/base_filter.py,sha256=BzoZA_wAUg_eZ5vhaaipwVTSG0ZMxWCHxHsZrzo4KS0,358
224
178
  khoj/search_filter/date_filter.py,sha256=4VL63kDVqYKFOzkCeV6R8Z8lxFaAbbn_z_RWaWQNDWY,10103
@@ -238,8 +192,8 @@ khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
238
192
  khoj/utils/rawconfig.py,sha256=luk7Vb_ODuoTdMd_IG-yVXGoyoU-RktyapBG5D1N_VI,3985
239
193
  khoj/utils/state.py,sha256=x4GTewP1YhOA6c_32N4wOjnV-3AA3xG_qbY1-wC2Uxc,1559
240
194
  khoj/utils/yaml.py,sha256=H0mfw0ZvBFUvFmCQn8pWkfxdmIebsrSykza7D8Wv6wQ,1430
241
- khoj-1.17.1.dev222.dist-info/METADATA,sha256=tIGQc0JPS5wnyFxML7sXKMBiY-QaY2NIrRLJacZNWzc,6877
242
- khoj-1.17.1.dev222.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
243
- khoj-1.17.1.dev222.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
244
- khoj-1.17.1.dev222.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
245
- khoj-1.17.1.dev222.dist-info/RECORD,,
195
+ khoj-1.20.0.dist-info/METADATA,sha256=JwRL41lJ61ma7mom1j2XodhEjJzt6O62qb3d5xuaXVo,6870
196
+ khoj-1.20.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
197
+ khoj-1.20.0.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
198
+ khoj-1.20.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
199
+ khoj-1.20.0.dist-info/RECORD,,
@@ -1,56 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Khoj: An AI Personal Assistant for your digital brain</title>
5
- <link rel="icon" type="image/png" sizes="128x128" href="/static/assets/icons/favicon-128x128.png?v={{ khoj_version }}">
6
- <link rel="manifest" href="/static/khoj.webmanifest?v={{ khoj_version }}">
7
- <link rel="stylesheet" href="/static/assets/khoj.css?v={{ khoj_version }}">
8
- </head>
9
- <body class="not-found">
10
- <!--Add Header Logo and Nav Pane-->
11
- {% import 'utils.html' as utils %}
12
- {{ utils.heading_pane(user_photo, username, is_active, has_documents) }}
13
-
14
- <header class=”header”>
15
- <h1>Oops, this is awkward. Looks like there's nothing here.</h1>
16
- </header>
17
- <a class="redirect-link" href="/">Go Home</a>
18
-
19
- <footer class=”footer”>
20
- </footer>
21
- </body>
22
- <style>
23
- body.not-found {
24
- padding: 0 10%
25
- }
26
-
27
- body {
28
- background-color: var(--background-color);
29
- color: var(--main-text-color);
30
- text-align: center;
31
- font-family: var(--font-family);
32
- font-size: medium;
33
- font-weight: 300;
34
- line-height: 1.5em;
35
- height: 100vh;
36
- margin: 0;
37
- }
38
-
39
- body a.redirect-link {
40
- font-size: 18px;
41
- font-weight: bold;
42
- background-color: var(--primary);
43
- text-decoration: none;
44
- border: 1px solid var(--main-text-color);
45
- color: var(--main-text-color);
46
- border-radius: 8px;
47
- padding: 4px;
48
- }
49
-
50
- body a.redirect-link:hover {
51
- background-color: var(--main-text-color);
52
- color: var(--primary);
53
- }
54
-
55
- </style>
56
- </html>