khoj 2.0.0b12__tar.gz → 2.0.0b13__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 (514) hide show
  1. {khoj-2.0.0b12 → khoj-2.0.0b13}/PKG-INFO +3 -3
  2. {khoj-2.0.0b12 → khoj-2.0.0b13}/pyproject.toml +25 -5
  3. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/app/README.md +1 -1
  4. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/app/urls.py +1 -0
  5. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/configure.py +21 -54
  6. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/adapters/__init__.py +6 -15
  7. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/commands/delete_orphaned_fileobjects.py +0 -1
  8. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.py +1 -1
  9. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0075_migrate_generated_assets_and_validate.py +1 -1
  10. khoj-2.0.0b13/src/khoj/database/migrations/0092_alter_chatmodel_model_type_alter_chatmodel_name_and_more.py +36 -0
  11. khoj-2.0.0b13/src/khoj/database/migrations/0093_remove_localorgconfig_user_and_more.py +36 -0
  12. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/models/__init__.py +10 -40
  13. khoj-2.0.0b13/src/khoj/database/tests.py +1 -0
  14. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/404/index.html +2 -2
  15. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9245.a04e92d034540234.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1225.ecac11e7421504c4.js +3 -3
  16. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1320.ae930ad00affe685.js +5 -0
  17. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/1327-3b1a41af530fa8ee.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1327-e254819a9172cfa7.js +1 -1
  18. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1626.15a8acc0d6639ec6.js +1 -0
  19. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/3489.c523fe96a2eee74f.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1940.d082758bd04e08ae.js +1 -1
  20. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/2327-ea623ca2d22f78e9.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/2327-438aaec1657c5ada.js +1 -1
  21. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/2475.57a0d0fd93d07af0.js +93 -0
  22. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/2481.5ce6524ba0a73f90.js +55 -0
  23. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/297.4c4c823ff6e3255b.js +174 -0
  24. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/5639-09e2009a2adedf8b.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/3260-82d2521fab032ff1.js +68 -23
  25. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/3353.1c6d553216a1acae.js +1 -0
  26. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/3855.f7b8131f78af046e.js +1 -0
  27. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/3973.dc54a39586ab48be.js +1 -0
  28. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/4241.c1cd170f7f37ac59.js +24 -0
  29. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4327.8d2a1b8f1ea78208.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/4327.f3704dc398c67113.js +19 -19
  30. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/4505.f09454a346269c3f.js +117 -0
  31. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/4801.96a152d49742b644.js +1 -0
  32. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/5427-a95ec748e52abb75.js +1 -0
  33. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/549.2bd27f59a91a9668.js +148 -0
  34. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/5765.71b1e1207b76b03f.js +1 -0
  35. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/584.d7ce3505f169b706.js +1 -0
  36. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/6240.34f7c1fa692edd61.js +24 -0
  37. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/6d3fe5a5-f9f3c16e0bc0cdf9.js +10 -0
  38. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7127-0f4a2a77d97fb5fa.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/7127-97b83757db125ba6.js +1 -1
  39. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/7200-93ab0072359b8028.js +1 -0
  40. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/2612.bcf5a623b3da209e.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/7553.f5ad54b1f6e92c49.js +2 -2
  41. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/7626-1b630f1654172341.js +1 -0
  42. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/764.dadd316e8e16d191.js +63 -0
  43. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/78.08169ab541abab4f.js +43 -0
  44. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/784.e03acf460df213d1.js +1 -0
  45. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9537-d9ab442ce15d1e20.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8072-e1440cb482a0940e.js +1 -1
  46. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/3265.924139c4146ee344.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8086.8d39887215807fcd.js +1 -1
  47. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8168.f074ab8c7c16d82d.js +59 -0
  48. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8694.2bd9c2f65d8c5847.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8223.1705878fa7a09292.js +1 -1
  49. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8483.94f6c9e2bee86f50.js +215 -0
  50. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8888.ebe0e552b59e7fed.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8810.fc0e479de78c7c61.js +1 -1
  51. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8828.bc74dc4ce94e78f6.js +1 -0
  52. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7303.d0612f812a967a08.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8909.14ac3f43d0070cf1.js +5 -5
  53. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/90542734.b1a1629065ba199b.js +1 -0
  54. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9167.098534184f03fe92.js +56 -0
  55. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4980.63500d68b3bb1222.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9537.e934ce37bf314509.js +5 -5
  56. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9574.3fe8e26e95bf1c34.js +1 -0
  57. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9599.ec50b5296c27dae9.js +1 -0
  58. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9643.b34248df52ffc77c.js +262 -0
  59. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9747.2fd9065b1435abb1.js +1 -0
  60. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9922.98f2b2a9959b4ebe.js +1 -0
  61. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-e49165209d2e406c.js +1 -0
  62. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-e291b49977f43880.js +1 -0
  63. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-198b26df6e09bbb0.js +1 -0
  64. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-33934fc2d6ae6838.js +1 -0
  65. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-4bc2938df5d57981.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-dfcc1e8e2ad62873.js +1 -1
  66. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/page-a19a597629e87fb8.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/page-1567cac7b79a7c59.js +1 -1
  67. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-c02531d586972d7d.js +1 -0
  68. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/search/page-fa366ac14b228688.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/search/page-3639e50ec3e9acfd.js +1 -1
  69. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-8f9a85f96088c18b.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-6081362437c82470.js +1 -1
  70. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-6fb51c5c80f8ec67.js +1 -0
  71. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-ed7787cf4938b8e3.js → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-e0dcb1762f8c8f88.js +1 -1
  72. khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/webpack-5393aad3d824e0cb.js +1 -0
  73. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/css/a0c2fd63bb396f04.css → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/css/23b26df423cd8a9c.css +1 -1
  74. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/css/93eeacc43e261162.css → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/css/c34713c98384ee87.css +1 -1
  75. khoj-2.0.0b13/src/khoj/interface/compiled/agents/index.html +8 -0
  76. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/agents/index.txt +3 -3
  77. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/automations/index.html +2 -2
  78. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/automations/index.txt +4 -4
  79. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/chat/index.html +2 -2
  80. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/chat/index.txt +3 -3
  81. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/index.html +2 -2
  82. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/index.txt +3 -3
  83. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/search/index.html +2 -2
  84. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/search/index.txt +3 -3
  85. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/settings/index.html +2 -2
  86. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/settings/index.txt +5 -5
  87. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/share/chat/index.html +2 -2
  88. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/share/chat/index.txt +3 -3
  89. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/main.py +7 -9
  90. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/manage.py +1 -0
  91. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/github/github_to_entries.py +6 -7
  92. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/images/image_to_entries.py +0 -1
  93. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/markdown/markdown_to_entries.py +2 -3
  94. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/notion/notion_to_entries.py +5 -6
  95. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/org_mode/org_to_entries.py +4 -5
  96. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/org_mode/orgnode.py +4 -4
  97. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/plaintext/plaintext_to_entries.py +1 -2
  98. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/text_to_entries.py +1 -3
  99. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/google/utils.py +3 -3
  100. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/openai/gpt.py +65 -28
  101. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/openai/utils.py +359 -28
  102. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/prompts.py +16 -41
  103. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/utils.py +29 -39
  104. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/embeddings.py +0 -2
  105. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/image/generate.py +3 -3
  106. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/__init__.py +2 -3
  107. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/grounding_agent.py +15 -2
  108. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/grounding_agent_uitars.py +34 -23
  109. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_agent_anthropic.py +29 -4
  110. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_agent_base.py +1 -1
  111. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_agent_binary.py +4 -4
  112. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_agent_openai.py +21 -6
  113. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_environment_browser.py +1 -1
  114. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_environment_computer.py +1 -1
  115. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/speech/text_to_speech.py +0 -1
  116. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/tools/online_search.py +1 -1
  117. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/tools/run_code.py +1 -1
  118. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api.py +2 -15
  119. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_agents.py +1 -2
  120. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_automation.py +1 -1
  121. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_chat.py +10 -16
  122. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_content.py +3 -111
  123. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_model.py +0 -1
  124. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_subscription.py +1 -1
  125. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/email.py +4 -4
  126. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/helpers.py +44 -103
  127. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/research.py +8 -8
  128. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/search_filter/base_filter.py +2 -4
  129. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/search_type/text_search.py +1 -2
  130. khoj-2.0.0b13/src/khoj/utils/cli.py +53 -0
  131. khoj-2.0.0b13/src/khoj/utils/config.py +16 -0
  132. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/constants.py +6 -7
  133. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/helpers.py +10 -18
  134. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/initialization.py +7 -48
  135. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/models.py +2 -4
  136. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/rawconfig.py +1 -69
  137. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/state.py +2 -8
  138. khoj-2.0.0b13/src/khoj/utils/yaml.py +8 -0
  139. khoj-2.0.0b12/src/khoj/database/tests.py +0 -3
  140. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/1191.b547ec13349b4aed.js +0 -1
  141. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/1588.f0558a0bdffc4761.js +0 -117
  142. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/1918.925cb4a35518d258.js +0 -43
  143. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/2849.dc00ae5ba7219cfc.js +0 -1
  144. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/303.fe76de943e930fbd.js +0 -1
  145. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4533.586e74b45a2bde25.js +0 -55
  146. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4551.82ce1476b5516bc2.js +0 -5
  147. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4748.0edd37cba3ea2809.js +0 -59
  148. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/5210.cd35a1c1ec594a20.js +0 -93
  149. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/5329.f8b3c5b3d16159cd.js +0 -1
  150. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/5427-13d6ffd380fdfab7.js +0 -1
  151. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/558-c14e76cff03f6a60.js +0 -1
  152. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/5830.8876eccb82da9b7d.js +0 -262
  153. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/6230.88a71d8145347b3f.js +0 -1
  154. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7161.77e0530a40ad5ca8.js +0 -1
  155. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7200-ac3b2e37ff30e126.js +0 -1
  156. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7505.c31027a3695bdebb.js +0 -148
  157. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/7760.35649cc21d9585bd.js +0 -56
  158. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/83.48e2db193a940052.js +0 -1
  159. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8427.844694e06133fb51.js +0 -1
  160. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8665.4db7e6b2e8933497.js +0 -174
  161. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/872.caf84cc1a39ae59f.js +0 -1
  162. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8890.6e8a59e4de6978bc.js +0 -215
  163. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8950.5f2272e0ac923f9e.js +0 -1
  164. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/90542734.2c21f16f18b22411.js +0 -1
  165. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9202.c703864fcedc8d1f.js +0 -63
  166. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9320.6aca4885d541aa44.js +0 -24
  167. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9535.f78cd92d03331e55.js +0 -1
  168. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9968.b111fc002796da81.js +0 -1
  169. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-4e2a134ec26aa606.js +0 -1
  170. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-5db6ad18da10d353.js +0 -1
  171. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-6271e2e31c7571d1.js +0 -1
  172. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-ad4d1792ab1a4108.js +0 -1
  173. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js +0 -1
  174. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-abb6c5f4239ad7be.js +0 -1
  175. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/f3e3247b-1758d4651e4457c2.js +0 -10
  176. khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/webpack-4b00e5a0da4a9dae.js +0 -1
  177. khoj-2.0.0b12/src/khoj/interface/compiled/agents/index.html +0 -8
  178. khoj-2.0.0b12/src/khoj/migrations/migrate_offline_chat_default_model.py +0 -69
  179. khoj-2.0.0b12/src/khoj/migrations/migrate_offline_chat_default_model_2.py +0 -71
  180. khoj-2.0.0b12/src/khoj/migrations/migrate_offline_chat_schema.py +0 -83
  181. khoj-2.0.0b12/src/khoj/migrations/migrate_offline_model.py +0 -29
  182. khoj-2.0.0b12/src/khoj/migrations/migrate_processor_config_openai.py +0 -67
  183. khoj-2.0.0b12/src/khoj/migrations/migrate_server_pg.py +0 -132
  184. khoj-2.0.0b12/src/khoj/migrations/migrate_version.py +0 -17
  185. khoj-2.0.0b12/src/khoj/processor/conversation/offline/chat_model.py +0 -224
  186. khoj-2.0.0b12/src/khoj/processor/conversation/offline/utils.py +0 -80
  187. khoj-2.0.0b12/src/khoj/processor/conversation/offline/whisper.py +0 -15
  188. khoj-2.0.0b12/src/khoj/search_type/__init__.py +0 -0
  189. khoj-2.0.0b12/src/khoj/utils/__init__.py +0 -0
  190. khoj-2.0.0b12/src/khoj/utils/cli.py +0 -101
  191. khoj-2.0.0b12/src/khoj/utils/config.py +0 -81
  192. khoj-2.0.0b12/src/khoj/utils/fs_syncer.py +0 -252
  193. khoj-2.0.0b12/src/khoj/utils/yaml.py +0 -47
  194. {khoj-2.0.0b12 → khoj-2.0.0b13}/.gitignore +0 -0
  195. {khoj-2.0.0b12 → khoj-2.0.0b13}/LICENSE +0 -0
  196. {khoj-2.0.0b12 → khoj-2.0.0b13}/README.md +0 -0
  197. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/__init__.py +0 -0
  198. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/app/__init__.py +0 -0
  199. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/app/asgi.py +0 -0
  200. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/app/settings.py +0 -0
  201. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/__init__.py +0 -0
  202. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/admin.py +0 -0
  203. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/apps.py +0 -0
  204. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/__init__.py +0 -0
  205. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/commands/__init__.py +0 -0
  206. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/commands/change_default_model.py +0 -0
  207. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/commands/change_generated_images_url.py +0 -0
  208. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/management/commands/convert_images_png_to_webp.py +0 -0
  209. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0001_khojuser.py +0 -0
  210. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0002_googleuser.py +0 -0
  211. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0003_vector_extension.py +0 -0
  212. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0004_content_types_and_more.py +0 -0
  213. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0005_embeddings_corpus_id.py +0 -0
  214. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0006_embeddingsdates.py +0 -0
  215. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0007_add_conversation.py +0 -0
  216. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0008_alter_conversation_conversation_log.py +0 -0
  217. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0009_khojapiuser.py +0 -0
  218. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0010_chatmodeloptions_and_more.py +0 -0
  219. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0010_rename_embeddings_entry_and_more.py +0 -0
  220. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0011_merge_20231102_0138.py +0 -0
  221. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0012_entry_file_source.py +0 -0
  222. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0013_subscription.py +0 -0
  223. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0014_alter_googleuser_picture.py +0 -0
  224. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0015_alter_subscription_user.py +0 -0
  225. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0016_alter_subscription_renewal_date.py +0 -0
  226. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0017_searchmodel.py +0 -0
  227. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0018_searchmodelconfig_delete_searchmodel.py +0 -0
  228. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0019_alter_googleuser_family_name_and_more.py +0 -0
  229. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0020_reflectivequestion.py +0 -0
  230. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0021_speechtotextmodeloptions_and_more.py +0 -0
  231. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0022_texttoimagemodelconfig.py +0 -0
  232. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0023_usersearchmodelconfig.py +0 -0
  233. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0024_alter_entry_embeddings.py +0 -0
  234. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0025_clientapplication_khojuser_phone_number_and_more.py +0 -0
  235. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0025_searchmodelconfig_embeddings_inference_endpoint_and_more.py +0 -0
  236. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0026_searchmodelconfig_cross_encoder_inference_endpoint_and_more.py +0 -0
  237. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0027_merge_20240118_1324.py +0 -0
  238. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0028_khojuser_verified_phone_number.py +0 -0
  239. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0029_userrequests.py +0 -0
  240. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0030_conversation_slug_and_title.py +0 -0
  241. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0031_agent_conversation_agent.py +0 -0
  242. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0031_alter_googleuser_locale.py +0 -0
  243. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0032_merge_20240322_0427.py +0 -0
  244. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0033_rename_tuning_agent_personality.py +0 -0
  245. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0034_alter_chatmodeloptions_chat_model.py +0 -0
  246. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0035_processlock.py +0 -0
  247. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0036_alter_processlock_name.py +0 -0
  248. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0036_delete_offlinechatprocessorconversationconfig.py +0 -0
  249. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0036_publicconversation.py +0 -0
  250. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0037_chatmodeloptions_openai_config_and_more.py +0 -0
  251. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0037_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  252. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0038_merge_20240425_0857.py +0 -0
  253. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0038_merge_20240426_1640.py +0 -0
  254. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0039_merge_20240501_0301.py +0 -0
  255. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0040_alter_processlock_name.py +0 -0
  256. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0040_merge_20240504_1010.py +0 -0
  257. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0041_merge_20240505_1234.py +0 -0
  258. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0042_serverchatsettings.py +0 -0
  259. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0043_alter_chatmodeloptions_model_type.py +0 -0
  260. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0044_conversation_file_filters.py +0 -0
  261. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0045_fileobject.py +0 -0
  262. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0046_khojuser_email_verification_code_and_more.py +0 -0
  263. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0047_alter_entry_file_type.py +0 -0
  264. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0048_voicemodeloption_uservoicemodelconfig.py +0 -0
  265. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0049_datastore.py +0 -0
  266. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0049_texttoimagemodelconfig_api_key_and_more.py +0 -0
  267. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0050_alter_processlock_name.py +0 -0
  268. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0051_merge_20240702_1220.py +0 -0
  269. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0052_alter_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
  270. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0053_agent_style_color_agent_style_icon.py +0 -0
  271. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0054_alter_agent_style_color.py +0 -0
  272. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0055_alter_agent_style_icon.py +0 -0
  273. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0056_chatmodeloptions_vision_enabled.py +0 -0
  274. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py +0 -0
  275. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0057_merge_20240816_1409.py +0 -0
  276. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +0 -0
  277. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0058_alter_chatmodeloptions_chat_model.py +0 -0
  278. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0059_searchmodelconfig_bi_encoder_confidence_threshold.py +0 -0
  279. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0060_merge_20240905_1828.py +0 -0
  280. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py +0 -0
  281. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py +0 -0
  282. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0062_merge_20240913_0222.py +0 -0
  283. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0063_conversation_temp_id.py +0 -0
  284. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0065_remove_agent_avatar_remove_agent_public_and_more.py +0 -0
  285. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0066_remove_agent_tools_agent_input_tools_and_more.py +0 -0
  286. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0067_alter_agent_style_icon.py +0 -0
  287. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0068_alter_agent_output_modes.py +0 -0
  288. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0069_webscraper_serverchatsettings_web_scraper.py +0 -0
  289. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0070_alter_agent_input_tools_alter_agent_output_modes.py +0 -0
  290. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0071_subscription_enabled_trial_at_and_more.py +0 -0
  291. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0072_entry_search_model.py +0 -0
  292. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0073_delete_usersearchmodelconfig.py +0 -0
  293. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0074_alter_conversation_title.py +0 -0
  294. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0076_rename_openaiprocessorconversationconfig_aimodelapi_and_more.py +0 -0
  295. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0077_chatmodel_alter_agent_chat_model_and_more.py +0 -0
  296. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0078_khojuser_email_verification_code_expiry.py +0 -0
  297. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0079_entry_file_object.py +0 -0
  298. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0079_searchmodelconfig_embeddings_inference_endpoint_type.py +0 -0
  299. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0080_speechtotextmodeloptions_ai_model_api.py +0 -0
  300. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0081_agent_is_hidden_chatmodel_description_and_more.py +0 -0
  301. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0081_merge_20250120_1633.py +0 -0
  302. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0082_merge_20250121_1842.py +0 -0
  303. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0083_alter_agent_output_modes_alter_agent_personality_and_more.py +0 -0
  304. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0084_alter_agent_input_tools.py +0 -0
  305. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0085_alter_agent_output_modes.py +0 -0
  306. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0086_alter_texttoimagemodelconfig_model_type.py +0 -0
  307. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0087_alter_aimodelapi_api_key.py +0 -0
  308. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0088_ratelimitrecord.py +0 -0
  309. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0089_chatmodel_price_tier_and_more.py +0 -0
  310. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0090_alter_khojuser_uuid.py +0 -0
  311. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/0091_chatmodel_friendly_name_and_more.py +0 -0
  312. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/database/migrations/__init__.py +0 -0
  313. {khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/TTch40tYWOfh0SzwjwZXV → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/RYbQvo3AvgOR0bEVVfxF4}/_buildManifest.js +0 -0
  314. {khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/TTch40tYWOfh0SzwjwZXV → khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/RYbQvo3AvgOR0bEVVfxF4}/_ssgManifest.js +0 -0
  315. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/1915-fbfe167c84ad60c5.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/1915-5c6508f6ebb62a30.js +0 -0
  316. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/2117-e78b6902ad6f75ec.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/2117-080746c8e170c81a.js +0 -0
  317. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/2242.9a07e19f1a3a8b16.js +0 -0
  318. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/2939-4d4084c5b888b960.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/2939-4af3fd24b8ffc9ad.js +0 -0
  319. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/3592-b2a2444b0ec7b119.js +0 -0
  320. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/3595-ac8e81e04ecb89cb.js +0 -0
  321. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/4447-d6cf93724d57e34b.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/4447-cd95608f8e93e711.js +0 -0
  322. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/4609-33aa487dff03a9fd.js +0 -0
  323. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/4610.196691887afb7fea.js +0 -0
  324. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/5303-c65c9c6aeb263a0d.js +0 -0
  325. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/5477-c4209b72942d3038.js +0 -0
  326. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/6434.e6cd986d690f2cef.js +0 -0
  327. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/8667-4b7790573b08c50d.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/8667-50b03a89e82e0ba7.js +0 -0
  328. /khoj-2.0.0b12/src/khoj/interface/compiled/_next/static/chunks/9139-ce1ae935dac9c871.js → /khoj-2.0.0b13/src/khoj/interface/compiled/_next/static/chunks/9139-8ac4d9feb10f8869.js +0 -0
  329. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/945-74376499b067d28e.js +0 -0
  330. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/94ca1967.1b3402358e0e1255.js +0 -0
  331. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/964ecbae.d5be7c49c320d695.js +0 -0
  332. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/app/_not-found/page-84f94d15b2da4eac.js +0 -0
  333. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/app/automations/layout-63603d2cb33279f7.js +0 -0
  334. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/app/layout-c2de87a25fededbb.js +0 -0
  335. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-f88cedfe9ad4df7c.js +0 -0
  336. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/d3ac728e-4c56e7f41db266b7.js +0 -0
  337. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/fd9d1056-aa94101ec5388dba.js +0 -0
  338. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +0 -0
  339. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js +0 -0
  340. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/main-fc8e0fefa2ef3d8c.js +0 -0
  341. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js +0 -0
  342. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js +0 -0
  343. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
  344. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/3090706713c12a32.css +0 -0
  345. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/37a73b87f02df402.css +0 -0
  346. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/5b28ced915454767.css +0 -0
  347. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/76c658ee459140a9.css +0 -0
  348. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css +0 -0
  349. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/db7d90554f3ab82b.css +0 -0
  350. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css +0 -0
  351. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2 +0 -0
  352. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/2aa11a72f7f24b58-s.woff2 +0 -0
  353. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/383a65b63658737d-s.woff2 +0 -0
  354. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/40381518f67e6cb9-s.p.woff2 +0 -0
  355. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/6f22fce21a7c433c-s.woff2 +0 -0
  356. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/77c207b095007c34-s.p.woff2 +0 -0
  357. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/82ef96de0e8f4d8c-s.p.woff2 +0 -0
  358. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/85fe2766c5e6072a-s.woff2 +0 -0
  359. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/8a6e4d7cd15e805a-s.woff2 +0 -0
  360. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  361. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  362. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  363. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  364. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  365. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  366. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  367. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  368. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  369. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  370. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  371. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  372. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  373. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  374. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  375. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  376. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  377. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  378. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  379. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  380. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  381. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  382. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  383. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  384. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  385. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  386. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  387. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  388. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  389. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  390. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  391. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  392. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  393. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  394. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  395. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  396. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  397. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  398. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  399. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  400. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  401. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  402. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  403. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  404. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  405. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  406. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  407. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  408. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  409. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  410. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  411. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  412. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  413. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  414. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  415. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  416. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  417. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  418. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  419. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  420. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/a6ecd16fa044d500-s.p.woff2 +0 -0
  421. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2 +0 -0
  422. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/c32c8052c071fc42-s.woff2 +0 -0
  423. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/c4250770ab8708b6-s.p.woff2 +0 -0
  424. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp +0 -0
  425. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp +0 -0
  426. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/globe.98e105ca.webp +0 -0
  427. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp +0 -0
  428. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/agents.svg +0 -0
  429. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern.ico +0 -0
  430. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern.svg +0 -0
  431. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png +0 -0
  432. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png +0 -0
  433. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128_dark.png +0 -0
  434. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png +0 -0
  435. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_512x512.png +0 -0
  436. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/icons/khoj_lantern_logomarktype_1200x630.png +0 -0
  437. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/desktop-browse-draw-sample.png +0 -0
  438. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/desktop-plain-chat-sample.png +0 -0
  439. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png +0 -0
  440. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png +0 -0
  441. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png +0 -0
  442. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png +0 -0
  443. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/automation.svg +0 -0
  444. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/chat.svg +0 -0
  445. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/close.svg +0 -0
  446. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/copy-button-success.svg +0 -0
  447. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/copy-button.svg +0 -0
  448. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/khoj.webmanifest +0 -0
  449. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/logo.svg +0 -0
  450. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/send.svg +0 -0
  451. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/share.svg +0 -0
  452. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/thumbs-down.svg +0 -0
  453. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/compiled/thumbs-up.svg +0 -0
  454. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/email/feedback.html +0 -0
  455. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/email/magic_link.html +0 -0
  456. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/email/task.html +0 -0
  457. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/email/welcome.html +0 -0
  458. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/.well-known/assetlinks.json +0 -0
  459. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/agents.svg +0 -0
  460. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/automation.svg +0 -0
  461. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/chat.svg +0 -0
  462. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/github.svg +0 -0
  463. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-200.png +0 -0
  464. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-500.png +0 -0
  465. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/khoj-logo-sideways.svg +0 -0
  466. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/khoj.svg +0 -0
  467. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/logotype.svg +0 -0
  468. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/search.svg +0 -0
  469. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/icons/sync.svg +0 -0
  470. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/khoj.css +0 -0
  471. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/assets/utils.js +0 -0
  472. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/base_config.html +0 -0
  473. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/content_source_github_input.html +0 -0
  474. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/error.html +0 -0
  475. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/login.html +0 -0
  476. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/interface/web/utils.html +0 -0
  477. {khoj-2.0.0b12/src/khoj/migrations → khoj-2.0.0b13/src/khoj/processor}/__init__.py +0 -0
  478. {khoj-2.0.0b12/src/khoj/processor → khoj-2.0.0b13/src/khoj/processor/content}/__init__.py +0 -0
  479. {khoj-2.0.0b12/src/khoj/processor/content → khoj-2.0.0b13/src/khoj/processor/content/docx}/__init__.py +0 -0
  480. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/docx/docx_to_entries.py +0 -0
  481. {khoj-2.0.0b12/src/khoj/processor/content/docx → khoj-2.0.0b13/src/khoj/processor/content/github}/__init__.py +0 -0
  482. {khoj-2.0.0b12/src/khoj/processor/content/github → khoj-2.0.0b13/src/khoj/processor/content/images}/__init__.py +0 -0
  483. {khoj-2.0.0b12/src/khoj/processor/content/images → khoj-2.0.0b13/src/khoj/processor/content/markdown}/__init__.py +0 -0
  484. {khoj-2.0.0b12/src/khoj/processor/content/markdown → khoj-2.0.0b13/src/khoj/processor/content/org_mode}/__init__.py +0 -0
  485. {khoj-2.0.0b12/src/khoj/processor/content/org_mode → khoj-2.0.0b13/src/khoj/processor/content/pdf}/__init__.py +0 -0
  486. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/content/pdf/pdf_to_entries.py +0 -0
  487. {khoj-2.0.0b12/src/khoj/processor/content/pdf → khoj-2.0.0b13/src/khoj/processor/content/plaintext}/__init__.py +0 -0
  488. {khoj-2.0.0b12/src/khoj/processor/content/plaintext → khoj-2.0.0b13/src/khoj/processor/conversation}/__init__.py +0 -0
  489. {khoj-2.0.0b12/src/khoj/processor/conversation → khoj-2.0.0b13/src/khoj/processor/conversation/anthropic}/__init__.py +0 -0
  490. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/anthropic/anthropic_chat.py +0 -0
  491. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/anthropic/utils.py +0 -0
  492. {khoj-2.0.0b12/src/khoj/processor/conversation/anthropic → khoj-2.0.0b13/src/khoj/processor/conversation/google}/__init__.py +0 -0
  493. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/google/gemini_chat.py +0 -0
  494. {khoj-2.0.0b12/src/khoj/processor/conversation/google → khoj-2.0.0b13/src/khoj/processor/conversation/openai}/__init__.py +0 -0
  495. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/conversation/openai/whisper.py +0 -0
  496. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/README.md +0 -0
  497. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_actions.py +0 -0
  498. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/processor/operator/operator_environment_base.py +0 -0
  499. {khoj-2.0.0b12/src/khoj/processor/conversation/offline → khoj-2.0.0b13/src/khoj/processor/speech}/__init__.py +0 -0
  500. {khoj-2.0.0b12/src/khoj/processor/conversation/openai → khoj-2.0.0b13/src/khoj/processor/tools}/__init__.py +0 -0
  501. {khoj-2.0.0b12/src/khoj/processor/speech → khoj-2.0.0b13/src/khoj/routers}/__init__.py +0 -0
  502. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/api_phone.py +0 -0
  503. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/auth.py +0 -0
  504. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/notion.py +0 -0
  505. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/storage.py +0 -0
  506. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/twilio.py +0 -0
  507. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/routers/web_client.py +0 -0
  508. {khoj-2.0.0b12/src/khoj/processor/tools → khoj-2.0.0b13/src/khoj/search_filter}/__init__.py +0 -0
  509. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/search_filter/date_filter.py +0 -0
  510. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/search_filter/file_filter.py +0 -0
  511. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/search_filter/word_filter.py +0 -0
  512. {khoj-2.0.0b12/src/khoj/routers → khoj-2.0.0b13/src/khoj/search_type}/__init__.py +0 -0
  513. {khoj-2.0.0b12/src/khoj/search_filter → khoj-2.0.0b13/src/khoj/utils}/__init__.py +0 -0
  514. {khoj-2.0.0b12 → khoj-2.0.0b13}/src/khoj/utils/jsonl.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: khoj
3
- Version: 2.0.0b12
3
+ Version: 2.0.0b13
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -27,6 +27,7 @@ Requires-Dist: anyio~=4.8.0
27
27
  Requires-Dist: apscheduler~=3.10.0
28
28
  Requires-Dist: authlib==1.2.1
29
29
  Requires-Dist: beautifulsoup4~=4.12.3
30
+ Requires-Dist: click<8.2.2
30
31
  Requires-Dist: cron-descriptor==1.4.3
31
32
  Requires-Dist: dateparser>=1.1.1
32
33
  Requires-Dist: defusedxml==0.7.1
@@ -47,7 +48,6 @@ Requires-Dist: itsdangerous==2.1.2
47
48
  Requires-Dist: jinja2==3.1.6
48
49
  Requires-Dist: langchain-community==0.3.3
49
50
  Requires-Dist: langchain-text-splitters==0.3.1
50
- Requires-Dist: llama-cpp-python==0.2.88
51
51
  Requires-Dist: lxml==4.9.3
52
52
  Requires-Dist: magika~=0.5.1
53
53
  Requires-Dist: markdown-it-py~=3.0.0
@@ -79,7 +79,6 @@ Requires-Dist: tzdata==2023.3
79
79
  Requires-Dist: uvicorn==0.30.6
80
80
  Requires-Dist: websockets==13.0
81
81
  Provides-Extra: dev
82
- Requires-Dist: black>=23.1.0; extra == 'dev'
83
82
  Requires-Dist: boto3>=1.34.57; extra == 'dev'
84
83
  Requires-Dist: datasets; extra == 'dev'
85
84
  Requires-Dist: factory-boy>=3.2.1; extra == 'dev'
@@ -94,6 +93,7 @@ Requires-Dist: pytest-asyncio==0.21.1; extra == 'dev'
94
93
  Requires-Dist: pytest-django==4.5.2; extra == 'dev'
95
94
  Requires-Dist: pytest-xdist[psutil]; extra == 'dev'
96
95
  Requires-Dist: pytest>=7.1.2; extra == 'dev'
96
+ Requires-Dist: ruff>=0.12.0; extra == 'dev'
97
97
  Requires-Dist: stripe==7.3.0; extra == 'dev'
98
98
  Requires-Dist: twilio==8.11; extra == 'dev'
99
99
  Provides-Extra: local
@@ -50,6 +50,7 @@ dependencies = [
50
50
  "pydantic[email] >= 2.0.0",
51
51
  "pyyaml ~= 6.0",
52
52
  "rich >= 13.3.1",
53
+ "click < 8.2.2",
53
54
  "schedule == 1.1.0",
54
55
  "sentence-transformers == 3.4.1",
55
56
  "einops == 0.8.0",
@@ -65,7 +66,6 @@ dependencies = [
65
66
  "django == 5.1.10",
66
67
  "django-unfold == 0.42.0",
67
68
  "authlib == 1.2.1",
68
- "llama-cpp-python == 0.2.88",
69
69
  "itsdangerous == 2.1.2",
70
70
  "httpx == 0.28.1",
71
71
  "pgvector == 0.2.4",
@@ -123,7 +123,7 @@ dev = [
123
123
  "freezegun >= 1.2.0",
124
124
  "factory-boy >= 3.2.1",
125
125
  "mypy >= 1.0.1",
126
- "black >= 23.1.0",
126
+ "ruff >= 0.12.0",
127
127
  "pre-commit >= 3.0.4",
128
128
  "gitpython ~= 3.1.43",
129
129
  "datasets",
@@ -150,11 +150,31 @@ non_interactive = true
150
150
  show_error_codes = true
151
151
  warn_unused_ignores = false
152
152
 
153
- [tool.black]
153
+ [tool.ruff]
154
154
  line-length = 120
155
155
 
156
- [tool.isort]
157
- profile = "black"
156
+ [tool.ruff.lint]
157
+ select = ["E", "F", "I"] # Enable error, warning, and import checks
158
+ ignore = [
159
+ "E501", # Ignore line length
160
+ "F405", # Ignore name not defined (e.g., from imports)
161
+ "E402", # Ignore module level import not at top of file
162
+ ]
163
+ unfixable = ["F841"] # Don't auto-remove unused variables
164
+ exclude = [ "tests/*.py" ]
165
+ [tool.ruff.lint.per-file-ignores]
166
+ "src/khoj/main.py" = [
167
+ "I001", # Ignore Import order
168
+ "I002", # Ignore Import not at top of file
169
+ "E402", # Ignore module level import not at top of file
170
+ ]
171
+
172
+ [tool.ruff.format]
173
+ quote-style = "double"
174
+ indent-style = "space"
175
+
176
+ [tool.ruff.lint.isort]
177
+ known-first-party = ["khoj"]
158
178
 
159
179
  [tool.pytest.ini_options]
160
180
  addopts = "--strict-markers"
@@ -65,7 +65,7 @@ sudo -u postgres createdb khoj
65
65
  ### Install Khoj
66
66
 
67
67
  ```bash
68
- pip install -e '.[dev]'
68
+ uv sync --all-extras
69
69
  ```
70
70
 
71
71
  ### Make Khoj DB migrations
@@ -14,6 +14,7 @@ Including another URLconf
14
14
  1. Import the include() function: from django.urls import include, path
15
15
  2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
16
16
  """
17
+
17
18
  from django.contrib import admin
18
19
  from django.contrib.staticfiles.urls import staticfiles_urlpatterns
19
20
  from django.urls import path
@@ -50,13 +50,11 @@ from khoj.database.adapters import (
50
50
  )
51
51
  from khoj.database.models import ClientApplication, KhojUser, ProcessLock, Subscription
52
52
  from khoj.processor.embeddings import CrossEncoderModel, EmbeddingsModel
53
- from khoj.routers.api_content import configure_content, configure_search
53
+ from khoj.routers.api_content import configure_content
54
54
  from khoj.routers.twilio import is_twilio_enabled
55
55
  from khoj.utils import constants, state
56
56
  from khoj.utils.config import SearchType
57
- from khoj.utils.fs_syncer import collect_files
58
- from khoj.utils.helpers import is_none_or_empty, telemetry_disabled
59
- from khoj.utils.rawconfig import FullConfig
57
+ from khoj.utils.helpers import is_none_or_empty
60
58
 
61
59
  logger = logging.getLogger(__name__)
62
60
 
@@ -232,14 +230,6 @@ class UserAuthenticationBackend(AuthenticationBackend):
232
230
  return AuthCredentials(), UnauthenticatedUser()
233
231
 
234
232
 
235
- def initialize_server(config: Optional[FullConfig]):
236
- try:
237
- configure_server(config, init=True)
238
- except Exception as e:
239
- logger.error(f"🚨 Failed to configure server on app load: {e}", exc_info=True)
240
- raise e
241
-
242
-
243
233
  def clean_connections(func):
244
234
  """
245
235
  A decorator that ensures that Django database connections that have become unusable, or are obsolete, are closed
@@ -260,19 +250,7 @@ def clean_connections(func):
260
250
  return func_wrapper
261
251
 
262
252
 
263
- def configure_server(
264
- config: FullConfig,
265
- regenerate: bool = False,
266
- search_type: Optional[SearchType] = None,
267
- init=False,
268
- user: KhojUser = None,
269
- ):
270
- # Update Config
271
- if config == None:
272
- logger.info(f"Initializing with default config.")
273
- config = FullConfig()
274
- state.config = config
275
-
253
+ def initialize_server():
276
254
  if ConversationAdapters.has_valid_ai_model_api():
277
255
  ai_model_api = ConversationAdapters.get_ai_model_api()
278
256
  state.openai_client = openai.OpenAI(api_key=ai_model_api.api_key, base_url=ai_model_api.api_base_url)
@@ -309,43 +287,33 @@ def configure_server(
309
287
  )
310
288
 
311
289
  state.SearchType = configure_search_types()
312
- state.search_models = configure_search(state.search_models, state.config.search_type)
313
- setup_default_agent(user)
290
+ setup_default_agent()
314
291
 
315
- message = (
316
- "📡 Telemetry disabled"
317
- if telemetry_disabled(state.config.app, state.telemetry_disabled)
318
- else "📡 Telemetry enabled"
319
- )
292
+ message = "📡 Telemetry disabled" if state.telemetry_disabled else "📡 Telemetry enabled"
320
293
  logger.info(message)
321
294
 
322
- if not init:
323
- initialize_content(user, regenerate, search_type)
324
-
325
295
  except Exception as e:
326
296
  logger.error(f"Failed to load some search models: {e}", exc_info=True)
327
297
 
328
298
 
329
- def setup_default_agent(user: KhojUser):
330
- AgentAdapters.create_default_agent(user)
299
+ def setup_default_agent():
300
+ AgentAdapters.create_default_agent()
331
301
 
332
302
 
333
303
  def initialize_content(user: KhojUser, regenerate: bool, search_type: Optional[SearchType] = None):
334
304
  # Initialize Content from Config
335
- if state.search_models:
336
- try:
337
- logger.info("📬 Updating content index...")
338
- all_files = collect_files(user=user)
339
- status = configure_content(
340
- user,
341
- all_files,
342
- regenerate,
343
- search_type,
344
- )
345
- if not status:
346
- raise RuntimeError("Failed to update content index")
347
- except Exception as e:
348
- raise e
305
+ try:
306
+ logger.info("📬 Updating content index...")
307
+ status = configure_content(
308
+ user,
309
+ {},
310
+ regenerate,
311
+ search_type,
312
+ )
313
+ if not status:
314
+ raise RuntimeError("Failed to update content index")
315
+ except Exception as e:
316
+ raise e
349
317
 
350
318
 
351
319
  def configure_routes(app):
@@ -438,8 +406,7 @@ def configure_middleware(app, ssl_enabled: bool = False):
438
406
 
439
407
  def update_content_index():
440
408
  for user in get_all_users():
441
- all_files = collect_files(user=user)
442
- success = configure_content(user, all_files)
409
+ success = configure_content(user, {})
443
410
  if not success:
444
411
  raise RuntimeError("Failed to update content index")
445
412
  logger.info("📪 Content index updated via Scheduler")
@@ -464,7 +431,7 @@ def configure_search_types():
464
431
  @schedule.repeat(schedule.every(2).minutes)
465
432
  @clean_connections
466
433
  def upload_telemetry():
467
- if telemetry_disabled(state.config.app, state.telemetry_disabled) or not state.telemetry:
434
+ if state.telemetry_disabled or not state.telemetry:
468
435
  return
469
436
 
470
437
  try:
@@ -72,7 +72,6 @@ from khoj.search_filter.date_filter import DateFilter
72
72
  from khoj.search_filter.file_filter import FileFilter
73
73
  from khoj.search_filter.word_filter import WordFilter
74
74
  from khoj.utils import state
75
- from khoj.utils.config import OfflineChatProcessorModel
76
75
  from khoj.utils.helpers import (
77
76
  clean_object_for_db,
78
77
  clean_text_for_db,
@@ -789,8 +788,8 @@ class AgentAdapters:
789
788
  return Agent.objects.filter(name=AgentAdapters.DEFAULT_AGENT_NAME).first()
790
789
 
791
790
  @staticmethod
792
- def create_default_agent(user: KhojUser):
793
- default_chat_model = ConversationAdapters.get_default_chat_model(user)
791
+ def create_default_agent():
792
+ default_chat_model = ConversationAdapters.get_default_chat_model(user=None)
794
793
  if default_chat_model is None:
795
794
  logger.info("No default conversation config found, skipping default agent creation")
796
795
  return None
@@ -1553,14 +1552,6 @@ class ConversationAdapters:
1553
1552
  if chat_model is None:
1554
1553
  chat_model = await ConversationAdapters.aget_default_chat_model()
1555
1554
 
1556
- if chat_model.model_type == ChatModel.ModelType.OFFLINE:
1557
- if state.offline_chat_processor_config is None or state.offline_chat_processor_config.loaded_model is None:
1558
- chat_model_name = chat_model.name
1559
- max_tokens = chat_model.max_prompt_size
1560
- state.offline_chat_processor_config = OfflineChatProcessorModel(chat_model_name, max_tokens)
1561
-
1562
- return chat_model
1563
-
1564
1555
  if (
1565
1556
  chat_model.model_type
1566
1557
  in [
@@ -1919,9 +1910,9 @@ class EntryAdapters:
1919
1910
 
1920
1911
  owner_filter = Q()
1921
1912
 
1922
- if user != None:
1913
+ if user is not None:
1923
1914
  owner_filter = Q(user=user)
1924
- if agent != None:
1915
+ if agent is not None:
1925
1916
  owner_filter |= Q(agent=agent)
1926
1917
 
1927
1918
  if owner_filter == Q():
@@ -1981,9 +1972,9 @@ class EntryAdapters:
1981
1972
  ):
1982
1973
  owner_filter = Q()
1983
1974
 
1984
- if user != None:
1975
+ if user is not None:
1985
1976
  owner_filter = Q(user=user)
1986
- if agent != None:
1977
+ if agent is not None:
1987
1978
  owner_filter |= Q(agent=agent)
1988
1979
 
1989
1980
  if owner_filter == Q():
@@ -1,5 +1,4 @@
1
1
  from django.core.management.base import BaseCommand
2
- from django.db import transaction
3
2
  from django.db.models import Exists, OuterRef
4
3
 
5
4
  from khoj.database.models import Entry, FileObject
@@ -41,7 +41,7 @@ def update_conversation_id_in_job_state(apps, schema_editor):
41
41
  job.save()
42
42
  except Conversation.DoesNotExist:
43
43
  pass
44
- except LookupError as e:
44
+ except LookupError:
45
45
  pass
46
46
 
47
47
 
@@ -1,6 +1,6 @@
1
1
  # Made manually by sabaimran for use by Django 5.0.9 on 2024-12-01 16:59
2
2
 
3
- from django.db import migrations, models
3
+ from django.db import migrations
4
4
 
5
5
  # This script was written alongside when Pydantic validation was added to the Conversation conversation_log field.
6
6
 
@@ -0,0 +1,36 @@
1
+ # Generated by Django 5.1.10 on 2025-07-19 21:33
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("database", "0091_chatmodel_friendly_name_and_more"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="chatmodel",
14
+ name="model_type",
15
+ field=models.CharField(
16
+ choices=[("openai", "Openai"), ("anthropic", "Anthropic"), ("google", "Google")],
17
+ default="google",
18
+ max_length=200,
19
+ ),
20
+ ),
21
+ migrations.AlterField(
22
+ model_name="chatmodel",
23
+ name="name",
24
+ field=models.CharField(default="gemini-2.5-flash", max_length=200),
25
+ ),
26
+ migrations.AlterField(
27
+ model_name="speechtotextmodeloptions",
28
+ name="model_name",
29
+ field=models.CharField(default="whisper-1", max_length=200),
30
+ ),
31
+ migrations.AlterField(
32
+ model_name="speechtotextmodeloptions",
33
+ name="model_type",
34
+ field=models.CharField(choices=[("openai", "Openai")], default="openai", max_length=200),
35
+ ),
36
+ ]
@@ -0,0 +1,36 @@
1
+ # Generated by Django 5.1.10 on 2025-07-25 23:30
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("database", "0092_alter_chatmodel_model_type_alter_chatmodel_name_and_more"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.RemoveField(
13
+ model_name="localorgconfig",
14
+ name="user",
15
+ ),
16
+ migrations.RemoveField(
17
+ model_name="localpdfconfig",
18
+ name="user",
19
+ ),
20
+ migrations.RemoveField(
21
+ model_name="localplaintextconfig",
22
+ name="user",
23
+ ),
24
+ migrations.DeleteModel(
25
+ name="LocalMarkdownConfig",
26
+ ),
27
+ migrations.DeleteModel(
28
+ name="LocalOrgConfig",
29
+ ),
30
+ migrations.DeleteModel(
31
+ name="LocalPdfConfig",
32
+ ),
33
+ migrations.DeleteModel(
34
+ name="LocalPlaintextConfig",
35
+ ),
36
+ ]
@@ -220,16 +220,15 @@ class PriceTier(models.TextChoices):
220
220
  class ChatModel(DbBaseModel):
221
221
  class ModelType(models.TextChoices):
222
222
  OPENAI = "openai"
223
- OFFLINE = "offline"
224
223
  ANTHROPIC = "anthropic"
225
224
  GOOGLE = "google"
226
225
 
227
226
  max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
228
227
  subscribed_max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
229
228
  tokenizer = models.CharField(max_length=200, default=None, null=True, blank=True)
230
- name = models.CharField(max_length=200, default="bartowski/Meta-Llama-3.1-8B-Instruct-GGUF")
229
+ name = models.CharField(max_length=200, default="gemini-2.5-flash")
231
230
  friendly_name = models.CharField(max_length=200, default=None, null=True, blank=True)
232
- model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OFFLINE)
231
+ model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.GOOGLE)
233
232
  price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.FREE)
234
233
  vision_enabled = models.BooleanField(default=False)
235
234
  ai_model_api = models.ForeignKey(AiModelApi, on_delete=models.CASCADE, default=None, null=True, blank=True)
@@ -489,34 +488,6 @@ class ServerChatSettings(DbBaseModel):
489
488
  super().save(*args, **kwargs)
490
489
 
491
490
 
492
- class LocalOrgConfig(DbBaseModel):
493
- input_files = models.JSONField(default=list, null=True)
494
- input_filter = models.JSONField(default=list, null=True)
495
- index_heading_entries = models.BooleanField(default=False)
496
- user = models.ForeignKey(KhojUser, on_delete=models.CASCADE)
497
-
498
-
499
- class LocalMarkdownConfig(DbBaseModel):
500
- input_files = models.JSONField(default=list, null=True)
501
- input_filter = models.JSONField(default=list, null=True)
502
- index_heading_entries = models.BooleanField(default=False)
503
- user = models.ForeignKey(KhojUser, on_delete=models.CASCADE)
504
-
505
-
506
- class LocalPdfConfig(DbBaseModel):
507
- input_files = models.JSONField(default=list, null=True)
508
- input_filter = models.JSONField(default=list, null=True)
509
- index_heading_entries = models.BooleanField(default=False)
510
- user = models.ForeignKey(KhojUser, on_delete=models.CASCADE)
511
-
512
-
513
- class LocalPlaintextConfig(DbBaseModel):
514
- input_files = models.JSONField(default=list, null=True)
515
- input_filter = models.JSONField(default=list, null=True)
516
- index_heading_entries = models.BooleanField(default=False)
517
- user = models.ForeignKey(KhojUser, on_delete=models.CASCADE)
518
-
519
-
520
491
  class SearchModelConfig(DbBaseModel):
521
492
  class ModelType(models.TextChoices):
522
493
  TEXT = "text"
@@ -580,12 +551,12 @@ class TextToImageModelConfig(DbBaseModel):
580
551
  error = {}
581
552
  if self.model_type == self.ModelType.OPENAI:
582
553
  if self.api_key and self.ai_model_api:
583
- error[
584
- "api_key"
585
- ] = "Both API key and AI Model API cannot be set for OpenAI models. Please set only one of them."
586
- error[
587
- "ai_model_api"
588
- ] = "Both API key and OpenAI config cannot be set for OpenAI models. Please set only one of them."
554
+ error["api_key"] = (
555
+ "Both API key and AI Model API cannot be set for OpenAI models. Please set only one of them."
556
+ )
557
+ error["ai_model_api"] = (
558
+ "Both API key and OpenAI config cannot be set for OpenAI models. Please set only one of them."
559
+ )
589
560
  if self.model_type != self.ModelType.OPENAI and self.model_type != self.ModelType.GOOGLE:
590
561
  if not self.api_key:
591
562
  error["api_key"] = "The API key field must be set for non OpenAI, non Google models."
@@ -605,11 +576,10 @@ class TextToImageModelConfig(DbBaseModel):
605
576
  class SpeechToTextModelOptions(DbBaseModel):
606
577
  class ModelType(models.TextChoices):
607
578
  OPENAI = "openai"
608
- OFFLINE = "offline"
609
579
 
610
- model_name = models.CharField(max_length=200, default="base")
580
+ model_name = models.CharField(max_length=200, default="whisper-1")
611
581
  friendly_name = models.CharField(max_length=200, default=None, null=True, blank=True)
612
- model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OFFLINE)
582
+ model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
613
583
  price_tier = models.CharField(max_length=20, choices=PriceTier.choices, default=PriceTier.FREE)
614
584
  ai_model_api = models.ForeignKey(AiModelApi, on_delete=models.CASCADE, default=None, null=True, blank=True)
615
585
 
@@ -0,0 +1 @@
1
+ # Create your tests here.
@@ -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/3090706713c12a32.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5b28ced915454767.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4b00e5a0da4a9dae.js"/><script src="/_next/static/chunks/fd9d1056-aa94101ec5388dba.js" async=""></script><script src="/_next/static/chunks/2117-e78b6902ad6f75ec.js" async=""></script><script src="/_next/static/chunks/main-app-de1f09df97a3cfc7.js" async=""></script><script src="/_next/static/chunks/7200-ac3b2e37ff30e126.js" async=""></script><script src="/_next/static/chunks/app/layout-c2de87a25fededbb.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/3090706713c12a32.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5b28ced915454767.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5393aad3d824e0cb.js"/><script src="/_next/static/chunks/fd9d1056-aa94101ec5388dba.js" async=""></script><script src="/_next/static/chunks/2117-080746c8e170c81a.js" async=""></script><script src="/_next/static/chunks/main-app-de1f09df97a3cfc7.js" async=""></script><script src="/_next/static/chunks/7200-93ab0072359b8028.js" async=""></script><script src="/_next/static/chunks/app/layout-c2de87a25fededbb.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-4b00e5a0da4a9dae.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/3090706713c12a32.css\",\"style\"]\na:HL[\"/_next/static/css/5b28ced915454767.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"b:I[12846,[],\"\"]\nd:I[4707,[],\"\"]\ne:I[36423,[],\"\"]\nf:I[85147,[\"7200\",\"static/chunks/7200-ac3b2e37ff30e126.js\",\"3185\",\"static/chunks/app/layout-c2de87a25fededbb.js\"],\"ThemeProvider\"]\n15:I[61060,[],\"\"]\n10:{\"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\"}\n11:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n12:{\"display\":\"inline-block\"}\n13:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n16:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$Lb\",null,{\"buildId\":\"TTch40tYWOfh0SzwjwZXV\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lc\",[[\"$\",\"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,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",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/3090706713c12a32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b28ced915454767.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\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$10\",\"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\":\"$11\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$12\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$13\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L14\"],\"globalErrorComponent\":\"$15\",\"missingSlots\":\"$W16\"}]\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"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,"c: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-5393aad3d824e0cb.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/3090706713c12a32.css\",\"style\"]\na:HL[\"/_next/static/css/5b28ced915454767.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"b:I[12846,[],\"\"]\nd:I[4707,[],\"\"]\ne:I[36423,[],\"\"]\nf:I[85147,[\"7200\",\"static/chunks/7200-93ab0072359b8028.js\",\"3185\",\"static/chunks/app/layout-c2de87a25fededbb.js\"],\"ThemeProvider\"]\n15:I[61060,[],\"\"]\n10:{\"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\"}\n11:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n12:{\"display\":\"inline-block\"}\n13:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n16:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$Lb\",null,{\"buildId\":\"RYbQvo3AvgOR0bEVVfxF4\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lc\",[[\"$\",\"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,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",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/3090706713c12a32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b28ced915454767.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\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$10\",\"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\":\"$11\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$12\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$13\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L14\"],\"globalErrorComponent\":\"$15\",\"missingSlots\":\"$W16\"}]\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"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,"c:null\n"])</script></body></html>