khoj 1.40.1.dev1__tar.gz → 1.40.1.dev15__tar.gz

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 (465) hide show
  1. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/PKG-INFO +16 -3
  2. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/README.md +14 -1
  3. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/pyproject.toml +1 -1
  4. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/app/settings.py +6 -12
  5. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/adapters/__init__.py +31 -10
  6. khoj-1.40.1.dev15/src/khoj/database/migrations/0089_chatmodel_price_tier_and_more.py +34 -0
  7. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/models/__init__.py +20 -0
  8. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/404/index.html +2 -2
  9. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/2327-abb42c2498f4438a.js +1 -0
  10. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/5427-442f34b514b9fc26.js +1 -0
  11. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/8515-f305779d95dd5780.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/8515-010dd769c584b672.js +1 -1
  12. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-3993a8df749f2f29.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-ceeb9a91edea74ce.js +1 -1
  13. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-50182e85e30880e1.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-e3cb78747ab98cc7.js +1 -1
  14. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-33934fc2d6ae6838.js +1 -0
  15. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-f9ff86b966e90ce0.js +1 -0
  16. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/layout-baa6e7974e560a7a.js +1 -0
  17. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/page-392b7719999f2e46.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/page-a4053e1bb578b2ce.js +1 -1
  18. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-c02531d586972d7d.js +1 -0
  19. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/search/page-f7f648807b59310a.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/search/page-8973da2f4c076fe1.js +1 -1
  20. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-375136dbb400525b.js +1 -0
  21. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-6fb51c5c80f8ec67.js +1 -0
  22. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-52a567d6080cd5bb.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-384b54fc953b18f2.js +1 -1
  23. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/webpack-c6bde5961098facd.js → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/webpack-1169ca6e9e7e6247.js +1 -1
  24. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/css/37a73b87f02df402.css +1 -0
  25. khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/css/f29752d6e1be7624.css +1 -0
  26. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/css/fca983d49c3dd1a3.css +1 -1
  27. khoj-1.40.1.dev15/src/khoj/interface/compiled/agents/index.html +8 -0
  28. khoj-1.40.1.dev15/src/khoj/interface/compiled/agents/index.txt +8 -0
  29. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/automations/index.html +2 -2
  30. khoj-1.40.1.dev15/src/khoj/interface/compiled/automations/index.txt +9 -0
  31. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/chat/index.html +2 -2
  32. khoj-1.40.1.dev15/src/khoj/interface/compiled/chat/index.txt +8 -0
  33. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/index.html +2 -2
  34. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/index.txt +3 -3
  35. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/search/index.html +2 -2
  36. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/search/index.txt +3 -3
  37. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/settings/index.html +2 -2
  38. khoj-1.40.1.dev15/src/khoj/interface/compiled/settings/index.txt +10 -0
  39. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/share/chat/index.html +2 -2
  40. khoj-1.40.1.dev15/src/khoj/interface/compiled/share/chat/index.txt +8 -0
  41. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/images/image_to_entries.py +2 -2
  42. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/anthropic/utils.py +7 -2
  43. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/google/gemini_chat.py +4 -0
  44. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/google/utils.py +44 -5
  45. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/openai/utils.py +32 -6
  46. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/tools/run_code.py +7 -2
  47. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_agents.py +39 -11
  48. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_model.py +41 -7
  49. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/helpers.py +19 -4
  50. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/constants.py +9 -0
  51. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/helpers.py +13 -2
  52. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/2327-9d37761c0bdbc3ff.js +0 -1
  53. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/5427-ec87e7fa4b0d76cb.js +0 -1
  54. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-d5ae861e1ade9d08.js +0 -1
  55. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-8233a00e74d4aa5f.js +0 -1
  56. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/layout-bd8210ff1de491d7.js +0 -1
  57. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js +0 -1
  58. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-32122d865d786a47.js +0 -1
  59. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-64a53f8ec4afa6b3.js +0 -1
  60. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css +0 -1
  61. khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css +0 -1
  62. khoj-1.40.1.dev1/src/khoj/interface/compiled/agents/index.html +0 -8
  63. khoj-1.40.1.dev1/src/khoj/interface/compiled/agents/index.txt +0 -8
  64. khoj-1.40.1.dev1/src/khoj/interface/compiled/automations/index.txt +0 -9
  65. khoj-1.40.1.dev1/src/khoj/interface/compiled/chat/index.txt +0 -8
  66. khoj-1.40.1.dev1/src/khoj/interface/compiled/settings/index.txt +0 -10
  67. khoj-1.40.1.dev1/src/khoj/interface/compiled/share/chat/index.txt +0 -8
  68. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/.gitignore +0 -0
  69. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/LICENSE +0 -0
  70. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/__init__.py +0 -0
  71. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/app/README.md +0 -0
  72. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/app/__init__.py +0 -0
  73. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/app/asgi.py +0 -0
  74. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/app/urls.py +0 -0
  75. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/configure.py +0 -0
  76. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/__init__.py +0 -0
  77. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/admin.py +0 -0
  78. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/apps.py +0 -0
  79. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/__init__.py +0 -0
  80. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/commands/__init__.py +0 -0
  81. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/commands/change_default_model.py +0 -0
  82. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/commands/change_generated_images_url.py +0 -0
  83. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/commands/convert_images_png_to_webp.py +0 -0
  84. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/management/commands/delete_orphaned_fileobjects.py +0 -0
  85. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0001_khojuser.py +0 -0
  86. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0002_googleuser.py +0 -0
  87. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0003_vector_extension.py +0 -0
  88. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0004_content_types_and_more.py +0 -0
  89. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0005_embeddings_corpus_id.py +0 -0
  90. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0006_embeddingsdates.py +0 -0
  91. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0007_add_conversation.py +0 -0
  92. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0008_alter_conversation_conversation_log.py +0 -0
  93. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0009_khojapiuser.py +0 -0
  94. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0010_chatmodeloptions_and_more.py +0 -0
  95. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0010_rename_embeddings_entry_and_more.py +0 -0
  96. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0011_merge_20231102_0138.py +0 -0
  97. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0012_entry_file_source.py +0 -0
  98. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0013_subscription.py +0 -0
  99. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0014_alter_googleuser_picture.py +0 -0
  100. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0015_alter_subscription_user.py +0 -0
  101. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0016_alter_subscription_renewal_date.py +0 -0
  102. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0017_searchmodel.py +0 -0
  103. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0018_searchmodelconfig_delete_searchmodel.py +0 -0
  104. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0019_alter_googleuser_family_name_and_more.py +0 -0
  105. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0020_reflectivequestion.py +0 -0
  106. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0021_speechtotextmodeloptions_and_more.py +0 -0
  107. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0022_texttoimagemodelconfig.py +0 -0
  108. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0023_usersearchmodelconfig.py +0 -0
  109. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0024_alter_entry_embeddings.py +0 -0
  110. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0025_clientapplication_khojuser_phone_number_and_more.py +0 -0
  111. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0025_searchmodelconfig_embeddings_inference_endpoint_and_more.py +0 -0
  112. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0026_searchmodelconfig_cross_encoder_inference_endpoint_and_more.py +0 -0
  113. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0027_merge_20240118_1324.py +0 -0
  114. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0028_khojuser_verified_phone_number.py +0 -0
  115. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0029_userrequests.py +0 -0
  116. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0030_conversation_slug_and_title.py +0 -0
  117. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0031_agent_conversation_agent.py +0 -0
  118. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0031_alter_googleuser_locale.py +0 -0
  119. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0032_merge_20240322_0427.py +0 -0
  120. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0033_rename_tuning_agent_personality.py +0 -0
  121. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0034_alter_chatmodeloptions_chat_model.py +0 -0
  122. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0035_processlock.py +0 -0
  123. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0036_alter_processlock_name.py +0 -0
  124. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0036_delete_offlinechatprocessorconversationconfig.py +0 -0
  125. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0036_publicconversation.py +0 -0
  126. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0037_chatmodeloptions_openai_config_and_more.py +0 -0
  127. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0037_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  128. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0038_merge_20240425_0857.py +0 -0
  129. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0038_merge_20240426_1640.py +0 -0
  130. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0039_merge_20240501_0301.py +0 -0
  131. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0040_alter_processlock_name.py +0 -0
  132. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0040_merge_20240504_1010.py +0 -0
  133. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0041_merge_20240505_1234.py +0 -0
  134. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0042_serverchatsettings.py +0 -0
  135. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0043_alter_chatmodeloptions_model_type.py +0 -0
  136. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0044_conversation_file_filters.py +0 -0
  137. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0045_fileobject.py +0 -0
  138. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0046_khojuser_email_verification_code_and_more.py +0 -0
  139. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0047_alter_entry_file_type.py +0 -0
  140. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0048_voicemodeloption_uservoicemodelconfig.py +0 -0
  141. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0049_datastore.py +0 -0
  142. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0049_texttoimagemodelconfig_api_key_and_more.py +0 -0
  143. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0050_alter_processlock_name.py +0 -0
  144. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0051_merge_20240702_1220.py +0 -0
  145. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0052_alter_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  146. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0053_agent_style_color_agent_style_icon.py +0 -0
  147. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0054_alter_agent_style_color.py +0 -0
  148. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0055_alter_agent_style_icon.py +0 -0
  149. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0056_chatmodeloptions_vision_enabled.py +0 -0
  150. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py +0 -0
  151. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0057_merge_20240816_1409.py +0 -0
  152. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +0 -0
  153. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0058_alter_chatmodeloptions_chat_model.py +0 -0
  154. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0059_searchmodelconfig_bi_encoder_confidence_threshold.py +0 -0
  155. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0060_merge_20240905_1828.py +0 -0
  156. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py +0 -0
  157. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py +0 -0
  158. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0062_merge_20240913_0222.py +0 -0
  159. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0063_conversation_temp_id.py +0 -0
  160. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.py +0 -0
  161. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0065_remove_agent_avatar_remove_agent_public_and_more.py +0 -0
  162. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0066_remove_agent_tools_agent_input_tools_and_more.py +0 -0
  163. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0067_alter_agent_style_icon.py +0 -0
  164. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0068_alter_agent_output_modes.py +0 -0
  165. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0069_webscraper_serverchatsettings_web_scraper.py +0 -0
  166. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0070_alter_agent_input_tools_alter_agent_output_modes.py +0 -0
  167. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0071_subscription_enabled_trial_at_and_more.py +0 -0
  168. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0072_entry_search_model.py +0 -0
  169. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0073_delete_usersearchmodelconfig.py +0 -0
  170. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0074_alter_conversation_title.py +0 -0
  171. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0075_migrate_generated_assets_and_validate.py +0 -0
  172. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0076_rename_openaiprocessorconversationconfig_aimodelapi_and_more.py +0 -0
  173. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0077_chatmodel_alter_agent_chat_model_and_more.py +0 -0
  174. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0078_khojuser_email_verification_code_expiry.py +0 -0
  175. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0079_entry_file_object.py +0 -0
  176. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0079_searchmodelconfig_embeddings_inference_endpoint_type.py +0 -0
  177. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0080_speechtotextmodeloptions_ai_model_api.py +0 -0
  178. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0081_agent_is_hidden_chatmodel_description_and_more.py +0 -0
  179. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0081_merge_20250120_1633.py +0 -0
  180. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0082_merge_20250121_1842.py +0 -0
  181. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0083_alter_agent_output_modes_alter_agent_personality_and_more.py +0 -0
  182. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0084_alter_agent_input_tools.py +0 -0
  183. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0085_alter_agent_output_modes.py +0 -0
  184. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0086_alter_texttoimagemodelconfig_model_type.py +0 -0
  185. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0087_alter_aimodelapi_api_key.py +0 -0
  186. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/0088_ratelimitrecord.py +0 -0
  187. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/migrations/__init__.py +0 -0
  188. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/database/tests.py +0 -0
  189. {khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/cbvk0UJyMR5BLJ1jy2JpS → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/FzcZLvNUS7ajZQ9U8JFVB}/_buildManifest.js +0 -0
  190. {khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/cbvk0UJyMR5BLJ1jy2JpS → khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/FzcZLvNUS7ajZQ9U8JFVB}/_ssgManifest.js +0 -0
  191. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js +0 -0
  192. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js +0 -0
  193. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/1592.b069bdb7aaddd2eb.js +0 -0
  194. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/1915-ab4353eaca76f690.js +0 -0
  195. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/2069.f060659791c0c484.js +0 -0
  196. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/2117-1c18aa2098982bf9.js +0 -0
  197. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/2170.45431769330fa5b7.js +0 -0
  198. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/3237.c4754f02f1a388cb.js +0 -0
  199. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/3305.1fc7297ba154ee95.js +0 -0
  200. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/3332.6313db5217bb1b67.js +0 -0
  201. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/3451.421db0b49fdbd881.js +0 -0
  202. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/3460.39c2b9b6a3898384.js +0 -0
  203. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4299.2aaa569416cfc208.js +0 -0
  204. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4327.238d15c09a039b8b.js +0 -0
  205. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4357-d86d3401f6f6f802.js +0 -0
  206. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4363-4efaf12abe696251.js +0 -0
  207. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4415.e0c0da5eedae4dd7.js +0 -0
  208. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4447-5d44807c40355b1a.js +0 -0
  209. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4609-33aa487dff03a9fd.js +0 -0
  210. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4610.a1e7f40a759ed2aa.js +0 -0
  211. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4650.41f041da0ad365ad.js +0 -0
  212. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/479.a7e0c9cfc376a695.js +0 -0
  213. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/4872.5422e8324272ab40.js +0 -0
  214. /khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/4986-10ca6c2d6cbcb448.js → /khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/4986-14ea63faad1615a4.js +0 -0
  215. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5061.79a660faed0e16a9.js +0 -0
  216. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5279.85d537880b8041ae.js +0 -0
  217. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5402.b9460f1b16b57e92.js +0 -0
  218. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5473-921e17a6177f9729.js +0 -0
  219. /khoj-1.40.1.dev1/src/khoj/interface/compiled/_next/static/chunks/5477-060a89922423c280.js → /khoj-1.40.1.dev15/src/khoj/interface/compiled/_next/static/chunks/5477-c47f3a23981c89da.js +0 -0
  220. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5555.f7cf9795d675de51.js +0 -0
  221. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5621-415bdc6c7b57af11.js +0 -0
  222. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/58.f4bd8a3c9d88f5fe.js +0 -0
  223. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5854-745bea90ea77a1c7.js +0 -0
  224. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/5978.ddc72cd73130aadc.js +0 -0
  225. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/6434.7afea9648e238ad5.js +0 -0
  226. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/6663-133d5db72d2d5f24.js +0 -0
  227. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7140.4be689873f6a2d1f.js +0 -0
  228. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7200-cabc57d26c4b32da.js +0 -0
  229. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7647-2aa4cf0e69b7a84d.js +0 -0
  230. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7836.86884157d53d23a1.js +0 -0
  231. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7890.f681eb1d1f83bea2.js +0 -0
  232. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/7953.f6fc335a23efb959.js +0 -0
  233. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/8254.3145a4fbdcfdca46.js +0 -0
  234. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/8400.c95e4e79bcd79a56.js +0 -0
  235. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/8667-adbe6017a66cef10.js +0 -0
  236. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/8673.be44c4d9e4f1d084.js +0 -0
  237. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/8698.a088118fef40d302.js +0 -0
  238. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/9022.33974a513a281fd2.js +0 -0
  239. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/90542734.9e6e44b1b45b30fe.js +0 -0
  240. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/9259-d8bcd9da9e80c81e.js +0 -0
  241. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/9334-b22127fe2d39bc60.js +0 -0
  242. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/9433.b1b5f5d050c43e3c.js +0 -0
  243. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/94ca1967.1b3402358e0e1255.js +0 -0
  244. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/964ecbae.d5be7c49c320d695.js +0 -0
  245. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/9822.34f293973c4e9b04.js +0 -0
  246. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/app/_not-found/page-0ec97c4970898f2d.js +0 -0
  247. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-e49165209d2e406c.js +0 -0
  248. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f5c33a70e46b3af.js +0 -0
  249. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-8a22f370d3eaeed3.js +0 -0
  250. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/d3ac728e-07f1976c92cfb109.js +0 -0
  251. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/ebbfb5c1-a73c51b6a41a5ff6.js +0 -0
  252. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/fd9d1056-7454f5bbfcf5bd5b.js +0 -0
  253. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +0 -0
  254. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/main-876327ac335776ab.js +0 -0
  255. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js +0 -0
  256. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js +0 -0
  257. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js +0 -0
  258. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
  259. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/css/76c658ee459140a9.css +0 -0
  260. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css +0 -0
  261. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/css/9c223d337a984468.css +0 -0
  262. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/css/e4eb883b5265d372.css +0 -0
  263. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css +0 -0
  264. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2 +0 -0
  265. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/2aa11a72f7f24b58-s.woff2 +0 -0
  266. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/383a65b63658737d-s.woff2 +0 -0
  267. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/40381518f67e6cb9-s.p.woff2 +0 -0
  268. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/6f22fce21a7c433c-s.woff2 +0 -0
  269. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/77c207b095007c34-s.p.woff2 +0 -0
  270. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/82ef96de0e8f4d8c-s.p.woff2 +0 -0
  271. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/85fe2766c5e6072a-s.woff2 +0 -0
  272. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/8a6e4d7cd15e805a-s.woff2 +0 -0
  273. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  274. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  275. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  276. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  277. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  278. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  279. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  280. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  281. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  282. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  283. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  284. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  285. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  286. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  287. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  288. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  289. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  290. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  291. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  292. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  293. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  294. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  295. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  296. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  297. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  298. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  299. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  300. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  301. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  302. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  303. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  304. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  305. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  306. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  307. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  308. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  309. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  310. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  311. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  312. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  313. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  314. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  315. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  316. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  317. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  318. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  319. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  320. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  321. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  322. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  323. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  324. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  325. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  326. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  327. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  328. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  329. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  330. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  331. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  332. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  333. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/a6ecd16fa044d500-s.p.woff2 +0 -0
  334. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2 +0 -0
  335. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/c32c8052c071fc42-s.woff2 +0 -0
  336. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/c4250770ab8708b6-s.p.woff2 +0 -0
  337. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp +0 -0
  338. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp +0 -0
  339. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/globe.98e105ca.webp +0 -0
  340. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp +0 -0
  341. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/agents.svg +0 -0
  342. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern.ico +0 -0
  343. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern.svg +0 -0
  344. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png +0 -0
  345. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png +0 -0
  346. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128_dark.png +0 -0
  347. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png +0 -0
  348. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_512x512.png +0 -0
  349. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/icons/khoj_lantern_logomarktype_1200x630.png +0 -0
  350. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/desktop-browse-draw-sample.png +0 -0
  351. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/desktop-plain-chat-sample.png +0 -0
  352. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png +0 -0
  353. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png +0 -0
  354. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png +0 -0
  355. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png +0 -0
  356. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/automation.svg +0 -0
  357. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/chat.svg +0 -0
  358. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/close.svg +0 -0
  359. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/copy-button-success.svg +0 -0
  360. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/copy-button.svg +0 -0
  361. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/khoj.webmanifest +0 -0
  362. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/logo.svg +0 -0
  363. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/send.svg +0 -0
  364. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/share.svg +0 -0
  365. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/thumbs-down.svg +0 -0
  366. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/compiled/thumbs-up.svg +0 -0
  367. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/email/feedback.html +0 -0
  368. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/email/magic_link.html +0 -0
  369. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/email/task.html +0 -0
  370. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/email/welcome.html +0 -0
  371. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/.well-known/assetlinks.json +0 -0
  372. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/agents.svg +0 -0
  373. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/automation.svg +0 -0
  374. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/chat.svg +0 -0
  375. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/github.svg +0 -0
  376. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-200.png +0 -0
  377. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-500.png +0 -0
  378. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/khoj-logo-sideways.svg +0 -0
  379. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/khoj.svg +0 -0
  380. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/logotype.svg +0 -0
  381. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/search.svg +0 -0
  382. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/icons/sync.svg +0 -0
  383. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/khoj.css +0 -0
  384. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/assets/utils.js +0 -0
  385. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/base_config.html +0 -0
  386. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/content_source_github_input.html +0 -0
  387. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/login.html +0 -0
  388. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/interface/web/utils.html +0 -0
  389. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/main.py +0 -0
  390. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/manage.py +0 -0
  391. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/__init__.py +0 -0
  392. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_offline_chat_default_model.py +0 -0
  393. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_offline_chat_default_model_2.py +0 -0
  394. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_offline_chat_schema.py +0 -0
  395. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_offline_model.py +0 -0
  396. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_processor_config_openai.py +0 -0
  397. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_server_pg.py +0 -0
  398. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/migrations/migrate_version.py +0 -0
  399. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/__init__.py +0 -0
  400. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/__init__.py +0 -0
  401. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/docx/__init__.py +0 -0
  402. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/docx/docx_to_entries.py +0 -0
  403. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/github/__init__.py +0 -0
  404. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/github/github_to_entries.py +0 -0
  405. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/images/__init__.py +0 -0
  406. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/markdown/__init__.py +0 -0
  407. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/markdown/markdown_to_entries.py +0 -0
  408. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/notion/notion_to_entries.py +0 -0
  409. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/org_mode/__init__.py +0 -0
  410. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/org_mode/org_to_entries.py +0 -0
  411. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/org_mode/orgnode.py +0 -0
  412. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/pdf/__init__.py +0 -0
  413. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/pdf/pdf_to_entries.py +0 -0
  414. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/plaintext/__init__.py +0 -0
  415. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/plaintext/plaintext_to_entries.py +0 -0
  416. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/content/text_to_entries.py +0 -0
  417. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/__init__.py +0 -0
  418. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/anthropic/__init__.py +0 -0
  419. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/anthropic/anthropic_chat.py +0 -0
  420. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/google/__init__.py +0 -0
  421. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/offline/__init__.py +0 -0
  422. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/offline/chat_model.py +0 -0
  423. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/offline/utils.py +0 -0
  424. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/offline/whisper.py +0 -0
  425. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/openai/__init__.py +0 -0
  426. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/openai/gpt.py +0 -0
  427. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/openai/whisper.py +0 -0
  428. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/prompts.py +0 -0
  429. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/conversation/utils.py +0 -0
  430. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/embeddings.py +0 -0
  431. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/image/generate.py +0 -0
  432. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/speech/__init__.py +0 -0
  433. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/speech/text_to_speech.py +0 -0
  434. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/tools/__init__.py +0 -0
  435. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/processor/tools/online_search.py +0 -0
  436. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/__init__.py +0 -0
  437. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api.py +0 -0
  438. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_chat.py +0 -0
  439. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_content.py +0 -0
  440. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_phone.py +0 -0
  441. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/api_subscription.py +0 -0
  442. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/auth.py +0 -0
  443. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/email.py +0 -0
  444. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/notion.py +0 -0
  445. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/research.py +0 -0
  446. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/storage.py +0 -0
  447. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/twilio.py +0 -0
  448. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/routers/web_client.py +0 -0
  449. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_filter/__init__.py +0 -0
  450. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_filter/base_filter.py +0 -0
  451. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_filter/date_filter.py +0 -0
  452. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_filter/file_filter.py +0 -0
  453. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_filter/word_filter.py +0 -0
  454. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_type/__init__.py +0 -0
  455. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/search_type/text_search.py +0 -0
  456. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/__init__.py +0 -0
  457. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/cli.py +0 -0
  458. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/config.py +0 -0
  459. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/fs_syncer.py +0 -0
  460. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/initialization.py +0 -0
  461. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/jsonl.py +0 -0
  462. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/models.py +0 -0
  463. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/rawconfig.py +0 -0
  464. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/state.py +0 -0
  465. {khoj-1.40.1.dev1 → khoj-1.40.1.dev15}/src/khoj/utils/yaml.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: khoj
3
- Version: 1.40.1.dev1
3
+ Version: 1.40.1.dev15
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -40,7 +40,7 @@ Requires-Dist: einops==0.8.0
40
40
  Requires-Dist: email-validator==2.2.0
41
41
  Requires-Dist: fastapi>=0.110.0
42
42
  Requires-Dist: google-auth~=2.23.3
43
- Requires-Dist: google-genai==1.5.0
43
+ Requires-Dist: google-genai==1.11.0
44
44
  Requires-Dist: httpx==0.28.1
45
45
  Requires-Dist: huggingface-hub>=0.22.2
46
46
  Requires-Dist: itsdangerous==2.1.2
@@ -150,7 +150,7 @@ Description-Content-Type: text/markdown
150
150
 
151
151
  [Khoj](https://khoj.dev) is a personal AI app to extend your capabilities. It smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI.
152
152
 
153
- - Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini).
153
+ - Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini, deepseek).
154
154
  - Get answers from the internet and your docs (including image, pdf, markdown, org-mode, word, notion files).
155
155
  - Access it from your Browser, Obsidian, Emacs, Desktop, Phone or Whatsapp.
156
156
  - Create agents with custom knowledge, persona, chat model and tools to take on any role.
@@ -179,6 +179,19 @@ To get started with self-hosting Khoj, [read the docs](https://docs.khoj.dev/get
179
179
 
180
180
  Khoj is available as a cloud service, on-premises, or as a hybrid solution. To learn more about Khoj Enterprise, [visit our website](https://khoj.dev/teams).
181
181
 
182
+ ## Frequently Asked Questions (FAQ)
183
+
184
+ Q: Can I use Khoj without self-hosting?
185
+ Yes! You can use Khoj right away at [https://app.khoj.dev](https://app.khoj.dev) — no setup required.
186
+
187
+ Q: What kinds of documents can Khoj read?
188
+ Khoj supports a wide variety: PDFs, Markdown, Notion, Word docs, org-mode files, and more.
189
+
190
+ Q: How can I make my own agent?
191
+ Check out [this blog post](https://blog.khoj.dev/posts/create-agents-on-khoj/) for a step-by-step guide to custom agents.
192
+ For more questions, head over to our [Discord](https://discord.gg/BDgyabRM6e)!
193
+
194
+
182
195
  ## Contributors
183
196
  Cheers to our awesome contributors! 🎉
184
197
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  [Khoj](https://khoj.dev) is a personal AI app to extend your capabilities. It smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI.
44
44
 
45
- - Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini).
45
+ - Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini, deepseek).
46
46
  - Get answers from the internet and your docs (including image, pdf, markdown, org-mode, word, notion files).
47
47
  - Access it from your Browser, Obsidian, Emacs, Desktop, Phone or Whatsapp.
48
48
  - Create agents with custom knowledge, persona, chat model and tools to take on any role.
@@ -71,6 +71,19 @@ To get started with self-hosting Khoj, [read the docs](https://docs.khoj.dev/get
71
71
 
72
72
  Khoj is available as a cloud service, on-premises, or as a hybrid solution. To learn more about Khoj Enterprise, [visit our website](https://khoj.dev/teams).
73
73
 
74
+ ## Frequently Asked Questions (FAQ)
75
+
76
+ Q: Can I use Khoj without self-hosting?
77
+ Yes! You can use Khoj right away at [https://app.khoj.dev](https://app.khoj.dev) — no setup required.
78
+
79
+ Q: What kinds of documents can Khoj read?
80
+ Khoj supports a wide variety: PDFs, Markdown, Notion, Word docs, org-mode files, and more.
81
+
82
+ Q: How can I make my own agent?
83
+ Check out [this blog post](https://blog.khoj.dev/posts/create-agents-on-khoj/) for a step-by-step guide to custom agents.
84
+ For more questions, head over to our [Discord](https://discord.gg/BDgyabRM6e)!
85
+
86
+
74
87
  ## Contributors
75
88
  Cheers to our awesome contributors! 🎉
76
89
 
@@ -88,7 +88,7 @@ dependencies = [
88
88
  "django_apscheduler == 0.7.0",
89
89
  "anthropic == 0.49.0",
90
90
  "docx2txt == 0.8",
91
- "google-genai == 1.5.0",
91
+ "google-genai == 1.11.0",
92
92
  "google-auth ~= 2.23.3",
93
93
  "pyjson5 == 1.6.7",
94
94
  "resend == 1.0.1",
@@ -22,34 +22,29 @@ from khoj.utils.helpers import is_env_var_true
22
22
  # Build paths inside the project like this: BASE_DIR / 'subdir'.
23
23
  BASE_DIR = Path(__file__).resolve().parent.parent
24
24
 
25
-
26
- # Quick-start development settings - unsuitable for production
27
- # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
28
-
29
25
  # SECURITY WARNING: keep the secret key used in production secret!
30
26
  SECRET_KEY = os.getenv("KHOJ_DJANGO_SECRET_KEY", "!secret")
31
27
 
32
- # All Subdomains of KHOJ_DOMAIN are trusted
28
+ # Set KHOJ_DOMAIN to custom domain for production deployments.
33
29
  KHOJ_DOMAIN = os.getenv("KHOJ_DOMAIN") or "khoj.dev"
30
+
31
+ # Set KHOJ_ALLOWED_DOMAIN to the i.p or domain of the Khoj service on the internal network.
32
+ # Useful to set when running the service behind a reverse proxy.
34
33
  KHOJ_ALLOWED_DOMAIN = os.getenv("KHOJ_ALLOWED_DOMAIN", KHOJ_DOMAIN)
35
34
  ALLOWED_HOSTS = [f".{KHOJ_ALLOWED_DOMAIN}", "localhost", "127.0.0.1", "[::1]", f"{KHOJ_ALLOWED_DOMAIN}"]
36
35
 
36
+ # All Subdomains of KHOJ_DOMAIN are trusted for CSRF
37
37
  CSRF_TRUSTED_ORIGINS = [
38
38
  f"https://*.{KHOJ_DOMAIN}",
39
39
  f"https://{KHOJ_DOMAIN}",
40
40
  f"http://*.{KHOJ_DOMAIN}",
41
41
  f"http://{KHOJ_DOMAIN}",
42
- f"https://app.{KHOJ_DOMAIN}",
43
42
  ]
44
43
 
45
44
  DISABLE_HTTPS = is_env_var_true("KHOJ_NO_HTTPS")
46
45
 
47
- # KHOJ_DOMAIN is tri-state.
48
- # - Unset it for local deployments.
49
- # - Set it to empty for official production deployment.
50
- # - Set it to custom domain for other production deployments.
51
46
  # WARNING: Change this check only if you know what you are doing.
52
- if os.getenv("KHOJ_DOMAIN") == None:
47
+ if not os.getenv("KHOJ_DOMAIN"):
53
48
  SESSION_COOKIE_DOMAIN = "localhost"
54
49
  CSRF_COOKIE_DOMAIN = "localhost"
55
50
  else:
@@ -59,7 +54,6 @@ else:
59
54
  if not DISABLE_HTTPS:
60
55
  SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
61
56
 
62
- COOKIE_SAMESITE = "None"
63
57
  if DISABLE_HTTPS:
64
58
  SESSION_COOKIE_SECURE = False
65
59
  CSRF_COOKIE_SECURE = False
@@ -48,6 +48,7 @@ from khoj.database.models import (
48
48
  KhojApiUser,
49
49
  KhojUser,
50
50
  NotionConfig,
51
+ PriceTier,
51
52
  ProcessLock,
52
53
  PublicConversation,
53
54
  RateLimitRecord,
@@ -1153,22 +1154,36 @@ class ConversationAdapters:
1153
1154
  @staticmethod
1154
1155
  def get_chat_model(user: KhojUser):
1155
1156
  subscribed = is_user_subscribed(user)
1156
- if not subscribed:
1157
- return ConversationAdapters.get_default_chat_model(user)
1158
1157
  config = UserConversationConfig.objects.filter(user=user).first()
1159
- if config:
1160
- return config.setting
1161
- return ConversationAdapters.get_advanced_chat_model(user)
1158
+ if subscribed:
1159
+ # Subscibed users can use any available chat model
1160
+ if config:
1161
+ return config.setting
1162
+ # Fallback to the default advanced chat model
1163
+ return ConversationAdapters.get_advanced_chat_model(user)
1164
+ else:
1165
+ # Non-subscribed users can use any free chat model
1166
+ if config and config.setting.price_tier == PriceTier.FREE:
1167
+ return config.setting
1168
+ # Fallback to the default chat model
1169
+ return ConversationAdapters.get_default_chat_model(user)
1162
1170
 
1163
1171
  @staticmethod
1164
1172
  async def aget_chat_model(user: KhojUser):
1165
1173
  subscribed = await ais_user_subscribed(user)
1166
- if not subscribed:
1167
- return await ConversationAdapters.aget_default_chat_model(user)
1168
1174
  config = await UserConversationConfig.objects.filter(user=user).prefetch_related("setting").afirst()
1169
- if config:
1170
- return config.setting
1171
- return ConversationAdapters.aget_advanced_chat_model(user)
1175
+ if subscribed:
1176
+ # Subscibed users can use any available chat model
1177
+ if config:
1178
+ return config.setting
1179
+ # Fallback to the default advanced chat model
1180
+ return await ConversationAdapters.aget_advanced_chat_model(user)
1181
+ else:
1182
+ # Non-subscribed users can use any free chat model
1183
+ if config and config.setting.price_tier == PriceTier.FREE:
1184
+ return config.setting
1185
+ # Fallback to the default chat model
1186
+ return await ConversationAdapters.aget_default_chat_model(user)
1172
1187
 
1173
1188
  @staticmethod
1174
1189
  def get_chat_model_by_name(chat_model_name: str, ai_model_api_name: str = None):
@@ -1176,6 +1191,12 @@ class ConversationAdapters:
1176
1191
  return ChatModel.objects.filter(name=chat_model_name, ai_model_api__name=ai_model_api_name).first()
1177
1192
  return ChatModel.objects.filter(name=chat_model_name).first()
1178
1193
 
1194
+ @staticmethod
1195
+ async def aget_chat_model_by_name(chat_model_name: str, ai_model_api_name: str = None):
1196
+ if ai_model_api_name:
1197
+ return await ChatModel.objects.filter(name=chat_model_name, ai_model_api__name=ai_model_api_name).afirst()
1198
+ return await ChatModel.objects.filter(name=chat_model_name).afirst()
1199
+
1179
1200
  @staticmethod
1180
1201
  async def aget_voice_model_config(user: KhojUser) -> Optional[VoiceModelOption]:
1181
1202
  voice_model_config = await UserVoiceModelConfig.objects.filter(user=user).prefetch_related("setting").afirst()
@@ -0,0 +1,34 @@
1
+ # Generated by Django 5.1.8 on 2025-04-18 15:15
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("database", "0088_ratelimitrecord"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AddField(
13
+ model_name="chatmodel",
14
+ name="price_tier",
15
+ field=models.CharField(choices=[("free", "Free"), ("standard", "Standard")], default="free", max_length=20),
16
+ ),
17
+ migrations.AddField(
18
+ model_name="speechtotextmodeloptions",
19
+ name="price_tier",
20
+ field=models.CharField(choices=[("free", "Free"), ("standard", "Standard")], default="free", max_length=20),
21
+ ),
22
+ migrations.AddField(
23
+ model_name="texttoimagemodelconfig",
24
+ name="price_tier",
25
+ field=models.CharField(choices=[("free", "Free"), ("standard", "Standard")], default="free", max_length=20),
26
+ ),
27
+ migrations.AddField(
28
+ model_name="voicemodeloption",
29
+ name="price_tier",
30
+ field=models.CharField(
31
+ choices=[("free", "Free"), ("standard", "Standard")], default="standard", max_length=20
32
+ ),
33
+ ),
34
+ ]
@@ -195,6 +195,11 @@ class AiModelApi(DbBaseModel):
195
195
  return self.name
196
196
 
197
197
 
198
+ class PriceTier(models.TextChoices):
199
+ FREE = "free"
200
+ STANDARD = "standard"
201
+
202
+
198
203
  class ChatModel(DbBaseModel):
199
204
  class ModelType(models.TextChoices):
200
205
  OPENAI = "openai"
@@ -207,6 +212,7 @@ class ChatModel(DbBaseModel):
207
212
  tokenizer = models.CharField(max_length=200, default=None, null=True, blank=True)
208
213
  name = models.CharField(max_length=200, default="bartowski/Meta-Llama-3.1-8B-Instruct-GGUF")
209
214
  model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OFFLINE)
215
+ price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.FREE)
210
216
  vision_enabled = models.BooleanField(default=False)
211
217
  ai_model_api = models.ForeignKey(AiModelApi, on_delete=models.CASCADE, default=None, null=True, blank=True)
212
218
  description = models.TextField(default=None, null=True, blank=True)
@@ -219,6 +225,7 @@ class ChatModel(DbBaseModel):
219
225
  class VoiceModelOption(DbBaseModel):
220
226
  model_id = models.CharField(max_length=200)
221
227
  name = models.CharField(max_length=200)
228
+ price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.STANDARD)
222
229
 
223
230
 
224
231
  class Agent(DbBaseModel):
@@ -452,6 +459,17 @@ class ServerChatSettings(DbBaseModel):
452
459
  WebScraper, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="web_scraper"
453
460
  )
454
461
 
462
+ def clean(self):
463
+ error = {}
464
+ if self.chat_default and self.chat_default.price_tier != PriceTier.FREE:
465
+ error["chat_default"] = "Set the price tier of this chat model to free or use a free tier chat model."
466
+ if error:
467
+ raise ValidationError(error)
468
+
469
+ def save(self, *args, **kwargs):
470
+ self.clean()
471
+ super().save(*args, **kwargs)
472
+
455
473
 
456
474
  class LocalOrgConfig(DbBaseModel):
457
475
  input_files = models.JSONField(default=list, null=True)
@@ -534,6 +552,7 @@ class TextToImageModelConfig(DbBaseModel):
534
552
 
535
553
  model_name = models.CharField(max_length=200, default="dall-e-3")
536
554
  model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
555
+ price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.FREE)
537
556
  api_key = models.CharField(max_length=200, default=None, null=True, blank=True)
538
557
  ai_model_api = models.ForeignKey(AiModelApi, on_delete=models.CASCADE, default=None, null=True, blank=True)
539
558
 
@@ -571,6 +590,7 @@ class SpeechToTextModelOptions(DbBaseModel):
571
590
 
572
591
  model_name = models.CharField(max_length=200, default="base")
573
592
  model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OFFLINE)
593
+ price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.FREE)
574
594
  ai_model_api = models.ForeignKey(AiModelApi, on_delete=models.CASCADE, default=None, null=True, blank=True)
575
595
 
576
596
  def __str__(self):
@@ -1,8 +1,8 @@
1
- <!DOCTYPE html><html lang="en" class="__variable_f36179 __variable_386ca1"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/1d8a05b60287ae6c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/40381518f67e6cb9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/77c207b095007c34-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/82ef96de0e8f4d8c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a6ecd16fa044d500-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c4250770ab8708b6-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/7889a30fe9c83846.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c223d337a984468.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c6bde5961098facd.js"/><script src="/_next/static/chunks/fd9d1056-7454f5bbfcf5bd5b.js" async=""></script><script src="/_next/static/chunks/2117-1c18aa2098982bf9.js" async=""></script><script src="/_next/static/chunks/main-app-de1f09df97a3cfc7.js" async=""></script><script src="/_next/static/chunks/7200-cabc57d26c4b32da.js" async=""></script><script src="/_next/static/chunks/app/layout-bd8210ff1de491d7.js" async=""></script><meta name="robots" content="noindex"/><meta http-equiv="Content-Security-Policy" content="default-src &#x27;self&#x27; https://assets.khoj.dev; media-src * blob:; script-src &#x27;self&#x27; https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com &#x27;unsafe-inline&#x27; &#x27;unsafe-eval&#x27;; connect-src &#x27;self&#x27; blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src &#x27;self&#x27; https://assets.khoj.dev &#x27;unsafe-inline&#x27; https://fonts.googleapis.com https://accounts.google.com; img-src &#x27;self&#x27; data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src &#x27;self&#x27; https://assets.khoj.dev https://fonts.gstatic.com; frame-src &#x27;self&#x27; https://accounts.google.com https://app.chatwoot.com; child-src &#x27;self&#x27; https://app.chatwoot.com; object-src &#x27;none&#x27;;"/><title>404: This page could not be found.</title><title>Khoj AI - Ask Anything</title><meta name="description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta name="keywords" content="research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant"/><meta property="og:title" content="Khoj AI"/><meta property="og:description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><meta property="og:url" content="https://app.khoj.dev/"/><meta property="og:site_name" content="Khoj AI"/><meta property="og:image" content="https://assets.khoj.dev/khoj_hero.png"/><meta property="og:image:width" content="940"/><meta property="og:image:height" content="525"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta property="og:image:width" content="256"/><meta property="og:image:height" content="256"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Khoj AI"/><meta name="twitter:description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_hero.png"/><meta name="twitter:image:width" content="940"/><meta name="twitter:image:height" content="525"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta name="twitter:image:width" content="256"/><meta name="twitter:image:height" content="256"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/static/assets/icons/khoj_lantern.ico"/><link rel="apple-touch-icon" href="/static/assets/icons/khoj_lantern_256x256.png"/><meta name="next-size-adjust"/><script>
1
+ <!DOCTYPE html><html lang="en" class="__variable_f36179 __variable_386ca1"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/1d8a05b60287ae6c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/40381518f67e6cb9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/77c207b095007c34-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/82ef96de0e8f4d8c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a6ecd16fa044d500-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c4250770ab8708b6-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/7889a30fe9c83846.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c223d337a984468.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1169ca6e9e7e6247.js"/><script src="/_next/static/chunks/fd9d1056-7454f5bbfcf5bd5b.js" async=""></script><script src="/_next/static/chunks/2117-1c18aa2098982bf9.js" async=""></script><script src="/_next/static/chunks/main-app-de1f09df97a3cfc7.js" async=""></script><script src="/_next/static/chunks/7200-cabc57d26c4b32da.js" async=""></script><script src="/_next/static/chunks/app/layout-baa6e7974e560a7a.js" async=""></script><meta name="robots" content="noindex"/><meta http-equiv="Content-Security-Policy" content="default-src &#x27;self&#x27; https://assets.khoj.dev; media-src * blob:; script-src &#x27;self&#x27; https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com &#x27;unsafe-inline&#x27; &#x27;unsafe-eval&#x27;; connect-src &#x27;self&#x27; blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src &#x27;self&#x27; https://assets.khoj.dev &#x27;unsafe-inline&#x27; https://fonts.googleapis.com https://accounts.google.com; img-src &#x27;self&#x27; data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src &#x27;self&#x27; https://assets.khoj.dev https://fonts.gstatic.com; frame-src &#x27;self&#x27; https://accounts.google.com https://app.chatwoot.com; child-src &#x27;self&#x27; https://app.chatwoot.com; object-src &#x27;none&#x27;;"/><title>404: This page could not be found.</title><title>Khoj AI - Ask Anything</title><meta name="description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta name="keywords" content="research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant"/><meta property="og:title" content="Khoj AI"/><meta property="og:description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><meta property="og:url" content="https://app.khoj.dev/"/><meta property="og:site_name" content="Khoj AI"/><meta property="og:image" content="https://assets.khoj.dev/khoj_hero.png"/><meta property="og:image:width" content="940"/><meta property="og:image:height" content="525"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta property="og:image:width" content="256"/><meta property="og:image:height" content="256"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Khoj AI"/><meta name="twitter:description" content="Khoj is a personal research assistant. It helps you understand better and create faster."/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_hero.png"/><meta name="twitter:image:width" content="940"/><meta name="twitter:image:height" content="525"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta name="twitter:image:width" content="256"/><meta name="twitter:image:height" content="256"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/static/assets/icons/khoj_lantern.ico"/><link rel="apple-touch-icon" href="/static/assets/icons/khoj_lantern_256x256.png"/><meta name="next-size-adjust"/><script>
2
2
  try {
3
3
  if (localStorage.getItem('theme') === 'dark' ||
4
4
  (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
5
5
  document.documentElement.classList.add('dark');
6
6
  }
7
7
  } catch (e) {}
8
- </script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-c6bde5961098facd.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/1d8a05b60287ae6c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/40381518f67e6cb9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/77c207b095007c34-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/82ef96de0e8f4d8c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/a6ecd16fa044d500-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/media/c4250770ab8708b6-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n8:HL[\"/_next/static/css/7889a30fe9c83846.css\",\"style\"]\n9:HL[\"/_next/static/css/9c223d337a984468.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"a:I[12846,[],\"\"]\nc:I[4707,[],\"\"]\nd:I[36423,[],\"\"]\ne:I[85147,[\"7200\",\"static/chunks/7200-cabc57d26c4b32da.js\",\"3185\",\"static/chunks/app/layout-bd8210ff1de491d7.js\"],\"ThemeProvider\"]\n14:I[61060,[],\"\"]\nf:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n10:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n11:{\"display\":\"inline-block\"}\n12:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n15:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$La\",null,{\"buildId\":\"cbvk0UJyMR5BLJ1jy2JpS\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lb\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7889a30fe9c83846.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c223d337a984468.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_f36179 __variable_386ca1\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n if (localStorage.getItem('theme') === 'dark' ||\\n (!localStorage.getItem('theme') \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.classList.add('dark');\\n }\\n } catch (e) {}\\n \"}}]}],[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com https://accounts.google.com; img-src 'self' data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; frame-src 'self' https://accounts.google.com https://app.chatwoot.com; child-src 'self' https://app.chatwoot.com; object-src 'none';\"}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$f\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$10\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$11\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$12\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L13\"],\"globalErrorComponent\":\"$14\",\"missingSlots\":\"$W15\"}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Ask Anything\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"33\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"34\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\n"])</script></body></html>
8
+ </script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-1169ca6e9e7e6247.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/1d8a05b60287ae6c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/40381518f67e6cb9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/77c207b095007c34-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/82ef96de0e8f4d8c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/a6ecd16fa044d500-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/media/c4250770ab8708b6-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n8:HL[\"/_next/static/css/7889a30fe9c83846.css\",\"style\"]\n9:HL[\"/_next/static/css/9c223d337a984468.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"a:I[12846,[],\"\"]\nc:I[4707,[],\"\"]\nd:I[36423,[],\"\"]\ne:I[85147,[\"7200\",\"static/chunks/7200-cabc57d26c4b32da.js\",\"3185\",\"static/chunks/app/layout-baa6e7974e560a7a.js\"],\"ThemeProvider\"]\n14:I[61060,[],\"\"]\nf:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n10:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n11:{\"display\":\"inline-block\"}\n12:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n15:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$La\",null,{\"buildId\":\"FzcZLvNUS7ajZQ9U8JFVB\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lb\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7889a30fe9c83846.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c223d337a984468.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_f36179 __variable_386ca1\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n if (localStorage.getItem('theme') === 'dark' ||\\n (!localStorage.getItem('theme') \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.classList.add('dark');\\n }\\n } catch (e) {}\\n \"}}]}],[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com https://accounts.google.com; img-src 'self' data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; frame-src 'self' https://accounts.google.com https://app.chatwoot.com; child-src 'self' https://app.chatwoot.com; object-src 'none';\"}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$f\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$10\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$11\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$12\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L13\"],\"globalErrorComponent\":\"$14\",\"missingSlots\":\"$W15\"}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Ask Anything\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"33\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"34\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\n"])</script></body></html>