khoj 1.20.5.dev15__py3-none-any.whl → 1.20.5.dev17__py3-none-any.whl
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/configure.py +5 -32
- khoj/database/adapters/__init__.py +61 -20
- khoj/database/admin.py +4 -2
- khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py +51 -0
- khoj/database/models/__init__.py +5 -4
- khoj/interface/compiled/404/index.html +1 -1
- khoj/interface/compiled/_next/static/chunks/{9178-ef3257c08d8973c8.js → 9178-b9ab3fa2e9be8287.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-6ade083d5e27a023.js → page-989a824c640bc532.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/automations/{page-559111e9b97f158d.js → page-d7972645ccb80df1.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/page-8c9b92236d4daf4b.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/factchecker/{page-6ca723a9ff0dfd70.js → page-60be5e3295e2c0bc.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{page-a7e6517e91dde51a.js → page-851860583273ab5d.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/{page-fa15807b1ad7e30b.js → page-dcd385f03255ef36.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/page-ddcd51147d18c694.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-0ae8f5b868af65c1.js → page-699b364dc6fbf139.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-072d1cbdec7e1782.js → webpack-9953d80989df2d20.js} +1 -1
- khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css +1 -0
- khoj/interface/compiled/_next/static/css/df6f4c34ec280d53.css +1 -0
- khoj/interface/compiled/agents/index.html +1 -1
- khoj/interface/compiled/agents/index.txt +2 -2
- khoj/interface/compiled/automations/index.html +1 -1
- khoj/interface/compiled/automations/index.txt +2 -2
- khoj/interface/compiled/chat/index.html +1 -1
- khoj/interface/compiled/chat/index.txt +2 -2
- khoj/interface/compiled/factchecker/index.html +1 -1
- khoj/interface/compiled/factchecker/index.txt +2 -2
- khoj/interface/compiled/index.html +1 -1
- khoj/interface/compiled/index.txt +2 -2
- khoj/interface/compiled/search/index.html +1 -1
- khoj/interface/compiled/search/index.txt +2 -2
- khoj/interface/compiled/settings/index.html +1 -1
- khoj/interface/compiled/settings/index.txt +2 -2
- khoj/interface/compiled/share/chat/index.html +1 -1
- khoj/interface/compiled/share/chat/index.txt +2 -2
- khoj/processor/tools/online_search.py +10 -5
- khoj/routers/api_chat.py +21 -9
- khoj/routers/helpers.py +28 -12
- {khoj-1.20.5.dev15.dist-info → khoj-1.20.5.dev17.dist-info}/METADATA +1 -1
- {khoj-1.20.5.dev15.dist-info → khoj-1.20.5.dev17.dist-info}/RECORD +44 -43
- khoj/interface/compiled/_next/static/chunks/app/chat/page-37ff98d93e65b5a4.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/page-b0fae6e054ca311e.js +0 -1
- khoj/interface/compiled/_next/static/css/2bfe35fbe2c97a56.css +0 -1
- khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -1
- /khoj/interface/compiled/_next/static/{K0mF1QxJRVM2LVZZQ_Edc → QSaUkpIwMzbLQnDFgPg3j}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{K0mF1QxJRVM2LVZZQ_Edc → QSaUkpIwMzbLQnDFgPg3j}/_ssgManifest.js +0 -0
- {khoj-1.20.5.dev15.dist-info → khoj-1.20.5.dev17.dist-info}/WHEEL +0 -0
- {khoj-1.20.5.dev15.dist-info → khoj-1.20.5.dev17.dist-info}/entry_points.txt +0 -0
- {khoj-1.20.5.dev15.dist-info → khoj-1.20.5.dev17.dist-info}/licenses/LICENSE +0 -0
|
@@ -53,6 +53,7 @@ async def search_online(
|
|
|
53
53
|
conversation_history: dict,
|
|
54
54
|
location: LocationData,
|
|
55
55
|
user: KhojUser,
|
|
56
|
+
subscribed: bool = False,
|
|
56
57
|
send_status_func: Optional[Callable] = None,
|
|
57
58
|
custom_filters: List[str] = [],
|
|
58
59
|
):
|
|
@@ -91,12 +92,15 @@ async def search_online(
|
|
|
91
92
|
# Read, extract relevant info from the retrieved web pages
|
|
92
93
|
if webpages:
|
|
93
94
|
webpage_links = [link for link, _, _ in webpages]
|
|
94
|
-
logger.info(f"
|
|
95
|
+
logger.info(f"Reading web pages at: {list(webpage_links)}")
|
|
95
96
|
if send_status_func:
|
|
96
97
|
webpage_links_str = "\n- " + "\n- ".join(list(webpage_links))
|
|
97
98
|
async for event in send_status_func(f"**Reading web pages**: {webpage_links_str}"):
|
|
98
99
|
yield {ChatEvent.STATUS: event}
|
|
99
|
-
tasks = [
|
|
100
|
+
tasks = [
|
|
101
|
+
read_webpage_and_extract_content(subquery, link, content, subscribed=subscribed)
|
|
102
|
+
for link, subquery, content in webpages
|
|
103
|
+
]
|
|
100
104
|
results = await asyncio.gather(*tasks)
|
|
101
105
|
|
|
102
106
|
# Collect extracted info from the retrieved web pages
|
|
@@ -132,6 +136,7 @@ async def read_webpages(
|
|
|
132
136
|
conversation_history: dict,
|
|
133
137
|
location: LocationData,
|
|
134
138
|
user: KhojUser,
|
|
139
|
+
subscribed: bool = False,
|
|
135
140
|
send_status_func: Optional[Callable] = None,
|
|
136
141
|
):
|
|
137
142
|
"Infer web pages to read from the query and extract relevant information from them"
|
|
@@ -146,7 +151,7 @@ async def read_webpages(
|
|
|
146
151
|
webpage_links_str = "\n- " + "\n- ".join(list(urls))
|
|
147
152
|
async for event in send_status_func(f"**Reading web pages**: {webpage_links_str}"):
|
|
148
153
|
yield {ChatEvent.STATUS: event}
|
|
149
|
-
tasks = [read_webpage_and_extract_content(query, url) for url in urls]
|
|
154
|
+
tasks = [read_webpage_and_extract_content(query, url, subscribed=subscribed) for url in urls]
|
|
150
155
|
results = await asyncio.gather(*tasks)
|
|
151
156
|
|
|
152
157
|
response: Dict[str, Dict] = defaultdict(dict)
|
|
@@ -157,14 +162,14 @@ async def read_webpages(
|
|
|
157
162
|
|
|
158
163
|
|
|
159
164
|
async def read_webpage_and_extract_content(
|
|
160
|
-
subquery: str, url: str, content: str = None
|
|
165
|
+
subquery: str, url: str, content: str = None, subscribed: bool = False
|
|
161
166
|
) -> Tuple[str, Union[None, str], str]:
|
|
162
167
|
try:
|
|
163
168
|
if is_none_or_empty(content):
|
|
164
169
|
with timer(f"Reading web page at '{url}' took", logger):
|
|
165
170
|
content = await read_webpage_with_olostep(url) if OLOSTEP_API_KEY else await read_webpage_with_jina(url)
|
|
166
171
|
with timer(f"Extracting relevant information from web page at '{url}' took", logger):
|
|
167
|
-
extracted_info = await extract_relevant_info(subquery, content)
|
|
172
|
+
extracted_info = await extract_relevant_info(subquery, content, subscribed=subscribed)
|
|
168
173
|
return subquery, extracted_info, url
|
|
169
174
|
except Exception as e:
|
|
170
175
|
logger.error(f"Failed to read web page at '{url}' with {e}")
|
khoj/routers/api_chat.py
CHANGED
|
@@ -4,14 +4,14 @@ import logging
|
|
|
4
4
|
import time
|
|
5
5
|
from datetime import datetime
|
|
6
6
|
from functools import partial
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import Dict, Optional
|
|
8
8
|
from urllib.parse import unquote
|
|
9
9
|
|
|
10
10
|
from asgiref.sync import sync_to_async
|
|
11
11
|
from fastapi import APIRouter, Depends, HTTPException, Request
|
|
12
12
|
from fastapi.requests import Request
|
|
13
13
|
from fastapi.responses import Response, StreamingResponse
|
|
14
|
-
from starlette.authentication import requires
|
|
14
|
+
from starlette.authentication import has_required_scope, requires
|
|
15
15
|
|
|
16
16
|
from khoj.app.settings import ALLOWED_HOSTS
|
|
17
17
|
from khoj.database.adapters import (
|
|
@@ -59,7 +59,7 @@ from khoj.utils.rawconfig import FileFilterRequest, FilesFilterRequest, Location
|
|
|
59
59
|
# Initialize Router
|
|
60
60
|
logger = logging.getLogger(__name__)
|
|
61
61
|
conversation_command_rate_limiter = ConversationCommandRateLimiter(
|
|
62
|
-
trial_rate_limit=
|
|
62
|
+
trial_rate_limit=100, subscribed_rate_limit=100, slug="command"
|
|
63
63
|
)
|
|
64
64
|
|
|
65
65
|
|
|
@@ -532,10 +532,10 @@ async def chat(
|
|
|
532
532
|
country: Optional[str] = None,
|
|
533
533
|
timezone: Optional[str] = None,
|
|
534
534
|
rate_limiter_per_minute=Depends(
|
|
535
|
-
ApiUserRateLimiter(requests=
|
|
535
|
+
ApiUserRateLimiter(requests=60, subscribed_requests=60, window=60, slug="chat_minute")
|
|
536
536
|
),
|
|
537
537
|
rate_limiter_per_day=Depends(
|
|
538
|
-
ApiUserRateLimiter(requests=
|
|
538
|
+
ApiUserRateLimiter(requests=600, subscribed_requests=600, window=60 * 60 * 24, slug="chat_day")
|
|
539
539
|
),
|
|
540
540
|
):
|
|
541
541
|
async def event_generator(q: str):
|
|
@@ -544,6 +544,7 @@ async def chat(
|
|
|
544
544
|
chat_metadata: dict = {}
|
|
545
545
|
connection_alive = True
|
|
546
546
|
user: KhojUser = request.user.object
|
|
547
|
+
subscribed: bool = has_required_scope(request, ["premium"])
|
|
547
548
|
event_delimiter = "␃🔚␗"
|
|
548
549
|
q = unquote(q)
|
|
549
550
|
|
|
@@ -632,7 +633,9 @@ async def chat(
|
|
|
632
633
|
is_automated_task = conversation_commands == [ConversationCommand.AutomatedTask]
|
|
633
634
|
|
|
634
635
|
if conversation_commands == [ConversationCommand.Default] or is_automated_task:
|
|
635
|
-
conversation_commands = await aget_relevant_information_sources(
|
|
636
|
+
conversation_commands = await aget_relevant_information_sources(
|
|
637
|
+
q, meta_log, is_automated_task, subscribed=subscribed
|
|
638
|
+
)
|
|
636
639
|
conversation_commands_str = ", ".join([cmd.value for cmd in conversation_commands])
|
|
637
640
|
async for result in send_event(
|
|
638
641
|
ChatEvent.STATUS, f"**Chose Data Sources to Search:** {conversation_commands_str}"
|
|
@@ -687,7 +690,7 @@ async def chat(
|
|
|
687
690
|
):
|
|
688
691
|
yield result
|
|
689
692
|
|
|
690
|
-
response = await extract_relevant_summary(q, contextual_data)
|
|
693
|
+
response = await extract_relevant_summary(q, contextual_data, subscribed=subscribed)
|
|
691
694
|
response_log = str(response)
|
|
692
695
|
async for result in send_llm_response(response_log):
|
|
693
696
|
yield result
|
|
@@ -775,6 +778,8 @@ async def chat(
|
|
|
775
778
|
|
|
776
779
|
if not is_none_or_empty(compiled_references):
|
|
777
780
|
headings = "\n- " + "\n- ".join(set([c.get("compiled", c).split("\n")[0] for c in compiled_references]))
|
|
781
|
+
# Strip only leading # from headings
|
|
782
|
+
headings = headings.replace("#", "")
|
|
778
783
|
async for result in send_event(ChatEvent.STATUS, f"**Found Relevant Notes**: {headings}"):
|
|
779
784
|
yield result
|
|
780
785
|
|
|
@@ -792,7 +797,13 @@ async def chat(
|
|
|
792
797
|
if ConversationCommand.Online in conversation_commands:
|
|
793
798
|
try:
|
|
794
799
|
async for result in search_online(
|
|
795
|
-
defiltered_query,
|
|
800
|
+
defiltered_query,
|
|
801
|
+
meta_log,
|
|
802
|
+
location,
|
|
803
|
+
user,
|
|
804
|
+
subscribed,
|
|
805
|
+
partial(send_event, ChatEvent.STATUS),
|
|
806
|
+
custom_filters,
|
|
796
807
|
):
|
|
797
808
|
if isinstance(result, dict) and ChatEvent.STATUS in result:
|
|
798
809
|
yield result[ChatEvent.STATUS]
|
|
@@ -809,7 +820,7 @@ async def chat(
|
|
|
809
820
|
if ConversationCommand.Webpage in conversation_commands:
|
|
810
821
|
try:
|
|
811
822
|
async for result in read_webpages(
|
|
812
|
-
defiltered_query, meta_log, location, user, partial(send_event, ChatEvent.STATUS)
|
|
823
|
+
defiltered_query, meta_log, location, user, subscribed, partial(send_event, ChatEvent.STATUS)
|
|
813
824
|
):
|
|
814
825
|
if isinstance(result, dict) and ChatEvent.STATUS in result:
|
|
815
826
|
yield result[ChatEvent.STATUS]
|
|
@@ -853,6 +864,7 @@ async def chat(
|
|
|
853
864
|
location_data=location,
|
|
854
865
|
references=compiled_references,
|
|
855
866
|
online_results=online_results,
|
|
867
|
+
subscribed=subscribed,
|
|
856
868
|
send_status_func=partial(send_event, ChatEvent.STATUS),
|
|
857
869
|
):
|
|
858
870
|
if isinstance(result, dict) and ChatEvent.STATUS in result:
|
khoj/routers/helpers.py
CHANGED
|
@@ -252,7 +252,7 @@ async def acreate_title_from_query(query: str) -> str:
|
|
|
252
252
|
return response.strip()
|
|
253
253
|
|
|
254
254
|
|
|
255
|
-
async def aget_relevant_information_sources(query: str, conversation_history: dict, is_task: bool):
|
|
255
|
+
async def aget_relevant_information_sources(query: str, conversation_history: dict, is_task: bool, subscribed: bool):
|
|
256
256
|
"""
|
|
257
257
|
Given a query, determine which of the available tools the agent should use in order to answer appropriately.
|
|
258
258
|
"""
|
|
@@ -273,7 +273,9 @@ async def aget_relevant_information_sources(query: str, conversation_history: di
|
|
|
273
273
|
)
|
|
274
274
|
|
|
275
275
|
with timer("Chat actor: Infer information sources to refer", logger):
|
|
276
|
-
response = await send_message_to_model_wrapper(
|
|
276
|
+
response = await send_message_to_model_wrapper(
|
|
277
|
+
relevant_tools_prompt, response_type="json_object", subscribed=subscribed
|
|
278
|
+
)
|
|
277
279
|
|
|
278
280
|
try:
|
|
279
281
|
response = response.strip()
|
|
@@ -434,7 +436,7 @@ async def schedule_query(q: str, conversation_history: dict) -> Tuple[str, ...]:
|
|
|
434
436
|
raise AssertionError(f"Invalid response for scheduling query: {raw_response}")
|
|
435
437
|
|
|
436
438
|
|
|
437
|
-
async def extract_relevant_info(q: str, corpus: str) -> Union[str, None]:
|
|
439
|
+
async def extract_relevant_info(q: str, corpus: str, subscribed: bool) -> Union[str, None]:
|
|
438
440
|
"""
|
|
439
441
|
Extract relevant information for a given query from the target corpus
|
|
440
442
|
"""
|
|
@@ -447,18 +449,19 @@ async def extract_relevant_info(q: str, corpus: str) -> Union[str, None]:
|
|
|
447
449
|
corpus=corpus.strip(),
|
|
448
450
|
)
|
|
449
451
|
|
|
450
|
-
|
|
452
|
+
chat_model: ChatModelOptions = await ConversationAdapters.aget_default_conversation_config()
|
|
451
453
|
|
|
452
454
|
with timer("Chat actor: Extract relevant information from data", logger):
|
|
453
455
|
response = await send_message_to_model_wrapper(
|
|
454
456
|
extract_relevant_information,
|
|
455
457
|
prompts.system_prompt_extract_relevant_information,
|
|
456
|
-
chat_model_option=
|
|
458
|
+
chat_model_option=chat_model,
|
|
459
|
+
subscribed=subscribed,
|
|
457
460
|
)
|
|
458
461
|
return response.strip()
|
|
459
462
|
|
|
460
463
|
|
|
461
|
-
async def extract_relevant_summary(q: str, corpus: str) -> Union[str, None]:
|
|
464
|
+
async def extract_relevant_summary(q: str, corpus: str, subscribed: bool = False) -> Union[str, None]:
|
|
462
465
|
"""
|
|
463
466
|
Extract relevant information for a given query from the target corpus
|
|
464
467
|
"""
|
|
@@ -471,13 +474,14 @@ async def extract_relevant_summary(q: str, corpus: str) -> Union[str, None]:
|
|
|
471
474
|
corpus=corpus.strip(),
|
|
472
475
|
)
|
|
473
476
|
|
|
474
|
-
|
|
477
|
+
chat_model: ChatModelOptions = await ConversationAdapters.aget_default_conversation_config()
|
|
475
478
|
|
|
476
479
|
with timer("Chat actor: Extract relevant information from data", logger):
|
|
477
480
|
response = await send_message_to_model_wrapper(
|
|
478
481
|
extract_relevant_information,
|
|
479
482
|
prompts.system_prompt_extract_relevant_summary,
|
|
480
|
-
chat_model_option=
|
|
483
|
+
chat_model_option=chat_model,
|
|
484
|
+
subscribed=subscribed,
|
|
481
485
|
)
|
|
482
486
|
return response.strip()
|
|
483
487
|
|
|
@@ -489,6 +493,7 @@ async def generate_better_image_prompt(
|
|
|
489
493
|
note_references: List[Dict[str, Any]],
|
|
490
494
|
online_results: Optional[dict] = None,
|
|
491
495
|
model_type: Optional[str] = None,
|
|
496
|
+
subscribed: bool = False,
|
|
492
497
|
) -> str:
|
|
493
498
|
"""
|
|
494
499
|
Generate a better image prompt from the given query
|
|
@@ -533,10 +538,12 @@ async def generate_better_image_prompt(
|
|
|
533
538
|
online_results=simplified_online_results,
|
|
534
539
|
)
|
|
535
540
|
|
|
536
|
-
|
|
541
|
+
chat_model: ChatModelOptions = await ConversationAdapters.aget_default_conversation_config()
|
|
537
542
|
|
|
538
543
|
with timer("Chat actor: Generate contextual image prompt", logger):
|
|
539
|
-
response = await send_message_to_model_wrapper(
|
|
544
|
+
response = await send_message_to_model_wrapper(
|
|
545
|
+
image_prompt, chat_model_option=chat_model, subscribed=subscribed
|
|
546
|
+
)
|
|
540
547
|
response = response.strip()
|
|
541
548
|
if response.startswith(('"', "'")) and response.endswith(('"', "'")):
|
|
542
549
|
response = response[1:-1]
|
|
@@ -549,13 +556,18 @@ async def send_message_to_model_wrapper(
|
|
|
549
556
|
system_message: str = "",
|
|
550
557
|
response_type: str = "text",
|
|
551
558
|
chat_model_option: ChatModelOptions = None,
|
|
559
|
+
subscribed: bool = False,
|
|
552
560
|
):
|
|
553
561
|
conversation_config: ChatModelOptions = (
|
|
554
562
|
chat_model_option or await ConversationAdapters.aget_default_conversation_config()
|
|
555
563
|
)
|
|
556
564
|
|
|
557
565
|
chat_model = conversation_config.chat_model
|
|
558
|
-
max_tokens =
|
|
566
|
+
max_tokens = (
|
|
567
|
+
conversation_config.subscribed_max_prompt_size
|
|
568
|
+
if subscribed and conversation_config.subscribed_max_prompt_size
|
|
569
|
+
else conversation_config.max_prompt_size
|
|
570
|
+
)
|
|
559
571
|
tokenizer = conversation_config.tokenizer
|
|
560
572
|
|
|
561
573
|
if conversation_config.model_type == "offline":
|
|
@@ -786,6 +798,7 @@ async def text_to_image(
|
|
|
786
798
|
location_data: LocationData,
|
|
787
799
|
references: List[Dict[str, Any]],
|
|
788
800
|
online_results: Dict[str, Any],
|
|
801
|
+
subscribed: bool = False,
|
|
789
802
|
send_status_func: Optional[Callable] = None,
|
|
790
803
|
):
|
|
791
804
|
status_code = 200
|
|
@@ -822,6 +835,7 @@ async def text_to_image(
|
|
|
822
835
|
note_references=references,
|
|
823
836
|
online_results=online_results,
|
|
824
837
|
model_type=text_to_image_config.model_type,
|
|
838
|
+
subscribed=subscribed,
|
|
825
839
|
)
|
|
826
840
|
|
|
827
841
|
if send_status_func:
|
|
@@ -1359,7 +1373,9 @@ def get_user_config(user: KhojUser, request: Request, is_detailed: bool = False)
|
|
|
1359
1373
|
current_notion_config = get_user_notion_config(user)
|
|
1360
1374
|
notion_token = current_notion_config.token if current_notion_config else ""
|
|
1361
1375
|
|
|
1362
|
-
selected_chat_model_config =
|
|
1376
|
+
selected_chat_model_config = (
|
|
1377
|
+
ConversationAdapters.get_conversation_config(user) or ConversationAdapters.get_default_conversation_config()
|
|
1378
|
+
)
|
|
1363
1379
|
chat_models = ConversationAdapters.get_conversation_processor_options().all()
|
|
1364
1380
|
chat_model_options = list()
|
|
1365
1381
|
for chat_model in chat_models:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
khoj/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
khoj/configure.py,sha256=
|
|
2
|
+
khoj/configure.py,sha256=C5xSS_1ptxgfRfabQ0zZoFteASIS4mCFMvdkdCMVvSs,17019
|
|
3
3
|
khoj/main.py,sha256=58Rssq2H5AM69dA2UyGHye3vPAMp5RRS6xLcGkB_G_w,8147
|
|
4
4
|
khoj/manage.py,sha256=njo6uLxGaMamTPesHjFEOIBJbpIUrz39e1V59zKj544,664
|
|
5
5
|
khoj/app/README.md,sha256=PSQjKCdpU2hgszLVF8yEhV7TWhbEEb-1aYLTRuuAsKI,2832
|
|
@@ -8,10 +8,10 @@ khoj/app/asgi.py,sha256=soh3C1xazlgHt_bDgKzrfzo2TKXbNYJsckcXNEgTip8,388
|
|
|
8
8
|
khoj/app/settings.py,sha256=M6sQUu_AdeKl3eruecBaifRBhYOBIait0KA2NPizcBM,6198
|
|
9
9
|
khoj/app/urls.py,sha256=7ECnusoAPAfbO_H_b5FUzYGvnb4LLdWaRDyKNvYuBvg,869
|
|
10
10
|
khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
khoj/database/admin.py,sha256=
|
|
11
|
+
khoj/database/admin.py,sha256=bYF13peHgHpugd9bkEwYzO1r-r5l9JIDjCQbdmK3tT8,9166
|
|
12
12
|
khoj/database/apps.py,sha256=pM4tkX5Odw4YW_hLLKK8Nd5kqGddf1en0oMCea44RZw,153
|
|
13
13
|
khoj/database/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
|
|
14
|
-
khoj/database/adapters/__init__.py,sha256=
|
|
14
|
+
khoj/database/adapters/__init__.py,sha256=1cBuozhTjwoVynfidoBf8KzA7X68gvjRnEufEc7y650,52651
|
|
15
15
|
khoj/database/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
khoj/database/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
khoj/database/management/commands/change_generated_images_url.py,sha256=w52FwRlyOL4YRpp9O6jJUjSIuGLxVhaS2w1D7gtQgOE,2644
|
|
@@ -81,25 +81,26 @@ khoj/database/migrations/0053_agent_style_color_agent_style_icon.py,sha256=j30Fq
|
|
|
81
81
|
khoj/database/migrations/0054_alter_agent_style_color.py,sha256=f6RnyvEMR0-Y4R2CtNWfVYHxI_y_nADnD-7o_FoISb4,1151
|
|
82
82
|
khoj/database/migrations/0055_alter_agent_style_icon.py,sha256=0lkxmyDmOW_3CsnLl8iEsCI6qHi2YS9wfdFfDMNbZ4k,1218
|
|
83
83
|
khoj/database/migrations/0056_searchmodelconfig_cross_encoder_model_config.py,sha256=RuR5lyAp6T_bRg2gxhOGS4dfXOWBBEQ3bAvKf4ru5Gw,430
|
|
84
|
+
khoj/database/migrations/0057_remove_serverchatsettings_default_model_and_more.py,sha256=q00paabxofoeWe3FXVLE901KwEn9Q3bRMW2TtAbmtUE,1608
|
|
84
85
|
khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
|
-
khoj/database/models/__init__.py,sha256=
|
|
86
|
+
khoj/database/models/__init__.py,sha256=HC25ln3PL1DtjcAoPaTsOcWpb9Ley1zvBGuJwkgVbpM,19085
|
|
86
87
|
khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
|
|
87
88
|
khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
|
|
88
89
|
khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
|
|
89
90
|
khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
|
|
90
91
|
khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
|
|
91
92
|
khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
|
|
92
|
-
khoj/interface/compiled/index.html,sha256=
|
|
93
|
-
khoj/interface/compiled/index.txt,sha256=
|
|
93
|
+
khoj/interface/compiled/index.html,sha256=NdkTC0T-FDvuDOakogl12tu6C84LJ4Dz7Gh7D6FFlm4,11912
|
|
94
|
+
khoj/interface/compiled/index.txt,sha256=oCkAATeojogPQaVvkIa8vTlumEhDsNeT6srUQOaMKLU,5515
|
|
94
95
|
khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
|
|
95
96
|
khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
|
|
96
97
|
khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
|
|
97
98
|
khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
|
|
98
99
|
khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
|
|
99
100
|
khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
|
|
100
|
-
khoj/interface/compiled/404/index.html,sha256=
|
|
101
|
-
khoj/interface/compiled/_next/static/
|
|
102
|
-
khoj/interface/compiled/_next/static/
|
|
101
|
+
khoj/interface/compiled/404/index.html,sha256=QepkvMZWGESIfujGGsokG-_B92YCTWEVhut4wWR4XY0,11947
|
|
102
|
+
khoj/interface/compiled/_next/static/QSaUkpIwMzbLQnDFgPg3j/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
|
|
103
|
+
khoj/interface/compiled/_next/static/QSaUkpIwMzbLQnDFgPg3j/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
103
104
|
khoj/interface/compiled/_next/static/chunks/1603-fb2d80ae73990df3.js,sha256=CCbOXifiixbhMf7lgTG96225tP1Pou72Wb0Zh6KC1Rs,71007
|
|
104
105
|
khoj/interface/compiled/_next/static/chunks/2614-7cf01576d4457a75.js,sha256=aUjhjyxNPrZr4bLKzGkGgHH8K4J6g9dfiRjabnmvSDc,1104737
|
|
105
106
|
khoj/interface/compiled/_next/static/chunks/3062-a42d847c919a9ea4.js,sha256=9UDsx_sY4b4x6jjR_A0AymC9rjBCoCcEpGR4U-0Ej3g,256170
|
|
@@ -113,7 +114,7 @@ khoj/interface/compiled/_next/static/chunks/743-1a64254447cda71f.js,sha256=YH4bE
|
|
|
113
114
|
khoj/interface/compiled/_next/static/chunks/8423-898d821eaab634af.js,sha256=W8aFQibnAqcbhPYoD_WzHKoMwaWt3jXdan7n_LoY4t4,10327
|
|
114
115
|
khoj/interface/compiled/_next/static/chunks/9001-acbca3e19b1a5ddf.js,sha256=M2hBSe8WTnjEmUlOiOgt_zDJtv3sc4ghnubhkZyMvVA,35460
|
|
115
116
|
khoj/interface/compiled/_next/static/chunks/9162-4a6d0d0dc5e27618.js,sha256=2csnvP4rJcL4oZlBAEkzeSxBJy4gwYxzAnqzeWbe9fw,149225
|
|
116
|
-
khoj/interface/compiled/_next/static/chunks/9178-
|
|
117
|
+
khoj/interface/compiled/_next/static/chunks/9178-b9ab3fa2e9be8287.js,sha256=oPlzSM8_yBFdp0iNTO1OAeHniR48SsjjZGsTlheBUVQ,17593
|
|
117
118
|
khoj/interface/compiled/_next/static/chunks/9417-5d14ac74aaab2c66.js,sha256=FZ8xOLMdzrlVmwtcyuQSy8bBwd8_UZ1hH3FlL4DwXpA,17252
|
|
118
119
|
khoj/interface/compiled/_next/static/chunks/9693-91b03052c5cabded.js,sha256=htVs3WyaR5jF7tXL_VBwqtPcQ53T3s9jWRazqz7DU-c,28957
|
|
119
120
|
khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js,sha256=wK1TsLdl56xtbQG6HMRDpylzTOYXQaAnnn2xobFnX40,267216
|
|
@@ -122,35 +123,35 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
|
|
|
122
123
|
khoj/interface/compiled/_next/static/chunks/main-175c164f5e0f026c.js,sha256=hlUnjERudON4V4kUKprrFz1e9JRtSp4A9i7vnM-1bzA,110324
|
|
123
124
|
khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
|
|
124
125
|
khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
125
|
-
khoj/interface/compiled/_next/static/chunks/webpack-
|
|
126
|
+
khoj/interface/compiled/_next/static/chunks/webpack-9953d80989df2d20.js,sha256=q5HW1s5tBDHSX4l8Q_2R6b49Mil2ThSfK48iYKZ2ghI,3721
|
|
126
127
|
khoj/interface/compiled/_next/static/chunks/app/layout-f3e40d346da53112.js,sha256=nekGSUVbvB81OfqGgJa2UoDmbxPhNwFwtc4o11O_1jI,442
|
|
127
|
-
khoj/interface/compiled/_next/static/chunks/app/page-
|
|
128
|
+
khoj/interface/compiled/_next/static/chunks/app/page-851860583273ab5d.js,sha256=Ocjky2Cm-ctmhs1r4oSRBYyMfkotM0ErcWVTVCGei6Y,28601
|
|
128
129
|
khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
|
|
129
130
|
khoj/interface/compiled/_next/static/chunks/app/agents/layout-e71c8e913cccf792.js,sha256=VyIMrkvntFObMzXF-elNtngJ8mBdjg8XrOGfboJ2f_4,372
|
|
130
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/page-
|
|
131
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/page-989a824c640bc532.js,sha256=3jU-Yi9AqZMAvWyGhiVjy9SofvHSUHSUV65CbBpu3Rc,18086
|
|
131
132
|
khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js,sha256=d2vJ_lVB0pfeFXNUPzHAe1ca5NzdNowHPh___SPqugM,5143
|
|
132
|
-
khoj/interface/compiled/_next/static/chunks/app/automations/page-
|
|
133
|
+
khoj/interface/compiled/_next/static/chunks/app/automations/page-d7972645ccb80df1.js,sha256=elAjqbgd_xrq2ABcEECldivUA3OCN4AxXZiNvOGmT9s,33990
|
|
133
134
|
khoj/interface/compiled/_next/static/chunks/app/chat/layout-8102549127db3067.js,sha256=YIoA3fqOBt8nKWw5iQAwA_avg2t1Q5Afn65IA5PBOz4,374
|
|
134
|
-
khoj/interface/compiled/_next/static/chunks/app/chat/page-
|
|
135
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/page-8c9b92236d4daf4b.js,sha256=UVAJVtwJgWWakr7uIeSm45qPUEzznZPpHSKpocZ0-E4,10334
|
|
135
136
|
khoj/interface/compiled/_next/static/chunks/app/factchecker/layout-7b30c541c05fb904.js,sha256=yub2AuBKHKSCqrHRFnkZv9JXLmLJLOB99iiaD3DtZQM,170
|
|
136
|
-
khoj/interface/compiled/_next/static/chunks/app/factchecker/page-
|
|
137
|
+
khoj/interface/compiled/_next/static/chunks/app/factchecker/page-60be5e3295e2c0bc.js,sha256=cN2wWLvSbGkzahP9s8RQskobNoS2Hu4jCSIizV_lHds,13987
|
|
137
138
|
khoj/interface/compiled/_next/static/chunks/app/search/layout-3720f1362310bebb.js,sha256=Smpa4MQaw5ItashtspsDKsOvRa6sOXH_lv4jIfWIbNI,170
|
|
138
|
-
khoj/interface/compiled/_next/static/chunks/app/search/page-
|
|
139
|
+
khoj/interface/compiled/_next/static/chunks/app/search/page-dcd385f03255ef36.js,sha256=Q-lnlHhL_GX0hGenIMnEX4W8jjUErEms0N96Dtyv9Dg,6953
|
|
139
140
|
khoj/interface/compiled/_next/static/chunks/app/settings/layout-6f9314b0d7a26046.js,sha256=ikl3vCXnp81sa24uPSuRbgvgDtpHGWfhxEs4OAOYXIM,5347
|
|
140
|
-
khoj/interface/compiled/_next/static/chunks/app/settings/page-
|
|
141
|
+
khoj/interface/compiled/_next/static/chunks/app/settings/page-ddcd51147d18c694.js,sha256=b3AdfCsPZkOLeMT1hpZnu0Z5GUd1mOISPNU3tIJLNhU,31894
|
|
141
142
|
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-39f03f9e32399f0f.js,sha256=ClS8wrj6HOsRL4VX8DMiqX_MlQDsi_3CA-AQt4m7vuA,373
|
|
142
|
-
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-
|
|
143
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-699b364dc6fbf139.js,sha256=O6iOKdiyqchmlABUse3WokkisoHsn8ZRWMFZ_nqNXP0,10146
|
|
143
144
|
khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
|
|
144
145
|
khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
|
145
146
|
khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css,sha256=-qLZhPN-wA3kcrVODVTaG1sN0pmuzRCqNH12gs5_qYc,2569
|
|
146
147
|
khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css,sha256=1fHKFd8zLOHosAHx-kxv4b9lVSqHag_E71WkV3dXx2Y,26940
|
|
147
|
-
khoj/interface/compiled/_next/static/css/
|
|
148
|
+
khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css,sha256=3CjTMmtMrm_MYt1ywtUh2MHEjSLSl356SQLl4hdBuYw,534
|
|
148
149
|
khoj/interface/compiled/_next/static/css/553f9cdcc7a2bcd6.css,sha256=JpjOOwmqP9Hba-w_8Lx9jWW0ZD0kD3wR0HvdPGDyUPo,2134
|
|
149
|
-
khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
|
|
150
150
|
khoj/interface/compiled/_next/static/css/9d5b867ec04494a6.css,sha256=X2BihvGWIRM1KI7iFgwUf6QAQh-_M_gBbcR-ZS66nEs,1880998
|
|
151
151
|
khoj/interface/compiled/_next/static/css/a22d83f18a32957e.css,sha256=kgAD2DQYH2WF2wqL759i62nR093yU_UfFClMKkAue6U,17709
|
|
152
152
|
khoj/interface/compiled/_next/static/css/a3530ec58b0b660f.css,sha256=2fpX695nzJ6sNaNZbX_3Z0o-IA5kRlyN0ByIIXRgmtg,1570
|
|
153
153
|
khoj/interface/compiled/_next/static/css/b81e909d403fb2df.css,sha256=bbu108v2_T74MIyokVmUz0A_oFCIHJpzHdYExXFYgjs,1913
|
|
154
|
+
khoj/interface/compiled/_next/static/css/df6f4c34ec280d53.css,sha256=lAIK7HFwb0PaJpMfHmkUSValOSSCdbW-c_L7Lgn_ki8,7751
|
|
154
155
|
khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2,sha256=41ewITd0G1ZAoB62BTHMW58a1q8Hl6vSbTQkkHP7EbI,39372
|
|
155
156
|
khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2,sha256=_Y3g0keA8P6nZnFfm_VO5o2Sne1iST3v9xz4fBo3fwM,75532
|
|
156
157
|
khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2,sha256=i9Ibzi_O7y5KpImujj2rEdOZf96lpNYxYzVvCryW5Uc,140408
|
|
@@ -223,8 +224,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
|
|
|
223
224
|
khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
|
|
224
225
|
khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
|
|
225
226
|
khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
|
|
226
|
-
khoj/interface/compiled/agents/index.html,sha256=
|
|
227
|
-
khoj/interface/compiled/agents/index.txt,sha256=
|
|
227
|
+
khoj/interface/compiled/agents/index.html,sha256=ZJ8L4q7jPaxiEJOTL0poAExDT6Lkj6FexaQk2b1O8GY,12391
|
|
228
|
+
khoj/interface/compiled/agents/index.txt,sha256=WGkvB1vZPhApfJ6Yaqlld5-vUYm-TSoOgq_FoIK7cLY,5942
|
|
228
229
|
khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
|
|
229
230
|
khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
|
|
230
231
|
khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
|
|
@@ -235,18 +236,18 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
|
|
|
235
236
|
khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
|
|
236
237
|
khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
|
|
237
238
|
khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
|
|
238
|
-
khoj/interface/compiled/automations/index.html,sha256=
|
|
239
|
-
khoj/interface/compiled/automations/index.txt,sha256=
|
|
240
|
-
khoj/interface/compiled/chat/index.html,sha256=
|
|
241
|
-
khoj/interface/compiled/chat/index.txt,sha256=
|
|
242
|
-
khoj/interface/compiled/factchecker/index.html,sha256=
|
|
243
|
-
khoj/interface/compiled/factchecker/index.txt,sha256=
|
|
244
|
-
khoj/interface/compiled/search/index.html,sha256=
|
|
245
|
-
khoj/interface/compiled/search/index.txt,sha256=
|
|
246
|
-
khoj/interface/compiled/settings/index.html,sha256=
|
|
247
|
-
khoj/interface/compiled/settings/index.txt,sha256
|
|
248
|
-
khoj/interface/compiled/share/chat/index.html,sha256=
|
|
249
|
-
khoj/interface/compiled/share/chat/index.txt,sha256=
|
|
239
|
+
khoj/interface/compiled/automations/index.html,sha256=BTrFbPIEYe6HCzlqMN_RGcPLi9gDFx3nxxK-RrSMY1U,30808
|
|
240
|
+
khoj/interface/compiled/automations/index.txt,sha256=Z1HkFXOjsa98dXXIJTepGfIzPwNdeLdK07nbSvTkkGY,5580
|
|
241
|
+
khoj/interface/compiled/chat/index.html,sha256=bv5d3kZ2H9db2XRN87PXltFdWwrEAJMMPY1I1YuCGeo,13566
|
|
242
|
+
khoj/interface/compiled/chat/index.txt,sha256=_YAzCYImumYvOlJ7g7LEL4-y6Sz2oLtf_XEhs1FlRwk,6421
|
|
243
|
+
khoj/interface/compiled/factchecker/index.html,sha256=tlzwvPWkJaOagLkxfXzYtXTH2zRhlVT_AMuQkAND8Qk,29839
|
|
244
|
+
khoj/interface/compiled/factchecker/index.txt,sha256=bSshj3AA8ANXq9bQfo5K4qgfIbAMfQIiHWaZ5JtFakA,5735
|
|
245
|
+
khoj/interface/compiled/search/index.html,sha256=L1Zem1QHeKYqFTZ8lxTcuny4oF-81_lXhtEOvZferOY,30154
|
|
246
|
+
khoj/interface/compiled/search/index.txt,sha256=cL3yy1Guv3P37_y9BmYWyD69Z1C3VDlujAq_LcvcJqo,5249
|
|
247
|
+
khoj/interface/compiled/settings/index.html,sha256=XnqYIT_80CD1BSyE2GWP-kWe_jprYdU9ywfnTGC7WhM,12827
|
|
248
|
+
khoj/interface/compiled/settings/index.txt,sha256=-CzIQKwnTX_LbWE0aICC-wF5wmr-a3zCG_q96NRqz7E,6073
|
|
249
|
+
khoj/interface/compiled/share/chat/index.html,sha256=K8304ga1udcGU08dhV7zPGsJi-q5UXzGOSEh4sxSB7Q,14896
|
|
250
|
+
khoj/interface/compiled/share/chat/index.txt,sha256=xHEcsDZIeqdrxfJA2qYCFV-WhMwF3W48JOKBf19cW2Y,7239
|
|
250
251
|
khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
|
|
251
252
|
khoj/interface/email/magic_link.html,sha256=jXY_2hD3o15Ns5UDzbjLT8FHBnZiS7jo38YkYXIS-4w,947
|
|
252
253
|
khoj/interface/email/task.html,sha256=yXywzC-5P4nXbhqvgCmwcCpTRbD5eWuDXMpgYSotztM,3311
|
|
@@ -313,17 +314,17 @@ khoj/processor/conversation/openai/whisper.py,sha256=RuwDtxSJrVWYdZz4aVnk0XiMQy9
|
|
|
313
314
|
khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
314
315
|
khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
|
|
315
316
|
khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
316
|
-
khoj/processor/tools/online_search.py,sha256=
|
|
317
|
+
khoj/processor/tools/online_search.py,sha256=G7W_g4ZmdyMhsxREpPAnaXt5OA0N4QoKdQBZp-qTdR0,9895
|
|
317
318
|
khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
319
|
khoj/routers/api.py,sha256=I-mQ6FSXw99yIRGMNDB_YQbqN82YE69WImnKjdeRvpM,25619
|
|
319
320
|
khoj/routers/api_agents.py,sha256=ks8QzjmZiio6j1QGi6xFtDmVxd9lvC6LPB-WcDPnF8o,1525
|
|
320
|
-
khoj/routers/api_chat.py,sha256=
|
|
321
|
+
khoj/routers/api_chat.py,sha256=4cbb7rgY50lXnNKbDYZMM6Kj5uF1B6Tf3EuBm4xTAtM,35943
|
|
321
322
|
khoj/routers/api_content.py,sha256=OfY05ggRmg0FuVWzodBfV_5Gc6UbGCfchiIk8eqKA2o,17387
|
|
322
323
|
khoj/routers/api_model.py,sha256=5m7JWwgd9jILiLivRu7NEyY2E-tUkqoEkGg6j6uM1g0,4646
|
|
323
324
|
khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
|
|
324
325
|
khoj/routers/auth.py,sha256=pCOLSRihJWcn097DRPxLjPdlejsjHJFRs9jHIzLujZU,6247
|
|
325
326
|
khoj/routers/email.py,sha256=jA4jDTrYHUpY7mFHL4himeRlTBLRQmQKHqC91Dw1Zu0,3730
|
|
326
|
-
khoj/routers/helpers.py,sha256=
|
|
327
|
+
khoj/routers/helpers.py,sha256=n_OEREg-hDRFqcRZkcXN4L56GdlAuo6J2VfNfvevS-A,63828
|
|
327
328
|
khoj/routers/notion.py,sha256=0iG_DPVjg8n_LBWGHA8M6eHnJJDL-isARSEHTYStz6c,2809
|
|
328
329
|
khoj/routers/storage.py,sha256=9ZfBsr_omxdFV-Lcj6p30xTQcF_7wwCZ9XFJukzjITE,1429
|
|
329
330
|
khoj/routers/subscription.py,sha256=qEyV7m7mrY6MGtaij8W3v61tpzX2a7ydm2B-E8h_R-M,4285
|
|
@@ -348,8 +349,8 @@ khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
|
|
|
348
349
|
khoj/utils/rawconfig.py,sha256=luk7Vb_ODuoTdMd_IG-yVXGoyoU-RktyapBG5D1N_VI,3985
|
|
349
350
|
khoj/utils/state.py,sha256=x4GTewP1YhOA6c_32N4wOjnV-3AA3xG_qbY1-wC2Uxc,1559
|
|
350
351
|
khoj/utils/yaml.py,sha256=H0mfw0ZvBFUvFmCQn8pWkfxdmIebsrSykza7D8Wv6wQ,1430
|
|
351
|
-
khoj-1.20.5.
|
|
352
|
-
khoj-1.20.5.
|
|
353
|
-
khoj-1.20.5.
|
|
354
|
-
khoj-1.20.5.
|
|
355
|
-
khoj-1.20.5.
|
|
352
|
+
khoj-1.20.5.dev17.dist-info/METADATA,sha256=v_34k0g28aYri85PXurT7HsheW2MyY0Fv_UBPlvvM6Y,6876
|
|
353
|
+
khoj-1.20.5.dev17.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
354
|
+
khoj-1.20.5.dev17.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
|
|
355
|
+
khoj-1.20.5.dev17.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
|
356
|
+
khoj-1.20.5.dev17.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1929],{39929:function(e,t,s){Promise.resolve().then(s.bind(s,38874))},38874:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return x}});var n=s(57437),a=s(65104),o=s.n(a),c=s(2265),i=s(48861),r=s(82697),l=s(16463),d=s(58485),u=s(9557);s(7395);var h=s(69591),g=s(38423),m=s(79306);function f(e){let t=(0,l.useSearchParams)().get("conversationId"),[s,a]=(0,c.useState)(""),[i,d]=(0,c.useState)(!1),[u,h]=(0,c.useState)(null),m=e.setQueryToProcess,f=e.onConversationIdChange;if((0,c.useEffect)(()=>{let e=localStorage.getItem("message");e&&(d(!0),m(e))},[m]),(0,c.useEffect)(()=>{s&&(d(!0),m(s))},[s,m]),(0,c.useEffect)(()=>{t&&(null==f||f(t))},[t,f]),(0,c.useEffect)(()=>{e.streamedMessages&&e.streamedMessages.length>0&&e.streamedMessages[e.streamedMessages.length-1].completed?d(!1):a("")},[e.streamedMessages]),!t){window.location.href="/";return}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:o().chatBodyFull,children:(0,n.jsx)(r.Z,{conversationId:t,setTitle:e.setTitle,setAgent:h,pendingMessage:i?s:"",incomingMessages:e.streamedMessages})}),(0,n.jsx)("div",{className:"".concat(o().inputBox," p-1 md:px-2 shadow-md bg-background align-middle items-center justify-center dark:bg-neutral-700 dark:border-0 dark:shadow-sm rounded-t-2xl rounded-b-none md:rounded-xl"),children:(0,n.jsx)(g.Z,{agentColor:null==u?void 0:u.color,isLoggedIn:e.isLoggedIn,sendMessage:e=>a(e),sendDisabled:i,chatOptionsData:e.chatOptionsData,conversationId:t,isMobileWidth:e.isMobileWidth,setUploadedFiles:e.setUploadedFiles})})]})}function x(){let e="Khoj AI - Chat",[t,s]=(0,c.useState)(null),[a,r]=(0,c.useState)(!0),[l,g]=(0,c.useState)(e),[x,p]=(0,c.useState)(null),[v,_]=(0,c.useState)([]),[y,j]=(0,c.useState)(""),[b,w]=(0,c.useState)(!1),[M,C]=(0,c.useState)([]),S=(0,h.k6)(),I=(0,m.G)(),N=(0,h.IC)();async function B(e){if(!e.ok)throw Error(e.statusText);if(!e.body)throw Error("Response body is null");let t=e.body.getReader(),s=new TextDecoder,n="␃\uD83D\uDD1A␗",a="",o=[],c={};for(;;){let e;let{done:i,value:r}=await t.read();if(i){j(""),w(!1);break}for(a+=s.decode(r,{stream:!0});-1!==(e=a.indexOf(n));){let t=a.slice(0,e);if(a=a.slice(e+n.length),t){let e=v.find(e=>!e.completed);if(!e){console.error("No current message found");return}({context:o,onlineContext:c}=(0,u.VK)(t,e,o,c)),_([...v])}}}}async function T(){if(localStorage.removeItem("message"),!y||!x)return;let e="/api/chat?q=".concat(encodeURIComponent(y),"&conversation_id=").concat(x,"&stream=true&client=web");S&&(e+="®ion=".concat(S.region,"&country=").concat(S.country,"&city=").concat(S.city,"&timezone=").concat(S.timezone));let t=await fetch(e);try{await B(t)}catch(e){console.log(e)}}return((0,c.useEffect)(()=>{fetch("/api/chat/options").then(e=>e.json()).then(e=>{r(!1),e&&s(e)}).catch(e=>{console.error(e)}),(0,h.EK)()},[]),(0,c.useEffect)(()=>{if(y){let e={rawResponse:"",trainOfThought:[],context:[],onlineContext:{},completed:!1,timestamp:new Date().toISOString(),rawQuery:y||""};_(t=>[...t,e]),w(!0)}},[y]),(0,c.useEffect)(()=>{b&&T()},[b]),a)?(0,n.jsx)(d.Z,{}):(0,n.jsxs)("div",{className:"".concat(o().main," ").concat(o().chatLayout),children:[(0,n.jsx)("title",{children:"".concat(e).concat(l&&l!==e?": ".concat(l):"")}),(0,n.jsx)("div",{children:(0,n.jsx)(i.Z,{conversationId:x,uploadedFiles:M,isMobileWidth:N})}),(0,n.jsx)("div",{className:o().chatBox,children:(0,n.jsxs)("div",{className:o().chatBoxBody,children:[!N&&(0,n.jsx)("div",{className:"text-nowrap text-ellipsis overflow-hidden max-w-screen-md grid items-top font-bold mr-8",children:l&&(0,n.jsx)("h2",{className:"text-lg text-ellipsis whitespace-nowrap overflow-x-hidden pt-6",children:l})}),(0,n.jsx)(c.Suspense,{fallback:(0,n.jsx)(d.Z,{}),children:(0,n.jsx)(f,{isLoggedIn:null!==I,streamedMessages:v,chatOptionsData:t,setTitle:g,setQueryToProcess:j,setUploadedFiles:C,isMobileWidth:N,onConversationIdChange:e=>{p(e)}})})]})})]})}},82697:function(e,t,s){"use strict";s.d(t,{Z:function(){return p}});var n=s(57437),a=s(15238),o=s.n(a),c=s(2265),i=s(89178),r=s(94880),l=s(58485),d=s(16288),u=s(26100),h=s(19666),g=s(50495),m=e=>{let{name:t,avatar:s,link:a,description:o}=e;return(0,n.jsx)("div",{className:"relative group flex",children:(0,n.jsx)(h.pn,{children:(0,n.jsxs)(h.u,{children:[(0,n.jsx)(h.aJ,{asChild:!0,children:(0,n.jsxs)(g.z,{variant:"ghost",className:"flex items-center justify-center",children:[s,(0,n.jsx)("div",{children:t})]})}),(0,n.jsx)(h._v,{children:(0,n.jsxs)("div",{className:"w-80 h-30",children:[(0,n.jsx)("a",{href:a,target:"_blank",rel:"noreferrer",className:"mt-1 ml-2 block no-underline",children:(0,n.jsxs)("div",{className:"flex items-center justify-start gap-2",children:[s,(0,n.jsxs)("div",{className:"mr-2 mt-1 flex justify-center items-center text-sm font-semibold text-gray-800",children:[t,(0,n.jsx)(u.o,{weight:"bold",className:"ml-1"})]})]})}),o&&(0,n.jsx)("p",{className:"mt-2 ml-6 text-sm text-gray-600 line-clamp-2",children:o||"A Khoj agent"})]})})]})})})},f=s(89417),x=s(69591);function p(e){let[t,s]=(0,c.useState)(null),[a,u]=(0,c.useState)(0),[h,g]=(0,c.useState)(!0),p=(0,c.useRef)(null),v=(0,c.useRef)(null),_=(0,c.useRef)(null),[y,j]=(0,c.useState)(null),[b,w]=(0,c.useState)(!1),M=(0,x.IC)();(0,c.useEffect)(()=>{a<2&&((null==t?void 0:t.chat.length)||setTimeout(()=>{C()},500))},[t,a]),(0,c.useEffect)(()=>{if(!h||b)return;let n=new IntersectionObserver(n=>{n[0].isIntersecting&&h&&(w(!0),function(n){if(!h||b)return;let a=n+1,o="";if(e.conversationId)o="/api/chat/history?client=web&conversation_id=".concat(e.conversationId,"&n=").concat(10*a);else{if(!e.publicConversationSlug)return;o="/api/chat/share/history?client=web&public_conversation_slug=".concat(e.publicConversationSlug,"&n=").concat(10*a)}fetch(o).then(e=>e.json()).then(a=>{if(e.setTitle(a.response.slug),a&&a.response&&a.response.chat&&a.response.chat.length>0){if(a.response.chat.length===(null==t?void 0:t.chat.length)){g(!1),w(!1);return}e.setAgent(a.response.agent),s(a.response),n<2&&C(),w(!1)}else{if(a.response.agent&&a.response.conversation_id){let t={chat:[],agent:a.response.agent,conversation_id:a.response.conversation_id,slug:a.response.slug};e.setAgent(a.response.agent),s(t)}g(!1),w(!1)}}).catch(e=>{console.error(e),window.location.href="/"})}(a),u(e=>e+1))},{threshold:1});return _.current&&n.observe(_.current),()=>n.disconnect()},[h,a,b]),(0,c.useEffect)(()=>{g(!0),w(!1),u(0),s(null)},[e.conversationId]),(0,c.useEffect)(()=>{if(e.incomingMessages){let t=e.incomingMessages[e.incomingMessages.length-1];t&&!t.completed&&j(e.incomingMessages.length-1)}S()&&C()},[e.incomingMessages]);let C=()=>{v.current&&v.current.scrollIntoView(!1)},S=()=>{if(!v.current)return!1;let{scrollTop:e,scrollHeight:t,clientHeight:s}=v.current;return e+s>=t-25};return e.conversationId||e.publicConversationSlug?(0,n.jsx)(r.x,{className:"h-[80vh]",children:(0,n.jsx)("div",{ref:p,children:(0,n.jsxs)("div",{className:o().chatHistory,ref:v,children:[(0,n.jsx)("div",{ref:_,style:{height:"1px"},children:b&&(0,n.jsx)(l.l,{message:"Loading Conversation",className:"opacity-50"})}),t&&t.chat&&t.chat.map((e,s)=>(0,n.jsx)(i.Z,{isMobileWidth:M,chatMessage:e,customClassName:"fullHistory",borderLeftColor:"".concat(null==t?void 0:t.agent.color,"-500"),isLastMessage:s===t.chat.length-1},"".concat(s,"fullHistory"))),e.incomingMessages&&e.incomingMessages.map((e,s)=>(0,n.jsxs)(c.Fragment,{children:[(0,n.jsx)(i.Z,{isMobileWidth:M,chatMessage:{message:e.rawQuery,context:[],onlineContext:{},created:e.timestamp,by:"you",automationId:""},customClassName:"fullHistory",borderLeftColor:"".concat(null==t?void 0:t.agent.color,"-500")},"".concat(s,"outgoing")),e.trainOfThought&&function(e,t,s,a){let c=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=e.length-1;return(0,n.jsxs)("div",{className:"".concat(o().trainOfThought," shadow-sm"),children:[!c&&(0,n.jsx)(l.l,{className:"float-right"}),e.map((e,a)=>(0,n.jsx)(i.H,{message:e,primary:a===r&&t&&!c,agentColor:s},"train-".concat(a)))]},a)}(e.trainOfThought,s===y,(null==t?void 0:t.agent.color)||"orange","".concat(s,"trainOfThought"),e.completed),(0,n.jsx)(i.Z,{isMobileWidth:M,chatMessage:{message:e.rawResponse,context:e.context,onlineContext:e.onlineContext,created:e.timestamp,by:"khoj",automationId:"",rawQuery:e.rawQuery},customClassName:"fullHistory",borderLeftColor:"".concat(null==t?void 0:t.agent.color,"-500"),isLastMessage:!0},"".concat(s,"incoming"))]},"incomingMessage".concat(s))),e.pendingMessage&&(0,n.jsx)(i.Z,{isMobileWidth:M,chatMessage:{message:e.pendingMessage,context:[],onlineContext:{},created:new Date().getTime().toString(),by:"you",automationId:""},customClassName:"fullHistory",borderLeftColor:"".concat(null==t?void 0:t.agent.color,"-500"),isLastMessage:!0},"pendingMessage-".concat(e.pendingMessage.length)),t&&(0,n.jsx)("div",{className:"".concat(o().agentIndicator," pb-4"),children:(0,n.jsx)("div",{className:"relative group mx-2 cursor-pointer",children:(0,n.jsx)(m,{name:t&&t.agent&&t.agent.name?t.agent.name:"Agent",link:t&&t.agent&&t.agent.slug?"/agents?agent=".concat(t.agent.slug):"/agents",avatar:(0,f.T)(t.agent.icon,t.agent.color)||(0,n.jsx)(d.v,{}),description:t&&t.agent&&t.agent.persona?t.agent.persona:""})})})]})})}):null}},16463:function(e,t,s){"use strict";var n=s(71169);s.o(n,"useSearchParams")&&s.d(t,{useSearchParams:function(){return n.useSearchParams}})},65104:function(e){e.exports={main:"chat_main__8xQu5",suggestions:"chat_suggestions__m8n2t",inputBox:"chat_inputBox__LOFws",chatBodyFull:"chat_chatBodyFull__FfKEK",chatBody:"chat_chatBody__sS1LX",chatLayout:"chat_chatLayout__pR203",chatBox:"chat_chatBox__FBct_",titleBar:"chat_titleBar__R5QlK",chatBoxBody:"chat_chatBoxBody__qT_SC",agentIndicator:"chat_agentIndicator__8V55w"}},15238:function(e){e.exports={chatHistory:"chatHistory_chatHistory__CoaVT",chatLayout:"chatHistory_chatLayout__ABli_",agentIndicator:"chatHistory_agentIndicator__wOU1f",trainOfThought:"chatHistory_trainOfThought__mMWSR"}}},function(e){e.O(0,[7812,9427,929,3954,9001,3062,743,7071,2614,9693,1603,9417,9178,8423,2971,7023,1744],function(){return e(e.s=39929)}),_N_E=e.O()}]);
|