khoj 1.30.7.dev1__tar.gz → 1.30.11.dev70__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.30.7.dev1 → khoj-1.30.11.dev70}/.gitignore +10 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/PKG-INFO +4 -2
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/pyproject.toml +3 -1
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/app/settings.py +21 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/configure.py +3 -3
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/adapters/__init__.py +22 -18
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/admin.py +54 -43
- khoj-1.30.11.dev70/src/khoj/database/migrations/0075_migrate_generated_assets_and_validate.py +85 -0
- khoj-1.30.11.dev70/src/khoj/database/migrations/0076_rename_openaiprocessorconversationconfig_aimodelapi_and_more.py +26 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/models/__init__.py +195 -42
- khoj-1.30.11.dev70/src/khoj/interface/compiled/404/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/1603-3a001fa7cfef13f1.js +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/4200-ea75740bb3c6ae60.js +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/5538-0ea2d3944ca051e1.js +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-1878cc328ea380bd.js +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-8eead7920b0ff92a.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/agents/page-22cff208006a7f6a.js +1 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-d5427acdd9297488.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/automations/page-6ed169c6f570a6e2.js +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-9219a85f3477e722.js +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-c74d897de220df3d.js +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/layout-6310c57b674dd6f5.js +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/page-f203261ce4fbff86.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/page-25b44557720dc93a.js +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-2ca475462c0b2176.js +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/search/page-faa998c71eb7ca8e.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/search/page-4e3bb682be861aa7.js +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-f285795bc3154b8c.js +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-cbe7f56b1f87d77a.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/settings/page-142e854abace0750.js +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-592e8c470f2c2084.js +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-cd5757199539bbf2.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/page-2518c42e2d59b121.js +1 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/webpack-3ddfe5e225737475.js → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/chunks/webpack-9a690f9ff465a5d4.js +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/css/089de1d8526b96e9.css +1 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/css/5d8d85d3f2e95bae.css → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/css/3c34171b174cc381.css +3 -3
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/css/23f801d22927d568.css → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/css/9c4221ae0779cc04.css +1 -1
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/6f22fce21a7c433c-s.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/77c207b095007c34-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/82ef96de0e8f4d8c-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/a6ecd16fa044d500-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/c32c8052c071fc42-s.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/c4250770ab8708b6-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/media/e098aaaecc9cfbb2-s.p.woff2 +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/agents/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/agents/index.txt +7 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/assets/icons/khoj_lantern.svg +100 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128_dark.png +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/assets/icons/khoj_lantern_512x512.png +0 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/automations/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/automations/index.txt +8 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/chat/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/chat/index.txt +7 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/index.html +1 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/index.txt +2 -2
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/khoj.webmanifest +27 -2
- khoj-1.30.11.dev70/src/khoj/interface/compiled/search/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/search/index.txt +7 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/settings/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/settings/index.txt +9 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/share/chat/index.html +1 -0
- khoj-1.30.11.dev70/src/khoj/interface/compiled/share/chat/index.txt +7 -0
- khoj-1.30.11.dev70/src/khoj/interface/web/.well-known/assetlinks.json +11 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_server_pg.py +3 -9
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/markdown/markdown_to_entries.py +6 -6
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/org_mode/org_to_entries.py +3 -3
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/anthropic/anthropic_chat.py +11 -6
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/google/gemini_chat.py +11 -6
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/offline/chat_model.py +13 -5
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/openai/gpt.py +11 -5
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/openai/utils.py +1 -6
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/prompts.py +48 -18
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/utils.py +127 -27
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/image/generate.py +12 -15
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/tools/run_code.py +2 -4
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api.py +5 -5
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_chat.py +63 -100
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/helpers.py +59 -16
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/research.py +2 -4
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/web_client.py +5 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/constants.py +1 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/helpers.py +5 -5
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/initialization.py +14 -12
- khoj-1.30.7.dev1/src/khoj/interface/compiled/404/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/1603-ba5f9f05e92c8412.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/4752-554a3db270186ce3.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/5538-e5f3c9f4d67a64b9.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/agents/layout-e9838b642913a071.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/chat/layout-b0e7ff4baa3b5265.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/chat/page-1ea11f1d3a28aa41.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/layout-86561d2fac35a91a.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/search/layout-ea6b73fdaf9b24ca.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/settings/layout-1f4d76a8b09517b1.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-cf7445cf0326bda3.js +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/css/0e9d53dcd7f11342.css +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/5455839c73f146e7-s.p.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/5984b96ba4822821-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/684adc3dde1b03f1-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/82e3b9a1bdaf0c26-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/8d1ea331386a0db8-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/91475f6526542a4f-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/b98b13dbc1c3b59c-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/media/c824d7a20139e39d-s.woff2 +0 -0
- khoj-1.30.7.dev1/src/khoj/interface/compiled/agents/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/agents/index.txt +0 -7
- khoj-1.30.7.dev1/src/khoj/interface/compiled/automations/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/automations/index.txt +0 -8
- khoj-1.30.7.dev1/src/khoj/interface/compiled/chat/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/chat/index.txt +0 -7
- khoj-1.30.7.dev1/src/khoj/interface/compiled/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/search/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/search/index.txt +0 -7
- khoj-1.30.7.dev1/src/khoj/interface/compiled/settings/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/settings/index.txt +0 -8
- khoj-1.30.7.dev1/src/khoj/interface/compiled/share/chat/index.html +0 -1
- khoj-1.30.7.dev1/src/khoj/interface/compiled/share/chat/index.txt +0 -7
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/LICENSE +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/README.md +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/app/README.md +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/app/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/app/asgi.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/app/urls.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/apps.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/management/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/management/commands/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/management/commands/change_default_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/management/commands/change_generated_images_url.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/management/commands/convert_images_png_to_webp.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0001_khojuser.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0002_googleuser.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0003_vector_extension.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0004_content_types_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0005_embeddings_corpus_id.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0006_embeddingsdates.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0007_add_conversation.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0008_alter_conversation_conversation_log.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0009_khojapiuser.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0010_chatmodeloptions_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0010_rename_embeddings_entry_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0011_merge_20231102_0138.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0012_entry_file_source.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0013_subscription.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0014_alter_googleuser_picture.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0015_alter_subscription_user.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0016_alter_subscription_renewal_date.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0017_searchmodel.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0018_searchmodelconfig_delete_searchmodel.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0019_alter_googleuser_family_name_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0020_reflectivequestion.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0021_speechtotextmodeloptions_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0022_texttoimagemodelconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0023_usersearchmodelconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0024_alter_entry_embeddings.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0025_clientapplication_khojuser_phone_number_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0025_searchmodelconfig_embeddings_inference_endpoint_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0026_searchmodelconfig_cross_encoder_inference_endpoint_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0027_merge_20240118_1324.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0028_khojuser_verified_phone_number.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0029_userrequests.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0030_conversation_slug_and_title.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0031_agent_conversation_agent.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0031_alter_googleuser_locale.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0032_merge_20240322_0427.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0033_rename_tuning_agent_personality.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0034_alter_chatmodeloptions_chat_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0035_processlock.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0036_alter_processlock_name.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0036_delete_offlinechatprocessorconversationconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0036_publicconversation.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0037_chatmodeloptions_openai_config_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0037_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0038_merge_20240425_0857.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0038_merge_20240426_1640.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0039_merge_20240501_0301.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0040_alter_processlock_name.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0040_merge_20240504_1010.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0041_merge_20240505_1234.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0042_serverchatsettings.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0043_alter_chatmodeloptions_model_type.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0044_conversation_file_filters.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0045_fileobject.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0046_khojuser_email_verification_code_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0047_alter_entry_file_type.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0048_voicemodeloption_uservoicemodelconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0049_datastore.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0049_texttoimagemodelconfig_api_key_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0050_alter_processlock_name.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0051_merge_20240702_1220.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0052_alter_searchmodelconfig_bi_encoder_docs_encode_config_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0053_agent_style_color_agent_style_icon.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0054_alter_agent_style_color.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0055_alter_agent_style_icon.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0056_chatmodeloptions_vision_enabled.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0057_merge_20240816_1409.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0058_alter_chatmodeloptions_chat_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0059_searchmodelconfig_bi_encoder_confidence_threshold.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0060_merge_20240905_1828.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0061_alter_chatmodeloptions_model_type.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0061_alter_texttoimagemodelconfig_model_type.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0062_merge_20240913_0222.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0063_conversation_temp_id.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0065_remove_agent_avatar_remove_agent_public_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0066_remove_agent_tools_agent_input_tools_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0067_alter_agent_style_icon.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0068_alter_agent_output_modes.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0069_webscraper_serverchatsettings_web_scraper.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0070_alter_agent_input_tools_alter_agent_output_modes.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0071_subscription_enabled_trial_at_and_more.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0072_entry_search_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0073_delete_usersearchmodelconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/0074_alter_conversation_title.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/migrations/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/database/tests.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/1279-4cb23143aa2c0228.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/1459.690bf20e7d7b7090.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/1970-1b63ac1497b03a10.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/2646-92ba433951d02d52.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/3072-be830e4f8412b9d2.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/3463-081c031e873b7966.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/3690-51312931ba1eae30.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/3717-b46079dbe9f55694.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/4504-62ac13e7d94c52f9.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/4602-460621c3241e0d13.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/5512-7cc62049bbe60e11.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/7023-e8de2bded4df6539.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/7592-a09c39a38e60634b.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/8423-1dda16bc56236523.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/94ca1967.5584df65931cfe83.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/964ecbae.ea4eab2a3a835ffe.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/app/_not-found/page-cfba071f5a657256.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f1b79a2c67af0b4.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/fd9d1056-2e6c8140e79afc3b.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/main-1ea5c2e0fdef4626.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/css/1f293605f2871853.css +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/css/3cf13271869a4aeb.css +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/css/80bd6301fc657983.css +0 -0
- {khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/RbhxT5Vdl_5Yeyifmso2h → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/mMme10qkwWYydynPiEyqk}/_buildManifest.js +0 -0
- {khoj-1.30.7.dev1/src/khoj/interface/compiled/_next/static/RbhxT5Vdl_5Yeyifmso2h → khoj-1.30.11.dev70/src/khoj/interface/compiled/_next/static/mMme10qkwWYydynPiEyqk}/_ssgManifest.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/globe.98e105ca.webp +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/agents.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/icons/khoj_lantern.ico +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/icons/khoj_lantern_logomarktype_1200x630.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/desktop-browse-draw-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/desktop-plain-chat-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/automation.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/chat.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/close.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/copy-button-success.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/copy-button.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/logo.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/send.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/share.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/thumbs-down.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/compiled/thumbs-up.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/email/feedback.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/email/magic_link.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/email/task.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/email/welcome.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/agents.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/automation.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/chat.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/github.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-200.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/khoj-logo-sideways-500.png +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/khoj-logo-sideways.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/khoj.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/logotype.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/search.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/icons/sync.svg +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/khoj.css +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/assets/utils.js +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/base_config.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/content_source_github_input.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/login.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/interface/web/utils.html +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/main.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/manage.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_offline_chat_default_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_offline_chat_default_model_2.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_offline_chat_schema.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_offline_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_processor_config_openai.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/migrations/migrate_version.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/docx/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/docx/docx_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/github/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/github/github_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/images/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/images/image_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/markdown/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/notion/notion_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/org_mode/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/org_mode/orgnode.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/pdf/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/pdf/pdf_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/plaintext/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/plaintext/plaintext_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/content/text_to_entries.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/anthropic/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/anthropic/utils.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/google/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/google/utils.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/offline/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/offline/utils.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/offline/whisper.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/openai/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/conversation/openai/whisper.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/embeddings.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/speech/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/speech/text_to_speech.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/tools/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/processor/tools/online_search.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_agents.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_content.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_model.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_phone.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/api_subscription.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/auth.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/email.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/notion.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/storage.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/routers/twilio.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_filter/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_filter/base_filter.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_filter/date_filter.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_filter/file_filter.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_filter/word_filter.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_type/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/search_type/text_search.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/__init__.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/cli.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/config.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/fs_syncer.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/jsonl.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/models.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/rawconfig.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/state.py +0 -0
- {khoj-1.30.7.dev1 → khoj-1.30.11.dev70}/src/khoj/utils/yaml.py +0 -0
@@ -42,3 +42,13 @@ src/interface/obsidian/main.js
|
|
42
42
|
|
43
43
|
# obsidian
|
44
44
|
data.json
|
45
|
+
|
46
|
+
# Android
|
47
|
+
src/interface/android/.gradle
|
48
|
+
src/interface/android/app/build
|
49
|
+
src/interface/android/build
|
50
|
+
src/interface/android/*.aab
|
51
|
+
src/interface/android/*.apk
|
52
|
+
src/interface/android/*.apk.idsig
|
53
|
+
src/interface/android/*.keystore
|
54
|
+
src/interface/android/local.properties
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: khoj
|
3
|
-
Version: 1.30.
|
3
|
+
Version: 1.30.11.dev70
|
4
4
|
Summary: Your Second Brain
|
5
5
|
Project-URL: Homepage, https://khoj.dev
|
6
6
|
Project-URL: Documentation, https://docs.khoj.dev
|
@@ -31,7 +31,8 @@ Requires-Dist: dateparser>=1.1.1
|
|
31
31
|
Requires-Dist: defusedxml==0.7.1
|
32
32
|
Requires-Dist: django-apscheduler==0.6.2
|
33
33
|
Requires-Dist: django-phonenumber-field==7.3.0
|
34
|
-
Requires-Dist: django==
|
34
|
+
Requires-Dist: django-unfold==0.42.0
|
35
|
+
Requires-Dist: django==5.0.10
|
35
36
|
Requires-Dist: docx2txt==0.8
|
36
37
|
Requires-Dist: einops==0.8.0
|
37
38
|
Requires-Dist: fastapi>=0.110.0
|
@@ -55,6 +56,7 @@ Requires-Dist: pillow~=10.0.0
|
|
55
56
|
Requires-Dist: psutil>=5.8.0
|
56
57
|
Requires-Dist: psycopg2-binary==2.9.9
|
57
58
|
Requires-Dist: pydantic[email]>=2.0.0
|
59
|
+
Requires-Dist: pyjson5==1.6.7
|
58
60
|
Requires-Dist: pymupdf==1.24.11
|
59
61
|
Requires-Dist: python-multipart>=0.0.7
|
60
62
|
Requires-Dist: pytz~=2024.1
|
@@ -63,7 +63,8 @@ dependencies = [
|
|
63
63
|
"tenacity == 8.3.0",
|
64
64
|
"anyio == 3.7.1",
|
65
65
|
"pymupdf == 1.24.11",
|
66
|
-
"django == 5.0.
|
66
|
+
"django == 5.0.10",
|
67
|
+
"django-unfold == 0.42.0",
|
67
68
|
"authlib == 1.2.1",
|
68
69
|
"llama-cpp-python == 0.2.88",
|
69
70
|
"itsdangerous == 2.1.2",
|
@@ -88,6 +89,7 @@ dependencies = [
|
|
88
89
|
"anthropic == 0.26.1",
|
89
90
|
"docx2txt == 0.8",
|
90
91
|
"google-generativeai == 0.8.3",
|
92
|
+
"pyjson5 == 1.6.7",
|
91
93
|
]
|
92
94
|
dynamic = ["version"]
|
93
95
|
|
@@ -13,6 +13,8 @@ https://docs.djangoproject.com/en/4.2/ref/settings/
|
|
13
13
|
import os
|
14
14
|
from pathlib import Path
|
15
15
|
|
16
|
+
from django.templatetags.static import static
|
17
|
+
|
16
18
|
from khoj.utils.helpers import in_debug_mode, is_env_var_true
|
17
19
|
|
18
20
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
@@ -72,6 +74,7 @@ INSTALLED_APPS = [
|
|
72
74
|
"django.contrib.auth",
|
73
75
|
"django.contrib.contenttypes",
|
74
76
|
"khoj.database.apps.DatabaseConfig",
|
77
|
+
"unfold",
|
75
78
|
"django.contrib.admin",
|
76
79
|
"django.contrib.sessions",
|
77
80
|
"django.contrib.messages",
|
@@ -195,3 +198,21 @@ APSCHEDULER_DATETIME_FORMAT = "N j, Y, f:s a"
|
|
195
198
|
# that supports multiple background worker processes instead (e.g. Dramatiq, Celery, Django-RQ,
|
196
199
|
# etc. See: https://djangopackages.org/grids/g/workers-queues-tasks/ for popular options).
|
197
200
|
APSCHEDULER_RUN_NOW_TIMEOUT = 240 # Seconds
|
201
|
+
|
202
|
+
UNFOLD = {
|
203
|
+
"SITE_TITLE": "Khoj Admin Panel",
|
204
|
+
"SITE_HEADER": "Khoj Admin Panel",
|
205
|
+
"SITE_URL": "/",
|
206
|
+
"SITE_ICON": {
|
207
|
+
"light": lambda request: static("assets/icons/khoj_lantern_128x128.png"),
|
208
|
+
"dark": lambda request: static("assets/icons/khoj_lantern_128x128_dark.png"),
|
209
|
+
},
|
210
|
+
"SITE_FAVICONS": [
|
211
|
+
{
|
212
|
+
"rel": "icon",
|
213
|
+
"sizes": "32x32",
|
214
|
+
"type": "image/svg+xml",
|
215
|
+
"href": lambda request: static("assets/icons/khoj_lantern.svg"),
|
216
|
+
},
|
217
|
+
],
|
218
|
+
}
|
@@ -232,9 +232,9 @@ def configure_server(
|
|
232
232
|
config = FullConfig()
|
233
233
|
state.config = config
|
234
234
|
|
235
|
-
if ConversationAdapters.
|
236
|
-
|
237
|
-
state.openai_client = openai.OpenAI(api_key=
|
235
|
+
if ConversationAdapters.has_valid_ai_model_api():
|
236
|
+
ai_model_api = ConversationAdapters.get_ai_model_api()
|
237
|
+
state.openai_client = openai.OpenAI(api_key=ai_model_api.api_key)
|
238
238
|
|
239
239
|
# Initialize Search Models from Config and initialize content
|
240
240
|
try:
|
@@ -35,6 +35,7 @@ from torch import Tensor
|
|
35
35
|
|
36
36
|
from khoj.database.models import (
|
37
37
|
Agent,
|
38
|
+
AiModelApi,
|
38
39
|
ChatModelOptions,
|
39
40
|
ClientApplication,
|
40
41
|
Conversation,
|
@@ -46,7 +47,6 @@ from khoj.database.models import (
|
|
46
47
|
KhojApiUser,
|
47
48
|
KhojUser,
|
48
49
|
NotionConfig,
|
49
|
-
OpenAIProcessorConversationConfig,
|
50
50
|
ProcessLock,
|
51
51
|
PublicConversation,
|
52
52
|
ReflectiveQuestion,
|
@@ -224,7 +224,9 @@ async def acreate_user_by_phone_number(phone_number: str) -> KhojUser:
|
|
224
224
|
)
|
225
225
|
await user.asave()
|
226
226
|
|
227
|
-
await Subscription.objects.
|
227
|
+
user_subscription = await Subscription.objects.filter(user=user).afirst()
|
228
|
+
if not user_subscription:
|
229
|
+
await Subscription.objects.acreate(user=user, type=Subscription.Type.STANDARD)
|
228
230
|
|
229
231
|
return user
|
230
232
|
|
@@ -296,7 +298,9 @@ async def create_user_by_google_token(token: dict) -> KhojUser:
|
|
296
298
|
user=user,
|
297
299
|
)
|
298
300
|
|
299
|
-
await Subscription.objects.
|
301
|
+
user_subscription = await Subscription.objects.filter(user=user).afirst()
|
302
|
+
if not user_subscription:
|
303
|
+
await Subscription.objects.acreate(user=user, type=Subscription.Type.STANDARD)
|
300
304
|
|
301
305
|
return user
|
302
306
|
|
@@ -853,7 +857,7 @@ class ConversationAdapters:
|
|
853
857
|
agent=conversation.agent,
|
854
858
|
conversation_log=conversation.conversation_log,
|
855
859
|
slug=conversation.slug,
|
856
|
-
title=conversation.title,
|
860
|
+
title=conversation.title if conversation.title else conversation.slug,
|
857
861
|
)
|
858
862
|
|
859
863
|
@staticmethod
|
@@ -977,7 +981,7 @@ class ConversationAdapters:
|
|
977
981
|
|
978
982
|
@staticmethod
|
979
983
|
async def aget_all_conversation_configs():
|
980
|
-
return await sync_to_async(list)(ChatModelOptions.objects.prefetch_related("
|
984
|
+
return await sync_to_async(list)(ChatModelOptions.objects.prefetch_related("ai_model_api").all())
|
981
985
|
|
982
986
|
@staticmethod
|
983
987
|
def get_vision_enabled_config():
|
@@ -996,12 +1000,12 @@ class ConversationAdapters:
|
|
996
1000
|
return None
|
997
1001
|
|
998
1002
|
@staticmethod
|
999
|
-
def
|
1000
|
-
return
|
1003
|
+
def get_ai_model_api():
|
1004
|
+
return AiModelApi.objects.filter().first()
|
1001
1005
|
|
1002
1006
|
@staticmethod
|
1003
|
-
def
|
1004
|
-
return
|
1007
|
+
def has_valid_ai_model_api():
|
1008
|
+
return AiModelApi.objects.filter().exists()
|
1005
1009
|
|
1006
1010
|
@staticmethod
|
1007
1011
|
@arequire_valid_user
|
@@ -1089,7 +1093,7 @@ class ConversationAdapters:
|
|
1089
1093
|
server_chat_settings: ServerChatSettings = (
|
1090
1094
|
await ServerChatSettings.objects.filter()
|
1091
1095
|
.prefetch_related(
|
1092
|
-
"chat_default", "
|
1096
|
+
"chat_default", "chat_default__ai_model_api", "chat_advanced", "chat_advanced__ai_model_api"
|
1093
1097
|
)
|
1094
1098
|
.afirst()
|
1095
1099
|
)
|
@@ -1105,7 +1109,7 @@ class ConversationAdapters:
|
|
1105
1109
|
|
1106
1110
|
# Get the user's chat settings, if the server chat settings are not set
|
1107
1111
|
user_chat_settings = (
|
1108
|
-
(await UserConversationConfig.objects.filter(user=user).prefetch_related("
|
1112
|
+
(await UserConversationConfig.objects.filter(user=user).prefetch_related("setting__ai_model_api").afirst())
|
1109
1113
|
if user
|
1110
1114
|
else None
|
1111
1115
|
)
|
@@ -1113,7 +1117,7 @@ class ConversationAdapters:
|
|
1113
1117
|
return user_chat_settings.setting
|
1114
1118
|
|
1115
1119
|
# Get the first chat model if even the user chat settings are not set
|
1116
|
-
return await ChatModelOptions.objects.filter().prefetch_related("
|
1120
|
+
return await ChatModelOptions.objects.filter().prefetch_related("ai_model_api").afirst()
|
1117
1121
|
|
1118
1122
|
@staticmethod
|
1119
1123
|
def get_advanced_conversation_config(user: KhojUser):
|
@@ -1126,7 +1130,7 @@ class ConversationAdapters:
|
|
1126
1130
|
async def aget_advanced_conversation_config(user: KhojUser = None):
|
1127
1131
|
server_chat_settings: ServerChatSettings = (
|
1128
1132
|
await ServerChatSettings.objects.filter()
|
1129
|
-
.prefetch_related("chat_advanced", "
|
1133
|
+
.prefetch_related("chat_advanced", "chat_advanced__ai_model_api")
|
1130
1134
|
.afirst()
|
1131
1135
|
)
|
1132
1136
|
if server_chat_settings is not None and server_chat_settings.chat_advanced is not None:
|
@@ -1254,7 +1258,7 @@ class ConversationAdapters:
|
|
1254
1258
|
@staticmethod
|
1255
1259
|
async def aget_user_conversation_config(user: KhojUser):
|
1256
1260
|
config = (
|
1257
|
-
await UserConversationConfig.objects.filter(user=user).prefetch_related("
|
1261
|
+
await UserConversationConfig.objects.filter(user=user).prefetch_related("setting__ai_model_api").afirst()
|
1258
1262
|
)
|
1259
1263
|
if not config:
|
1260
1264
|
return None
|
@@ -1309,7 +1313,7 @@ class ConversationAdapters:
|
|
1309
1313
|
ChatModelOptions.ModelType.OPENAI,
|
1310
1314
|
ChatModelOptions.ModelType.GOOGLE,
|
1311
1315
|
]
|
1312
|
-
) and conversation_config.
|
1316
|
+
) and conversation_config.ai_model_api:
|
1313
1317
|
return conversation_config
|
1314
1318
|
|
1315
1319
|
else:
|
@@ -1317,7 +1321,7 @@ class ConversationAdapters:
|
|
1317
1321
|
|
1318
1322
|
@staticmethod
|
1319
1323
|
async def aget_text_to_image_model_config():
|
1320
|
-
return await TextToImageModelConfig.objects.filter().prefetch_related("
|
1324
|
+
return await TextToImageModelConfig.objects.filter().prefetch_related("ai_model_api").afirst()
|
1321
1325
|
|
1322
1326
|
@staticmethod
|
1323
1327
|
def get_text_to_image_model_config():
|
@@ -1339,9 +1343,9 @@ class ConversationAdapters:
|
|
1339
1343
|
|
1340
1344
|
@staticmethod
|
1341
1345
|
async def aget_user_text_to_image_model(user: KhojUser) -> Optional[TextToImageModelConfig]:
|
1342
|
-
# Create a custom queryset for prefetching
|
1346
|
+
# Create a custom queryset for prefetching settings__ai_model_api, handling null cases
|
1343
1347
|
settings_prefetch = Prefetch(
|
1344
|
-
"setting", queryset=TextToImageModelConfig.objects.prefetch_related("
|
1348
|
+
"setting", queryset=TextToImageModelConfig.objects.prefetch_related("ai_model_api")
|
1345
1349
|
)
|
1346
1350
|
|
1347
1351
|
config = await UserTextToImageModelConfig.objects.filter(user=user).prefetch_related(settings_prefetch).afirst()
|
@@ -1,17 +1,21 @@
|
|
1
1
|
import csv
|
2
2
|
import json
|
3
|
-
from datetime import
|
3
|
+
from datetime import datetime, timedelta
|
4
4
|
|
5
5
|
from apscheduler.job import Job
|
6
6
|
from django.contrib import admin, messages
|
7
|
-
from django.contrib.auth.admin import
|
7
|
+
from django.contrib.auth.admin import GroupAdmin as BaseGroupAdmin
|
8
|
+
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
9
|
+
from django.contrib.auth.models import Group
|
8
10
|
from django.http import HttpResponse
|
9
|
-
from django_apscheduler.admin import DjangoJobAdmin
|
11
|
+
from django_apscheduler.admin import DjangoJobAdmin, DjangoJobExecutionAdmin
|
10
12
|
from django_apscheduler.jobstores import DjangoJobStore
|
11
|
-
from django_apscheduler.models import DjangoJob
|
13
|
+
from django_apscheduler.models import DjangoJob, DjangoJobExecution
|
14
|
+
from unfold import admin as unfold_admin
|
12
15
|
|
13
16
|
from khoj.database.models import (
|
14
17
|
Agent,
|
18
|
+
AiModelApi,
|
15
19
|
ChatModelOptions,
|
16
20
|
ClientApplication,
|
17
21
|
Conversation,
|
@@ -19,7 +23,6 @@ from khoj.database.models import (
|
|
19
23
|
GithubConfig,
|
20
24
|
KhojUser,
|
21
25
|
NotionConfig,
|
22
|
-
OpenAIProcessorConversationConfig,
|
23
26
|
ProcessLock,
|
24
27
|
ReflectiveQuestion,
|
25
28
|
SearchModelConfig,
|
@@ -35,10 +38,8 @@ from khoj.database.models import (
|
|
35
38
|
)
|
36
39
|
from khoj.utils.helpers import ImageIntentType
|
37
40
|
|
38
|
-
admin.site.unregister(DjangoJob)
|
39
|
-
|
40
41
|
|
41
|
-
class KhojDjangoJobAdmin(DjangoJobAdmin):
|
42
|
+
class KhojDjangoJobAdmin(DjangoJobAdmin, unfold_admin.ModelAdmin):
|
42
43
|
list_display = (
|
43
44
|
"id",
|
44
45
|
"next_run_time",
|
@@ -62,10 +63,25 @@ class KhojDjangoJobAdmin(DjangoJobAdmin):
|
|
62
63
|
return queryset, use_distinct
|
63
64
|
|
64
65
|
|
66
|
+
class KhojDjangoJobExecutionAdmin(DjangoJobExecutionAdmin, unfold_admin.ModelAdmin):
|
67
|
+
pass
|
68
|
+
|
69
|
+
|
70
|
+
admin.site.unregister(DjangoJob)
|
65
71
|
admin.site.register(DjangoJob, KhojDjangoJobAdmin)
|
72
|
+
admin.site.unregister(DjangoJobExecution)
|
73
|
+
admin.site.register(DjangoJobExecution, KhojDjangoJobExecutionAdmin)
|
66
74
|
|
67
75
|
|
68
|
-
class
|
76
|
+
class GroupAdmin(BaseGroupAdmin, unfold_admin.ModelAdmin):
|
77
|
+
pass
|
78
|
+
|
79
|
+
|
80
|
+
class UserAdmin(BaseUserAdmin, unfold_admin.ModelAdmin):
|
81
|
+
pass
|
82
|
+
|
83
|
+
|
84
|
+
class KhojUserAdmin(UserAdmin, unfold_admin.ModelAdmin):
|
69
85
|
class DateJoinedAfterFilter(admin.SimpleListFilter):
|
70
86
|
title = "Joined after"
|
71
87
|
parameter_name = "joined_after"
|
@@ -137,31 +153,33 @@ class KhojUserAdmin(UserAdmin):
|
|
137
153
|
get_email_login_url.short_description = "Get email login URL" # type: ignore
|
138
154
|
|
139
155
|
|
156
|
+
admin.site.unregister(Group)
|
140
157
|
admin.site.register(KhojUser, KhojUserAdmin)
|
141
158
|
|
142
|
-
admin.site.register(ProcessLock)
|
143
|
-
admin.site.register(SpeechToTextModelOptions)
|
144
|
-
admin.site.register(ReflectiveQuestion)
|
145
|
-
admin.site.register(ClientApplication)
|
146
|
-
admin.site.register(GithubConfig)
|
147
|
-
admin.site.register(NotionConfig)
|
148
|
-
admin.site.register(UserVoiceModelConfig)
|
149
|
-
admin.site.register(VoiceModelOption)
|
150
|
-
admin.site.register(UserRequests)
|
159
|
+
admin.site.register(ProcessLock, unfold_admin.ModelAdmin)
|
160
|
+
admin.site.register(SpeechToTextModelOptions, unfold_admin.ModelAdmin)
|
161
|
+
admin.site.register(ReflectiveQuestion, unfold_admin.ModelAdmin)
|
162
|
+
admin.site.register(ClientApplication, unfold_admin.ModelAdmin)
|
163
|
+
admin.site.register(GithubConfig, unfold_admin.ModelAdmin)
|
164
|
+
admin.site.register(NotionConfig, unfold_admin.ModelAdmin)
|
165
|
+
admin.site.register(UserVoiceModelConfig, unfold_admin.ModelAdmin)
|
166
|
+
admin.site.register(VoiceModelOption, unfold_admin.ModelAdmin)
|
167
|
+
admin.site.register(UserRequests, unfold_admin.ModelAdmin)
|
151
168
|
|
152
169
|
|
153
170
|
@admin.register(Agent)
|
154
|
-
class AgentAdmin(
|
171
|
+
class AgentAdmin(unfold_admin.ModelAdmin):
|
155
172
|
list_display = (
|
156
173
|
"id",
|
157
174
|
"name",
|
158
175
|
)
|
159
176
|
search_fields = ("id", "name")
|
177
|
+
list_filter = ("privacy_level",)
|
160
178
|
ordering = ("-created_at",)
|
161
179
|
|
162
180
|
|
163
181
|
@admin.register(Entry)
|
164
|
-
class EntryAdmin(
|
182
|
+
class EntryAdmin(unfold_admin.ModelAdmin):
|
165
183
|
list_display = (
|
166
184
|
"id",
|
167
185
|
"created_at",
|
@@ -183,7 +201,7 @@ class EntryAdmin(admin.ModelAdmin):
|
|
183
201
|
|
184
202
|
|
185
203
|
@admin.register(Subscription)
|
186
|
-
class KhojUserSubscription(
|
204
|
+
class KhojUserSubscription(unfold_admin.ModelAdmin):
|
187
205
|
list_display = (
|
188
206
|
"id",
|
189
207
|
"user",
|
@@ -195,18 +213,18 @@ class KhojUserSubscription(admin.ModelAdmin):
|
|
195
213
|
|
196
214
|
|
197
215
|
@admin.register(ChatModelOptions)
|
198
|
-
class ChatModelOptionsAdmin(
|
216
|
+
class ChatModelOptionsAdmin(unfold_admin.ModelAdmin):
|
199
217
|
list_display = (
|
200
218
|
"id",
|
201
219
|
"chat_model",
|
202
|
-
"
|
220
|
+
"ai_model_api",
|
203
221
|
"max_prompt_size",
|
204
222
|
)
|
205
|
-
search_fields = ("id", "chat_model", "
|
223
|
+
search_fields = ("id", "chat_model", "ai_model_api__name")
|
206
224
|
|
207
225
|
|
208
226
|
@admin.register(TextToImageModelConfig)
|
209
|
-
class TextToImageModelOptionsAdmin(
|
227
|
+
class TextToImageModelOptionsAdmin(unfold_admin.ModelAdmin):
|
210
228
|
list_display = (
|
211
229
|
"id",
|
212
230
|
"model_name",
|
@@ -215,8 +233,8 @@ class TextToImageModelOptionsAdmin(admin.ModelAdmin):
|
|
215
233
|
search_fields = ("id", "model_name", "model_type")
|
216
234
|
|
217
235
|
|
218
|
-
@admin.register(
|
219
|
-
class
|
236
|
+
@admin.register(AiModelApi)
|
237
|
+
class AiModelApiAdmin(unfold_admin.ModelAdmin):
|
220
238
|
list_display = (
|
221
239
|
"id",
|
222
240
|
"name",
|
@@ -227,7 +245,7 @@ class OpenAIProcessorConversationConfigAdmin(admin.ModelAdmin):
|
|
227
245
|
|
228
246
|
|
229
247
|
@admin.register(SearchModelConfig)
|
230
|
-
class SearchModelConfigAdmin(
|
248
|
+
class SearchModelConfigAdmin(unfold_admin.ModelAdmin):
|
231
249
|
list_display = (
|
232
250
|
"id",
|
233
251
|
"name",
|
@@ -238,7 +256,7 @@ class SearchModelConfigAdmin(admin.ModelAdmin):
|
|
238
256
|
|
239
257
|
|
240
258
|
@admin.register(ServerChatSettings)
|
241
|
-
class ServerChatSettingsAdmin(
|
259
|
+
class ServerChatSettingsAdmin(unfold_admin.ModelAdmin):
|
242
260
|
list_display = (
|
243
261
|
"chat_default",
|
244
262
|
"chat_advanced",
|
@@ -247,7 +265,7 @@ class ServerChatSettingsAdmin(admin.ModelAdmin):
|
|
247
265
|
|
248
266
|
|
249
267
|
@admin.register(WebScraper)
|
250
|
-
class WebScraperAdmin(
|
268
|
+
class WebScraperAdmin(unfold_admin.ModelAdmin):
|
251
269
|
list_display = (
|
252
270
|
"priority",
|
253
271
|
"name",
|
@@ -261,7 +279,7 @@ class WebScraperAdmin(admin.ModelAdmin):
|
|
261
279
|
|
262
280
|
|
263
281
|
@admin.register(Conversation)
|
264
|
-
class ConversationAdmin(
|
282
|
+
class ConversationAdmin(unfold_admin.ModelAdmin):
|
265
283
|
list_display = (
|
266
284
|
"id",
|
267
285
|
"user",
|
@@ -270,7 +288,7 @@ class ConversationAdmin(admin.ModelAdmin):
|
|
270
288
|
"client",
|
271
289
|
)
|
272
290
|
search_fields = ("id", "user__email", "user__username", "client__name")
|
273
|
-
list_filter = ("agent",)
|
291
|
+
list_filter = ("agent", "client", "user")
|
274
292
|
ordering = ("-created_at",)
|
275
293
|
|
276
294
|
actions = ["export_selected_objects", "export_selected_minimal_objects"]
|
@@ -286,17 +304,10 @@ class ConversationAdmin(admin.ModelAdmin):
|
|
286
304
|
modified_log = conversation.conversation_log
|
287
305
|
chat_log = modified_log.get("chat", [])
|
288
306
|
for idx, log in enumerate(chat_log):
|
289
|
-
if
|
290
|
-
log["
|
291
|
-
and log["intent"]
|
292
|
-
and log["intent"]["type"]
|
293
|
-
and (
|
294
|
-
log["intent"]["type"] == ImageIntentType.TEXT_TO_IMAGE.value
|
295
|
-
or log["intent"]["type"] == ImageIntentType.TEXT_TO_IMAGE_V3.value
|
296
|
-
)
|
297
|
-
):
|
298
|
-
log["message"] = "inline image redacted for space"
|
307
|
+
if log["by"] == "khoj" and log["images"]:
|
308
|
+
log["images"] = ["inline image redacted for space"]
|
299
309
|
chat_log[idx] = log
|
310
|
+
|
300
311
|
modified_log["chat"] = chat_log
|
301
312
|
|
302
313
|
writer.writerow(
|
@@ -367,7 +378,7 @@ class ConversationAdmin(admin.ModelAdmin):
|
|
367
378
|
|
368
379
|
|
369
380
|
@admin.register(UserConversationConfig)
|
370
|
-
class UserConversationConfigAdmin(
|
381
|
+
class UserConversationConfigAdmin(unfold_admin.ModelAdmin):
|
371
382
|
list_display = (
|
372
383
|
"id",
|
373
384
|
"get_user_email",
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# Made manually by sabaimran for use by Django 5.0.9 on 2024-12-01 16:59
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
# This script was written alongside when Pydantic validation was added to the Conversation conversation_log field.
|
6
|
+
|
7
|
+
|
8
|
+
def migrate_generated_assets(apps, schema_editor):
|
9
|
+
Conversation = apps.get_model("database", "Conversation")
|
10
|
+
|
11
|
+
# Process conversations in chunks
|
12
|
+
for conversation in Conversation.objects.iterator():
|
13
|
+
try:
|
14
|
+
meta_log = conversation.conversation_log
|
15
|
+
modified = False
|
16
|
+
|
17
|
+
for chat in meta_log.get("chat", []):
|
18
|
+
intent_type = chat.get("intent", {}).get("type")
|
19
|
+
|
20
|
+
if intent_type and chat["by"] == "khoj":
|
21
|
+
if intent_type and "text-to-image" in intent_type:
|
22
|
+
# Migrate the generated image to the new format
|
23
|
+
chat["images"] = [chat.get("message")]
|
24
|
+
chat["message"] = chat["intent"]["inferred-queries"][0]
|
25
|
+
modified = True
|
26
|
+
|
27
|
+
if intent_type and "excalidraw" in intent_type:
|
28
|
+
# Migrate the generated excalidraw to the new format
|
29
|
+
chat["excalidrawDiagram"] = chat.get("message")
|
30
|
+
chat["message"] = chat["intent"]["inferred-queries"][0]
|
31
|
+
modified = True
|
32
|
+
|
33
|
+
# Only save if changes were made
|
34
|
+
if modified:
|
35
|
+
conversation.conversation_log = meta_log
|
36
|
+
conversation.save()
|
37
|
+
|
38
|
+
except Exception as e:
|
39
|
+
print(f"Error processing conversation {conversation.id}: {str(e)}")
|
40
|
+
continue
|
41
|
+
|
42
|
+
|
43
|
+
def reverse_migration(apps, schema_editor):
|
44
|
+
Conversation = apps.get_model("database", "Conversation")
|
45
|
+
|
46
|
+
# Process conversations in chunks
|
47
|
+
for conversation in Conversation.objects.iterator():
|
48
|
+
try:
|
49
|
+
meta_log = conversation.conversation_log
|
50
|
+
modified = False
|
51
|
+
|
52
|
+
for chat in meta_log.get("chat", []):
|
53
|
+
intent_type = chat.get("intent", {}).get("type")
|
54
|
+
|
55
|
+
if intent_type and chat["by"] == "khoj":
|
56
|
+
if intent_type and "text-to-image" in intent_type:
|
57
|
+
# Migrate the generated image back to the old format
|
58
|
+
chat["message"] = chat.get("images", [])[0]
|
59
|
+
chat.pop("images", None)
|
60
|
+
modified = True
|
61
|
+
|
62
|
+
if intent_type and "excalidraw" in intent_type:
|
63
|
+
# Migrate the generated excalidraw back to the old format
|
64
|
+
chat["message"] = chat.get("excalidrawDiagram")
|
65
|
+
chat.pop("excalidrawDiagram", None)
|
66
|
+
modified = True
|
67
|
+
|
68
|
+
# Only save if changes were made
|
69
|
+
if modified:
|
70
|
+
conversation.conversation_log = meta_log
|
71
|
+
conversation.save()
|
72
|
+
|
73
|
+
except Exception as e:
|
74
|
+
print(f"Error processing conversation {conversation.id}: {str(e)}")
|
75
|
+
continue
|
76
|
+
|
77
|
+
|
78
|
+
class Migration(migrations.Migration):
|
79
|
+
dependencies = [
|
80
|
+
("database", "0074_alter_conversation_title"),
|
81
|
+
]
|
82
|
+
|
83
|
+
operations = [
|
84
|
+
migrations.RunPython(migrate_generated_assets, reverse_migration),
|
85
|
+
]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generated by Django 5.0.9 on 2024-12-05 09:00
|
2
|
+
|
3
|
+
from django.db import migrations
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
dependencies = [
|
8
|
+
("database", "0075_migrate_generated_assets_and_validate"),
|
9
|
+
]
|
10
|
+
|
11
|
+
operations = [
|
12
|
+
migrations.RenameModel(
|
13
|
+
old_name="OpenAIProcessorConversationConfig",
|
14
|
+
new_name="AiModelApi",
|
15
|
+
),
|
16
|
+
migrations.RenameField(
|
17
|
+
model_name="chatmodeloptions",
|
18
|
+
old_name="openai_config",
|
19
|
+
new_name="ai_model_api",
|
20
|
+
),
|
21
|
+
migrations.RenameField(
|
22
|
+
model_name="texttoimagemodelconfig",
|
23
|
+
old_name="openai_config",
|
24
|
+
new_name="ai_model_api",
|
25
|
+
),
|
26
|
+
]
|