khoj 1.30.11.dev73__py3-none-any.whl → 1.31.1.dev13__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 (47) hide show
  1. khoj/database/adapters/__init__.py +51 -51
  2. khoj/database/admin.py +8 -8
  3. khoj/database/migrations/0077_chatmodel_alter_agent_chat_model_and_more.py +62 -0
  4. khoj/database/models/__init__.py +7 -7
  5. khoj/interface/compiled/404/index.html +1 -1
  6. khoj/interface/compiled/_next/static/chunks/app/agents/layout-1878cc328ea380bd.js +1 -0
  7. khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-592e8c470f2c2084.js +1 -0
  8. khoj/interface/compiled/_next/static/chunks/{webpack-a72e892f6afa93ae.js → webpack-062298330010d2aa.js} +1 -1
  9. khoj/interface/compiled/_next/static/css/f172a0fb3eb177e1.css +1 -0
  10. khoj/interface/compiled/agents/index.html +1 -1
  11. khoj/interface/compiled/agents/index.txt +1 -1
  12. khoj/interface/compiled/automations/index.html +1 -1
  13. khoj/interface/compiled/automations/index.txt +1 -1
  14. khoj/interface/compiled/chat/index.html +1 -1
  15. khoj/interface/compiled/chat/index.txt +1 -1
  16. khoj/interface/compiled/index.html +1 -1
  17. khoj/interface/compiled/index.txt +1 -1
  18. khoj/interface/compiled/search/index.html +1 -1
  19. khoj/interface/compiled/search/index.txt +1 -1
  20. khoj/interface/compiled/settings/index.html +1 -1
  21. khoj/interface/compiled/settings/index.txt +1 -1
  22. khoj/interface/compiled/share/chat/index.html +1 -1
  23. khoj/interface/compiled/share/chat/index.txt +1 -1
  24. khoj/migrations/migrate_server_pg.py +7 -7
  25. khoj/processor/conversation/anthropic/anthropic_chat.py +3 -3
  26. khoj/processor/conversation/google/gemini_chat.py +3 -3
  27. khoj/processor/conversation/offline/chat_model.py +12 -12
  28. khoj/processor/conversation/openai/gpt.py +4 -4
  29. khoj/processor/conversation/openai/utils.py +18 -10
  30. khoj/processor/conversation/utils.py +4 -4
  31. khoj/routers/api.py +22 -27
  32. khoj/routers/api_agents.py +4 -4
  33. khoj/routers/api_chat.py +6 -6
  34. khoj/routers/api_model.py +4 -4
  35. khoj/routers/helpers.py +106 -102
  36. khoj/utils/helpers.py +5 -3
  37. khoj/utils/initialization.py +28 -26
  38. {khoj-1.30.11.dev73.dist-info → khoj-1.31.1.dev13.dist-info}/METADATA +1 -1
  39. {khoj-1.30.11.dev73.dist-info → khoj-1.31.1.dev13.dist-info}/RECORD +44 -43
  40. khoj/interface/compiled/_next/static/chunks/app/agents/layout-f2ea2b26fc0e78b1.js +0 -1
  41. khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-f662c9e5091603cf.js +0 -1
  42. khoj/interface/compiled/_next/static/css/0dff1a59259ff945.css +0 -1
  43. /khoj/interface/compiled/_next/static/{ruEWgIV3qd6RPykTrcoyc → 7K5OLB23CafMhZBFHh4NG}/_buildManifest.js +0 -0
  44. /khoj/interface/compiled/_next/static/{ruEWgIV3qd6RPykTrcoyc → 7K5OLB23CafMhZBFHh4NG}/_ssgManifest.js +0 -0
  45. {khoj-1.30.11.dev73.dist-info → khoj-1.31.1.dev13.dist-info}/WHEEL +0 -0
  46. {khoj-1.30.11.dev73.dist-info → khoj-1.31.1.dev13.dist-info}/entry_points.txt +0 -0
  47. {khoj-1.30.11.dev73.dist-info → khoj-1.31.1.dev13.dist-info}/licenses/LICENSE +0 -0
@@ -7,7 +7,7 @@ import openai
7
7
  from khoj.database.adapters import ConversationAdapters
8
8
  from khoj.database.models import (
9
9
  AiModelApi,
10
- ChatModelOptions,
10
+ ChatModel,
11
11
  KhojUser,
12
12
  SpeechToTextModelOptions,
13
13
  TextToImageModelConfig,
@@ -56,12 +56,14 @@ def initialization(interactive: bool = True):
56
56
  valid_default_models = [model for model in default_openai_chat_models if model in default_chat_models]
57
57
  other_available_models = [model for model in default_chat_models if model not in valid_default_models]
58
58
  default_chat_models = valid_default_models + other_available_models
59
- except Exception:
60
- logger.warning(f"⚠️ Failed to fetch {provider} chat models. Fallback to default models. Error: {e}")
59
+ except Exception as e:
60
+ logger.warning(
61
+ f"⚠️ Failed to fetch {provider} chat models. Fallback to default models. Error: {str(e)}"
62
+ )
61
63
 
62
64
  # Set up OpenAI's online chat models
63
65
  openai_configured, openai_provider = _setup_chat_model_provider(
64
- ChatModelOptions.ModelType.OPENAI,
66
+ ChatModel.ModelType.OPENAI,
65
67
  default_chat_models,
66
68
  default_api_key=openai_api_key,
67
69
  api_base_url=openai_api_base,
@@ -103,7 +105,7 @@ def initialization(interactive: bool = True):
103
105
 
104
106
  # Set up Google's Gemini online chat models
105
107
  _setup_chat_model_provider(
106
- ChatModelOptions.ModelType.GOOGLE,
108
+ ChatModel.ModelType.GOOGLE,
107
109
  default_gemini_chat_models,
108
110
  default_api_key=os.getenv("GEMINI_API_KEY"),
109
111
  vision_enabled=True,
@@ -114,7 +116,7 @@ def initialization(interactive: bool = True):
114
116
 
115
117
  # Set up Anthropic's online chat models
116
118
  _setup_chat_model_provider(
117
- ChatModelOptions.ModelType.ANTHROPIC,
119
+ ChatModel.ModelType.ANTHROPIC,
118
120
  default_anthropic_chat_models,
119
121
  default_api_key=os.getenv("ANTHROPIC_API_KEY"),
120
122
  vision_enabled=True,
@@ -124,7 +126,7 @@ def initialization(interactive: bool = True):
124
126
 
125
127
  # Set up offline chat models
126
128
  _setup_chat_model_provider(
127
- ChatModelOptions.ModelType.OFFLINE,
129
+ ChatModel.ModelType.OFFLINE,
128
130
  default_offline_chat_models,
129
131
  default_api_key=None,
130
132
  vision_enabled=False,
@@ -133,9 +135,9 @@ def initialization(interactive: bool = True):
133
135
  )
134
136
 
135
137
  # Explicitly set default chat model
136
- chat_models_configured = ChatModelOptions.objects.count()
138
+ chat_models_configured = ChatModel.objects.count()
137
139
  if chat_models_configured > 0:
138
- default_chat_model_name = ChatModelOptions.objects.first().chat_model
140
+ default_chat_model_name = ChatModel.objects.first().name
139
141
  # If there are multiple chat models, ask the user to choose the default chat model
140
142
  if chat_models_configured > 1 and interactive:
141
143
  user_chat_model_name = input(
@@ -145,7 +147,7 @@ def initialization(interactive: bool = True):
145
147
  user_chat_model_name = None
146
148
 
147
149
  # If the user's choice is valid, set it as the default chat model
148
- if user_chat_model_name and ChatModelOptions.objects.filter(chat_model=user_chat_model_name).exists():
150
+ if user_chat_model_name and ChatModel.objects.filter(name=user_chat_model_name).exists():
149
151
  default_chat_model_name = user_chat_model_name
150
152
 
151
153
  logger.info("🗣️ Chat model configuration complete")
@@ -169,7 +171,7 @@ def initialization(interactive: bool = True):
169
171
  logger.info(f"🗣️ Offline speech to text model configured to {offline_speech2text_model}")
170
172
 
171
173
  def _setup_chat_model_provider(
172
- model_type: ChatModelOptions.ModelType,
174
+ model_type: ChatModel.ModelType,
173
175
  default_chat_models: list,
174
176
  default_api_key: str,
175
177
  interactive: bool,
@@ -202,10 +204,10 @@ def initialization(interactive: bool = True):
202
204
  ai_model_api = AiModelApi.objects.create(api_key=api_key, name=provider_name, api_base_url=api_base_url)
203
205
 
204
206
  if interactive:
205
- chat_model_names = input(
207
+ user_chat_models = input(
206
208
  f"Enter the {provider_name} chat models you want to use (default: {','.join(default_chat_models)}): "
207
209
  )
208
- chat_models = chat_model_names.split(",") if chat_model_names != "" else default_chat_models
210
+ chat_models = user_chat_models.split(",") if user_chat_models != "" else default_chat_models
209
211
  chat_models = [model.strip() for model in chat_models]
210
212
  else:
211
213
  chat_models = default_chat_models
@@ -216,7 +218,7 @@ def initialization(interactive: bool = True):
216
218
  vision_enabled = vision_enabled and chat_model in supported_vision_models
217
219
 
218
220
  chat_model_options = {
219
- "chat_model": chat_model,
221
+ "name": chat_model,
220
222
  "model_type": model_type,
221
223
  "max_prompt_size": default_max_tokens,
222
224
  "vision_enabled": vision_enabled,
@@ -224,7 +226,7 @@ def initialization(interactive: bool = True):
224
226
  "ai_model_api": ai_model_api,
225
227
  }
226
228
 
227
- ChatModelOptions.objects.create(**chat_model_options)
229
+ ChatModel.objects.create(**chat_model_options)
228
230
 
229
231
  logger.info(f"🗣️ {provider_name} chat model configuration complete")
230
232
  return True, ai_model_api
@@ -248,19 +250,19 @@ def initialization(interactive: bool = True):
248
250
  available_models = [model.id for model in openai_client.models.list()]
249
251
 
250
252
  # Get existing chat model options for this config
251
- existing_models = ChatModelOptions.objects.filter(
252
- ai_model_api=config, model_type=ChatModelOptions.ModelType.OPENAI
253
+ existing_models = ChatModel.objects.filter(
254
+ ai_model_api=config, model_type=ChatModel.ModelType.OPENAI
253
255
  )
254
256
 
255
257
  # Add new models
256
- for model in available_models:
257
- if not existing_models.filter(chat_model=model).exists():
258
- ChatModelOptions.objects.create(
259
- chat_model=model,
260
- model_type=ChatModelOptions.ModelType.OPENAI,
261
- max_prompt_size=model_to_prompt_size.get(model),
262
- vision_enabled=model in default_openai_chat_models,
263
- tokenizer=model_to_tokenizer.get(model),
258
+ for model_name in available_models:
259
+ if not existing_models.filter(name=model_name).exists():
260
+ ChatModel.objects.create(
261
+ name=model_name,
262
+ model_type=ChatModel.ModelType.OPENAI,
263
+ max_prompt_size=model_to_prompt_size.get(model_name),
264
+ vision_enabled=model_name in default_openai_chat_models,
265
+ tokenizer=model_to_tokenizer.get(model_name),
264
266
  ai_model_api=config,
265
267
  )
266
268
 
@@ -282,7 +284,7 @@ def initialization(interactive: bool = True):
282
284
  except Exception as e:
283
285
  logger.error(f"🚨 Failed to create admin user: {e}", exc_info=True)
284
286
 
285
- chat_config = ConversationAdapters.get_default_conversation_config()
287
+ chat_config = ConversationAdapters.get_default_chat_model()
286
288
  if admin_user is None and chat_config is None:
287
289
  while True:
288
290
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.30.11.dev73
3
+ Version: 1.31.1.dev13
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -8,10 +8,10 @@ khoj/app/asgi.py,sha256=soh3C1xazlgHt_bDgKzrfzo2TKXbNYJsckcXNEgTip8,388
8
8
  khoj/app/settings.py,sha256=N5hYJzHm2QPRmiBIEJtnXhwg0kDrfJtAxFUuSg3XLCI,6787
9
9
  khoj/app/urls.py,sha256=7ECnusoAPAfbO_H_b5FUzYGvnb4LLdWaRDyKNvYuBvg,869
10
10
  khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- khoj/database/admin.py,sha256=Yj05OCDE2bKv7jvfjMMjSPIJWw5-HHlyA19dOSRsSF4,12677
11
+ khoj/database/admin.py,sha256=DnXLOiIk_xKl9mu0nQZe_FocOMz1haUzqx7HXBNq2AY,12626
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=DdDX5U-sTgmcvGUn_PUoQrXYrhu5RhvF1Tn3PGLVpJ0,69244
14
+ khoj/database/adapters/__init__.py,sha256=PEH0sBo2JIAtzn2usl_QhioLzeOYs1r1z5J7ynOB_jY,68733
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_default_model.py,sha256=HkFQOI-2rFjlu7YiulyRcTrITzSzXmY4WiV2hBmml0w,5209
@@ -105,23 +105,26 @@ khoj/database/migrations/0073_delete_usersearchmodelconfig.py,sha256=hKkVZK7l61L
105
105
  khoj/database/migrations/0074_alter_conversation_title.py,sha256=dR_CLYOaZgkWyKGPgrDlUxm5UJfK2fwM7Tfl0Bi7D7k,439
106
106
  khoj/database/migrations/0075_migrate_generated_assets_and_validate.py,sha256=zFcR-nBr66LUFpibypm4qkvPJ4p_wlamnZjU4SCxJ2o,3294
107
107
  khoj/database/migrations/0076_rename_openaiprocessorconversationconfig_aimodelapi_and_more.py,sha256=D_qIoZ6Zr1Y1QhXdDhXlCVXix18fd47fMlRSMDHLzT8,708
108
+ khoj/database/migrations/0077_chatmodel_alter_agent_chat_model_and_more.py,sha256=cQP-j9_cStfpECwxSncYVBakQ_OLEHaEJLRsOdaWgR8,1949
108
109
  khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
- khoj/database/models/__init__.py,sha256=XVl0qt3nXSXe4rw0GnqZXW5xHPhe9VY50TnhdtrePis,28462
110
+ khoj/database/models/__init__.py,sha256=szQpo4pjbcjKI_94T31FCYTKhxkrRFpa41urrNGu0-g,28415
110
111
  khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
111
112
  khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
112
113
  khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
113
114
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
114
115
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
115
116
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
116
- khoj/interface/compiled/index.html,sha256=HJ7a7_5bnbVQFR792hfX8ZywjqNZBEo8-Y1_CO3u4tA,13432
117
- khoj/interface/compiled/index.txt,sha256=MiEFbsOyOivz_EN0pC_CJvz64Ta1v4jE_np_ErbBM84,5582
117
+ khoj/interface/compiled/index.html,sha256=MM2NTXH_yqmP4uie4ybM3aCh0MMbNU4UkgUt_uytTu8,13432
118
+ khoj/interface/compiled/index.txt,sha256=E_wU6qTTauM9stV-7O7L8Lj_ZXWZ7uPcPaK_gvSDlUA,5582
118
119
  khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
119
120
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
120
121
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
121
122
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
122
123
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
123
124
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
124
- khoj/interface/compiled/404/index.html,sha256=6KnmzRC-lYZQ1jopYJZ1GYYwwIrKZ2QIZiIT1qfE8BE,13559
125
+ khoj/interface/compiled/404/index.html,sha256=6SZo2OV3z8No5PWUdNQN_2j1jG_ZUoh0Nx9uS2WY1Cc,13559
126
+ khoj/interface/compiled/_next/static/7K5OLB23CafMhZBFHh4NG/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
127
+ khoj/interface/compiled/_next/static/7K5OLB23CafMhZBFHh4NG/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
125
128
  khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js,sha256=yOh1qtmNHPpDd6vR7CJOXSbq8M_slPujdTR_OXxaEYU,2121
126
129
  khoj/interface/compiled/_next/static/chunks/1279-4cb23143aa2c0228.js,sha256=zHMz-ixoNkLNUjN2-C48RGEyMs2mI9wsNRCczXnzIvQ,45616
127
130
  khoj/interface/compiled/_next/static/chunks/1459.690bf20e7d7b7090.js,sha256=z-ruZPxF_Z3ef_WOThd9Ox36AMhxaW3znizVivNnA34,34239
@@ -148,11 +151,11 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
148
151
  khoj/interface/compiled/_next/static/chunks/main-1ea5c2e0fdef4626.js,sha256=8_u87PGI3PahFbDfGWGvpD-a18J7X7ChUqWIeqxVq7g,111061
149
152
  khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
150
153
  khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
151
- khoj/interface/compiled/_next/static/chunks/webpack-a72e892f6afa93ae.js,sha256=CV1kyvUkaEk-rgVBTbkYRG_CUMGqK1dPcKgf1VcwhwA,3991
154
+ khoj/interface/compiled/_next/static/chunks/webpack-062298330010d2aa.js,sha256=JQJzvR9NXD_FFWgQUVGLVpEAjjtsE1CpBFcvPa5qykI,3991
152
155
  khoj/interface/compiled/_next/static/chunks/app/layout-6310c57b674dd6f5.js,sha256=w4zG3noOTaiH6TMWlvYaV2jpxzSgmFNj10o1Yq6mKtI,709
153
156
  khoj/interface/compiled/_next/static/chunks/app/page-083f798a7562cda5.js,sha256=qSwqDsnApYaNBQH3bhrQBBaNywp2Y5nmKHewDh8-g58,33109
154
157
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-cfba071f5a657256.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
155
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-f2ea2b26fc0e78b1.js,sha256=G_qzJ-78ks26uCT6sW06IJbPds_4hRH4Ait6-rqh1-w,180
158
+ khoj/interface/compiled/_next/static/chunks/app/agents/layout-1878cc328ea380bd.js,sha256=foKQN1MOnaGA0hgPpbiLKvn7H87Xmmr_TC2nKkkH5I8,180
156
159
  khoj/interface/compiled/_next/static/chunks/app/agents/page-2a0b821cf69bdf06.js,sha256=fjgae8xUu2qw3NkBmtUsnSF5zFU5IiLW1PoeM-6VTgw,11740
157
160
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f1b79a2c67af0b4.js,sha256=MvPp1IfxmpfRaT4XDDpj-l6F4CV-loeGqi315QYXKZw,5143
158
161
  khoj/interface/compiled/_next/static/chunks/app/automations/page-ffa30be1dda97643.js,sha256=xrg_Txvmi3eWD3ll73VlIfrgklT-pP6Uu5hz8h6MmXw,35406
@@ -162,17 +165,17 @@ khoj/interface/compiled/_next/static/chunks/app/search/layout-2ca475462c0b2176.j
162
165
  khoj/interface/compiled/_next/static/chunks/app/search/page-845fe099f1f4375e.js,sha256=XmVG9lRvWXhk82onM0EGpHIMKWaMHuUGFDMjpk-Vg9c,6948
163
166
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-f285795bc3154b8c.js,sha256=SBNluXZKXEfcDqJz2W3t8US0nsRbPHV2iblQ5Xiv2Y8,13218
164
167
  khoj/interface/compiled/_next/static/chunks/app/settings/page-3257ef0146ab18da.js,sha256=EtX101Bp2PUTFU5BGRndRl4TvBMMa1kLx1IO4sVGBvg,32244
165
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-f662c9e5091603cf.js,sha256=WfzMeFdhBC-koMD1NRojGHN9iJQaGQl682czCRm1l0E,180
168
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-592e8c470f2c2084.js,sha256=f4uHzU7NvCArgecxL5t2nKni8w9rdQp_rZV6GPhDZHg,180
166
169
  khoj/interface/compiled/_next/static/chunks/app/share/chat/page-f625859c1a122441.js,sha256=m32F2H2ZyGAYi78qQJ0RVvWK0aOqWHusraYhuGpOTf8,4366
167
170
  khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
168
171
  khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
169
172
  khoj/interface/compiled/_next/static/css/089de1d8526b96e9.css,sha256=sjpmNlk7H2uKEYK9_DFccNq9J8V9uR799cS0yT-E7EI,4041
170
- khoj/interface/compiled/_next/static/css/0dff1a59259ff945.css,sha256=Uta06R94vc-Z913v87WGL2vX2t_wEKykT7_70NPJLGA,9211
171
173
  khoj/interface/compiled/_next/static/css/1f293605f2871853.css,sha256=G2b3Wx4e0DRBWSdNU20ivCChZI5HBzvPYUVVIdTRjLc,26590
172
174
  khoj/interface/compiled/_next/static/css/3cf13271869a4aeb.css,sha256=sGjJTeMeN6wbQF4OCPgWYgJmSLLSHyzIH2rSVstWx7k,1857
173
175
  khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
174
176
  khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
175
177
  khoj/interface/compiled/_next/static/css/80bd6301fc657983.css,sha256=T7_aQHcWpQBQLKadauHNzjYGw713FtRNTlUqmJjsL6I,1634
178
+ khoj/interface/compiled/_next/static/css/f172a0fb3eb177e1.css,sha256=DWy4E4f0riRwSkJDDx34-6mskA2yGDlqRfDlwrEuppg,9211
176
179
  khoj/interface/compiled/_next/static/css/fd628f01a581ec3c.css,sha256=WswNa8iwHYHOHXsEFTuF21qXic5W5KbWq_4pHkwhs0s,3058922
177
180
  khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2,sha256=IzKBwB_bpSGvO7C9aRv29Js-jAbZPRDI-D-P4H2P918,14508
178
181
  khoj/interface/compiled/_next/static/media/6f22fce21a7c433c-s.woff2,sha256=T773llrgKNUxGlJzhaH0DUs2rcuRHU7bQpf0DTC4sSU,21812
@@ -247,10 +250,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
247
250
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
248
251
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
249
252
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
250
- khoj/interface/compiled/_next/static/ruEWgIV3qd6RPykTrcoyc/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
251
- khoj/interface/compiled/_next/static/ruEWgIV3qd6RPykTrcoyc/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
252
- khoj/interface/compiled/agents/index.html,sha256=soGe-LPlOEnC5VAq1cAq-zCuDcJcXdt7z-CJamKRWrw,14091
253
- khoj/interface/compiled/agents/index.txt,sha256=txgd4grw1H3QsUrf2rpMIamgzbCLcv_H8KOMTuYCAb0,6095
253
+ khoj/interface/compiled/agents/index.html,sha256=NttmYKwLYaJcIn1i9jDjEhHdOxp2FxLoyt622LQWIyU,14091
254
+ khoj/interface/compiled/agents/index.txt,sha256=Q0QJOquTr16J8Twvx-9FSxaL8_hAIpnIlv8kgrazxDQ,6095
254
255
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
255
256
  khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
256
257
  khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
@@ -265,16 +266,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
265
266
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
266
267
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
267
268
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
268
- khoj/interface/compiled/automations/index.html,sha256=rDk3Iy7HwTaIGTf3vV3bMd7mBoh0DV4apTz7apDZuPo,33921
269
- khoj/interface/compiled/automations/index.txt,sha256=ime7dvbak3RF4SNcQPaEec4Kpw8N3fCPteXAZTLqono,6373
270
- khoj/interface/compiled/chat/index.html,sha256=gIIWrVgDir06LKEuQxTXUimjq8tMUJbTeDjjLeLdhJE,15274
271
- khoj/interface/compiled/chat/index.txt,sha256=tMQAUwVk4Kr05TpJjvLyzk0TgjlmhBtDrhdZp3Ulrp4,6628
272
- khoj/interface/compiled/search/index.html,sha256=I0OjHk4cKKF0wvFVujLsnv9P9A7JcixrRUdfkLAqfXk,32875
273
- khoj/interface/compiled/search/index.txt,sha256=i8ocWYaf--YSRxc2Nz8qVinJAtwNLEb6VekGLdvGUiM,5900
274
- khoj/interface/compiled/settings/index.html,sha256=1bUqB_NLjJQmpvY3wuvWjP8v0r4py4z_rXr6uPG3qJI,14885
275
- khoj/interface/compiled/settings/index.txt,sha256=XDWmMO3DySFCIgoIK2SW6_yF3UL9qs7EGScmrrHQ0Nk,6496
276
- khoj/interface/compiled/share/chat/index.html,sha256=xiy9n_5-Y-Wu8xYhCKm4R8vi45MLOhby9lRPsPpLSFM,16611
277
- khoj/interface/compiled/share/chat/index.txt,sha256=RwzSy5QXL7OYQmL3jVnSO16MNB6LsIY3N-6dtI8Q9mA,7444
269
+ khoj/interface/compiled/automations/index.html,sha256=tn1snP1RnjRJtOjfZiFZ_7QH3sWKbvQMgrr23m43qIg,33921
270
+ khoj/interface/compiled/automations/index.txt,sha256=dY4jCyx_DKElQDCteEzrpFVjUMGQRLt7_0hreGDiQEQ,6373
271
+ khoj/interface/compiled/chat/index.html,sha256=wn4DU4u576-jbrofpuVwUDaA_ZyrjHKNzkKrpEOn600,15274
272
+ khoj/interface/compiled/chat/index.txt,sha256=gGSp2m0kuYtGUBhi_R1r6iKRfLUbEVkseO599FajKHE,6628
273
+ khoj/interface/compiled/search/index.html,sha256=fLgUm2PBAk2bycoK54qB0Q0pLsGLQiPSbY8iSQyF7h8,32875
274
+ khoj/interface/compiled/search/index.txt,sha256=3-6K6P4amWaKd83xN6SXoTLfarYZCl9HOmsOuwRp_4w,5900
275
+ khoj/interface/compiled/settings/index.html,sha256=nK34nRwXgOqd2QHozIJ5jPnbiaYGwdyODo3XFUy86F0,14885
276
+ khoj/interface/compiled/settings/index.txt,sha256=oeEi483wEbPOYCPbcM9UQJ0gsW_o_HgLkKsK7qDgXmQ,6496
277
+ khoj/interface/compiled/share/chat/index.html,sha256=0FhlK65XV0jkaTQ7Aj4cxEdC7WOc1ic0S_ojGKptlgk,16611
278
+ khoj/interface/compiled/share/chat/index.txt,sha256=EhCF_-B1PNuk8FmiOaTOT9VdOQBnVMO1roO6XaESFw0,7444
278
279
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
279
280
  khoj/interface/email/magic_link.html,sha256=EoGKQucfPj3xQrWXhSZAzPFOYCHF_ZX94TWCd1XHl1M,941
280
281
  khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
@@ -303,7 +304,7 @@ khoj/migrations/migrate_offline_chat_default_model_2.py,sha256=Ybk9w7EAKpHzMo7uv
303
304
  khoj/migrations/migrate_offline_chat_schema.py,sha256=vsJT5nJS9TwPLtyrXRMg8ml9v76HLJvPkQlpGHlR6_s,2510
304
305
  khoj/migrations/migrate_offline_model.py,sha256=MXYnA3TTl71guv16q4arkg7KL_6ve5xI8WsPJdcX5rY,975
305
306
  khoj/migrations/migrate_processor_config_openai.py,sha256=FfeUU2JPQMtlr1iYoc4Cer3tIm4jfbt6AuO4Eby8AkU,2025
306
- khoj/migrations/migrate_server_pg.py,sha256=V2hWK_hxfAWGGnIfwMOylYh_1B5DUol1v4ThQCoH-yQ,4911
307
+ khoj/migrations/migrate_server_pg.py,sha256=QNfwqr7MDOg3b0-J0VNUicoc4Bjfi4Q9UTb_GZC_iW0,4864
307
308
  khoj/migrations/migrate_version.py,sha256=6CTsLuxiLnFVF8A7CjsIz3PcnJd8fAOZeIx6tTu6Vgg,569
308
309
  khoj/processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
309
310
  khoj/processor/embeddings.py,sha256=jGLLXkenvCxWEeFqw3g5YpX08hy2wgSZKvPC4BGD7Og,5527
@@ -327,20 +328,20 @@ khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
327
328
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
328
329
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
330
  khoj/processor/conversation/prompts.py,sha256=XRRi7-VazmBmfCW1OypKqkSH3ZU1P_A0L8ZbE6m0hu4,50998
330
- khoj/processor/conversation/utils.py,sha256=SDH92JD7gq5s-snlK43yhn1i0CGlfzD9tkM84lQxM-A,32815
331
+ khoj/processor/conversation/utils.py,sha256=XEgKUBlwc0inuVGv683nfJuaI3CddGFJNRsjmofCnlc,32787
331
332
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
- khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=wNFqfcm7ZIXkK49WMNLEV-iOmG_xxlEYb1vw3YJTyAw,8983
333
+ khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=2jLTh-5WiGcsm1b5pla9UDjeTrPFfck2TOPPex5MN4c,8962
333
334
  khoj/processor/conversation/anthropic/utils.py,sha256=En5uBBsxDBWb6QTs5g8nH_f2FVBX1uYK40i13fDRAhc,7327
334
335
  khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
- khoj/processor/conversation/google/gemini_chat.py,sha256=H90_TQOFeQWvetxeIe9CHny9qqVt7JmqxnsWPqmNvSA,9174
336
+ khoj/processor/conversation/google/gemini_chat.py,sha256=dl5teYkosZzQxgbVaBfaXqMWXLX6dV__9T1z3p_wqlY,9153
336
337
  khoj/processor/conversation/google/utils.py,sha256=2vV7MNXFhJqBut5iMmQwcfvsqL_AkGoEd4XiViCk51s,10851
337
338
  khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
338
- khoj/processor/conversation/offline/chat_model.py,sha256=8bePyMU_kObH6aYrWjCHSl8OnaKPD3M93_Tb2VylClo,11321
339
+ khoj/processor/conversation/offline/chat_model.py,sha256=z8P6v1L4QPhG9OHgUQuJCWuGhnugdIXJVKR2MnexBpI,11345
339
340
  khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
340
341
  khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
341
342
  khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
342
- khoj/processor/conversation/openai/gpt.py,sha256=80VopHkTiZRrS6an5bpiHBuYB6uAcjRma9Q2V74zdJU,8531
343
- khoj/processor/conversation/openai/utils.py,sha256=u-p-9wg6Xrd_ceNcalZd8x5g6ZSgBqarozEMqeLtYyE,7529
343
+ khoj/processor/conversation/openai/gpt.py,sha256=FFiMevjK_EiryjsZcYzpYMA-o3sgQpC87x1c6nKek8Y,8515
344
+ khoj/processor/conversation/openai/utils.py,sha256=OfJJxjGgUigG2ZX7cWylA-NP4-d1flDQkf1gqP2FEgM,7807
344
345
  khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
345
346
  khoj/processor/image/generate.py,sha256=v1ZVeE0IQxP1-34j6IZBAB267knAbSvE8jYspO_tQw4,8807
346
347
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -349,16 +350,16 @@ khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
349
350
  khoj/processor/tools/online_search.py,sha256=X8D3ClKpg34r_LMol28GdBqZ--YVGGVBPc9lUSgb2mg,17128
350
351
  khoj/processor/tools/run_code.py,sha256=pa8slKYU21yDxBxK2CoQTEwHxZIANA_-bI8GhEDjvxc,6547
351
352
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
- khoj/routers/api.py,sha256=2cCCknPtPIRB3OD5yeh4RlWiuLSJp8tNSaX6lUadHVA,28498
353
- khoj/routers/api_agents.py,sha256=vHPruCjlQxGBdm0lcmymEb9-aAELqbOplqh21WwD0DQ,9699
354
- khoj/routers/api_chat.py,sha256=qjIyEti0pcfzULR76FSZMbc9x-CGbD-AqfGUMcHyC6Y,49030
353
+ khoj/routers/api.py,sha256=KfRCkx-CSTeAw6wNr4XiBJlcIDTw7oBtQ0LgpI0eTzY,28296
354
+ khoj/routers/api_agents.py,sha256=d6i2MQ6cxU5KjeH6MXTM6k2MOQcRdizV-OhCB4PiJ8s,9675
355
+ khoj/routers/api_chat.py,sha256=kBeVYmJghcO-FejeAgyTe3viCA843RRm5nW86PKllkE,48958
355
356
  khoj/routers/api_content.py,sha256=WNlB6lVwRW8hHDthO2HypbpPvqrqt9rTU5oMRNknpMU,21070
356
- khoj/routers/api_model.py,sha256=KDsxNwHspC94eTcv6l3ehr773EOvgc670UnZLE1WZ4o,3642
357
+ khoj/routers/api_model.py,sha256=cEXEH9-213Mt7kv_YqfDjiN7uC0N1sdkdSajCIbZO58,3612
357
358
  khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
358
359
  khoj/routers/api_subscription.py,sha256=qnbKwA6N1TWK8Aiu1FFLka_JhbPOuwqT262NSHGZDiQ,5569
359
360
  khoj/routers/auth.py,sha256=kWPB2McwT6z4rGF6mWl92Q7ToRX-XezBPFefdxqQUk4,6579
360
361
  khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
361
- khoj/routers/helpers.py,sha256=YDOT3G3Ix2a-OEX_j_PNrVMG9gwFoVWhncCdbur6mOg,84338
362
+ khoj/routers/helpers.py,sha256=p0uZ62EAd5ZxiHKCwwxXqtJOMo1PqWSzV4q5zVqUXas,83653
362
363
  khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
363
364
  khoj/routers/research.py,sha256=KjUuo-rwtSqUX-0BYjXgP6cWeH3xazffwtxfxKXZL00,16083
364
365
  khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
@@ -376,15 +377,15 @@ khoj/utils/cli.py,sha256=IIZ2qH0v7Jmqw3JRH1K5EMp9TRze6en3GYsASnglMEM,3916
376
377
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
377
378
  khoj/utils/constants.py,sha256=ox1ROCgXp6QkDMS96jqhsQ9_oFZkHnYJTyvKL5emE_M,2143
378
379
  khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
379
- khoj/utils/helpers.py,sha256=RKeHI8i5NYsAUFREKq8rQ0ChRggivspcunGe1dearE0,22809
380
- khoj/utils/initialization.py,sha256=TgVI7j5716Dk5N1R_dVl4M37TeJ9py1WSm2B4BxusBc,13617
380
+ khoj/utils/helpers.py,sha256=fGdn7FvUGFjNCdhY9gEVe3Tz9WjaHlkT-2gQP3C3YGA,22852
381
+ khoj/utils/initialization.py,sha256=VJlYbZprepK4gmySJ0bw4KZghW3944-KMtr_7kyl0iE,13558
381
382
  khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
382
383
  khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
383
384
  khoj/utils/rawconfig.py,sha256=bQ_MGbBzYt6ZUIsHUwZjaHKDLh6GQ7h-sENkv3fyVbQ,5028
384
385
  khoj/utils/state.py,sha256=axjZhnby8L3bY-N1VVoWgBH1RpFGK6U3_ZeNo1Kt7hs,1679
385
386
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
386
- khoj-1.30.11.dev73.dist-info/METADATA,sha256=KWMOFGZckdHjkQ6Ls3XUcCkre7WFAaAzsGxHE3wSdTc,7570
387
- khoj-1.30.11.dev73.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
388
- khoj-1.30.11.dev73.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
389
- khoj-1.30.11.dev73.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
390
- khoj-1.30.11.dev73.dist-info/RECORD,,
387
+ khoj-1.31.1.dev13.dist-info/METADATA,sha256=XBR8DQ2OMj654blbJ373a_pUTViYA9sjc3c9U-tFhzc,7569
388
+ khoj-1.31.1.dev13.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
389
+ khoj-1.31.1.dev13.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
390
+ khoj-1.31.1.dev13.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
391
+ khoj-1.31.1.dev13.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8459,244,3317,7138],{63521:function(){}},function(n){n.O(0,[2971,7023,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7138,8459,244,3317],{63521:function(){}},function(n){n.O(0,[2971,7023,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
@@ -1 +0,0 @@
1
- div.agents_titleBar__FzYbY{padding:16px 0;text-align:left}.agents_agentPersonality__o0Ysz p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agents_agentPersonality__o0Ysz{text-align:left;grid-column:span 3;overflow:hidden}div.agents_pageLayout__gR3S3{max-width:60vw;margin:auto auto 2rem}div.agents_sidePanel__wGVGc{position:fixed;height:100%;z-index:1}button.agents_infoButton__NqI7E{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}div.agents_agentList__XVx4A{display:grid;gap:20px;padding-top:30px;margin-right:auto;grid-auto-flow:row;grid-template-columns:1fr 1fr;margin-left:auto}@media only screen and (max-width:768px){div.agents_agentList__XVx4A{width:100%;padding:0;margin-right:auto;margin-left:auto;grid-template-columns:1fr}div.agents_pageLayout__gR3S3{max-width:90vw}div.agents_sidePanel__wGVGc{position:relative;height:100%}}div.sidePanel_session__R9wgH{padding:.5rem;margin-bottom:.25rem;border-radius:.5rem;cursor:pointer;max-width:14rem;font-size:medium;display:grid;grid-template-columns:minmax(auto,400px) 1fr;gap:0}div.sidePanel_compressed__YBPtM{grid-template-columns:minmax(12rem,100%) 1fr 1fr}div.sidePanel_sessionHover__iwfo8,div.sidePanel_session__R9wgH:hover{background-color:hsla(var(--popover))}div.sidePanel_session__R9wgH:hover{color:hsla(var(--popover-foreground))}div.sidePanel_session__R9wgH a{text-decoration:none}button.sidePanel_button__ihOfG{border:none;outline:none;background-color:transparent;cursor:pointer;color:var(--main-text-color);width:24px}button.sidePanel_showMoreButton__dt9Zw{border-radius:.5rem;padding:8px}div.sidePanel_panel__VZ8ye{display:flex;flex-direction:column;padding:1rem;overflow-y:auto;max-width:auto;transition:background-color .5s}div.sidePanel_expanded__ZjTHo{gap:1rem;background-color:hsla(var(--muted));height:100%}div.sidePanel_collapsed__OjVmG{display:grid;grid-template-columns:1fr;height:-moz-fit-content;height:fit-content;padding:1rem 0 0 1rem}p.sidePanel_session__R9wgH{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;font-size:small}div.sidePanel_header__d5cGA{display:grid;grid-template-columns:1fr auto}div.sidePanel_profile__x0w58{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;margin-top:auto}div.sidePanel_panelWrapper__k_lal{display:grid;grid-template-rows:1fr auto auto;height:100%}div.sidePanel_modalSessionsList__nKe2n{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(var(--frosted-background-color));z-index:1;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}div.sidePanel_modalSessionsList__nKe2n div.sidePanel_content__Wq20_{max-width:80%;max-height:80%;background-color:hsla(var(--frosted-background-color));overflow:auto;padding:20px;border-radius:10px}div.sidePanel_modalSessionsList__nKe2n div.sidePanel_session__R9wgH{max-width:100%;text-overflow:ellipsis}@media screen and (max-width:768px){div.sidePanel_panel__VZ8ye{padding:.25rem;width:100%}div.sidePanel_expanded__ZjTHo{z-index:1}div.sidePanel_singleReference__r9z1n{padding:4px}div.sidePanel_panelWrapper__k_lal{width:100%;padding:0 1rem}div.sidePanel_session__R9wgH.sidePanel_compressed__YBPtM{max-width:100%;display:grid;grid-template-columns:70vw auto;justify-content:space-between}div.sidePanel_session__R9wgH{max-width:100%;grid-template-columns:minmax(auto,70vw) 1fr}}menu.navMenu_menu__fqlFF a{text-decoration:none;font-size:medium;font-weight:400;padding:0 4px;border-radius:4px;display:flex;justify-self:center;margin:0;align-items:center;gap:4px}a.navMenu_selected__A__aP{background-color:hsl(var(--accent))}div.navMenu_titleBar__HJoio{display:flex;justify-content:space-between;align-content:space-evenly;align-items:start}div.navMenu_titleBar__HJoio menu{padding:0;margin:0;border-radius:.5rem;display:grid;grid-auto-flow:column;gap:32px}div.navMenu_settingsMenuProfile__3npiK img{border-radius:50%;width:32px;height:32px;margin:0}div.navMenu_settingsMenu__X2i2U{padding:0 4px;border-radius:4px;display:flex;justify-self:center;margin:0;align-items:center}div.navMenu_settingsMenuOptions__KWnLv{display:block;grid-auto-flow:row;position:absolute;background-color:var(--background-color);box-shadow:0 8px 16px 0 rgba(0,0,0,.2);top:64px;text-align:left;padding:8px;border-radius:8px}@media screen and (max-width:600px){menu.navMenu_menu__fqlFF span{display:none}div.navMenu_settingsMenuOptions__KWnLv{right:4px}div.navMenu_titleBar__HJoio{padding:4px}}div.search_searchLayout__fP3m0{display:grid;grid-template-columns:1fr;gap:1rem;height:100vh}div.search_sidePanel__myfc9{position:fixed;height:100%;z-index:1}@media screen and (max-width:768px){div.search_searchLayout__fP3m0{gap:0}div.search_sidePanel__myfc9{position:relative;height:100%}}div.chatHistory_chatHistory__CoaVT{display:flex;flex-direction:column;height:100%;margin:auto}div.chatHistory_agentIndicator__wOU1f a{display:flex;text-align:center;align-content:center;align-items:center}div.chatHistory_trainOfThought__mMWSR{border:1px solid var(--border-color);border-radius:16px;padding:8px 16px;margin:12px}div.chatMessage_chatMessageContainer__sAivf{display:flex;flex-direction:column;margin:12px;border-radius:16px;padding:8px 16px 0;word-break:break-word}div.chatMessage_chatMessageWrapper__u5m8A{padding-left:1rem;padding-bottom:1rem;max-width:80vw}div.chatMessage_chatMessageWrapper__u5m8A ol,div.chatMessage_chatMessageWrapper__u5m8A p:not(:last-child),div.chatMessage_chatMessageWrapper__u5m8A ul{margin-bottom:16px}div.chatMessage_chatMessageWrapper__u5m8A a span{display:revert!important}div.chatMessage_khojfullHistory__NPu2l{border-width:1px;padding-left:4px}div.chatMessage_youfullHistory__ioyfH{max-width:100%}div.chatMessage_chatMessageContainer__sAivf.chatMessage_youfullHistory__ioyfH{padding-left:0}div.chatMessage_you__6GUC4{background-color:hsla(var(--secondary));align-self:flex-end;border-radius:16px}div.chatMessage_khoj__cjWON{background-color:transparent;color:hsl(var(--accent-foreground));align-self:flex-start}div.chatMessage_khojChatMessage__BabQz{padding-top:8px;padding-left:16px}div.chatMessage_emptyChatMessage__J9JRn{display:none}div.chatMessage_imagesContainer__HTRjT{display:flex;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}div.chatMessage_imageWrapper__DF92M{flex:0 0 auto;margin-right:8px}div.chatMessage_imageWrapper__DF92M img{width:auto;height:128px;-o-object-fit:cover;object-fit:cover;border-radius:8px}div.chatMessage_khoj__cjWON div.chatMessage_imageWrapper__DF92M img{height:512px}div.chatMessage_khoj__cjWON div.chatMessage_imageWrapper__DF92M{flex:1 1 auto}div.chatMessage_khoj__cjWON div.chatMessage_imagesContainer__HTRjT{display:flex;flex-wrap:wrap;flex-direction:row;overflow-x:hidden}div.chatMessage_chatMessageContainer__sAivf>img{width:auto;height:auto;max-width:100%;max-height:80vh;-o-object-fit:contain;object-fit:contain;display:block;margin-top:.25rem;margin-right:auto}div.chatMessage_chatMessageContainer__sAivf h3 img{width:24px}div.chatMessage_you__6GUC4{color:hsla(var(--secondary-foreground))}div.chatMessage_author__muRtC{font-size:.75rem;color:grey;text-align:right}div.chatMessage_chatFooter__0vR8s{display:flex;justify-content:space-between;min-height:28px}div.chatMessage_chatButtons__Lbk8T{display:flex;justify-content:flex-end;width:-moz-min-content;width:min-content;border:1px solid var(--border-color);border-radius:16px;position:relative;bottom:-12px;background-color:hsla(var(--secondary))}div.chatMessage_chatFooter__0vR8s button{cursor:pointer;color:hsl(var(--muted-foreground));border:none;border-radius:16px;padding:4px;margin-left:4px;margin-right:4px}div.chatMessage_chatFooter__0vR8s button:hover{background-color:hsla(var(--frosted-background-color))}button.chatMessage_codeCopyButton__Y_Ujv{cursor:pointer;float:right;border-radius:8px}button.chatMessage_codeCopyButton__Y_Ujv:hover{color:hsla(var(--frosted-background-color))}button.chatMessage_codeCopyButton__Y_Ujv img,button.chatMessage_copyButton__jd7q7 img,div.chatMessage_feedbackButtons___Brdy img{width:24px}div.chatMessage_trainOfThought__mR2Gg strong{font-weight:500}div.chatMessage_trainOfThought__mR2Gg.chatMessage_primary__WYPEb strong{font-weight:500;color:hsla(var(--secondary-foreground))}div.chatMessage_trainOfThought__mR2Gg.chatMessage_primary__WYPEb p{color:inherit}div.chatMessage_trainOfThoughtElement__le_bC{display:grid;grid-template-columns:auto 1fr;align-items:start}div.chatMessage_trainOfThoughtElement__le_bC ol,div.chatMessage_trainOfThoughtElement__le_bC ul{margin:auto;word-break:break-word}@media screen and (max-width:768px){div.chatMessage_youfullHistory__ioyfH{max-width:90%}div.chatMessage_khoj__cjWON div.chatMessage_imageWrapper__DF92M img{width:100%;height:auto}}div.chatInputArea_actualInputArea__Ha6cN{display:grid;grid-template-columns:auto 1fr auto auto}.agentCard_agentPersonality__MmRlN p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agentCard_agentPersonality__MmRlN{text-align:left;grid-column:span 3;overflow:hidden}button.agentCard_infoButton__heh_w{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}