khoj 1.22.2.dev11__tar.gz → 1.24.1.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/PKG-INFO +14 -14
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/README.md +11 -11
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/pyproject.toml +3 -3
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/configure.py +2 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/adapters/__init__.py +16 -11
- khoj-1.24.1.dev5/src/khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py +26 -0
- khoj-1.24.1.dev5/src/khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py +21 -0
- khoj-1.24.1.dev5/src/khoj/database/migrations/0062_merge_20240913_0222.py +14 -0
- khoj-1.24.1.dev5/src/khoj/database/migrations/0063_conversation_temp_id.py +36 -0
- khoj-1.24.1.dev5/src/khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.py +86 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/models/__init__.py +3 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/404/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/1603-e13f41ec2cb3f147.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/2697-5b013077cfa7aaf0.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/3062-71ed4b46ac2bb87c.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/3678-ef0d20e267e9f010.js +20 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/4051-2cf66369d6ca0f1d.js +3 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/6648-ee109f4ea33a74e2.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/7023-a5bf5744d19b3bd3.js +2 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/8423-7f5eb790353afe24.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9162-0be016519a18568b.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/9178-f478bc3670cc0cb8.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-9d629103b55928fa.js +1 -0
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-6ea3381528603372.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-2b82404aea9fedca.js +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-09cdd872ccb8dae5.js +1 -0
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/page-04a19ab1a988976f.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/page-b01f8a9b9107ecbe.js +1 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/page-95ecd0acac7ece82.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/page-3e69f2879a188806.js +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/search/page-53c2494182551684.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-2a7e60e3782ed95e.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-09a009c5a9f15a00.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/main-f84cd3c1873cd842.js +1 -0
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/webpack-925472850f117b05.js → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/chunks/webpack-0f6d4805ea01afda.js +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/24f141a6e37cd204.css +25 -0
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/9eec70b61e3de1ba.css → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/2de69f0be774c768.css +1 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/a3530ec58b0b660f.css → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/css/3e1f1fdd70775091.css +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/agents/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/agents/index.txt +7 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/automations/index.html +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/automations/index.txt +8 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/chat/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/chat/index.txt +7 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/factchecker/index.html +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/factchecker/index.txt +7 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/index.txt +7 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/search/index.html +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/compiled/search/index.txt +7 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/settings/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/settings/index.txt +8 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/share/chat/index.html +1 -0
- khoj-1.24.1.dev5/src/khoj/interface/compiled/share/chat/index.txt +7 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/email/magic_link.html +1 -1
- khoj-1.24.1.dev5/src/khoj/interface/email/task.html +37 -0
- khoj-1.24.1.dev5/src/khoj/interface/email/welcome.html +90 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/main.py +2 -2
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/images/image_to_entries.py +6 -4
- khoj-1.24.1.dev5/src/khoj/processor/conversation/google/gemini_chat.py +221 -0
- khoj-1.24.1.dev5/src/khoj/processor/conversation/google/utils.py +192 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/gpt.py +2 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/utils.py +35 -10
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/prompts.py +6 -6
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/utils.py +25 -9
- khoj-1.24.1.dev5/src/khoj/processor/image/generate.py +212 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/tools/online_search.py +2 -1
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api.py +16 -3
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_chat.py +14 -16
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/email.py +6 -1
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/helpers.py +100 -157
- khoj-1.24.1.dev5/src/khoj/utils/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/cli.py +6 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/constants.py +9 -2
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/helpers.py +1 -1
- khoj-1.24.1.dev5/src/khoj/utils/initialization.py +233 -0
- khoj-1.22.2.dev11/src/khoj/interface/compiled/404/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/1906-1747a36c336df02c.js +0 -3
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/3062-9be9a4e34f82ed3a.js +0 -29
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/3678-0732dd9d2f472171.js +0 -25
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/6648-ff677e51f1b2bcf1.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/7023-52c1be60135eb057.js +0 -2
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/8423-ce22327cf2d2edae.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js +0 -21
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9162-0be016519a18568b.js +0 -11
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/9178-3a0baad1c172d515.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-3c01900e7b5c7e50.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-132e5199f954559f.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/search/page-fa15807b1ad7e30b.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-1a2acc46cdabaf4a.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-e20f54450d3ce6c0.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +0 -33
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/chunks/main-175c164f5e0f026c.js +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/css/3e49e5ee49c6bda1.css +0 -25
- khoj-1.22.2.dev11/src/khoj/interface/compiled/agents/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/agents/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/compiled/automations/index.txt +0 -8
- khoj-1.22.2.dev11/src/khoj/interface/compiled/chat/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/chat/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/compiled/factchecker/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/compiled/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/compiled/search/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/compiled/settings/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/settings/index.txt +0 -8
- khoj-1.22.2.dev11/src/khoj/interface/compiled/share/chat/index.html +0 -1
- khoj-1.22.2.dev11/src/khoj/interface/compiled/share/chat/index.txt +0 -7
- khoj-1.22.2.dev11/src/khoj/interface/email/task.html +0 -40
- khoj-1.22.2.dev11/src/khoj/interface/email/welcome.html +0 -61
- khoj-1.22.2.dev11/src/khoj/utils/initialization.py +0 -146
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/.gitignore +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/LICENSE +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/README.md +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/asgi.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/settings.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/app/urls.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/admin.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/apps.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/change_generated_images_url.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/management/commands/convert_images_png_to_webp.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0001_khojuser.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0002_googleuser.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0003_vector_extension.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0004_content_types_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0005_embeddings_corpus_id.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0006_embeddingsdates.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0007_add_conversation.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0008_alter_conversation_conversation_log.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0009_khojapiuser.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0010_chatmodeloptions_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0010_rename_embeddings_entry_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0011_merge_20231102_0138.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0012_entry_file_source.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0013_subscription.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0014_alter_googleuser_picture.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0015_alter_subscription_user.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0016_alter_subscription_renewal_date.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0017_searchmodel.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0018_searchmodelconfig_delete_searchmodel.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0019_alter_googleuser_family_name_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0020_reflectivequestion.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0021_speechtotextmodeloptions_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0022_texttoimagemodelconfig.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0023_usersearchmodelconfig.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0024_alter_entry_embeddings.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0025_clientapplication_khojuser_phone_number_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0025_searchmodelconfig_embeddings_inference_endpoint_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0026_searchmodelconfig_cross_encoder_inference_endpoint_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0027_merge_20240118_1324.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0028_khojuser_verified_phone_number.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0029_userrequests.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0030_conversation_slug_and_title.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0031_agent_conversation_agent.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0031_alter_googleuser_locale.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0032_merge_20240322_0427.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0033_rename_tuning_agent_personality.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0034_alter_chatmodeloptions_chat_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0035_processlock.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_alter_processlock_name.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_delete_offlinechatprocessorconversationconfig.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0036_publicconversation.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0037_chatmodeloptions_openai_config_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0037_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0038_merge_20240425_0857.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0038_merge_20240426_1640.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0039_merge_20240501_0301.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0040_alter_processlock_name.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0040_merge_20240504_1010.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0041_merge_20240505_1234.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0042_serverchatsettings.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0043_alter_chatmodeloptions_model_type.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0044_conversation_file_filters.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0045_fileobject.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0046_khojuser_email_verification_code_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0047_alter_entry_file_type.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0048_voicemodeloption_uservoicemodelconfig.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0049_datastore.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0049_texttoimagemodelconfig_api_key_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0050_alter_processlock_name.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0051_merge_20240702_1220.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0052_alter_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0053_agent_style_color_agent_style_icon.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0054_alter_agent_style_color.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0055_alter_agent_style_icon.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0056_chatmodeloptions_vision_enabled.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0057_merge_20240816_1409.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0058_alter_chatmodeloptions_chat_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0059_searchmodelconfig_bi_encoder_confidence_threshold.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/0060_merge_20240905_1828.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/migrations/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/database/tests.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/121-7024f479c297aef0.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/4504-1629487c8bc82203.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/6297-d1c842ed3f714ab0.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/7071-b4711cecca6619a8.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/743-1a64254447cda71f.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/9417-2e54c6fd056982d8.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/9984-e410179c6fac7cf1.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-e71c8e913cccf792.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-8102549127db3067.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/factchecker/layout-7b30c541c05fb904.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/layout-f3e40d346da53112.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-3720f1362310bebb.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-6f9314b0d7a26046.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-39f03f9e32399f0f.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/fd9d1056-2b978342deb60015.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/553f9cdcc7a2bcd6.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/css/c808691c459e3887.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/6cc0b9500e4f9168-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/9d9319a7a2ac39c6-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/a75c8ea86756d52d-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/abce7c400ca31a51-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/f759c939737fb668-s.woff2 +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/globe.98e105ca.webp +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp +0 -0
- {khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/yzTB2n62RuBzqDD1mrMrY → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/yFc9xIR8PT1dxRGoFX8Ev}/_buildManifest.js +0 -0
- {khoj-1.22.2.dev11/src/khoj/interface/compiled/_next/static/yzTB2n62RuBzqDD1mrMrY → khoj-1.24.1.dev5/src/khoj/interface/compiled/_next/static/yFc9xIR8PT1dxRGoFX8Ev}/_ssgManifest.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/agents.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern.ico +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/icons/khoj_lantern_logomarktype_1200x630.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-browse-draw-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-plain-chat-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/automation.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/chat.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/close.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/copy-button-success.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/copy-button.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/khoj.webmanifest +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/logo.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/send.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/share.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/thumbs-down.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/compiled/thumbs-up.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/email/feedback.html +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/agents.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/automation.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/favicon-128x128.ico +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/github.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-200.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-500.png +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj-logo-sideways.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/khoj.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/logotype.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/search.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/icons/sync.svg +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/khoj.css +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/assets/utils.js +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/base_config.html +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/content_source_github_input.html +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/login.html +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/interface/web/utils.html +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/manage.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_default_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_default_model_2.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_chat_schema.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_offline_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_processor_config_openai.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_server_pg.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/migrations/migrate_version.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/docx/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/docx/docx_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/github/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/github/github_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/images/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/markdown/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/markdown/markdown_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/notion/notion_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/org_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/org_mode/orgnode.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/pdf/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/pdf/pdf_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/plaintext/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/plaintext/plaintext_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/content/text_to_entries.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/anthropic_chat.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/anthropic/utils.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/processor/conversation/offline → khoj-1.24.1.dev5/src/khoj/processor/conversation/google}/__init__.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/processor/conversation/openai → khoj-1.24.1.dev5/src/khoj/processor/conversation/offline}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/chat_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/utils.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/offline/whisper.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/processor/speech → khoj-1.24.1.dev5/src/khoj/processor/conversation/openai}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/conversation/openai/whisper.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/embeddings.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/processor/tools → khoj-1.24.1.dev5/src/khoj/processor/speech}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/processor/speech/text_to_speech.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/routers → khoj-1.24.1.dev5/src/khoj/processor/tools}/__init__.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/search_filter → khoj-1.24.1.dev5/src/khoj/routers}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_agents.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_content.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_model.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/api_phone.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/auth.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/notion.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/storage.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/subscription.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/twilio.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/routers/web_client.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/search_type → khoj-1.24.1.dev5/src/khoj/search_filter}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/base_filter.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/date_filter.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/file_filter.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_filter/word_filter.py +0 -0
- {khoj-1.22.2.dev11/src/khoj/utils → khoj-1.24.1.dev5/src/khoj/search_type}/__init__.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/search_type/text_search.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/config.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/fs_syncer.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/jsonl.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/models.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/rawconfig.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/state.py +0 -0
- {khoj-1.22.2.dev11 → khoj-1.24.1.dev5}/src/khoj/utils/yaml.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: khoj
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.24.1.dev5
|
4
4
|
Summary: Your Second Brain
|
5
5
|
Project-URL: Homepage, https://khoj.dev
|
6
6
|
Project-URL: Documentation, https://docs.khoj.dev
|
@@ -36,12 +36,12 @@ Requires-Dist: django==5.0.8
|
|
36
36
|
Requires-Dist: docx2txt==0.8
|
37
37
|
Requires-Dist: einops==0.8.0
|
38
38
|
Requires-Dist: fastapi>=0.110.0
|
39
|
+
Requires-Dist: google-generativeai==0.7.2
|
39
40
|
Requires-Dist: httpx==0.25.0
|
40
41
|
Requires-Dist: huggingface-hub>=0.22.2
|
41
42
|
Requires-Dist: itsdangerous==2.1.2
|
42
43
|
Requires-Dist: jinja2==3.1.4
|
43
44
|
Requires-Dist: langchain-community==0.2.5
|
44
|
-
Requires-Dist: langchain-openai==0.1.7
|
45
45
|
Requires-Dist: langchain==0.2.5
|
46
46
|
Requires-Dist: llama-cpp-python==0.2.88
|
47
47
|
Requires-Dist: lxml==4.9.3
|
@@ -60,7 +60,7 @@ Requires-Dist: pymupdf>=1.23.5
|
|
60
60
|
Requires-Dist: python-multipart>=0.0.7
|
61
61
|
Requires-Dist: pytz~=2024.1
|
62
62
|
Requires-Dist: pyyaml~=6.0
|
63
|
-
Requires-Dist: rapidocr-onnxruntime==1.3.
|
63
|
+
Requires-Dist: rapidocr-onnxruntime==1.3.24
|
64
64
|
Requires-Dist: requests>=2.26.0
|
65
65
|
Requires-Dist: rich>=13.3.1
|
66
66
|
Requires-Dist: schedule==1.1.0
|
@@ -117,13 +117,13 @@ Description-Content-Type: text/markdown
|
|
117
117
|
|
118
118
|
<div align="center">
|
119
119
|
|
120
|
-
[
|
120
|
+
[📑 Docs](https://docs.khoj.dev)
|
121
121
|
<span> • </span>
|
122
|
-
[🏮
|
122
|
+
[🏮 App](https://khoj.dev)
|
123
123
|
<span> • </span>
|
124
|
-
[💬
|
124
|
+
[💬 Discord](https://discord.gg/BDgyabRM6e)
|
125
125
|
<span> • </span>
|
126
|
-
[📚
|
126
|
+
[📚 Blog](https://blog.khoj.dev)
|
127
127
|
|
128
128
|
</div>
|
129
129
|
|
@@ -131,13 +131,13 @@ Description-Content-Type: text/markdown
|
|
131
131
|
|
132
132
|
***
|
133
133
|
|
134
|
-
Khoj is
|
135
|
-
-
|
136
|
-
-
|
137
|
-
- Khoj is accessible on Desktop, Emacs, Obsidian, Web and Whatsapp.
|
134
|
+
[Khoj](https://khoj.dev) is a personal, open-source AI application for you to extend your capabilities.
|
135
|
+
- Share your documents to extend your digital brain.
|
136
|
+
- Access the internet, getting fresh information.
|
138
137
|
- You can share pdf, markdown, org-mode, notion files and github repositories.
|
139
|
-
-
|
140
|
-
-
|
138
|
+
- Fast, accurate semantic search on top of your docs.
|
139
|
+
- Create images, talk out loud, play your messages.
|
140
|
+
- Available Desktop, Emacs, Obsidian, Web and Whatsapp.
|
141
141
|
- Khoj is open-source, self-hostable. Always.
|
142
142
|
|
143
143
|
***
|
@@ -146,7 +146,7 @@ Khoj is an application that creates always-available, personal AI agents for you
|
|
146
146
|
|
147
147
|
## See it in action
|
148
148
|
|
149
|
-
|
149
|
+

|
150
150
|
|
151
151
|
Go to https://app.khoj.dev to see Khoj live.
|
152
152
|
|
@@ -17,13 +17,13 @@
|
|
17
17
|
|
18
18
|
<div align="center">
|
19
19
|
|
20
|
-
[
|
20
|
+
[📑 Docs](https://docs.khoj.dev)
|
21
21
|
<span> • </span>
|
22
|
-
[🏮
|
22
|
+
[🏮 App](https://khoj.dev)
|
23
23
|
<span> • </span>
|
24
|
-
[💬
|
24
|
+
[💬 Discord](https://discord.gg/BDgyabRM6e)
|
25
25
|
<span> • </span>
|
26
|
-
[📚
|
26
|
+
[📚 Blog](https://blog.khoj.dev)
|
27
27
|
|
28
28
|
</div>
|
29
29
|
|
@@ -31,13 +31,13 @@
|
|
31
31
|
|
32
32
|
***
|
33
33
|
|
34
|
-
Khoj is
|
35
|
-
-
|
36
|
-
-
|
37
|
-
- Khoj is accessible on Desktop, Emacs, Obsidian, Web and Whatsapp.
|
34
|
+
[Khoj](https://khoj.dev) is a personal, open-source AI application for you to extend your capabilities.
|
35
|
+
- Share your documents to extend your digital brain.
|
36
|
+
- Access the internet, getting fresh information.
|
38
37
|
- You can share pdf, markdown, org-mode, notion files and github repositories.
|
39
|
-
-
|
40
|
-
-
|
38
|
+
- Fast, accurate semantic search on top of your docs.
|
39
|
+
- Create images, talk out loud, play your messages.
|
40
|
+
- Available Desktop, Emacs, Obsidian, Web and Whatsapp.
|
41
41
|
- Khoj is open-source, self-hostable. Always.
|
42
42
|
|
43
43
|
***
|
@@ -46,7 +46,7 @@ Khoj is an application that creates always-available, personal AI agents for you
|
|
46
46
|
|
47
47
|
## See it in action
|
48
48
|
|
49
|
-
|
49
|
+

|
50
50
|
|
51
51
|
Go to https://app.khoj.dev to see Khoj live.
|
52
52
|
|
@@ -58,7 +58,6 @@ dependencies = [
|
|
58
58
|
"uvicorn == 0.30.6",
|
59
59
|
"aiohttp ~= 3.9.0",
|
60
60
|
"langchain == 0.2.5",
|
61
|
-
"langchain-openai == 0.1.7",
|
62
61
|
"langchain-community == 0.2.5",
|
63
62
|
"requests >= 2.26.0",
|
64
63
|
"tenacity == 8.3.0",
|
@@ -73,7 +72,7 @@ dependencies = [
|
|
73
72
|
"psycopg2-binary == 2.9.9",
|
74
73
|
"lxml == 4.9.3",
|
75
74
|
"tzdata == 2023.3",
|
76
|
-
"rapidocr-onnxruntime == 1.3.
|
75
|
+
"rapidocr-onnxruntime == 1.3.24",
|
77
76
|
"openai-whisper >= 20231117",
|
78
77
|
"django-phonenumber-field == 7.3.0",
|
79
78
|
"phonenumbers == 8.13.27",
|
@@ -87,7 +86,8 @@ dependencies = [
|
|
87
86
|
"cron-descriptor == 1.4.3",
|
88
87
|
"django_apscheduler == 0.6.2",
|
89
88
|
"anthropic == 0.26.1",
|
90
|
-
"docx2txt == 0.8"
|
89
|
+
"docx2txt == 0.8",
|
90
|
+
"google-generativeai == 0.7.2"
|
91
91
|
]
|
92
92
|
dynamic = ["version"]
|
93
93
|
|
@@ -188,10 +188,12 @@ class UserAuthenticationBackend(AuthenticationBackend):
|
|
188
188
|
|
189
189
|
|
190
190
|
def initialize_server(config: Optional[FullConfig]):
|
191
|
+
raise NotImplementedError("This function is not implemented yet.")
|
191
192
|
try:
|
192
193
|
configure_server(config, init=True)
|
193
194
|
except Exception as e:
|
194
195
|
logger.error(f"🚨 Failed to configure server on app load: {e}", exc_info=True)
|
196
|
+
raise e
|
195
197
|
|
196
198
|
|
197
199
|
def configure_server(
|
@@ -663,7 +663,7 @@ class ConversationAdapters:
|
|
663
663
|
|
664
664
|
@staticmethod
|
665
665
|
def get_conversation_by_user(
|
666
|
-
user: KhojUser, client_application: ClientApplication = None, conversation_id:
|
666
|
+
user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None
|
667
667
|
) -> Optional[Conversation]:
|
668
668
|
if conversation_id:
|
669
669
|
conversation = (
|
@@ -689,7 +689,7 @@ class ConversationAdapters:
|
|
689
689
|
|
690
690
|
@staticmethod
|
691
691
|
async def aset_conversation_title(
|
692
|
-
user: KhojUser, client_application: ClientApplication, conversation_id:
|
692
|
+
user: KhojUser, client_application: ClientApplication, conversation_id: str, title: str
|
693
693
|
):
|
694
694
|
conversation = await Conversation.objects.filter(
|
695
695
|
user=user, client=client_application, id=conversation_id
|
@@ -701,7 +701,7 @@ class ConversationAdapters:
|
|
701
701
|
return None
|
702
702
|
|
703
703
|
@staticmethod
|
704
|
-
def get_conversation_by_id(conversation_id:
|
704
|
+
def get_conversation_by_id(conversation_id: str):
|
705
705
|
return Conversation.objects.filter(id=conversation_id).first()
|
706
706
|
|
707
707
|
@staticmethod
|
@@ -730,7 +730,7 @@ class ConversationAdapters:
|
|
730
730
|
|
731
731
|
@staticmethod
|
732
732
|
async def aget_conversation_by_user(
|
733
|
-
user: KhojUser, client_application: ClientApplication = None, conversation_id:
|
733
|
+
user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None, title: str = None
|
734
734
|
) -> Optional[Conversation]:
|
735
735
|
query = Conversation.objects.filter(user=user, client=client_application).prefetch_related("agent")
|
736
736
|
|
@@ -747,7 +747,7 @@ class ConversationAdapters:
|
|
747
747
|
|
748
748
|
@staticmethod
|
749
749
|
async def adelete_conversation_by_user(
|
750
|
-
user: KhojUser, client_application: ClientApplication = None, conversation_id:
|
750
|
+
user: KhojUser, client_application: ClientApplication = None, conversation_id: str = None
|
751
751
|
):
|
752
752
|
if conversation_id:
|
753
753
|
return await Conversation.objects.filter(user=user, client=client_application, id=conversation_id).adelete()
|
@@ -763,7 +763,7 @@ class ConversationAdapters:
|
|
763
763
|
|
764
764
|
@staticmethod
|
765
765
|
async def aget_all_conversation_configs():
|
766
|
-
return await sync_to_async(list)(ChatModelOptions.objects.all())
|
766
|
+
return await sync_to_async(list)(ChatModelOptions.objects.prefetch_related("openai_config").all())
|
767
767
|
|
768
768
|
@staticmethod
|
769
769
|
def get_vision_enabled_config():
|
@@ -900,7 +900,7 @@ class ConversationAdapters:
|
|
900
900
|
user: KhojUser,
|
901
901
|
conversation_log: dict,
|
902
902
|
client_application: ClientApplication = None,
|
903
|
-
conversation_id:
|
903
|
+
conversation_id: str = None,
|
904
904
|
user_message: str = None,
|
905
905
|
):
|
906
906
|
slug = user_message.strip()[:200] if user_message else None
|
@@ -973,7 +973,7 @@ class ConversationAdapters:
|
|
973
973
|
if conversation_config is None:
|
974
974
|
conversation_config = ConversationAdapters.get_default_conversation_config()
|
975
975
|
|
976
|
-
if conversation_config.model_type ==
|
976
|
+
if conversation_config.model_type == ChatModelOptions.ModelType.OFFLINE:
|
977
977
|
if state.offline_chat_processor_config is None or state.offline_chat_processor_config.loaded_model is None:
|
978
978
|
chat_model = conversation_config.chat_model
|
979
979
|
max_tokens = conversation_config.max_prompt_size
|
@@ -982,7 +982,12 @@ class ConversationAdapters:
|
|
982
982
|
return conversation_config
|
983
983
|
|
984
984
|
if (
|
985
|
-
conversation_config.model_type
|
985
|
+
conversation_config.model_type
|
986
|
+
in [
|
987
|
+
ChatModelOptions.ModelType.ANTHROPIC,
|
988
|
+
ChatModelOptions.ModelType.OPENAI,
|
989
|
+
ChatModelOptions.ModelType.GOOGLE,
|
990
|
+
]
|
986
991
|
) and conversation_config.openai_config:
|
987
992
|
return conversation_config
|
988
993
|
|
@@ -1037,7 +1042,7 @@ class ConversationAdapters:
|
|
1037
1042
|
return new_config
|
1038
1043
|
|
1039
1044
|
@staticmethod
|
1040
|
-
def add_files_to_filter(user: KhojUser, conversation_id:
|
1045
|
+
def add_files_to_filter(user: KhojUser, conversation_id: str, files: List[str]):
|
1041
1046
|
conversation = ConversationAdapters.get_conversation_by_user(user, conversation_id=conversation_id)
|
1042
1047
|
file_list = EntryAdapters.get_all_filenames_by_source(user, "computer")
|
1043
1048
|
for filename in files:
|
@@ -1051,7 +1056,7 @@ class ConversationAdapters:
|
|
1051
1056
|
return conversation.file_filters
|
1052
1057
|
|
1053
1058
|
@staticmethod
|
1054
|
-
def remove_files_from_filter(user: KhojUser, conversation_id:
|
1059
|
+
def remove_files_from_filter(user: KhojUser, conversation_id: str, files: List[str]):
|
1055
1060
|
conversation = ConversationAdapters.get_conversation_by_user(user, conversation_id=conversation_id)
|
1056
1061
|
for filename in files:
|
1057
1062
|
if filename in conversation.file_filters:
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-09-12 20:06
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
dependencies = [
|
8
|
+
("database", "0060_merge_20240905_1828"),
|
9
|
+
]
|
10
|
+
|
11
|
+
operations = [
|
12
|
+
migrations.AlterField(
|
13
|
+
model_name="chatmodeloptions",
|
14
|
+
name="model_type",
|
15
|
+
field=models.CharField(
|
16
|
+
choices=[
|
17
|
+
("openai", "Openai"),
|
18
|
+
("offline", "Offline"),
|
19
|
+
("anthropic", "Anthropic"),
|
20
|
+
("google", "Google"),
|
21
|
+
],
|
22
|
+
default="offline",
|
23
|
+
max_length=200,
|
24
|
+
),
|
25
|
+
),
|
26
|
+
]
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Generated by Django 5.0.7 on 2024-09-12 05:43
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
dependencies = [
|
8
|
+
("database", "0060_merge_20240905_1828"),
|
9
|
+
]
|
10
|
+
|
11
|
+
operations = [
|
12
|
+
migrations.AlterField(
|
13
|
+
model_name="texttoimagemodelconfig",
|
14
|
+
name="model_type",
|
15
|
+
field=models.CharField(
|
16
|
+
choices=[("openai", "Openai"), ("stability-ai", "Stabilityai"), ("replicate", "Replicate")],
|
17
|
+
default="openai",
|
18
|
+
max_length=200,
|
19
|
+
),
|
20
|
+
),
|
21
|
+
]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-09-13 02:22
|
2
|
+
|
3
|
+
from typing import List
|
4
|
+
|
5
|
+
from django.db import migrations
|
6
|
+
|
7
|
+
|
8
|
+
class Migration(migrations.Migration):
|
9
|
+
dependencies = [
|
10
|
+
("database", "0061_alter_chatmodeloptions_model_type"),
|
11
|
+
("database", "0061_alter_texttoimagemodelconfig_model_type"),
|
12
|
+
]
|
13
|
+
|
14
|
+
operations: List[str] = []
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-09-19 15:53
|
2
|
+
|
3
|
+
import uuid
|
4
|
+
|
5
|
+
from django.db import migrations, models
|
6
|
+
|
7
|
+
|
8
|
+
def create_uuid(apps, schema_editor):
|
9
|
+
Conversation = apps.get_model("database", "Conversation")
|
10
|
+
for conversation in Conversation.objects.all():
|
11
|
+
conversation.temp_id = uuid.uuid4()
|
12
|
+
conversation.save()
|
13
|
+
|
14
|
+
|
15
|
+
def remove_uuid(apps, schema_editor):
|
16
|
+
pass
|
17
|
+
|
18
|
+
|
19
|
+
class Migration(migrations.Migration):
|
20
|
+
dependencies = [
|
21
|
+
("database", "0062_merge_20240913_0222"),
|
22
|
+
]
|
23
|
+
|
24
|
+
operations = [
|
25
|
+
migrations.AddField(
|
26
|
+
model_name="conversation",
|
27
|
+
name="temp_id",
|
28
|
+
field=models.UUIDField(default=uuid.uuid4, editable=False),
|
29
|
+
),
|
30
|
+
migrations.RunPython(create_uuid, reverse_code=remove_uuid),
|
31
|
+
migrations.AlterField(
|
32
|
+
model_name="conversation",
|
33
|
+
name="temp_id",
|
34
|
+
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
|
35
|
+
),
|
36
|
+
]
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-09-19 15:59
|
2
|
+
|
3
|
+
import json
|
4
|
+
import pickle
|
5
|
+
import uuid
|
6
|
+
|
7
|
+
from django.db import migrations, models
|
8
|
+
|
9
|
+
|
10
|
+
def reverse_remove_bigint_id(apps, schema_editor):
|
11
|
+
Conversation = apps.get_model("database", "Conversation")
|
12
|
+
index = 1
|
13
|
+
for conversation in Conversation.objects.all():
|
14
|
+
conversation.id = index
|
15
|
+
conversation.save()
|
16
|
+
index += 1
|
17
|
+
|
18
|
+
|
19
|
+
def update_conversation_id_in_job_state(apps, schema_editor):
|
20
|
+
try:
|
21
|
+
DjangoJob = apps.get_model("django_apscheduler", "DjangoJob")
|
22
|
+
Conversation = apps.get_model("database", "Conversation")
|
23
|
+
|
24
|
+
for job in DjangoJob.objects.all():
|
25
|
+
job_state = pickle.loads(job.job_state)
|
26
|
+
kwargs = job_state.get("kwargs")
|
27
|
+
conversation_id = kwargs.get("conversation_id") if kwargs else None
|
28
|
+
automation_metadata = json.loads(job_state.get("name", "{}"))
|
29
|
+
|
30
|
+
if not conversation_id:
|
31
|
+
job.delete()
|
32
|
+
|
33
|
+
if conversation_id:
|
34
|
+
try:
|
35
|
+
conversation = Conversation.objects.get(id=conversation_id)
|
36
|
+
automation_metadata["conversation_id"] = str(conversation.temp_id)
|
37
|
+
name = json.dumps(automation_metadata)
|
38
|
+
job_state["name"] = name
|
39
|
+
job_state["kwargs"]["conversation_id"] = str(conversation.temp_id)
|
40
|
+
job.job_state = pickle.dumps(job_state)
|
41
|
+
job.save()
|
42
|
+
except Conversation.DoesNotExist:
|
43
|
+
pass
|
44
|
+
except LookupError as e:
|
45
|
+
pass
|
46
|
+
|
47
|
+
|
48
|
+
def no_op(apps, schema_editor):
|
49
|
+
pass
|
50
|
+
|
51
|
+
|
52
|
+
def disable_triggers(apps, schema_editor):
|
53
|
+
schema_editor.execute('ALTER TABLE "database_conversation" DISABLE TRIGGER ALL;')
|
54
|
+
|
55
|
+
|
56
|
+
def enable_triggers(apps, schema_editor):
|
57
|
+
schema_editor.execute('ALTER TABLE "database_conversation" ENABLE TRIGGER ALL;')
|
58
|
+
|
59
|
+
|
60
|
+
class Migration(migrations.Migration):
|
61
|
+
dependencies = [
|
62
|
+
("database", "0063_conversation_temp_id"),
|
63
|
+
]
|
64
|
+
|
65
|
+
operations = [
|
66
|
+
migrations.RunPython(no_op, reverse_code=enable_triggers),
|
67
|
+
migrations.RunPython(update_conversation_id_in_job_state, reverse_code=no_op),
|
68
|
+
migrations.RemoveField(
|
69
|
+
model_name="conversation",
|
70
|
+
name="id",
|
71
|
+
),
|
72
|
+
migrations.RenameField(
|
73
|
+
model_name="conversation",
|
74
|
+
old_name="temp_id",
|
75
|
+
new_name="id",
|
76
|
+
),
|
77
|
+
migrations.AlterField(
|
78
|
+
model_name="conversation",
|
79
|
+
name="id",
|
80
|
+
field=models.UUIDField(
|
81
|
+
db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
|
82
|
+
),
|
83
|
+
),
|
84
|
+
migrations.RunPython(no_op, reverse_code=reverse_remove_bigint_id),
|
85
|
+
migrations.RunPython(no_op, reverse_code=disable_triggers),
|
86
|
+
]
|
@@ -87,6 +87,7 @@ class ChatModelOptions(BaseModel):
|
|
87
87
|
OPENAI = "openai"
|
88
88
|
OFFLINE = "offline"
|
89
89
|
ANTHROPIC = "anthropic"
|
90
|
+
GOOGLE = "google"
|
90
91
|
|
91
92
|
max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
|
92
93
|
subscribed_max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
|
@@ -279,6 +280,7 @@ class TextToImageModelConfig(BaseModel):
|
|
279
280
|
class ModelType(models.TextChoices):
|
280
281
|
OPENAI = "openai"
|
281
282
|
STABILITYAI = "stability-ai"
|
283
|
+
REPLICATE = "replicate"
|
282
284
|
|
283
285
|
model_name = models.CharField(max_length=200, default="dall-e-3")
|
284
286
|
model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
|
@@ -348,6 +350,7 @@ class Conversation(BaseModel):
|
|
348
350
|
title = models.CharField(max_length=200, default=None, null=True, blank=True)
|
349
351
|
agent = models.ForeignKey(Agent, on_delete=models.SET_NULL, default=None, null=True, blank=True)
|
350
352
|
file_filters = models.JSONField(default=list)
|
353
|
+
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True, db_index=True)
|
351
354
|
|
352
355
|
|
353
356
|
class PublicConversation(BaseModel):
|
@@ -0,0 +1 @@
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0e790e04fd40ad16-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/1538cedb321e3a97.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/24f141a6e37cd204.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0f6d4805ea01afda.js"/><script src="/_next/static/chunks/fd9d1056-2b978342deb60015.js" async=""></script><script src="/_next/static/chunks/7023-a5bf5744d19b3bd3.js" async=""></script><script src="/_next/static/chunks/main-app-6d6ee3495efe03d4.js" async=""></script><meta name="robots" content="noindex"/><meta http-equiv="Content-Security-Policy" content="default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"/><title>404: This page could not be found.</title><title>Khoj AI - Home</title><meta name="description" content="Your Second Brain."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta property="og:title" content="Khoj AI - Home"/><meta property="og:description" content="Your Second Brain."/><meta property="og:url" content="https://app.khoj.dev/"/><meta property="og:site_name" content="Khoj AI"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta property="og:image:width" content="256"/><meta property="og:image:height" content="256"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Khoj AI - Home"/><meta name="twitter:description" content="Your Second Brain."/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta name="twitter:image:width" content="256"/><meta name="twitter:image:height" content="256"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/static/assets/icons/khoj_lantern.ico"/><link rel="apple-touch-icon" href="/static/assets/icons/khoj_lantern_256x256.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_90df87"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-0f6d4805ea01afda.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e790e04fd40ad16-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/1538cedb321e3a97.css\",\"style\"]\n3:HL[\"/_next/static/css/24f141a6e37cd204.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"4:I[95751,[],\"\"]\n6:I[39275,[],\"\"]\n7:I[61343,[],\"\"]\nd:I[76130,[],\"\"]\n8:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n9:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\na:{\"display\":\"inline-block\"}\nb:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L4\",null,{\"buildId\":\"yFc9xIR8PT1dxRGoFX8Ev\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L5\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1538cedb321e3a97.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/24f141a6e37cd204.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_90df87\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$9\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$a\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$b\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI - Home\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"5:null\n"])</script></body></html>
|