khoj 1.23.3__py3-none-any.whl → 1.23.3.dev4__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 (60) hide show
  1. khoj/database/adapters/__init__.py +4 -0
  2. khoj/database/migrations/0063_conversation_add_unique_id_field.py +19 -0
  3. khoj/database/migrations/0064_populate_unique_id.py +20 -0
  4. khoj/database/migrations/0065_add_unique_constraint_to_unique_id.py +17 -0
  5. khoj/database/models/__init__.py +1 -0
  6. khoj/interface/compiled/404/index.html +1 -1
  7. khoj/interface/compiled/_next/static/chunks/1603-7914d7712a47690d.js +1 -0
  8. khoj/interface/compiled/_next/static/chunks/app/agents/page-cd8e2ba85287e1f6.js +1 -0
  9. khoj/interface/compiled/_next/static/chunks/app/automations/{page-3f4b6ff0261e19b7.js → page-6ea3381528603372.js} +1 -1
  10. khoj/interface/compiled/_next/static/chunks/app/chat/page-5752b57c1e43e8a7.js +1 -0
  11. khoj/interface/compiled/_next/static/chunks/app/factchecker/{page-828cf3c5b8e3af79.js → page-04a19ab1a988976f.js} +1 -1
  12. khoj/interface/compiled/_next/static/chunks/app/page-cd8d5d12595676d7.js +1 -0
  13. khoj/interface/compiled/_next/static/chunks/app/search/{page-dcd385f03255ef36.js → page-fa15807b1ad7e30b.js} +1 -1
  14. khoj/interface/compiled/_next/static/chunks/app/settings/{page-ddcd51147d18c694.js → page-1a2acc46cdabaf4a.js} +1 -1
  15. khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-a84001b4724b5463.js → page-e20f54450d3ce6c0.js} +1 -1
  16. khoj/interface/compiled/_next/static/chunks/{webpack-56df4667546b1c60.js → webpack-072d1cbdec7e1782.js} +1 -1
  17. khoj/interface/compiled/_next/static/css/43939edc2f9b2043.css +1 -0
  18. khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +1 -0
  19. khoj/interface/compiled/agents/index.html +1 -1
  20. khoj/interface/compiled/agents/index.txt +2 -2
  21. khoj/interface/compiled/automations/index.html +1 -1
  22. khoj/interface/compiled/automations/index.txt +2 -2
  23. khoj/interface/compiled/chat/index.html +1 -1
  24. khoj/interface/compiled/chat/index.txt +2 -2
  25. khoj/interface/compiled/factchecker/index.html +1 -1
  26. khoj/interface/compiled/factchecker/index.txt +2 -2
  27. khoj/interface/compiled/index.html +1 -1
  28. khoj/interface/compiled/index.txt +2 -2
  29. khoj/interface/compiled/search/index.html +1 -1
  30. khoj/interface/compiled/search/index.txt +2 -2
  31. khoj/interface/compiled/settings/index.html +1 -1
  32. khoj/interface/compiled/settings/index.txt +2 -2
  33. khoj/interface/compiled/share/chat/index.html +1 -1
  34. khoj/interface/compiled/share/chat/index.txt +2 -2
  35. khoj/interface/email/task.html +34 -31
  36. khoj/interface/email/welcome.html +53 -82
  37. khoj/main.py +1 -1
  38. khoj/processor/content/images/image_to_entries.py +4 -6
  39. khoj/processor/conversation/utils.py +7 -12
  40. khoj/routers/api_chat.py +31 -2
  41. khoj/routers/helpers.py +0 -4
  42. khoj/utils/cli.py +0 -6
  43. khoj/utils/constants.py +2 -9
  44. khoj/utils/initialization.py +71 -158
  45. {khoj-1.23.3.dist-info → khoj-1.23.3.dev4.dist-info}/METADATA +2 -2
  46. {khoj-1.23.3.dist-info → khoj-1.23.3.dev4.dist-info}/RECORD +54 -51
  47. khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js +0 -1
  48. khoj/interface/compiled/_next/static/chunks/app/agents/page-922694b75f1fb67b.js +0 -1
  49. khoj/interface/compiled/_next/static/chunks/app/chat/page-6fac068cc1cca546.js +0 -1
  50. khoj/interface/compiled/_next/static/chunks/app/page-b9e0500234c59a3e.js +0 -1
  51. khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css +0 -1
  52. khoj/interface/compiled/_next/static/css/92c48eece0b102b9.css +0 -1
  53. /khoj/interface/compiled/_next/static/chunks/{8423-ce22327cf2d2edae.js → 8423-14fc72aec9104ce9.js} +0 -0
  54. /khoj/interface/compiled/_next/static/chunks/{9178-3a0baad1c172d515.js → 9178-c153fc402c970365.js} +0 -0
  55. /khoj/interface/compiled/_next/static/chunks/{9417-2e54c6fd056982d8.js → 9417-5d14ac74aaab2c66.js} +0 -0
  56. /khoj/interface/compiled/_next/static/{H8WZzL_OHSsjoAIEAIo8M → d3ySlDLLYAYu1Jr-Dc35R}/_buildManifest.js +0 -0
  57. /khoj/interface/compiled/_next/static/{H8WZzL_OHSsjoAIEAIo8M → d3ySlDLLYAYu1Jr-Dc35R}/_ssgManifest.js +0 -0
  58. {khoj-1.23.3.dist-info → khoj-1.23.3.dev4.dist-info}/WHEEL +0 -0
  59. {khoj-1.23.3.dist-info → khoj-1.23.3.dev4.dist-info}/entry_points.txt +0 -0
  60. {khoj-1.23.3.dist-info → khoj-1.23.3.dev4.dist-info}/licenses/LICENSE +0 -0
@@ -1,37 +1,25 @@
1
1
  import logging
2
2
  import os
3
- from typing import Tuple
4
3
 
5
4
  from khoj.database.adapters import ConversationAdapters
6
5
  from khoj.database.models import (
7
6
  ChatModelOptions,
8
7
  KhojUser,
9
8
  OpenAIProcessorConversationConfig,
10
- ServerChatSettings,
11
9
  SpeechToTextModelOptions,
12
10
  TextToImageModelConfig,
13
11
  )
14
12
  from khoj.processor.conversation.utils import model_to_prompt_size, model_to_tokenizer
15
- from khoj.utils.constants import (
16
- default_anthropic_chat_models,
17
- default_gemini_chat_models,
18
- default_offline_chat_models,
19
- default_openai_chat_models,
20
- )
13
+ from khoj.utils.constants import default_offline_chat_model, default_online_chat_model
21
14
 
22
15
  logger = logging.getLogger(__name__)
23
16
 
24
17
 
25
- def initialization(interactive: bool = True):
18
+ def initialization():
26
19
  def _create_admin_user():
27
20
  logger.info(
28
21
  "👩‍✈️ Setting up admin user. These credentials will allow you to configure your server at /server/admin."
29
22
  )
30
- if not interactive and (not os.getenv("KHOJ_ADMIN_EMAIL") or not os.getenv("KHOJ_ADMIN_PASSWORD")):
31
- logger.error(
32
- "🚨 Admin user cannot be created. Please set the KHOJ_ADMIN_EMAIL, KHOJ_ADMIN_PASSWORD environment variables or start server in interactive mode."
33
- )
34
- exit(1)
35
23
  email_addr = os.getenv("KHOJ_ADMIN_EMAIL") or input("Email: ")
36
24
  password = os.getenv("KHOJ_ADMIN_PASSWORD") or input("Password: ")
37
25
  admin_user = KhojUser.objects.create_superuser(email=email_addr, username=email_addr, password=password)
@@ -39,103 +27,87 @@ def initialization(interactive: bool = True):
39
27
 
40
28
  def _create_chat_configuration():
41
29
  logger.info(
42
- "🗣️ Configure chat models available to your server. You can always update these at /server/admin using your admin account"
30
+ "🗣️ Configure chat models available to your server. You can always update these at /server/admin using the credentials of your admin account"
43
31
  )
44
32
 
45
- # Set up OpenAI's online chat models
46
- openai_configured, openai_provider = _setup_chat_model_provider(
47
- ChatModelOptions.ModelType.OPENAI,
48
- default_openai_chat_models,
49
- default_api_key=os.getenv("OPENAI_API_KEY"),
50
- vision_enabled=True,
51
- is_offline=False,
52
- interactive=interactive,
53
- )
33
+ try:
34
+ use_offline_model = input("Use offline chat model? (y/n): ")
35
+ if use_offline_model == "y":
36
+ logger.info("🗣️ Setting up offline chat model")
54
37
 
55
- # Setup OpenAI speech to text model
56
- if openai_configured:
57
- default_speech2text_model = "whisper-1"
58
- if interactive:
59
- openai_speech2text_model = input(
60
- f"Enter the OpenAI speech to text model you want to use (default: {default_speech2text_model}): "
38
+ offline_chat_model = input(
39
+ f"Enter the offline chat model you want to use. See HuggingFace for available GGUF models (default: {default_offline_chat_model}): "
61
40
  )
62
- openai_speech2text_model = openai_speech2text_model or default_speech2text_model
63
- else:
64
- openai_speech2text_model = default_speech2text_model
41
+ if offline_chat_model == "":
42
+ ChatModelOptions.objects.create(
43
+ chat_model=default_offline_chat_model, model_type=ChatModelOptions.ModelType.OFFLINE
44
+ )
45
+ else:
46
+ default_max_tokens = model_to_prompt_size.get(offline_chat_model, 2000)
47
+ max_tokens = input(
48
+ f"Enter the maximum number of tokens to use for the offline chat model (default {default_max_tokens}):"
49
+ )
50
+ max_tokens = max_tokens or default_max_tokens
51
+
52
+ default_tokenizer = model_to_tokenizer.get(
53
+ offline_chat_model, "hf-internal-testing/llama-tokenizer"
54
+ )
55
+ tokenizer = input(
56
+ f"Enter the tokenizer to use for the offline chat model (default: {default_tokenizer}):"
57
+ )
58
+ tokenizer = tokenizer or default_tokenizer
59
+
60
+ ChatModelOptions.objects.create(
61
+ chat_model=offline_chat_model,
62
+ model_type=ChatModelOptions.ModelType.OFFLINE,
63
+ max_prompt_size=max_tokens,
64
+ tokenizer=tokenizer,
65
+ )
66
+ except ModuleNotFoundError as e:
67
+ logger.warning("Offline models are not supported on this device.")
68
+
69
+ use_openai_model = input("Use OpenAI models? (y/n): ")
70
+ if use_openai_model == "y":
71
+ logger.info("🗣️ Setting up your OpenAI configuration")
72
+ api_key = input("Enter your OpenAI API key: ")
73
+ OpenAIProcessorConversationConfig.objects.create(api_key=api_key)
74
+
75
+ openai_chat_model = input(
76
+ f"Enter the OpenAI chat model you want to use (default: {default_online_chat_model}): "
77
+ )
78
+ openai_chat_model = openai_chat_model or default_online_chat_model
79
+
80
+ default_max_tokens = model_to_prompt_size.get(openai_chat_model, 2000)
81
+ max_tokens = input(
82
+ f"Enter the maximum number of tokens to use for the OpenAI chat model (default: {default_max_tokens}): "
83
+ )
84
+ max_tokens = max_tokens or default_max_tokens
85
+ ChatModelOptions.objects.create(
86
+ chat_model=openai_chat_model, model_type=ChatModelOptions.ModelType.OPENAI, max_prompt_size=max_tokens
87
+ )
88
+
89
+ default_speech2text_model = "whisper-1"
90
+ openai_speech2text_model = input(
91
+ f"Enter the OpenAI speech to text model you want to use (default: {default_speech2text_model}): "
92
+ )
93
+ openai_speech2text_model = openai_speech2text_model or default_speech2text_model
65
94
  SpeechToTextModelOptions.objects.create(
66
95
  model_name=openai_speech2text_model, model_type=SpeechToTextModelOptions.ModelType.OPENAI
67
96
  )
68
97
 
69
- # Setup OpenAI text to image model
70
- if openai_configured:
71
98
  default_text_to_image_model = "dall-e-3"
72
- if interactive:
73
- openai_text_to_image_model = input(
74
- f"Enter the OpenAI text to image model you want to use (default: {default_text_to_image_model}): "
75
- )
76
- openai_text_to_image_model = openai_text_to_image_model or default_text_to_image_model
77
- else:
78
- openai_text_to_image_model = default_text_to_image_model
99
+ openai_text_to_image_model = input(
100
+ f"Enter the OpenAI text to image model you want to use (default: {default_text_to_image_model}): "
101
+ )
102
+ openai_speech2text_model = openai_text_to_image_model or default_text_to_image_model
79
103
  TextToImageModelConfig.objects.create(
80
- model_name=openai_text_to_image_model,
81
- model_type=TextToImageModelConfig.ModelType.OPENAI,
82
- openai_config=openai_provider,
104
+ model_name=openai_text_to_image_model, model_type=TextToImageModelConfig.ModelType.OPENAI
83
105
  )
84
106
 
85
- # Set up Google's Gemini online chat models
86
- _setup_chat_model_provider(
87
- ChatModelOptions.ModelType.GOOGLE,
88
- default_gemini_chat_models,
89
- default_api_key=os.getenv("GEMINI_API_KEY"),
90
- vision_enabled=False,
91
- is_offline=False,
92
- interactive=interactive,
93
- provider_name="Google Gemini",
94
- )
107
+ if use_offline_model == "y" or use_openai_model == "y":
108
+ logger.info("🗣️ Chat model configuration complete")
95
109
 
96
- # Set up Anthropic's online chat models
97
- _setup_chat_model_provider(
98
- ChatModelOptions.ModelType.ANTHROPIC,
99
- default_anthropic_chat_models,
100
- default_api_key=os.getenv("ANTHROPIC_API_KEY"),
101
- vision_enabled=False,
102
- is_offline=False,
103
- interactive=interactive,
104
- )
105
-
106
- # Set up offline chat models
107
- _setup_chat_model_provider(
108
- ChatModelOptions.ModelType.OFFLINE,
109
- default_offline_chat_models,
110
- default_api_key=None,
111
- vision_enabled=False,
112
- is_offline=True,
113
- interactive=interactive,
114
- )
115
-
116
- # Explicitly set default chat model
117
- chat_models_configured = ChatModelOptions.objects.count()
118
- if chat_models_configured > 0:
119
- default_chat_model_name = ChatModelOptions.objects.first().chat_model
120
- # If there are multiple chat models, ask the user to choose the default chat model
121
- if chat_models_configured > 1 and interactive:
122
- user_chat_model_name = input(
123
- f"Enter the default chat model to use (default: {default_chat_model_name}): "
124
- )
125
- else:
126
- user_chat_model_name = None
127
-
128
- # If the user's choice is valid, set it as the default chat model
129
- if user_chat_model_name and ChatModelOptions.objects.filter(chat_model=user_chat_model_name).exists():
130
- default_chat_model_name = user_chat_model_name
131
-
132
- # Create a server chat settings object with the default chat model
133
- default_chat_model = ChatModelOptions.objects.filter(chat_model=default_chat_model_name).first()
134
- ServerChatSettings.objects.create(chat_default=default_chat_model)
135
- logger.info("🗣️ Chat model configuration complete")
136
-
137
- # Set up offline speech to text model
138
- use_offline_speech2text_model = "n" if not interactive else input("Use offline speech to text model? (y/n): ")
110
+ use_offline_speech2text_model = input("Use offline speech to text model? (y/n): ")
139
111
  if use_offline_speech2text_model == "y":
140
112
  logger.info("🗣️ Setting up offline speech to text model")
141
113
  # Delete any existing speech to text model options. There can only be one.
@@ -152,64 +124,6 @@ def initialization(interactive: bool = True):
152
124
 
153
125
  logger.info(f"🗣️ Offline speech to text model configured to {offline_speech2text_model}")
154
126
 
155
- def _setup_chat_model_provider(
156
- model_type: ChatModelOptions.ModelType,
157
- default_chat_models: list,
158
- default_api_key: str,
159
- interactive: bool,
160
- vision_enabled: bool = False,
161
- is_offline: bool = False,
162
- provider_name: str = None,
163
- ) -> Tuple[bool, OpenAIProcessorConversationConfig]:
164
- supported_vision_models = ["gpt-4o-mini", "gpt-4o"]
165
- provider_name = provider_name or model_type.name.capitalize()
166
- default_use_model = {True: "y", False: "n"}[default_api_key is not None or is_offline]
167
- use_model_provider = (
168
- default_use_model if not interactive else input(f"Add {provider_name} chat models? (y/n): ")
169
- )
170
-
171
- if use_model_provider != "y":
172
- return False, None
173
-
174
- logger.info(f"️💬 Setting up your {provider_name} chat configuration")
175
-
176
- chat_model_provider = None
177
- if not is_offline:
178
- if interactive:
179
- user_api_key = input(f"Enter your {provider_name} API key (default: {default_api_key}): ")
180
- api_key = user_api_key if user_api_key != "" else default_api_key
181
- else:
182
- api_key = default_api_key
183
- chat_model_provider = OpenAIProcessorConversationConfig.objects.create(api_key=api_key, name=provider_name)
184
-
185
- if interactive:
186
- chat_model_names = input(
187
- f"Enter the {provider_name} chat models you want to use (default: {','.join(default_chat_models)}): "
188
- )
189
- chat_models = chat_model_names.split(",") if chat_model_names != "" else default_chat_models
190
- chat_models = [model.strip() for model in chat_models]
191
- else:
192
- chat_models = default_chat_models
193
-
194
- for chat_model in chat_models:
195
- default_max_tokens = model_to_prompt_size.get(chat_model)
196
- default_tokenizer = model_to_tokenizer.get(chat_model)
197
- vision_enabled = vision_enabled and chat_model in supported_vision_models
198
-
199
- chat_model_options = {
200
- "chat_model": chat_model,
201
- "model_type": model_type,
202
- "max_prompt_size": default_max_tokens,
203
- "vision_enabled": vision_enabled,
204
- "tokenizer": default_tokenizer,
205
- "openai_config": chat_model_provider,
206
- }
207
-
208
- ChatModelOptions.objects.create(**chat_model_options)
209
-
210
- logger.info(f"🗣️ {provider_name} chat model configuration complete")
211
- return True, chat_model_provider
212
-
213
127
  admin_user = KhojUser.objects.filter(is_staff=True).first()
214
128
  if admin_user is None:
215
129
  while True:
@@ -225,8 +139,7 @@ def initialization(interactive: bool = True):
225
139
  try:
226
140
  _create_chat_configuration()
227
141
  break
228
- # Some environments don't support interactive input. We catch the exception and return if that's the case.
229
- # The admin can still configure their settings from the admin page.
142
+ # Some environments don't support interactive input. We catch the exception and return if that's the case. The admin can still configure their settings from the admin page.
230
143
  except EOFError:
231
144
  return
232
145
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.23.3
3
+ Version: 1.23.3.dev4
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -61,7 +61,7 @@ Requires-Dist: pymupdf>=1.23.5
61
61
  Requires-Dist: python-multipart>=0.0.7
62
62
  Requires-Dist: pytz~=2024.1
63
63
  Requires-Dist: pyyaml~=6.0
64
- Requires-Dist: rapidocr-onnxruntime==1.3.24
64
+ Requires-Dist: rapidocr-onnxruntime==1.3.22
65
65
  Requires-Dist: requests>=2.26.0
66
66
  Requires-Dist: rich>=13.3.1
67
67
  Requires-Dist: schedule==1.1.0
@@ -1,6 +1,6 @@
1
1
  khoj/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  khoj/configure.py,sha256=C5xSS_1ptxgfRfabQ0zZoFteASIS4mCFMvdkdCMVvSs,17019
3
- khoj/main.py,sha256=AyIPyW1ajK-oy3K4EIYPtv0ANMmchFzn_lXWjUo12A8,8171
3
+ khoj/main.py,sha256=58Rssq2H5AM69dA2UyGHye3vPAMp5RRS6xLcGkB_G_w,8147
4
4
  khoj/manage.py,sha256=njo6uLxGaMamTPesHjFEOIBJbpIUrz39e1V59zKj544,664
5
5
  khoj/app/README.md,sha256=PSQjKCdpU2hgszLVF8yEhV7TWhbEEb-1aYLTRuuAsKI,2832
6
6
  khoj/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -11,7 +11,7 @@ khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  khoj/database/admin.py,sha256=bYF13peHgHpugd9bkEwYzO1r-r5l9JIDjCQbdmK3tT8,9166
12
12
  khoj/database/apps.py,sha256=pM4tkX5Odw4YW_hLLKK8Nd5kqGddf1en0oMCea44RZw,153
13
13
  khoj/database/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
14
- khoj/database/adapters/__init__.py,sha256=SwGeweX_1dcLda2Xe53LIvp6rGwGoHfZE1MbD99HxZg,53924
14
+ khoj/database/adapters/__init__.py,sha256=HKZXHIRMkWPM1Vude9i-7oUmIVyN-r9ygIrKL_BCcMk,54097
15
15
  khoj/database/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  khoj/database/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  khoj/database/management/commands/change_generated_images_url.py,sha256=w52FwRlyOL4YRpp9O6jJUjSIuGLxVhaS2w1D7gtQgOE,2644
@@ -90,27 +90,28 @@ khoj/database/migrations/0060_merge_20240905_1828.py,sha256=N6_R-kB3vzV8by1CreOB
90
90
  khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py,sha256=WEln3Co2NLTrjeOXXFQdjI7aOjq04Rg6ekc9BQBKtlA,689
91
91
  khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py,sha256=VAtPkQeYOKX4mMJauYl5kCKhsWwlNYEQKM3zpKyws2A,582
92
92
  khoj/database/migrations/0062_merge_20240913_0222.py,sha256=qmjmY7dGejSVjSqMSasrKOofZOMJho_1Qxnrhlq2Ze8,341
93
+ khoj/database/migrations/0063_conversation_add_unique_id_field.py,sha256=7Fquw11FNzQE5RgxV65YzI0lKLtECAPLb0P3zb_yz-g,433
94
+ khoj/database/migrations/0064_populate_unique_id.py,sha256=pbncdTOvaKADx_WuZ39QBOU5HsXwM8briG2Ye9BkB4M,488
95
+ khoj/database/migrations/0065_add_unique_constraint_to_unique_id.py,sha256=PBpbn8G3_wg8701zWvQMwwdLP3R8w9t04Con1Dr6nrQ,393
93
96
  khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- khoj/database/models/__init__.py,sha256=QbK1nHhv1mr-80YEsB1MEN7FIqxrTgwaBMaMLQ8EJsw,19363
97
+ khoj/database/models/__init__.py,sha256=YY6aNy52WJQjyIvgLdvq5KyPjq8GLXC0565r8y9IR5A,19445
95
98
  khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
96
99
  khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
97
100
  khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
98
101
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
99
102
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
100
103
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
101
- khoj/interface/compiled/index.html,sha256=9gvKCuRSxoDToyzLStoeXSfuQO4v2WupuL5a31UnX8s,12063
102
- khoj/interface/compiled/index.txt,sha256=aFSxcRX0w8KTM7taFs0u1wpT5gKL0jBdwSVMy_Po_c0,5573
104
+ khoj/interface/compiled/index.html,sha256=jL-Wqlv30pemnmrKsga0BX3ZD_WciCGRGX_JuwDaYMc,12063
105
+ khoj/interface/compiled/index.txt,sha256=uubkexRRuCTfLmR3UlhPhSx4b9og232-GG5Ob1_cg34,5573
103
106
  khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
104
107
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
105
108
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
106
109
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
107
110
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
108
111
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
109
- khoj/interface/compiled/404/index.html,sha256=UJSocgf6ZdYv5xJWeYT0UH6V1VFRjxKYQZa8al9rg44,11971
110
- khoj/interface/compiled/_next/static/H8WZzL_OHSsjoAIEAIo8M/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
111
- khoj/interface/compiled/_next/static/H8WZzL_OHSsjoAIEAIo8M/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
112
+ khoj/interface/compiled/404/index.html,sha256=MQ8-NyNWxh-5x_LE-QD1hjKlfz4p3inyUWikv38UCII,11971
112
113
  khoj/interface/compiled/_next/static/chunks/121-7024f479c297aef0.js,sha256=CcRT2AArGYTo7Orl5w69nrnMqdI_EmyEP_YqIj3FU1c,20952
113
- khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js,sha256=CCbOXifiixbhMf7lgTG96225tP1Pou72Wb0Zh6KC1Rs,71007
114
+ khoj/interface/compiled/_next/static/chunks/1603-7914d7712a47690d.js,sha256=FOHfXtkeS7jexkt4fVMYflY1GS--3xOAdtvxHS5Ax3U,71330
114
115
  khoj/interface/compiled/_next/static/chunks/1906-1747a36c336df02c.js,sha256=PAEKTp-H8pKEZTPQiKpr2DiCXzjBG6zJfBgZosV2Vd8,1083851
115
116
  khoj/interface/compiled/_next/static/chunks/3062-9be9a4e34f82ed3a.js,sha256=-CDtDYpliJ2q_0ADcmVkW6rG8KREiU9QY8uDULIgAmA,256214
116
117
  khoj/interface/compiled/_next/static/chunks/3678-0732dd9d2f472171.js,sha256=v6TFD7dor0r5aoeg10fdsNxdHXJty-vyWSIV6A4DYik,244423
@@ -120,11 +121,11 @@ khoj/interface/compiled/_next/static/chunks/6648-ff677e51f1b2bcf1.js,sha256=9bJl
120
121
  khoj/interface/compiled/_next/static/chunks/7023-52c1be60135eb057.js,sha256=CI8R2DdZNEt3nACmiXUG1NnKhnal1ImzXglW-xDuxcI,123657
121
122
  khoj/interface/compiled/_next/static/chunks/7071-b4711cecca6619a8.js,sha256=z-KSur3LbIFPg_90wN0EMhV0et9cJVfG_MR9POVmdCQ,7801
122
123
  khoj/interface/compiled/_next/static/chunks/743-1a64254447cda71f.js,sha256=YH4bEkjmttcOGzAzXKaDCJ-C68jk2qy1cQJP2ljjoAA,100834
123
- khoj/interface/compiled/_next/static/chunks/8423-ce22327cf2d2edae.js,sha256=q03PbOtkL3uoNxrhwlreR4DXAU35lRzmzm1TCJ_YvmY,11359
124
+ khoj/interface/compiled/_next/static/chunks/8423-14fc72aec9104ce9.js,sha256=q03PbOtkL3uoNxrhwlreR4DXAU35lRzmzm1TCJ_YvmY,11359
124
125
  khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js,sha256=Flth4g5eWRwc5YXKFgtTxW0dr13NMy7Bf3iw7bj38J0,34911
125
126
  khoj/interface/compiled/_next/static/chunks/9162-0be016519a18568b.js,sha256=3MT-VTsB7Q-ATTO5X6Eu2-QNZfrZNaAr-R41iRsn3RY,149610
126
- khoj/interface/compiled/_next/static/chunks/9178-3a0baad1c172d515.js,sha256=kDBTe9uINH3f7CDYoKN1rO-YRVon_pczC0Bgz3M0JJ8,17678
127
- khoj/interface/compiled/_next/static/chunks/9417-2e54c6fd056982d8.js,sha256=FZ8xOLMdzrlVmwtcyuQSy8bBwd8_UZ1hH3FlL4DwXpA,17252
127
+ khoj/interface/compiled/_next/static/chunks/9178-c153fc402c970365.js,sha256=kDBTe9uINH3f7CDYoKN1rO-YRVon_pczC0Bgz3M0JJ8,17678
128
+ khoj/interface/compiled/_next/static/chunks/9417-5d14ac74aaab2c66.js,sha256=FZ8xOLMdzrlVmwtcyuQSy8bBwd8_UZ1hH3FlL4DwXpA,17252
128
129
  khoj/interface/compiled/_next/static/chunks/9984-e410179c6fac7cf1.js,sha256=FECyLY1WnBRP9TpLhPHxxmf4nSWwEKX4SLnb3W9UqT8,31305
129
130
  khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js,sha256=wK1TsLdl56xtbQG6HMRDpylzTOYXQaAnnn2xobFnX40,267216
130
131
  khoj/interface/compiled/_next/static/chunks/fd9d1056-2b978342deb60015.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
@@ -132,35 +133,37 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
132
133
  khoj/interface/compiled/_next/static/chunks/main-175c164f5e0f026c.js,sha256=hlUnjERudON4V4kUKprrFz1e9JRtSp4A9i7vnM-1bzA,110324
133
134
  khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
134
135
  khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
135
- khoj/interface/compiled/_next/static/chunks/webpack-56df4667546b1c60.js,sha256=7JGvs-YorE9vKTBIWQMyoGA7JkEgB4Q9XKnM8gxEatw,3721
136
+ khoj/interface/compiled/_next/static/chunks/webpack-072d1cbdec7e1782.js,sha256=iKJsw2a9B84T-qyE2Vmk7EL3zvShBdfBLes8a0ytjUg,3724
136
137
  khoj/interface/compiled/_next/static/chunks/app/layout-f3e40d346da53112.js,sha256=nekGSUVbvB81OfqGgJa2UoDmbxPhNwFwtc4o11O_1jI,442
137
- khoj/interface/compiled/_next/static/chunks/app/page-b9e0500234c59a3e.js,sha256=FBG20hfsQ5i8Sxu1hcGnWSOwapAi8_1Q33HU9MCGXlk,28929
138
+ khoj/interface/compiled/_next/static/chunks/app/page-cd8d5d12595676d7.js,sha256=5_0Ru0MAHVI0KvLQa3dzl6t9Eq6BV617ZFTcTzVHBuo,28773
138
139
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
139
140
  khoj/interface/compiled/_next/static/chunks/app/agents/layout-e71c8e913cccf792.js,sha256=VyIMrkvntFObMzXF-elNtngJ8mBdjg8XrOGfboJ2f_4,372
140
- khoj/interface/compiled/_next/static/chunks/app/agents/page-922694b75f1fb67b.js,sha256=3jU-Yi9AqZMAvWyGhiVjy9SofvHSUHSUV65CbBpu3Rc,18086
141
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-cd8e2ba85287e1f6.js,sha256=68t6_iSOUAi0I-_CWzSUY0niWsmAohss162_xpFgyfg,17971
141
142
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js,sha256=d2vJ_lVB0pfeFXNUPzHAe1ca5NzdNowHPh___SPqugM,5143
142
- khoj/interface/compiled/_next/static/chunks/app/automations/page-3f4b6ff0261e19b7.js,sha256=jSgotVXzqJBJ_5X6OIXES8XBLtYmcdC4B9kQoPtQ8tQ,34471
143
+ khoj/interface/compiled/_next/static/chunks/app/automations/page-6ea3381528603372.js,sha256=k3i98nr6E_PNFbysxyybVnX3HPQeO9lYCLGJLLDoQzA,34467
143
144
  khoj/interface/compiled/_next/static/chunks/app/chat/layout-8102549127db3067.js,sha256=YIoA3fqOBt8nKWw5iQAwA_avg2t1Q5Afn65IA5PBOz4,374
144
- khoj/interface/compiled/_next/static/chunks/app/chat/page-6fac068cc1cca546.js,sha256=ud186imcWz1LdPdZQLrOc8HfA-ojVY6urbgzLUlCLJk,11019
145
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-5752b57c1e43e8a7.js,sha256=CBAulCm3HVSf8qhGYbOAprlNPpPffnPzuatjZc5WTIg,11354
145
146
  khoj/interface/compiled/_next/static/chunks/app/factchecker/layout-7b30c541c05fb904.js,sha256=yub2AuBKHKSCqrHRFnkZv9JXLmLJLOB99iiaD3DtZQM,170
146
- khoj/interface/compiled/_next/static/chunks/app/factchecker/page-828cf3c5b8e3af79.js,sha256=RFKJJGCvYKQZuVgKavKK8ee2eeO2ePWRAEvR0ni_ATE,14027
147
+ khoj/interface/compiled/_next/static/chunks/app/factchecker/page-04a19ab1a988976f.js,sha256=pY0MoXEHFoRpZhJk5eBfox6_eVJ9UQe5RzBBp6v1Rd8,14028
147
148
  khoj/interface/compiled/_next/static/chunks/app/search/layout-3720f1362310bebb.js,sha256=Smpa4MQaw5ItashtspsDKsOvRa6sOXH_lv4jIfWIbNI,170
148
- khoj/interface/compiled/_next/static/chunks/app/search/page-dcd385f03255ef36.js,sha256=Q-lnlHhL_GX0hGenIMnEX4W8jjUErEms0N96Dtyv9Dg,6953
149
+ khoj/interface/compiled/_next/static/chunks/app/search/page-fa15807b1ad7e30b.js,sha256=st3BmeRoT8a_lJrTrUhOTVUuaZQJjC60_lE_GmreLeQ,6954
149
150
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-6f9314b0d7a26046.js,sha256=ikl3vCXnp81sa24uPSuRbgvgDtpHGWfhxEs4OAOYXIM,5347
150
- khoj/interface/compiled/_next/static/chunks/app/settings/page-ddcd51147d18c694.js,sha256=b3AdfCsPZkOLeMT1hpZnu0Z5GUd1mOISPNU3tIJLNhU,31894
151
+ khoj/interface/compiled/_next/static/chunks/app/settings/page-1a2acc46cdabaf4a.js,sha256=UlzlVKjA8EnaxxT5XzKSJN3lJCF8Psa671mQ6LWapDE,31895
151
152
  khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-39f03f9e32399f0f.js,sha256=ClS8wrj6HOsRL4VX8DMiqX_MlQDsi_3CA-AQt4m7vuA,373
152
- khoj/interface/compiled/_next/static/chunks/app/share/chat/page-a84001b4724b5463.js,sha256=Ozl92oQqAztYBTFv-2ZPd3timnaJzbQdJXPKNY6Z4T0,10339
153
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-e20f54450d3ce6c0.js,sha256=Nxq4EKb7bMYb3vUt0Cwf-QsFat3zJn6fCiSSpu5EmCg,10340
153
154
  khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
154
155
  khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
155
156
  khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css,sha256=-qLZhPN-wA3kcrVODVTaG1sN0pmuzRCqNH12gs5_qYc,2569
156
157
  khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css,sha256=1fHKFd8zLOHosAHx-kxv4b9lVSqHag_E71WkV3dXx2Y,26940
157
158
  khoj/interface/compiled/_next/static/css/3e49e5ee49c6bda1.css,sha256=wtTUdySBdCNhZCgvRFkiKTm5_1LADYmHNHYoQhxir-w,1881442
158
- khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
159
+ khoj/interface/compiled/_next/static/css/43939edc2f9b2043.css,sha256=5shVVtMfsylG5H5Q0A41UiAM0PUAAjO6E4ow3vpTuUg,7716
159
160
  khoj/interface/compiled/_next/static/css/553f9cdcc7a2bcd6.css,sha256=JpjOOwmqP9Hba-w_8Lx9jWW0ZD0kD3wR0HvdPGDyUPo,2134
161
+ khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
160
162
  khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
161
- khoj/interface/compiled/_next/static/css/92c48eece0b102b9.css,sha256=l5BKV3oQLFhVG-mq9xXUA9NIYm_R8NlWwR-cee3BLYg,8096
162
163
  khoj/interface/compiled/_next/static/css/a3530ec58b0b660f.css,sha256=2fpX695nzJ6sNaNZbX_3Z0o-IA5kRlyN0ByIIXRgmtg,1570
163
164
  khoj/interface/compiled/_next/static/css/c808691c459e3887.css,sha256=Xj1SLFCKntSIqZSDCMg2MnzZowIiKFtqPT3KxrT4i94,1857
165
+ khoj/interface/compiled/_next/static/d3ySlDLLYAYu1Jr-Dc35R/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
166
+ khoj/interface/compiled/_next/static/d3ySlDLLYAYu1Jr-Dc35R/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
164
167
  khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2,sha256=41ewITd0G1ZAoB62BTHMW58a1q8Hl6vSbTQkkHP7EbI,39372
165
168
  khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2,sha256=_Y3g0keA8P6nZnFfm_VO5o2Sne1iST3v9xz4fBo3fwM,75532
166
169
  khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2,sha256=i9Ibzi_O7y5KpImujj2rEdOZf96lpNYxYzVvCryW5Uc,140408
@@ -233,8 +236,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
233
236
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
234
237
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
235
238
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
236
- khoj/interface/compiled/agents/index.html,sha256=k340B9y6stTmhVXbensBQsL9Ri3ct1o3zlbs-GCf3XA,12415
237
- khoj/interface/compiled/agents/index.txt,sha256=4U183n-Q82q_IFTyQD6oWRPozLdwAJqayxQRK1bLN5g,5954
239
+ khoj/interface/compiled/agents/index.html,sha256=achxkbCS7rryeWsRZgbFJFvVLFYkCU6qv8MahU1jCnQ,12723
240
+ khoj/interface/compiled/agents/index.txt,sha256=XjYA1G7LcemVbttQSZ4_xGAcsRWmytfS6U-KDVMdZWc,6087
238
241
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
239
242
  khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
240
243
  khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
@@ -245,22 +248,22 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
245
248
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
246
249
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
247
250
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
248
- khoj/interface/compiled/automations/index.html,sha256=H1HYFttKu-NyKuudaNlvTb5ITIEbj3E_pgAl0wvPMd8,30832
249
- khoj/interface/compiled/automations/index.txt,sha256=StRam3wRJPU7OQ5h7i-VNMQPuFkzhSobvacmEkgYvU4,5592
250
- khoj/interface/compiled/chat/index.html,sha256=WJuuXBYQ96O8YNumSIzf_mA-QfthaqKnnV4RIiNjfyQ,13741
251
- khoj/interface/compiled/chat/index.txt,sha256=gppwR0cJ9C_wAsBreCwh8VKDIlUXYQfUa3RVyRO9a4A,6491
252
- khoj/interface/compiled/factchecker/index.html,sha256=WHtVxn0lUYYq8JDO7XvmYWxmXzil30qD2T6EJcJ6ip8,29990
253
- khoj/interface/compiled/factchecker/index.txt,sha256=-WmbYXLMGoNg7MaD_v2n4NxUn61ywQ8xxp-NGHbI2Dc,5793
254
- khoj/interface/compiled/search/index.html,sha256=L1K2hx8FUF5-GHqk4jJQYOvuvhiU_l1Y4Zmi-GKKvtk,30178
255
- khoj/interface/compiled/search/index.txt,sha256=zivGDHvx5A8ekziwWBNUo5Mv0bu5cWOmHjXI-njpQy8,5261
256
- khoj/interface/compiled/settings/index.html,sha256=ItmK8jAA5pcCCORe7h-zY7BI0nDNAPgRbJk9Wxk8-Z4,12851
257
- khoj/interface/compiled/settings/index.txt,sha256=F1QrM3CtGYJsBYcXhpbDWi-OeXqdhDFWFTNB-_4i_WA,6085
258
- khoj/interface/compiled/share/chat/index.html,sha256=3bzNmmGUH-zEYC3DFhArp-adnRsg8jk938o4b0iBQOY,15071
259
- khoj/interface/compiled/share/chat/index.txt,sha256=pkKKjXn3Ewook-KIayYpBR2KZ5o3a7SMpcfhkaQXCNU,7309
251
+ khoj/interface/compiled/automations/index.html,sha256=NZ0wHPiYtQBFbugeTS5EZ6Li15FF3Kx_WVul0wKbCG8,30524
252
+ khoj/interface/compiled/automations/index.txt,sha256=OBZGiK3QySFItBF7xPpFoEvjsgjLEoKpKPUS0qOlkVM,5459
253
+ khoj/interface/compiled/chat/index.html,sha256=71IUvxtBZ2HQzHlvehzyaENUUO5ZUKzt7sas0P8qy1o,13741
254
+ khoj/interface/compiled/chat/index.txt,sha256=Y5uix_u-SOGs9gwPOKZos47F_J6FqXMlWnYfRiRYda0,6491
255
+ khoj/interface/compiled/factchecker/index.html,sha256=mJBHn9eRifRal9_jntsBLnt3UmaKJbz7OahKVJaoQEc,29990
256
+ khoj/interface/compiled/factchecker/index.txt,sha256=hBiUmbALqHmSPWabuEhV0iVN6PKa-fwI3nQueNzUnOI,5793
257
+ khoj/interface/compiled/search/index.html,sha256=aJIbb2G6m1JQaRqKEDpbj2wiRFGqG89XVoJR9cCVfOM,30178
258
+ khoj/interface/compiled/search/index.txt,sha256=Lv24MuBvuleIKkzvRoJKNm1e-CUk1nOJhFe4dwJn8mY,5261
259
+ khoj/interface/compiled/settings/index.html,sha256=SYHySRIqGzaKuve9TOFotnp5TLHnOG-J3taXCsLRr7o,12851
260
+ khoj/interface/compiled/settings/index.txt,sha256=Q3el4BUoEZbcnb2qH6RZloxDW6gdAT4-443AXqg-y_U,6085
261
+ khoj/interface/compiled/share/chat/index.html,sha256=8HDG_w7yQCXz7oblCi5q4acNHAT-qgFWnV4GTSa97YY,15071
262
+ khoj/interface/compiled/share/chat/index.txt,sha256=Xwy-s4a2jpTb7ZU0JSN30rOU0rknQmLYP6N89F1u9LI,7309
260
263
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
261
264
  khoj/interface/email/magic_link.html,sha256=EoGKQucfPj3xQrWXhSZAzPFOYCHF_ZX94TWCd1XHl1M,941
262
- khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
263
- khoj/interface/email/welcome.html,sha256=CpOLmNZV8jK1B_el7bxtZEFMr7k4g6MHfSHBhYFifB0,6081
265
+ khoj/interface/email/task.html,sha256=59SG3RPOdA67ic86x92GMHcZeVjFl-g71sCi4o6-cPs,3305
266
+ khoj/interface/email/welcome.html,sha256=_4ncbUHNNE1eU40iGgArBT7Z0q_aDLmv7ELiaHCnv6Y,6594
264
267
  khoj/interface/web/base_config.html,sha256=3aRwGF546vUdtCqL4tbWDdvO3ThEzt627vopx_tS4zo,12181
265
268
  khoj/interface/web/content_source_github_input.html,sha256=YpsLBpsATW08ttrGysqktx2EczC4nebKlvWpwxtwmFY,8249
266
269
  khoj/interface/web/login.html,sha256=4mYRX7521W4J8fFV-Cm_NqojMrpdwKZuzVAjnZRDsl4,6864
@@ -295,7 +298,7 @@ khoj/processor/content/docx/docx_to_entries.py,sha256=qCVbvetCDG30lxxUeEjg_BTNJt
295
298
  khoj/processor/content/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
299
  khoj/processor/content/github/github_to_entries.py,sha256=SfgXJi59LvFldnRLC5dJ3tUhM5vym-ZrbUovh1G42LQ,9887
297
300
  khoj/processor/content/images/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
298
- khoj/processor/content/images/image_to_entries.py,sha256=unAgYEc9h_kDzFQv_iS_w5Pi29UnPWEpdBVQpLBrET4,4999
301
+ khoj/processor/content/images/image_to_entries.py,sha256=_SEOfXUMNyTFbDFSLoAAE-GXpmtV_dgJ7_KuzQN8sLs,4903
299
302
  khoj/processor/content/markdown/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
303
  khoj/processor/content/markdown/markdown_to_entries.py,sha256=3ZXkJtehcVcMrNY6V4p-8i53zDIIsiVGQg-AMtD_U1U,7076
301
304
  khoj/processor/content/notion/notion_to_entries.py,sha256=zCcajTp60ieJExiX6Qwfctm_DR__bRRJgUXh47jjOac,9829
@@ -308,7 +311,7 @@ khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
308
311
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=97i7Cm0DTY7jW4iqKOT_oVc2ooa_XhQ8iImsljp1Kek,4994
309
312
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
313
  khoj/processor/conversation/prompts.py,sha256=_rOawbC9SAcueiSjBo9tf6F-mDIcol--Opqzgskoy5s,33738
311
- khoj/processor/conversation/utils.py,sha256=_cLYtlXfWx9wVyoP8T_OoTLLR6jjYL8tkgTDLQ5yhGs,12220
314
+ khoj/processor/conversation/utils.py,sha256=-ecyC3iOfnwYwuY14uv8tYt2b53EBpm0M5taHIguklM,12095
312
315
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
313
316
  khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=3EVZQmeucWSoBqRjwuCRJK-q2UYmvLvVsSZs_HCmg_Y,8183
314
317
  khoj/processor/conversation/anthropic/utils.py,sha256=GHCz-xll_DBipqSc5e5qdVhLQiKX5Kso3KQRf1BXbVA,3456
@@ -331,13 +334,13 @@ khoj/processor/tools/online_search.py,sha256=V39CemVrSqmgmnQJq2weoSAsMp7tJ7lL1S5
331
334
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
335
  khoj/routers/api.py,sha256=Wxbb7ihtUXDbnDw7hUqem0mZ0DPQhez4mzPDRN-cNOA,26459
333
336
  khoj/routers/api_agents.py,sha256=ks8QzjmZiio6j1QGi6xFtDmVxd9lvC6LPB-WcDPnF8o,1525
334
- khoj/routers/api_chat.py,sha256=jDxqt9usfebUXANzNSWOtghzpgiSYYdpiKvGxNHCqC8,58386
337
+ khoj/routers/api_chat.py,sha256=VAvIO2zqT0gyGLGPX10M9Z-9DssOW527JQF_q2ZB8pw,59259
335
338
  khoj/routers/api_content.py,sha256=E-Y6G2V14EdxN5rnisQKVINuBuItSZfLiiXpC9E9yTA,17387
336
339
  khoj/routers/api_model.py,sha256=5m7JWwgd9jILiLivRu7NEyY2E-tUkqoEkGg6j6uM1g0,4646
337
340
  khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
338
341
  khoj/routers/auth.py,sha256=pCOLSRihJWcn097DRPxLjPdlejsjHJFRs9jHIzLujZU,6247
339
342
  khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
340
- khoj/routers/helpers.py,sha256=ELPqMNQQRH_3E0o3a4r3VTVpVzYBJCyB8gQlYMNUmfI,63914
343
+ khoj/routers/helpers.py,sha256=FtXs4b7XfTxMapraD0ukcbRgi3yfIHrJfEOtyrO8NlU,63754
341
344
  khoj/routers/notion.py,sha256=Lp67xP9rVgpAF9BQoGTjZFcVdF1HYtvPP0kjq6uurKU,2802
342
345
  khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
343
346
  khoj/routers/subscription.py,sha256=qEyV7m7mrY6MGtaij8W3v61tpzX2a7ydm2B-E8h_R-M,4285
@@ -351,19 +354,19 @@ khoj/search_filter/word_filter.py,sha256=5Yx95aSiqGke9kEIbp8T-Ak4dS9cTd3VxI1SaJo
351
354
  khoj/search_type/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
355
  khoj/search_type/text_search.py,sha256=X5okaUGtpB4CnY8VbyNJll_MabUslsHVW0lUhqvBXL0,9131
353
356
  khoj/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
- khoj/utils/cli.py,sha256=AgO3rO-bN5oI71sIReGxrJXPeXEH80fnCIsyVlZYgjI,3695
357
+ khoj/utils/cli.py,sha256=oTDt6ClKvYNJ3_j9Omwx49H03IxC7sq4oL1qFpormWc,3456
355
358
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
356
- khoj/utils/constants.py,sha256=UwE7U9bNsfeqTb0K2lcdXdAscM4-7uuVoR3KbZS03Pg,1216
359
+ khoj/utils/constants.py,sha256=yUIHgw4vGvlDn2aKVtGAmBCk3QKJjFqlYSp9ej3-OWQ,920
357
360
  khoj/utils/fs_syncer.py,sha256=bQgcbYYC3x11RyCqI_kUzzqGpcKTodGgdT-3OTQsXqw,9977
358
361
  khoj/utils/helpers.py,sha256=OuRXJ_4asO_Ma7HKILYkY-tEhW95dGMZhHIa2pWq0jQ,14517
359
- khoj/utils/initialization.py,sha256=wlGtgThdRx77trd8H83Cp0cxAtkel0789eyFoF7iToA,10315
362
+ khoj/utils/initialization.py,sha256=Q8csjz5YqQ7WZ6mYJWvmp_Dh36dFRpZ3WRWxEgT2Ql0,7117
360
363
  khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
361
364
  khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
362
365
  khoj/utils/rawconfig.py,sha256=BKicp6kEBax7h76YRYgyFAUpfWHAI5m9ZJ2HVqyh45Y,3983
363
366
  khoj/utils/state.py,sha256=x4GTewP1YhOA6c_32N4wOjnV-3AA3xG_qbY1-wC2Uxc,1559
364
367
  khoj/utils/yaml.py,sha256=H0mfw0ZvBFUvFmCQn8pWkfxdmIebsrSykza7D8Wv6wQ,1430
365
- khoj-1.23.3.dist-info/METADATA,sha256=MS3O98vXsJWha3RaEPh3EAmB3T6IQ-B9IEUvd3Q4P9Y,6763
366
- khoj-1.23.3.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
367
- khoj-1.23.3.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
368
- khoj-1.23.3.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
369
- khoj-1.23.3.dist-info/RECORD,,
368
+ khoj-1.23.3.dev4.dist-info/METADATA,sha256=4k-TPiFSgDyKtYkTbIzK7Kd5GfK6HUxs9sPuJpx6lWQ,6768
369
+ khoj-1.23.3.dev4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
370
+ khoj-1.23.3.dev4.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
371
+ khoj-1.23.3.dev4.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
372
+ khoj-1.23.3.dev4.dist-info/RECORD,,