khoj 1.22.2.dev11__tar.gz → 1.24.1.dev5__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 (407) hide show
  1. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/PKG-INFO +14 -14
  2. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/README.md +11 -11
  3. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/pyproject.toml +3 -3
  4. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/configure.py +2 -0
  5. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/adapters/__init__.py +16 -11
  6. khoj-1.24.1.dev5/src/khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py +26 -0
  7. khoj-1.24.1.dev5/src/khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py +21 -0
  8. khoj-1.24.1.dev5/src/khoj/database/migrations/0062_merge_20240913_0222.py +14 -0
  9. khoj-1.24.1.dev5/src/khoj/database/migrations/0063_conversation_temp_id.py +36 -0
  10. khoj-1.24.1.dev5/src/khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.py +86 -0
  11. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/models/__init__.py +3 -0
  12. khoj-1.24.1.dev5/src/khoj/interface/compiled/404/index.html +1 -0
  13. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/1603-e13f41ec2cb3f147.js +1 -0
  14. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/2697-5b013077cfa7aaf0.js +1 -0
  15. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/3062-71ed4b46ac2bb87c.js +1 -0
  16. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/3678-ef0d20e267e9f010.js +20 -0
  17. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/4051-2cf66369d6ca0f1d.js +3 -0
  18. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/6648-ee109f4ea33a74e2.js +1 -0
  19. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/7023-a5bf5744d19b3bd3.js +2 -0
  20. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/8423-7f5eb790353afe24.js +1 -0
  21. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js +1 -0
  22. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9162-0be016519a18568b.js +1 -0
  23. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9178-f478bc3670cc0cb8.js +1 -0
  24. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-9d629103b55928fa.js +1 -0
  25. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-6ea3381528603372.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-2b82404aea9fedca.js +1 -1
  26. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-09cdd872ccb8dae5.js +1 -0
  27. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/page-04a19ab1a988976f.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/page-b01f8a9b9107ecbe.js +1 -1
  28. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/page-95ecd0acac7ece82.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/page-3e69f2879a188806.js +1 -1
  29. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/search/page-53c2494182551684.js +1 -0
  30. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-2a7e60e3782ed95e.js +1 -0
  31. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-09a009c5a9f15a00.js +1 -0
  32. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +1 -0
  33. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/main-f84cd3c1873cd842.js +1 -0
  34. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/webpack-925472850f117b05.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/webpack-0f6d4805ea01afda.js +1 -1
  35. khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/24f141a6e37cd204.css +25 -0
  36. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/9eec70b61e3de1ba.css → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/2de69f0be774c768.css +1 -1
  37. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/a3530ec58b0b660f.css → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/3e1f1fdd70775091.css +1 -1
  38. khoj-1.24.1.dev5/src/khoj/interface/compiled/agents/index.html +1 -0
  39. khoj-1.24.1.dev5/src/khoj/interface/compiled/agents/index.txt +7 -0
  40. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/automations/index.html +1 -1
  41. khoj-1.24.1.dev5/src/khoj/interface/compiled/automations/index.txt +8 -0
  42. khoj-1.24.1.dev5/src/khoj/interface/compiled/chat/index.html +1 -0
  43. khoj-1.24.1.dev5/src/khoj/interface/compiled/chat/index.txt +7 -0
  44. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/factchecker/index.html +1 -1
  45. khoj-1.24.1.dev5/src/khoj/interface/compiled/factchecker/index.txt +7 -0
  46. khoj-1.24.1.dev5/src/khoj/interface/compiled/index.html +1 -0
  47. khoj-1.24.1.dev5/src/khoj/interface/compiled/index.txt +7 -0
  48. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/search/index.html +1 -1
  49. khoj-1.24.1.dev5/src/khoj/interface/compiled/search/index.txt +7 -0
  50. khoj-1.24.1.dev5/src/khoj/interface/compiled/settings/index.html +1 -0
  51. khoj-1.24.1.dev5/src/khoj/interface/compiled/settings/index.txt +8 -0
  52. khoj-1.24.1.dev5/src/khoj/interface/compiled/share/chat/index.html +1 -0
  53. khoj-1.24.1.dev5/src/khoj/interface/compiled/share/chat/index.txt +7 -0
  54. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/email/magic_link.html +1 -1
  55. khoj-1.24.1.dev5/src/khoj/interface/email/task.html +37 -0
  56. khoj-1.24.1.dev5/src/khoj/interface/email/welcome.html +90 -0
  57. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/main.py +2 -2
  58. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/images/image_to_entries.py +6 -4
  59. khoj-1.24.1.dev5/src/khoj/processor/conversation/google/gemini_chat.py +221 -0
  60. khoj-1.24.1.dev5/src/khoj/processor/conversation/google/utils.py +192 -0
  61. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/gpt.py +2 -0
  62. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/utils.py +35 -10
  63. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/prompts.py +6 -6
  64. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/utils.py +25 -9
  65. khoj-1.24.1.dev5/src/khoj/processor/image/generate.py +212 -0
  66. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/tools/online_search.py +2 -1
  67. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api.py +16 -3
  68. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_chat.py +14 -16
  69. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/email.py +6 -1
  70. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/helpers.py +100 -157
  71. khoj-1.24.1.dev5/src/khoj/utils/__init__.py +0 -0
  72. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/cli.py +6 -0
  73. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/constants.py +9 -2
  74. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/helpers.py +1 -1
  75. khoj-1.24.1.dev5/src/khoj/utils/initialization.py +233 -0
  76. khoj-1.22.2.dev11/src/khoj/interface/compiled/404/index.html +0 -1
  77. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js +0 -1
  78. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/1906-1747a36c336df02c.js +0 -3
  79. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/3062-9be9a4e34f82ed3a.js +0 -29
  80. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/3678-0732dd9d2f472171.js +0 -25
  81. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/6648-ff677e51f1b2bcf1.js +0 -1
  82. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/7023-52c1be60135eb057.js +0 -2
  83. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/8423-ce22327cf2d2edae.js +0 -1
  84. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js +0 -21
  85. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9162-0be016519a18568b.js +0 -11
  86. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9178-3a0baad1c172d515.js +0 -1
  87. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-3c01900e7b5c7e50.js +0 -1
  88. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-132e5199f954559f.js +0 -1
  89. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/search/page-fa15807b1ad7e30b.js +0 -1
  90. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-1a2acc46cdabaf4a.js +0 -1
  91. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-e20f54450d3ce6c0.js +0 -1
  92. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +0 -33
  93. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/main-175c164f5e0f026c.js +0 -1
  94. khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/3e49e5ee49c6bda1.css +0 -25
  95. khoj-1.22.2.dev11/src/khoj/interface/compiled/agents/index.html +0 -1
  96. khoj-1.22.2.dev11/src/khoj/interface/compiled/agents/index.txt +0 -7
  97. khoj-1.22.2.dev11/src/khoj/interface/compiled/automations/index.txt +0 -8
  98. khoj-1.22.2.dev11/src/khoj/interface/compiled/chat/index.html +0 -1
  99. khoj-1.22.2.dev11/src/khoj/interface/compiled/chat/index.txt +0 -7
  100. khoj-1.22.2.dev11/src/khoj/interface/compiled/factchecker/index.txt +0 -7
  101. khoj-1.22.2.dev11/src/khoj/interface/compiled/index.html +0 -1
  102. khoj-1.22.2.dev11/src/khoj/interface/compiled/index.txt +0 -7
  103. khoj-1.22.2.dev11/src/khoj/interface/compiled/search/index.txt +0 -7
  104. khoj-1.22.2.dev11/src/khoj/interface/compiled/settings/index.html +0 -1
  105. khoj-1.22.2.dev11/src/khoj/interface/compiled/settings/index.txt +0 -8
  106. khoj-1.22.2.dev11/src/khoj/interface/compiled/share/chat/index.html +0 -1
  107. khoj-1.22.2.dev11/src/khoj/interface/compiled/share/chat/index.txt +0 -7
  108. khoj-1.22.2.dev11/src/khoj/interface/email/task.html +0 -40
  109. khoj-1.22.2.dev11/src/khoj/interface/email/welcome.html +0 -61
  110. khoj-1.22.2.dev11/src/khoj/utils/initialization.py +0 -146
  111. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/.gitignore +0 -0
  112. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/LICENSE +0 -0
  113. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/__init__.py +0 -0
  114. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/README.md +0 -0
  115. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/__init__.py +0 -0
  116. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/asgi.py +0 -0
  117. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/settings.py +0 -0
  118. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/urls.py +0 -0
  119. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/__init__.py +0 -0
  120. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/admin.py +0 -0
  121. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/apps.py +0 -0
  122. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/__init__.py +0 -0
  123. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/__init__.py +0 -0
  124. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/change_generated_images_url.py +0 -0
  125. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/convert_images_png_to_webp.py +0 -0
  126. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0001_khojuser.py +0 -0
  127. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0002_googleuser.py +0 -0
  128. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0003_vector_extension.py +0 -0
  129. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0004_content_types_and_more.py +0 -0
  130. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0005_embeddings_corpus_id.py +0 -0
  131. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0006_embeddingsdates.py +0 -0
  132. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0007_add_conversation.py +0 -0
  133. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0008_alter_conversation_conversation_log.py +0 -0
  134. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0009_khojapiuser.py +0 -0
  135. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0010_chatmodeloptions_and_more.py +0 -0
  136. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0010_rename_embeddings_entry_and_more.py +0 -0
  137. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0011_merge_20231102_0138.py +0 -0
  138. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0012_entry_file_source.py +0 -0
  139. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0013_subscription.py +0 -0
  140. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0014_alter_googleuser_picture.py +0 -0
  141. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0015_alter_subscription_user.py +0 -0
  142. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0016_alter_subscription_renewal_date.py +0 -0
  143. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0017_searchmodel.py +0 -0
  144. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0018_searchmodelconfig_delete_searchmodel.py +0 -0
  145. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0019_alter_googleuser_family_name_and_more.py +0 -0
  146. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0020_reflectivequestion.py +0 -0
  147. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0021_speechtotextmodeloptions_and_more.py +0 -0
  148. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0022_texttoimagemodelconfig.py +0 -0
  149. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0023_usersearchmodelconfig.py +0 -0
  150. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0024_alter_entry_embeddings.py +0 -0
  151. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0025_clientapplication_khojuser_phone_number_and_more.py +0 -0
  152. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0025_searchmodelconfig_embeddings_inference_endpoint_and_more.py +0 -0
  153. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0026_searchmodelconfig_cross_encoder_inference_endpoint_and_more.py +0 -0
  154. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0027_merge_20240118_1324.py +0 -0
  155. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0028_khojuser_verified_phone_number.py +0 -0
  156. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0029_userrequests.py +0 -0
  157. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0030_conversation_slug_and_title.py +0 -0
  158. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0031_agent_conversation_agent.py +0 -0
  159. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0031_alter_googleuser_locale.py +0 -0
  160. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0032_merge_20240322_0427.py +0 -0
  161. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0033_rename_tuning_agent_personality.py +0 -0
  162. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0034_alter_chatmodeloptions_chat_model.py +0 -0
  163. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0035_processlock.py +0 -0
  164. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_alter_processlock_name.py +0 -0
  165. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_delete_offlinechatprocessorconversationconfig.py +0 -0
  166. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_publicconversation.py +0 -0
  167. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0037_chatmodeloptions_openai_config_and_more.py +0 -0
  168. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0037_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  169. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0038_merge_20240425_0857.py +0 -0
  170. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0038_merge_20240426_1640.py +0 -0
  171. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0039_merge_20240501_0301.py +0 -0
  172. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0040_alter_processlock_name.py +0 -0
  173. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0040_merge_20240504_1010.py +0 -0
  174. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0041_merge_20240505_1234.py +0 -0
  175. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0042_serverchatsettings.py +0 -0
  176. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0043_alter_chatmodeloptions_model_type.py +0 -0
  177. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0044_conversation_file_filters.py +0 -0
  178. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0045_fileobject.py +0 -0
  179. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0046_khojuser_email_verification_code_and_more.py +0 -0
  180. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0047_alter_entry_file_type.py +0 -0
  181. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0048_voicemodeloption_uservoicemodelconfig.py +0 -0
  182. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0049_datastore.py +0 -0
  183. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0049_texttoimagemodelconfig_api_key_and_more.py +0 -0
  184. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0050_alter_processlock_name.py +0 -0
  185. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0051_merge_20240702_1220.py +0 -0
  186. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0052_alter_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  187. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0053_agent_style_color_agent_style_icon.py +0 -0
  188. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0054_alter_agent_style_color.py +0 -0
  189. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0055_alter_agent_style_icon.py +0 -0
  190. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0056_chatmodeloptions_vision_enabled.py +0 -0
  191. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py +0 -0
  192. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0057_merge_20240816_1409.py +0 -0
  193. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +0 -0
  194. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0058_alter_chatmodeloptions_chat_model.py +0 -0
  195. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0059_searchmodelconfig_bi_encoder_confidence_threshold.py +0 -0
  196. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0060_merge_20240905_1828.py +0 -0
  197. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/__init__.py +0 -0
  198. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/tests.py +0 -0
  199. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/121-7024f479c297aef0.js +0 -0
  200. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/4504-1629487c8bc82203.js +0 -0
  201. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/6297-d1c842ed3f714ab0.js +0 -0
  202. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/7071-b4711cecca6619a8.js +0 -0
  203. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/743-1a64254447cda71f.js +0 -0
  204. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/9417-2e54c6fd056982d8.js +0 -0
  205. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/9984-e410179c6fac7cf1.js +0 -0
  206. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js +0 -0
  207. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-e71c8e913cccf792.js +0 -0
  208. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js +0 -0
  209. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-8102549127db3067.js +0 -0
  210. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/layout-7b30c541c05fb904.js +0 -0
  211. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/layout-f3e40d346da53112.js +0 -0
  212. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-3720f1362310bebb.js +0 -0
  213. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-6f9314b0d7a26046.js +0 -0
  214. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-39f03f9e32399f0f.js +0 -0
  215. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js +0 -0
  216. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/fd9d1056-2b978342deb60015.js +0 -0
  217. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js +0 -0
  218. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js +0 -0
  219. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  220. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  221. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css +0 -0
  222. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css +0 -0
  223. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/553f9cdcc7a2bcd6.css +0 -0
  224. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -0
  225. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css +0 -0
  226. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/c808691c459e3887.css +0 -0
  227. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2 +0 -0
  228. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2 +0 -0
  229. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2 +0 -0
  230. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/6cc0b9500e4f9168-s.woff2 +0 -0
  231. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/9d9319a7a2ac39c6-s.woff2 +0 -0
  232. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  233. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  234. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  235. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  236. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  237. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  238. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  239. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  240. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  241. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  242. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  243. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  244. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  245. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  246. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  247. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  248. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  249. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  250. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  251. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  252. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  253. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  254. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  255. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  256. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  257. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  258. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  259. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  260. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  261. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  262. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  263. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  264. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  265. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  266. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  267. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  268. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  269. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  270. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  271. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  272. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  273. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  274. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  275. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  276. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  277. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  278. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  279. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  280. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  281. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  282. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  283. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  284. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  285. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  286. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  287. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  288. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  289. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  290. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  291. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  292. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/a75c8ea86756d52d-s.woff2 +0 -0
  293. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/abce7c400ca31a51-s.woff2 +0 -0
  294. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/f759c939737fb668-s.woff2 +0 -0
  295. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp +0 -0
  296. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp +0 -0
  297. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/globe.98e105ca.webp +0 -0
  298. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp +0 -0
  299. {khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/yzTB2n62RuBzqDD1mrMrY → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/yFc9xIR8PT1dxRGoFX8Ev}/_buildManifest.js +0 -0
  300. {khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/yzTB2n62RuBzqDD1mrMrY → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/yFc9xIR8PT1dxRGoFX8Ev}/_ssgManifest.js +0 -0
  301. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/agents.svg +0 -0
  302. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern.ico +0 -0
  303. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png +0 -0
  304. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png +0 -0
  305. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_logomarktype_1200x630.png +0 -0
  306. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-browse-draw-sample.png +0 -0
  307. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-plain-chat-sample.png +0 -0
  308. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png +0 -0
  309. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png +0 -0
  310. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png +0 -0
  311. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png +0 -0
  312. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/automation.svg +0 -0
  313. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/chat.svg +0 -0
  314. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/close.svg +0 -0
  315. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/copy-button-success.svg +0 -0
  316. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/copy-button.svg +0 -0
  317. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/khoj.webmanifest +0 -0
  318. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/logo.svg +0 -0
  319. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/send.svg +0 -0
  320. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/share.svg +0 -0
  321. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/thumbs-down.svg +0 -0
  322. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/thumbs-up.svg +0 -0
  323. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/email/feedback.html +0 -0
  324. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/agents.svg +0 -0
  325. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/automation.svg +0 -0
  326. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/favicon-128x128.ico +0 -0
  327. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/github.svg +0 -0
  328. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-200.png +0 -0
  329. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-500.png +0 -0
  330. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways.svg +0 -0
  331. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj.svg +0 -0
  332. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/logotype.svg +0 -0
  333. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/search.svg +0 -0
  334. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/sync.svg +0 -0
  335. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/khoj.css +0 -0
  336. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/utils.js +0 -0
  337. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/base_config.html +0 -0
  338. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/content_source_github_input.html +0 -0
  339. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/login.html +0 -0
  340. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/utils.html +0 -0
  341. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/manage.py +0 -0
  342. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/__init__.py +0 -0
  343. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_default_model.py +0 -0
  344. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_default_model_2.py +0 -0
  345. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_schema.py +0 -0
  346. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_model.py +0 -0
  347. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_processor_config_openai.py +0 -0
  348. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_server_pg.py +0 -0
  349. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_version.py +0 -0
  350. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/__init__.py +0 -0
  351. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/__init__.py +0 -0
  352. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/docx/__init__.py +0 -0
  353. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/docx/docx_to_entries.py +0 -0
  354. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/github/__init__.py +0 -0
  355. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/github/github_to_entries.py +0 -0
  356. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/images/__init__.py +0 -0
  357. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/markdown/__init__.py +0 -0
  358. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/markdown/markdown_to_entries.py +0 -0
  359. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/notion/notion_to_entries.py +0 -0
  360. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/__init__.py +0 -0
  361. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/org_to_entries.py +0 -0
  362. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/orgnode.py +0 -0
  363. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/pdf/__init__.py +0 -0
  364. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/pdf/pdf_to_entries.py +0 -0
  365. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/plaintext/__init__.py +0 -0
  366. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/plaintext/plaintext_to_entries.py +0 -0
  367. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/text_to_entries.py +0 -0
  368. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/__init__.py +0 -0
  369. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/__init__.py +0 -0
  370. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/anthropic_chat.py +0 -0
  371. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/utils.py +0 -0
  372. {khoj-1.22.2.dev11/src/khoj/processor/conversation/offline → khoj-1.24.1.dev5/src/khoj/processor/conversation/google}/__init__.py +0 -0
  373. {khoj-1.22.2.dev11/src/khoj/processor/conversation/openai → khoj-1.24.1.dev5/src/khoj/processor/conversation/offline}/__init__.py +0 -0
  374. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/chat_model.py +0 -0
  375. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/utils.py +0 -0
  376. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/whisper.py +0 -0
  377. {khoj-1.22.2.dev11/src/khoj/processor/speech → khoj-1.24.1.dev5/src/khoj/processor/conversation/openai}/__init__.py +0 -0
  378. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/whisper.py +0 -0
  379. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/embeddings.py +0 -0
  380. {khoj-1.22.2.dev11/src/khoj/processor/tools → khoj-1.24.1.dev5/src/khoj/processor/speech}/__init__.py +0 -0
  381. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/speech/text_to_speech.py +0 -0
  382. {khoj-1.22.2.dev11/src/khoj/routers → khoj-1.24.1.dev5/src/khoj/processor/tools}/__init__.py +0 -0
  383. {khoj-1.22.2.dev11/src/khoj/search_filter → khoj-1.24.1.dev5/src/khoj/routers}/__init__.py +0 -0
  384. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_agents.py +0 -0
  385. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_content.py +0 -0
  386. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_model.py +0 -0
  387. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_phone.py +0 -0
  388. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/auth.py +0 -0
  389. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/notion.py +0 -0
  390. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/storage.py +0 -0
  391. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/subscription.py +0 -0
  392. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/twilio.py +0 -0
  393. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/web_client.py +0 -0
  394. {khoj-1.22.2.dev11/src/khoj/search_type → khoj-1.24.1.dev5/src/khoj/search_filter}/__init__.py +0 -0
  395. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/base_filter.py +0 -0
  396. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/date_filter.py +0 -0
  397. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/file_filter.py +0 -0
  398. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/word_filter.py +0 -0
  399. {khoj-1.22.2.dev11/src/khoj/utils → khoj-1.24.1.dev5/src/khoj/search_type}/__init__.py +0 -0
  400. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_type/text_search.py +0 -0
  401. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/config.py +0 -0
  402. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/fs_syncer.py +0 -0
  403. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/jsonl.py +0 -0
  404. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/models.py +0 -0
  405. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/rawconfig.py +0 -0
  406. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/state.py +0 -0
  407. {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/yaml.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: khoj
3
- Version: 1.22.2.dev11
3
+ Version: 1.24.1.dev5
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -36,12 +36,12 @@ Requires-Dist: django==5.0.8
36
36
  Requires-Dist: docx2txt==0.8
37
37
  Requires-Dist: einops==0.8.0
38
38
  Requires-Dist: fastapi>=0.110.0
39
+ Requires-Dist: google-generativeai==0.7.2
39
40
  Requires-Dist: httpx==0.25.0
40
41
  Requires-Dist: huggingface-hub>=0.22.2
41
42
  Requires-Dist: itsdangerous==2.1.2
42
43
  Requires-Dist: jinja2==3.1.4
43
44
  Requires-Dist: langchain-community==0.2.5
44
- Requires-Dist: langchain-openai==0.1.7
45
45
  Requires-Dist: langchain==0.2.5
46
46
  Requires-Dist: llama-cpp-python==0.2.88
47
47
  Requires-Dist: lxml==4.9.3
@@ -60,7 +60,7 @@ Requires-Dist: pymupdf>=1.23.5
60
60
  Requires-Dist: python-multipart>=0.0.7
61
61
  Requires-Dist: pytz~=2024.1
62
62
  Requires-Dist: pyyaml~=6.0
63
- Requires-Dist: rapidocr-onnxruntime==1.3.22
63
+ Requires-Dist: rapidocr-onnxruntime==1.3.24
64
64
  Requires-Dist: requests>=2.26.0
65
65
  Requires-Dist: rich>=13.3.1
66
66
  Requires-Dist: schedule==1.1.0
@@ -117,13 +117,13 @@ Description-Content-Type: text/markdown
117
117
 
118
118
  <div align="center">
119
119
 
120
- [🤖 Read Docs](https://docs.khoj.dev)
120
+ [📑 Docs](https://docs.khoj.dev)
121
121
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
122
- [🏮 Khoj Cloud](https://khoj.dev)
122
+ [🏮 App](https://khoj.dev)
123
123
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
124
- [💬 Get Involved](https://discord.gg/BDgyabRM6e)
124
+ [💬 Discord](https://discord.gg/BDgyabRM6e)
125
125
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
126
- [📚 Read Blog](https://blog.khoj.dev)
126
+ [📚 Blog](https://blog.khoj.dev)
127
127
 
128
128
  </div>
129
129
 
@@ -131,13 +131,13 @@ Description-Content-Type: text/markdown
131
131
 
132
132
  ***
133
133
 
134
- Khoj is an application that creates always-available, personal AI agents for you to extend your capabilities.
135
- - You can share your notes and documents to extend your digital brain.
136
- - Your AI agents have access to the internet, allowing you to incorporate realtime information.
137
- - Khoj is accessible on Desktop, Emacs, Obsidian, Web and Whatsapp.
134
+ [Khoj](https://khoj.dev) is a personal, open-source AI application for you to extend your capabilities.
135
+ - Share your documents to extend your digital brain.
136
+ - Access the internet, getting fresh information.
138
137
  - You can share pdf, markdown, org-mode, notion files and github repositories.
139
- - You'll get fast, accurate semantic search on top of your docs.
140
- - Your agents can create deeply personal images and understand your speech.
138
+ - Fast, accurate semantic search on top of your docs.
139
+ - Create images, talk out loud, play your messages.
140
+ - Available Desktop, Emacs, Obsidian, Web and Whatsapp.
141
141
  - Khoj is open-source, self-hostable. Always.
142
142
 
143
143
  ***
@@ -146,7 +146,7 @@ Khoj is an application that creates always-available, personal AI agents for you
146
146
 
147
147
  ## See it in action
148
148
 
149
- <img src="https://github.com/khoj-ai/khoj/blob/master/documentation/assets/img/using_khoj_for_studying.gif?raw=true" alt="Khoj Demo">
149
+ ![demo_chat](https://github.com/khoj-ai/khoj/blob/master/documentation/assets/img/quadratic_equation_khoj_web.gif?raw=true)
150
150
 
151
151
  Go to https://app.khoj.dev to see Khoj live.
152
152
 
@@ -17,13 +17,13 @@
17
17
 
18
18
  <div align="center">
19
19
 
20
- [🤖 Read Docs](https://docs.khoj.dev)
20
+ [📑 Docs](https://docs.khoj.dev)
21
21
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
22
- [🏮 Khoj Cloud](https://khoj.dev)
22
+ [🏮 App](https://khoj.dev)
23
23
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
24
- [💬 Get Involved](https://discord.gg/BDgyabRM6e)
24
+ [💬 Discord](https://discord.gg/BDgyabRM6e)
25
25
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
26
- [📚 Read Blog](https://blog.khoj.dev)
26
+ [📚 Blog](https://blog.khoj.dev)
27
27
 
28
28
  </div>
29
29
 
@@ -31,13 +31,13 @@
31
31
 
32
32
  ***
33
33
 
34
- Khoj is an application that creates always-available, personal AI agents for you to extend your capabilities.
35
- - You can share your notes and documents to extend your digital brain.
36
- - Your AI agents have access to the internet, allowing you to incorporate realtime information.
37
- - Khoj is accessible on Desktop, Emacs, Obsidian, Web and Whatsapp.
34
+ [Khoj](https://khoj.dev) is a personal, open-source AI application for you to extend your capabilities.
35
+ - Share your documents to extend your digital brain.
36
+ - Access the internet, getting fresh information.
38
37
  - You can share pdf, markdown, org-mode, notion files and github repositories.
39
- - You'll get fast, accurate semantic search on top of your docs.
40
- - Your agents can create deeply personal images and understand your speech.
38
+ - Fast, accurate semantic search on top of your docs.
39
+ - Create images, talk out loud, play your messages.
40
+ - Available Desktop, Emacs, Obsidian, Web and Whatsapp.
41
41
  - Khoj is open-source, self-hostable. Always.
42
42
 
43
43
  ***
@@ -46,7 +46,7 @@ Khoj is an application that creates always-available, personal AI agents for you
46
46
 
47
47
  ## See it in action
48
48
 
49
- <img src="https://github.com/khoj-ai/khoj/blob/master/documentation/assets/img/using_khoj_for_studying.gif?raw=true" alt="Khoj Demo">
49
+ ![demo_chat](https://github.com/khoj-ai/khoj/blob/master/documentation/assets/img/quadratic_equation_khoj_web.gif?raw=true)
50
50
 
51
51
  Go to https://app.khoj.dev to see Khoj live.
52
52
 
@@ -58,7 +58,6 @@ dependencies = [
58
58
  "uvicorn == 0.30.6",
59
59
  "aiohttp ~= 3.9.0",
60
60
  "langchain == 0.2.5",
61
- "langchain-openai == 0.1.7",
62
61
  "langchain-community == 0.2.5",
63
62
  "requests >= 2.26.0",
64
63
  "tenacity == 8.3.0",
@@ -73,7 +72,7 @@ dependencies = [
73
72
  "psycopg2-binary == 2.9.9",
74
73
  "lxml == 4.9.3",
75
74
  "tzdata == 2023.3",
76
- "rapidocr-onnxruntime == 1.3.22",
75
+ "rapidocr-onnxruntime == 1.3.24",
77
76
  "openai-whisper >= 20231117",
78
77
  "django-phonenumber-field == 7.3.0",
79
78
  "phonenumbers == 8.13.27",
@@ -87,7 +86,8 @@ dependencies = [
87
86
  "cron-descriptor == 1.4.3",
88
87
  "django_apscheduler == 0.6.2",
89
88
  "anthropic == 0.26.1",
90
- "docx2txt == 0.8"
89
+ "docx2txt == 0.8",
90
+ "google-generativeai == 0.7.2"
91
91
  ]
92
92
  dynamic = ["version"]
93
93
 
@@ -188,10 +188,12 @@ class UserAuthenticationBackend(AuthenticationBackend):
188
188
 
189
189
 
190
190
  def initialize_server(config: Optional[FullConfig]):
191
+ raise NotImplementedError("This function is not implemented yet.")
191
192
  try:
192
193
  configure_server(config, init=True)
193
194
  except Exception as e:
194
195
  logger.error(f"🚨 Failed to configure server on app load: {e}", exc_info=True)
196
+ raise e
195
197
 
196
198
 
197
199
  def configure_server(
@@ -663,7 +663,7 @@ class ConversationAdapters:
663
663
 
664
664
  @staticmethod
665
665
  def get_conversation_by_user(
666
- user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None
666
+ user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None
667
667
  ) -> Optional[Conversation]:
668
668
  if conversation_id:
669
669
  conversation = (
@@ -689,7 +689,7 @@ class ConversationAdapters:
689
689
 
690
690
  @staticmethod
691
691
  async def aset_conversation_title(
692
- user: KhojUser, client_application: ClientApplication, conversation_id: int, title: str
692
+ user: KhojUser, client_application: ClientApplication, conversation_id: str, title: str
693
693
  ):
694
694
  conversation = await Conversation.objects.filter(
695
695
  user=user, client=client_application, id=conversation_id
@@ -701,7 +701,7 @@ class ConversationAdapters:
701
701
  return None
702
702
 
703
703
  @staticmethod
704
- def get_conversation_by_id(conversation_id: int):
704
+ def get_conversation_by_id(conversation_id: str):
705
705
  return Conversation.objects.filter(id=conversation_id).first()
706
706
 
707
707
  @staticmethod
@@ -730,7 +730,7 @@ class ConversationAdapters:
730
730
 
731
731
  @staticmethod
732
732
  async def aget_conversation_by_user(
733
- user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None, title: str = None
733
+ user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None, title: str = None
734
734
  ) -> Optional[Conversation]:
735
735
  query = Conversation.objects.filter(user=user, client=client_application).prefetch_related("agent")
736
736
 
@@ -747,7 +747,7 @@ class ConversationAdapters:
747
747
 
748
748
  @staticmethod
749
749
  async def adelete_conversation_by_user(
750
- user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None
750
+ user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None
751
751
  ):
752
752
  if conversation_id:
753
753
  return await Conversation.objects.filter(user=user, client=client_application, id=conversation_id).adelete()
@@ -763,7 +763,7 @@ class ConversationAdapters:
763
763
 
764
764
  @staticmethod
765
765
  async def aget_all_conversation_configs():
766
- return await sync_to_async(list)(ChatModelOptions.objects.all())
766
+ return await sync_to_async(list)(ChatModelOptions.objects.prefetch_related("openai_config").all())
767
767
 
768
768
  @staticmethod
769
769
  def get_vision_enabled_config():
@@ -900,7 +900,7 @@ class ConversationAdapters:
900
900
  user: KhojUser,
901
901
  conversation_log: dict,
902
902
  client_application: ClientApplication = None,
903
- conversation_id: int = None,
903
+ conversation_id: str = None,
904
904
  user_message: str = None,
905
905
  ):
906
906
  slug = user_message.strip()[:200] if user_message else None
@@ -973,7 +973,7 @@ class ConversationAdapters:
973
973
  if conversation_config is None:
974
974
  conversation_config = ConversationAdapters.get_default_conversation_config()
975
975
 
976
- if conversation_config.model_type == "offline":
976
+ if conversation_config.model_type == ChatModelOptions.ModelType.OFFLINE:
977
977
  if state.offline_chat_processor_config is None or state.offline_chat_processor_config.loaded_model is None:
978
978
  chat_model = conversation_config.chat_model
979
979
  max_tokens = conversation_config.max_prompt_size
@@ -982,7 +982,12 @@ class ConversationAdapters:
982
982
  return conversation_config
983
983
 
984
984
  if (
985
- conversation_config.model_type == "openai" or conversation_config.model_type == "anthropic"
985
+ conversation_config.model_type
986
+ in [
987
+ ChatModelOptions.ModelType.ANTHROPIC,
988
+ ChatModelOptions.ModelType.OPENAI,
989
+ ChatModelOptions.ModelType.GOOGLE,
990
+ ]
986
991
  ) and conversation_config.openai_config:
987
992
  return conversation_config
988
993
 
@@ -1037,7 +1042,7 @@ class ConversationAdapters:
1037
1042
  return new_config
1038
1043
 
1039
1044
  @staticmethod
1040
- def add_files_to_filter(user: KhojUser, conversation_id: int, files: List[str]):
1045
+ def add_files_to_filter(user: KhojUser, conversation_id: str, files: List[str]):
1041
1046
  conversation = ConversationAdapters.get_conversation_by_user(user, conversation_id=conversation_id)
1042
1047
  file_list = EntryAdapters.get_all_filenames_by_source(user, "computer")
1043
1048
  for filename in files:
@@ -1051,7 +1056,7 @@ class ConversationAdapters:
1051
1056
  return conversation.file_filters
1052
1057
 
1053
1058
  @staticmethod
1054
- def remove_files_from_filter(user: KhojUser, conversation_id: int, files: List[str]):
1059
+ def remove_files_from_filter(user: KhojUser, conversation_id: str, files: List[str]):
1055
1060
  conversation = ConversationAdapters.get_conversation_by_user(user, conversation_id=conversation_id)
1056
1061
  for filename in files:
1057
1062
  if filename in conversation.file_filters:
@@ -0,0 +1,26 @@
1
+ # Generated by Django 5.0.8 on 2024-09-12 20:06
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("database", "0060_merge_20240905_1828"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="chatmodeloptions",
14
+ name="model_type",
15
+ field=models.CharField(
16
+ choices=[
17
+ ("openai", "Openai"),
18
+ ("offline", "Offline"),
19
+ ("anthropic", "Anthropic"),
20
+ ("google", "Google"),
21
+ ],
22
+ default="offline",
23
+ max_length=200,
24
+ ),
25
+ ),
26
+ ]
@@ -0,0 +1,21 @@
1
+ # Generated by Django 5.0.7 on 2024-09-12 05:43
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("database", "0060_merge_20240905_1828"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="texttoimagemodelconfig",
14
+ name="model_type",
15
+ field=models.CharField(
16
+ choices=[("openai", "Openai"), ("stability-ai", "Stabilityai"), ("replicate", "Replicate")],
17
+ default="openai",
18
+ max_length=200,
19
+ ),
20
+ ),
21
+ ]
@@ -0,0 +1,14 @@
1
+ # Generated by Django 5.0.8 on 2024-09-13 02:22
2
+
3
+ from typing import List
4
+
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ("database", "0061_alter_chatmodeloptions_model_type"),
11
+ ("database", "0061_alter_texttoimagemodelconfig_model_type"),
12
+ ]
13
+
14
+ operations: List[str] = []
@@ -0,0 +1,36 @@
1
+ # Generated by Django 5.0.8 on 2024-09-19 15:53
2
+
3
+ import uuid
4
+
5
+ from django.db import migrations, models
6
+
7
+
8
+ def create_uuid(apps, schema_editor):
9
+ Conversation = apps.get_model("database", "Conversation")
10
+ for conversation in Conversation.objects.all():
11
+ conversation.temp_id = uuid.uuid4()
12
+ conversation.save()
13
+
14
+
15
+ def remove_uuid(apps, schema_editor):
16
+ pass
17
+
18
+
19
+ class Migration(migrations.Migration):
20
+ dependencies = [
21
+ ("database", "0062_merge_20240913_0222"),
22
+ ]
23
+
24
+ operations = [
25
+ migrations.AddField(
26
+ model_name="conversation",
27
+ name="temp_id",
28
+ field=models.UUIDField(default=uuid.uuid4, editable=False),
29
+ ),
30
+ migrations.RunPython(create_uuid, reverse_code=remove_uuid),
31
+ migrations.AlterField(
32
+ model_name="conversation",
33
+ name="temp_id",
34
+ field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
35
+ ),
36
+ ]
@@ -0,0 +1,86 @@
1
+ # Generated by Django 5.0.8 on 2024-09-19 15:59
2
+
3
+ import json
4
+ import pickle
5
+ import uuid
6
+
7
+ from django.db import migrations, models
8
+
9
+
10
+ def reverse_remove_bigint_id(apps, schema_editor):
11
+ Conversation = apps.get_model("database", "Conversation")
12
+ index = 1
13
+ for conversation in Conversation.objects.all():
14
+ conversation.id = index
15
+ conversation.save()
16
+ index += 1
17
+
18
+
19
+ def update_conversation_id_in_job_state(apps, schema_editor):
20
+ try:
21
+ DjangoJob = apps.get_model("django_apscheduler", "DjangoJob")
22
+ Conversation = apps.get_model("database", "Conversation")
23
+
24
+ for job in DjangoJob.objects.all():
25
+ job_state = pickle.loads(job.job_state)
26
+ kwargs = job_state.get("kwargs")
27
+ conversation_id = kwargs.get("conversation_id") if kwargs else None
28
+ automation_metadata = json.loads(job_state.get("name", "{}"))
29
+
30
+ if not conversation_id:
31
+ job.delete()
32
+
33
+ if conversation_id:
34
+ try:
35
+ conversation = Conversation.objects.get(id=conversation_id)
36
+ automation_metadata["conversation_id"] = str(conversation.temp_id)
37
+ name = json.dumps(automation_metadata)
38
+ job_state["name"] = name
39
+ job_state["kwargs"]["conversation_id"] = str(conversation.temp_id)
40
+ job.job_state = pickle.dumps(job_state)
41
+ job.save()
42
+ except Conversation.DoesNotExist:
43
+ pass
44
+ except LookupError as e:
45
+ pass
46
+
47
+
48
+ def no_op(apps, schema_editor):
49
+ pass
50
+
51
+
52
+ def disable_triggers(apps, schema_editor):
53
+ schema_editor.execute('ALTER TABLE "database_conversation" DISABLE TRIGGER ALL;')
54
+
55
+
56
+ def enable_triggers(apps, schema_editor):
57
+ schema_editor.execute('ALTER TABLE "database_conversation" ENABLE TRIGGER ALL;')
58
+
59
+
60
+ class Migration(migrations.Migration):
61
+ dependencies = [
62
+ ("database", "0063_conversation_temp_id"),
63
+ ]
64
+
65
+ operations = [
66
+ migrations.RunPython(no_op, reverse_code=enable_triggers),
67
+ migrations.RunPython(update_conversation_id_in_job_state, reverse_code=no_op),
68
+ migrations.RemoveField(
69
+ model_name="conversation",
70
+ name="id",
71
+ ),
72
+ migrations.RenameField(
73
+ model_name="conversation",
74
+ old_name="temp_id",
75
+ new_name="id",
76
+ ),
77
+ migrations.AlterField(
78
+ model_name="conversation",
79
+ name="id",
80
+ field=models.UUIDField(
81
+ db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
82
+ ),
83
+ ),
84
+ migrations.RunPython(no_op, reverse_code=reverse_remove_bigint_id),
85
+ migrations.RunPython(no_op, reverse_code=disable_triggers),
86
+ ]
@@ -87,6 +87,7 @@ class ChatModelOptions(BaseModel):
87
87
  OPENAI = "openai"
88
88
  OFFLINE = "offline"
89
89
  ANTHROPIC = "anthropic"
90
+ GOOGLE = "google"
90
91
 
91
92
  max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
92
93
  subscribed_max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
@@ -279,6 +280,7 @@ class TextToImageModelConfig(BaseModel):
279
280
  class ModelType(models.TextChoices):
280
281
  OPENAI = "openai"
281
282
  STABILITYAI = "stability-ai"
283
+ REPLICATE = "replicate"
282
284
 
283
285
  model_name = models.CharField(max_length=200, default="dall-e-3")
284
286
  model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
@@ -348,6 +350,7 @@ class Conversation(BaseModel):
348
350
  title = models.CharField(max_length=200, default=None, null=True, blank=True)
349
351
  agent = models.ForeignKey(Agent, on_delete=models.SET_NULL, default=None, null=True, blank=True)
350
352
  file_filters = models.JSONField(default=list)
353
+ id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True, db_index=True)
351
354
 
352
355
 
353
356
  class PublicConversation(BaseModel):
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0e790e04fd40ad16-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/1538cedb321e3a97.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/24f141a6e37cd204.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0f6d4805ea01afda.js"/><script src="/_next/static/chunks/fd9d1056-2b978342deb60015.js" async=""></script><script src="/_next/static/chunks/7023-a5bf5744d19b3bd3.js" async=""></script><script src="/_next/static/chunks/main-app-6d6ee3495efe03d4.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 &#x27;unsafe-inline&#x27; &#x27;unsafe-eval&#x27;; connect-src &#x27;self&#x27; blob: https://ipapi.co/json ws://localhost:42110; style-src &#x27;self&#x27; https://assets.khoj.dev &#x27;unsafe-inline&#x27; https://fonts.googleapis.com; img-src &#x27;self&#x27; data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src &#x27;self&#x27; https://assets.khoj.dev https://fonts.gstatic.com; child-src &#x27;none&#x27;; object-src &#x27;none&#x27;;"/><title>404: This page could not be found.</title><title>Khoj AI - Home</title><meta name="description" content="Your Second Brain."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta property="og:title" content="Khoj AI - Home"/><meta property="og:description" content="Your Second Brain."/><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_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 - Home"/><meta name="twitter:description" content="Your Second Brain."/><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 src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_90df87"><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-0f6d4805ea01afda.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/0e790e04fd40ad16-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/1538cedb321e3a97.css\",\"style\"]\n3:HL[\"/_next/static/css/24f141a6e37cd204.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"4:I[95751,[],\"\"]\n6:I[39275,[],\"\"]\n7:I[61343,[],\"\"]\nd:I[76130,[],\"\"]\n8:{\"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\"}\n9:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\na:{\"display\":\"inline-block\"}\nb:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L4\",null,{\"buildId\":\"yFc9xIR8PT1dxRGoFX8Ev\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L5\",[[\"$\",\"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,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1538cedb321e3a97.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/24f141a6e37cd204.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_90df87\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"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\":\"$9\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$a\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$b\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"5:null\n"])</script></body></html>