khoj 1.41.1.dev97__py3-none-any.whl → 1.41.1.dev107__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/database/models/__init__.py +3 -0
- khoj/interface/compiled/404/index.html +2 -2
- khoj/interface/compiled/_next/static/chunks/5477-b91e9926cfc3095c.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-e49165209d2e406c.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-ceeb9a91edea74ce.js → page-c9ceb9b94e24b94a.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/automations/{page-e3cb78747ab98cc7.js → page-3dc59a0df3827dc7.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/layout-d5ae861e1ade9d08.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/chat/{page-7e780dc11eb5e5d3.js → page-2b27c7118d8d5a16.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{page-a4053e1bb578b2ce.js → page-38f1f125d7aeb4c7.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/search/{page-8973da2f4c076fe1.js → page-26d4492fb1200e0e.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/{page-375136dbb400525b.js → page-bf1a4e488b29fceb.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-64a53f8ec4afa6b3.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-384b54fc953b18f2.js → page-a1f10c96366c3a4f.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-21f76f7f59582bc7.js → webpack-c6bde5961098facd.js} +1 -1
- khoj/interface/compiled/_next/static/css/{fca983d49c3dd1a3.css → 0db53bacf81896f5.css} +1 -1
- khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css +1 -0
- khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css +1 -0
- khoj/interface/compiled/agents/index.html +2 -2
- khoj/interface/compiled/agents/index.txt +2 -2
- khoj/interface/compiled/automations/index.html +2 -2
- khoj/interface/compiled/automations/index.txt +2 -2
- khoj/interface/compiled/chat/index.html +2 -2
- khoj/interface/compiled/chat/index.txt +2 -2
- khoj/interface/compiled/index.html +2 -2
- khoj/interface/compiled/index.txt +2 -2
- khoj/interface/compiled/search/index.html +2 -2
- khoj/interface/compiled/search/index.txt +2 -2
- khoj/interface/compiled/settings/index.html +2 -2
- khoj/interface/compiled/settings/index.txt +2 -2
- khoj/interface/compiled/share/chat/index.html +2 -2
- khoj/interface/compiled/share/chat/index.txt +2 -2
- khoj/processor/conversation/anthropic/anthropic_chat.py +1 -1
- khoj/processor/conversation/openai/gpt.py +1 -1
- khoj/processor/conversation/utils.py +49 -36
- khoj/processor/operator/grounding_agent_uitars.py +2 -2
- khoj/routers/api_chat.py +96 -25
- khoj/routers/api_model.py +3 -3
- khoj/routers/helpers.py +7 -3
- khoj/routers/research.py +15 -4
- khoj/utils/rawconfig.py +1 -0
- {khoj-1.41.1.dev97.dist-info → khoj-1.41.1.dev107.dist-info}/METADATA +1 -1
- {khoj-1.41.1.dev97.dist-info → khoj-1.41.1.dev107.dist-info}/RECORD +48 -48
- khoj/interface/compiled/_next/static/chunks/5477-77ce5c6f468d6c25.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-4e2a134ec26aa606.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/layout-ad4d1792ab1a4108.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/search/layout-c02531d586972d7d.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-e8e5db7830bf3f47.js +0 -1
- khoj/interface/compiled/_next/static/css/37a73b87f02df402.css +0 -1
- khoj/interface/compiled/_next/static/css/f29752d6e1be7624.css +0 -1
- /khoj/interface/compiled/_next/static/{o6zlo73DbD2lS92jWHS8o → y_k1yn7bI1CgM5ZfW7jUq}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{o6zlo73DbD2lS92jWHS8o → y_k1yn7bI1CgM5ZfW7jUq}/_ssgManifest.js +0 -0
- {khoj-1.41.1.dev97.dist-info → khoj-1.41.1.dev107.dist-info}/WHEEL +0 -0
- {khoj-1.41.1.dev97.dist-info → khoj-1.41.1.dev107.dist-info}/entry_points.txt +0 -0
- {khoj-1.41.1.dev97.dist-info → khoj-1.41.1.dev107.dist-info}/licenses/LICENSE +0 -0
khoj/routers/api_chat.py
CHANGED
@@ -682,11 +682,13 @@ async def chat(
|
|
682
682
|
timezone = body.timezone
|
683
683
|
raw_images = body.images
|
684
684
|
raw_query_files = body.files
|
685
|
+
interrupt_flag = body.interrupt
|
685
686
|
|
686
687
|
async def event_generator(q: str, images: list[str]):
|
687
688
|
start_time = time.perf_counter()
|
688
689
|
ttft = None
|
689
690
|
chat_metadata: dict = {}
|
691
|
+
conversation = None
|
690
692
|
user: KhojUser = request.user.object
|
691
693
|
is_subscribed = has_required_scope(request, ["premium"])
|
692
694
|
q = unquote(q)
|
@@ -720,6 +722,20 @@ async def chat(
|
|
720
722
|
for file in raw_query_files:
|
721
723
|
query_files[file.name] = file.content
|
722
724
|
|
725
|
+
research_results: List[InformationCollectionIteration] = []
|
726
|
+
online_results: Dict = dict()
|
727
|
+
code_results: Dict = dict()
|
728
|
+
operator_results: Dict[str, str] = {}
|
729
|
+
compiled_references: List[Any] = []
|
730
|
+
inferred_queries: List[Any] = []
|
731
|
+
attached_file_context = gather_raw_query_files(query_files)
|
732
|
+
|
733
|
+
generated_images: List[str] = []
|
734
|
+
generated_files: List[FileAttachment] = []
|
735
|
+
generated_mermaidjs_diagram: str = None
|
736
|
+
generated_asset_results: Dict = dict()
|
737
|
+
program_execution_context: List[str] = []
|
738
|
+
|
723
739
|
# Create a task to monitor for disconnections
|
724
740
|
disconnect_monitor_task = None
|
725
741
|
|
@@ -727,8 +743,34 @@ async def chat(
|
|
727
743
|
try:
|
728
744
|
msg = await request.receive()
|
729
745
|
if msg["type"] == "http.disconnect":
|
730
|
-
logger.debug(f"User {user} disconnected from {common.client} client.")
|
746
|
+
logger.debug(f"Request cancelled. User {user} disconnected from {common.client} client.")
|
731
747
|
cancellation_event.set()
|
748
|
+
# ensure partial chat state saved on interrupt
|
749
|
+
# shield the save against task cancellation
|
750
|
+
if conversation:
|
751
|
+
await asyncio.shield(
|
752
|
+
save_to_conversation_log(
|
753
|
+
q,
|
754
|
+
chat_response="",
|
755
|
+
user=user,
|
756
|
+
meta_log=meta_log,
|
757
|
+
compiled_references=compiled_references,
|
758
|
+
online_results=online_results,
|
759
|
+
code_results=code_results,
|
760
|
+
operator_results=operator_results,
|
761
|
+
research_results=research_results,
|
762
|
+
inferred_queries=inferred_queries,
|
763
|
+
client_application=request.user.client_app,
|
764
|
+
conversation_id=conversation_id,
|
765
|
+
query_images=uploaded_images,
|
766
|
+
train_of_thought=train_of_thought,
|
767
|
+
raw_query_files=raw_query_files,
|
768
|
+
generated_images=generated_images,
|
769
|
+
raw_generated_files=generated_asset_results,
|
770
|
+
generated_mermaidjs_diagram=generated_mermaidjs_diagram,
|
771
|
+
tracer=tracer,
|
772
|
+
)
|
773
|
+
)
|
732
774
|
except Exception as e:
|
733
775
|
logger.error(f"Error in disconnect monitor: {e}")
|
734
776
|
|
@@ -746,7 +788,6 @@ async def chat(
|
|
746
788
|
nonlocal ttft, train_of_thought
|
747
789
|
event_delimiter = "␃🔚␗"
|
748
790
|
if cancellation_event.is_set():
|
749
|
-
logger.debug(f"User {user} disconnected from {common.client} client. Setting cancellation event.")
|
750
791
|
return
|
751
792
|
try:
|
752
793
|
if event_type == ChatEvent.END_LLM_RESPONSE:
|
@@ -770,9 +811,6 @@ async def chat(
|
|
770
811
|
yield data
|
771
812
|
elif event_type == ChatEvent.REFERENCES or ChatEvent.METADATA or stream:
|
772
813
|
yield json.dumps({"type": event_type.value, "data": data}, ensure_ascii=False)
|
773
|
-
except asyncio.CancelledError as e:
|
774
|
-
if cancellation_event.is_set():
|
775
|
-
logger.debug(f"Request cancelled. User {user} disconnected from {common.client} client: {e}.")
|
776
814
|
except Exception as e:
|
777
815
|
if not cancellation_event.is_set():
|
778
816
|
logger.error(
|
@@ -883,21 +921,53 @@ async def chat(
|
|
883
921
|
user_message_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
884
922
|
meta_log = conversation.conversation_log
|
885
923
|
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
924
|
+
# If interrupt flag is set, wait for the previous turn to be saved before proceeding
|
925
|
+
if interrupt_flag:
|
926
|
+
max_wait_time = 20.0 # seconds
|
927
|
+
wait_interval = 0.3 # seconds
|
928
|
+
wait_start = wait_current = time.time()
|
929
|
+
while wait_current - wait_start < max_wait_time:
|
930
|
+
# Refresh conversation to check if interrupted message saved to DB
|
931
|
+
conversation = await ConversationAdapters.aget_conversation_by_user(
|
932
|
+
user,
|
933
|
+
client_application=request.user.client_app,
|
934
|
+
conversation_id=conversation_id,
|
935
|
+
)
|
936
|
+
if (
|
937
|
+
conversation
|
938
|
+
and conversation.messages
|
939
|
+
and conversation.messages[-1].by == "khoj"
|
940
|
+
and not conversation.messages[-1].message
|
941
|
+
):
|
942
|
+
logger.info(f"Detected interrupted message save to conversation {conversation_id}.")
|
943
|
+
break
|
944
|
+
await asyncio.sleep(wait_interval)
|
945
|
+
wait_current = time.time()
|
896
946
|
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
947
|
+
if wait_current - wait_start >= max_wait_time:
|
948
|
+
logger.warning(
|
949
|
+
f"Timeout waiting to load interrupted context from conversation {conversation_id}. Proceed without previous context."
|
950
|
+
)
|
951
|
+
|
952
|
+
# If interrupted message in DB
|
953
|
+
if (
|
954
|
+
conversation
|
955
|
+
and conversation.messages
|
956
|
+
and conversation.messages[-1].by == "khoj"
|
957
|
+
and not conversation.messages[-1].message
|
958
|
+
):
|
959
|
+
# Populate context from interrupted message
|
960
|
+
last_message = conversation.messages[-1]
|
961
|
+
online_results = {key: val.model_dump() for key, val in last_message.onlineContext.items() or []}
|
962
|
+
code_results = {key: val.model_dump() for key, val in last_message.codeContext.items() or []}
|
963
|
+
operator_results = last_message.operatorContext or {}
|
964
|
+
compiled_references = [ref.model_dump() for ref in last_message.context or []]
|
965
|
+
research_results = [
|
966
|
+
InformationCollectionIteration(**iter_dict) for iter_dict in last_message.researchContext or []
|
967
|
+
]
|
968
|
+
# Drop the interrupted message from conversation history
|
969
|
+
meta_log["chat"].pop()
|
970
|
+
logger.info(f"Loaded interrupted partial context from conversation {conversation_id}.")
|
901
971
|
|
902
972
|
if conversation_commands == [ConversationCommand.Default]:
|
903
973
|
try:
|
@@ -936,6 +1006,7 @@ async def chat(
|
|
936
1006
|
return
|
937
1007
|
|
938
1008
|
defiltered_query = defilter_query(q)
|
1009
|
+
file_filters = conversation.file_filters if conversation and conversation.file_filters else []
|
939
1010
|
|
940
1011
|
if conversation_commands == [ConversationCommand.Research]:
|
941
1012
|
async for research_result in execute_information_collection(
|
@@ -943,12 +1014,13 @@ async def chat(
|
|
943
1014
|
query=defiltered_query,
|
944
1015
|
conversation_id=conversation_id,
|
945
1016
|
conversation_history=meta_log,
|
1017
|
+
previous_iterations=research_results,
|
946
1018
|
query_images=uploaded_images,
|
947
1019
|
agent=agent,
|
948
1020
|
send_status_func=partial(send_event, ChatEvent.STATUS),
|
949
1021
|
user_name=user_name,
|
950
1022
|
location=location,
|
951
|
-
file_filters=
|
1023
|
+
file_filters=file_filters,
|
952
1024
|
query_files=attached_file_context,
|
953
1025
|
tracer=tracer,
|
954
1026
|
cancellation_event=cancellation_event,
|
@@ -963,17 +1035,16 @@ async def chat(
|
|
963
1035
|
compiled_references.extend(research_result.context)
|
964
1036
|
if research_result.operatorContext:
|
965
1037
|
operator_results.update(research_result.operatorContext)
|
966
|
-
|
1038
|
+
research_results.append(research_result)
|
967
1039
|
|
968
1040
|
else:
|
969
1041
|
yield research_result
|
970
1042
|
|
971
1043
|
# researched_results = await extract_relevant_info(q, researched_results, agent)
|
972
1044
|
if state.verbose > 1:
|
973
|
-
logger.debug(f
|
1045
|
+
logger.debug(f'Researched Results: {"".join(r.summarizedResult for r in research_results)}')
|
974
1046
|
|
975
1047
|
used_slash_summarize = conversation_commands == [ConversationCommand.Summarize]
|
976
|
-
file_filters = conversation.file_filters if conversation else []
|
977
1048
|
# Skip trying to summarize if
|
978
1049
|
if (
|
979
1050
|
# summarization intent was inferred
|
@@ -1362,7 +1433,7 @@ async def chat(
|
|
1362
1433
|
|
1363
1434
|
# Check if the user has disconnected
|
1364
1435
|
if cancellation_event.is_set():
|
1365
|
-
logger.debug(f"
|
1436
|
+
logger.debug(f"Stopping LLM response to user {user} on {common.client} client.")
|
1366
1437
|
# Cancel the disconnect monitor task if it is still running
|
1367
1438
|
await cancel_disconnect_monitor()
|
1368
1439
|
return
|
@@ -1379,13 +1450,13 @@ async def chat(
|
|
1379
1450
|
online_results,
|
1380
1451
|
code_results,
|
1381
1452
|
operator_results,
|
1453
|
+
research_results,
|
1382
1454
|
inferred_queries,
|
1383
1455
|
conversation_commands,
|
1384
1456
|
user,
|
1385
1457
|
request.user.client_app,
|
1386
1458
|
location,
|
1387
1459
|
user_name,
|
1388
|
-
researched_results,
|
1389
1460
|
uploaded_images,
|
1390
1461
|
train_of_thought,
|
1391
1462
|
attached_file_context,
|
khoj/routers/api_model.py
CHANGED
@@ -72,7 +72,7 @@ async def update_chat_model(
|
|
72
72
|
if chat_model is None:
|
73
73
|
return Response(status_code=404, content=json.dumps({"status": "error", "message": "Chat model not found"}))
|
74
74
|
if not subscribed and chat_model.price_tier != PriceTier.FREE:
|
75
|
-
|
75
|
+
return Response(
|
76
76
|
status_code=403,
|
77
77
|
content=json.dumps({"status": "error", "message": "Subscribe to switch to this chat model"}),
|
78
78
|
)
|
@@ -108,7 +108,7 @@ async def update_voice_model(
|
|
108
108
|
if voice_model is None:
|
109
109
|
return Response(status_code=404, content=json.dumps({"status": "error", "message": "Voice model not found"}))
|
110
110
|
if not subscribed and voice_model.price_tier != PriceTier.FREE:
|
111
|
-
|
111
|
+
return Response(
|
112
112
|
status_code=403,
|
113
113
|
content=json.dumps({"status": "error", "message": "Subscribe to switch to this voice model"}),
|
114
114
|
)
|
@@ -143,7 +143,7 @@ async def update_paint_model(
|
|
143
143
|
if image_model is None:
|
144
144
|
return Response(status_code=404, content=json.dumps({"status": "error", "message": "Image model not found"}))
|
145
145
|
if not subscribed and image_model.price_tier != PriceTier.FREE:
|
146
|
-
|
146
|
+
return Response(
|
147
147
|
status_code=403,
|
148
148
|
content=json.dumps({"status": "error", "message": "Subscribe to switch to this image model"}),
|
149
149
|
)
|
khoj/routers/helpers.py
CHANGED
@@ -94,6 +94,7 @@ from khoj.processor.conversation.openai.gpt import (
|
|
94
94
|
)
|
95
95
|
from khoj.processor.conversation.utils import (
|
96
96
|
ChatEvent,
|
97
|
+
InformationCollectionIteration,
|
97
98
|
ResponseWithThought,
|
98
99
|
clean_json,
|
99
100
|
clean_mermaidjs,
|
@@ -1355,13 +1356,13 @@ async def agenerate_chat_response(
|
|
1355
1356
|
online_results: Dict[str, Dict] = {},
|
1356
1357
|
code_results: Dict[str, Dict] = {},
|
1357
1358
|
operator_results: Dict[str, str] = {},
|
1359
|
+
research_results: List[InformationCollectionIteration] = [],
|
1358
1360
|
inferred_queries: List[str] = [],
|
1359
1361
|
conversation_commands: List[ConversationCommand] = [ConversationCommand.Default],
|
1360
1362
|
user: KhojUser = None,
|
1361
1363
|
client_application: ClientApplication = None,
|
1362
1364
|
location_data: LocationData = None,
|
1363
1365
|
user_name: Optional[str] = None,
|
1364
|
-
meta_research: str = "",
|
1365
1366
|
query_images: Optional[List[str]] = None,
|
1366
1367
|
train_of_thought: List[Any] = [],
|
1367
1368
|
query_files: str = None,
|
@@ -1391,6 +1392,7 @@ async def agenerate_chat_response(
|
|
1391
1392
|
online_results=online_results,
|
1392
1393
|
code_results=code_results,
|
1393
1394
|
operator_results=operator_results,
|
1395
|
+
research_results=research_results,
|
1394
1396
|
inferred_queries=inferred_queries,
|
1395
1397
|
client_application=client_application,
|
1396
1398
|
conversation_id=str(conversation.id),
|
@@ -1405,8 +1407,10 @@ async def agenerate_chat_response(
|
|
1405
1407
|
|
1406
1408
|
query_to_run = q
|
1407
1409
|
deepthought = False
|
1408
|
-
if
|
1409
|
-
|
1410
|
+
if research_results:
|
1411
|
+
compiled_research = "".join([r.summarizedResult for r in research_results if r.summarizedResult])
|
1412
|
+
if compiled_research:
|
1413
|
+
query_to_run = f"<query>{q}</query>\n<collected_research>\n{compiled_research}\n</collected_research>"
|
1410
1414
|
compiled_references = []
|
1411
1415
|
online_results = {}
|
1412
1416
|
code_results = {}
|
khoj/routers/research.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import logging
|
3
3
|
import os
|
4
|
+
from copy import deepcopy
|
4
5
|
from datetime import datetime
|
5
6
|
from enum import Enum
|
6
7
|
from typing import Callable, Dict, List, Optional, Type
|
@@ -141,7 +142,7 @@ async def apick_next_tool(
|
|
141
142
|
query = f"[placeholder for user attached images]\n{query}"
|
142
143
|
|
143
144
|
# Construct chat history with user and iteration history with researcher agent for context
|
144
|
-
previous_iterations_history = construct_iteration_history(
|
145
|
+
previous_iterations_history = construct_iteration_history(previous_iterations, prompts.previous_iteration, query)
|
145
146
|
iteration_chat_log = {"chat": conversation_history.get("chat", []) + previous_iterations_history}
|
146
147
|
|
147
148
|
# Plan function execution for the next tool
|
@@ -212,6 +213,7 @@ async def execute_information_collection(
|
|
212
213
|
query: str,
|
213
214
|
conversation_id: str,
|
214
215
|
conversation_history: dict,
|
216
|
+
previous_iterations: List[InformationCollectionIteration],
|
215
217
|
query_images: List[str],
|
216
218
|
agent: Agent = None,
|
217
219
|
send_status_func: Optional[Callable] = None,
|
@@ -227,11 +229,20 @@ async def execute_information_collection(
|
|
227
229
|
max_webpages_to_read = 1
|
228
230
|
current_iteration = 0
|
229
231
|
MAX_ITERATIONS = int(os.getenv("KHOJ_RESEARCH_ITERATIONS", 5))
|
230
|
-
|
232
|
+
|
233
|
+
# Incorporate previous partial research into current research chat history
|
234
|
+
research_conversation_history = deepcopy(conversation_history)
|
235
|
+
if current_iteration := len(previous_iterations) > 0:
|
236
|
+
logger.info(f"Continuing research with the previous {len(previous_iterations)} iteration results.")
|
237
|
+
previous_iterations_history = construct_iteration_history(previous_iterations, prompts.previous_iteration)
|
238
|
+
research_conversation_history["chat"] = (
|
239
|
+
research_conversation_history.get("chat", []) + previous_iterations_history
|
240
|
+
)
|
241
|
+
|
231
242
|
while current_iteration < MAX_ITERATIONS:
|
232
243
|
# Check for cancellation at the start of each iteration
|
233
244
|
if cancellation_event and cancellation_event.is_set():
|
234
|
-
logger.debug(f"User {user} disconnected client.
|
245
|
+
logger.debug(f"Research cancelled. User {user} disconnected client.")
|
235
246
|
break
|
236
247
|
|
237
248
|
online_results: Dict = dict()
|
@@ -243,7 +254,7 @@ async def execute_information_collection(
|
|
243
254
|
|
244
255
|
async for result in apick_next_tool(
|
245
256
|
query,
|
246
|
-
|
257
|
+
research_conversation_history,
|
247
258
|
user,
|
248
259
|
location,
|
249
260
|
user_name,
|
khoj/utils/rawconfig.py
CHANGED
@@ -122,22 +122,22 @@ khoj/database/migrations/0087_alter_aimodelapi_api_key.py,sha256=CqZ3iqt3CwiCwkD
|
|
122
122
|
khoj/database/migrations/0088_ratelimitrecord.py,sha256=CxlkfbA8eTO57pv0AvJYfGRp5eOe81iMJgpRoTFGVls,1018
|
123
123
|
khoj/database/migrations/0089_chatmodel_price_tier_and_more.py,sha256=EJ1Yf6MMzhGMwJOS3AECaU6ks4NfRW0utyDa7lreNwQ,1211
|
124
124
|
khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
|
-
khoj/database/models/__init__.py,sha256=
|
125
|
+
khoj/database/models/__init__.py,sha256=pWW2G-iOM-yrOPwGWCabBMsof7I-fHAidND_mB7FUGI,31106
|
126
126
|
khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
|
127
127
|
khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
|
128
128
|
khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
|
129
129
|
khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
|
130
130
|
khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
|
131
131
|
khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
|
132
|
-
khoj/interface/compiled/index.html,sha256
|
133
|
-
khoj/interface/compiled/index.txt,sha256=
|
132
|
+
khoj/interface/compiled/index.html,sha256=1AxzoyGK4_8AvEqJx30UM2jx64hXqp1A2KwXa0LIYzM,53353
|
133
|
+
khoj/interface/compiled/index.txt,sha256=Cq3dT2-49ThbCg1uOOYHspG9Hc-Y8NF3z7vhObYcaxA,7749
|
134
134
|
khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
|
135
135
|
khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
|
136
136
|
khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
|
137
137
|
khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
|
138
138
|
khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
|
139
139
|
khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
|
140
|
-
khoj/interface/compiled/404/index.html,sha256=
|
140
|
+
khoj/interface/compiled/404/index.html,sha256=UDIgi5Bvm8d1RIhX_W3UPGko1vA4FvqOr8Dvrv3pzQA,17097
|
141
141
|
khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js,sha256=Y6ceAwyTH4HSGDvBRoBB-RVXRCzGGr8NSPcspYF5OM8,182
|
142
142
|
khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js,sha256=IK-mb9ZlF6uJUdU8AuXsppc99tFL8svJvZtKNZGNtcY,411
|
143
143
|
khoj/interface/compiled/_next/static/chunks/1592.b069bdb7aaddd2eb.js,sha256=VUaP2gjX3W9tA9pOH_VIPG_2BIg7Wk1AICrfU5iHgrk,71096
|
@@ -168,7 +168,7 @@ khoj/interface/compiled/_next/static/chunks/5279.85d537880b8041ae.js,sha256=3Vvd
|
|
168
168
|
khoj/interface/compiled/_next/static/chunks/5402.b9460f1b16b57e92.js,sha256=TFB5N1RYbKelRJXW70T4tT0lEjB3u7RS5lItHOfX-TU,24369
|
169
169
|
khoj/interface/compiled/_next/static/chunks/5427-442f34b514b9fc26.js,sha256=QaxSADflROkzhUDs3OPtt8mpaFIc_3UtBjSS8aTWpzE,31914
|
170
170
|
khoj/interface/compiled/_next/static/chunks/5473-921e17a6177f9729.js,sha256=Xl8sKJ3GbVq0N5RD-rvjZxkN0zHQQw5Ix8jltbMwLhc,46052
|
171
|
-
khoj/interface/compiled/_next/static/chunks/5477-
|
171
|
+
khoj/interface/compiled/_next/static/chunks/5477-b91e9926cfc3095c.js,sha256=kxYBij2B8d2jKdR5j0ppma3VGmOoYkQ9dQHVg9-VMvM,14601
|
172
172
|
khoj/interface/compiled/_next/static/chunks/5555.f7cf9795d675de51.js,sha256=uJjZjASQiVGqPR7_Cn3RFZOe9cLnMaOEHYHMyssfyzI,100164
|
173
173
|
khoj/interface/compiled/_next/static/chunks/5621-415bdc6c7b57af11.js,sha256=cvNw0hIbmSGZAp--CTZKvnf4bNjyvAMY5WKsHVNy6cE,24074
|
174
174
|
khoj/interface/compiled/_next/static/chunks/58.f4bd8a3c9d88f5fe.js,sha256=8j1vUdozD7ROLnHcr7k5Z9emrhg2ukJ60e6fRBIymxo,31287
|
@@ -203,32 +203,32 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
|
|
203
203
|
khoj/interface/compiled/_next/static/chunks/main-876327ac335776ab.js,sha256=JkQUmA9vh1B4VVGF5dbZ8Kun0AnIVUbZr5IBK90T4Zs,111290
|
204
204
|
khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js,sha256=bqnztujKItXfFBzQlaBmDZyfJpQt_M93CXOuchJfpD0,471
|
205
205
|
khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
|
206
|
-
khoj/interface/compiled/_next/static/chunks/webpack-
|
206
|
+
khoj/interface/compiled/_next/static/chunks/webpack-c6bde5961098facd.js,sha256=cnc91CGfuR_tfaK_H83C6r2Fp4WZEfCBaruUKRkMRDM,4891
|
207
207
|
khoj/interface/compiled/_next/static/chunks/app/layout-baa6e7974e560a7a.js,sha256=7JZS2Pr995Lwu3FeQpAvheLS1Bn5w5HOFsecV2_kyQA,3880
|
208
|
-
khoj/interface/compiled/_next/static/chunks/app/page-
|
208
|
+
khoj/interface/compiled/_next/static/chunks/app/page-38f1f125d7aeb4c7.js,sha256=zqvrdTNFKHk3LibIMCfpi2DztCy3YpHPQlvk7ogqYdc,31223
|
209
209
|
khoj/interface/compiled/_next/static/chunks/app/_not-found/page-0ec97c4970898f2d.js,sha256=zElhiTkdu2JqrEvJ8Lrxh4HCyfLmPllBHHWOuDtrVlw,1755
|
210
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/layout-
|
211
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/page-
|
210
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/layout-e49165209d2e406c.js,sha256=WFG6nsdtjnYHsKazIx5-xBXemVzEKXfW_U6Q9dnc7CU,180
|
211
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/page-c9ceb9b94e24b94a.js,sha256=VtUxhOK9QWUWn2qQ4Q2crOdpoWQNtSIppFog4VqT90M,18319
|
212
212
|
khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f5c33a70e46b3af.js,sha256=s2wHeQ-ai9rKyU9EjOGY1Yo51L4ZEkjLtML85BqN3Zc,5143
|
213
|
-
khoj/interface/compiled/_next/static/chunks/app/automations/page-
|
214
|
-
khoj/interface/compiled/_next/static/chunks/app/chat/layout-
|
215
|
-
khoj/interface/compiled/_next/static/chunks/app/chat/page-
|
216
|
-
khoj/interface/compiled/_next/static/chunks/app/search/layout-
|
217
|
-
khoj/interface/compiled/_next/static/chunks/app/search/page-
|
213
|
+
khoj/interface/compiled/_next/static/chunks/app/automations/page-3dc59a0df3827dc7.js,sha256=ITcb5ZxvXH5DMA1_tFb0gilqRfAF6WvU6GP-X9gHq74,34836
|
214
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/layout-d5ae861e1ade9d08.js,sha256=oe6TgLOEOch5Nr3Z-DEdMIp3MD5vd0rH7dTp-mdEXYg,180
|
215
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/page-2b27c7118d8d5a16.js,sha256=XdqWNGAhETLSIiDCddufPz0qLucrv_rPkjDKySXisjk,28645
|
216
|
+
khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js,sha256=Bm4Y73ylR-j9_LdKXVUjgLppZJ6JRdLTUgYAsZCOBkQ,180
|
217
|
+
khoj/interface/compiled/_next/static/chunks/app/search/page-26d4492fb1200e0e.js,sha256=OMP4Lt2KSMW-H1QmxlwIaK5lX6L50EKWld9ocEK1Txw,32714
|
218
218
|
khoj/interface/compiled/_next/static/chunks/app/settings/layout-8a22f370d3eaeed3.js,sha256=dIfmM5C_Al-Zh_uqaJmniSxjXbu3LqPzrEw4SQ7vs0I,6132
|
219
|
-
khoj/interface/compiled/_next/static/chunks/app/settings/page-
|
220
|
-
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-
|
221
|
-
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-
|
219
|
+
khoj/interface/compiled/_next/static/chunks/app/settings/page-bf1a4e488b29fceb.js,sha256=G5IbKe1DHQwrjMj12cQJH_QVHR7d0pn1hGsLX50BNnA,27898
|
220
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-64a53f8ec4afa6b3.js,sha256=vSWDZtrfHaKt9-zHQXCliMs5g3Ivwli2qaH83lo6x_4,180
|
221
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-a1f10c96366c3a4f.js,sha256=d_GXLAPUwQkrvFJ2GlJRV3rG37PGp_qFe6gerxX0MrA,5568
|
222
222
|
khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js,sha256=UqtikLsCsOWtDUJOW6Tuk9P-bV1V3MhYd3ghrQuEmfs,286
|
223
223
|
khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js,sha256=w_It3VzKT8O1M3CrJ_hZHsaU7M7dq3EAaVG8KvJ-fhU,253
|
224
|
-
khoj/interface/compiled/_next/static/css/
|
224
|
+
khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css,sha256=7Kq40hXKsqTnQEz4otvA49gEDms7a0XAFCB0rwrnXQo,30547
|
225
225
|
khoj/interface/compiled/_next/static/css/76c658ee459140a9.css,sha256=7tI24VB66ZUsAPUxRdQhboopun0AXLUnF64uv9RkC08,1833
|
226
226
|
khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css,sha256=IUkZhkx4GpYOIhN-EJw9T1DqGMO3Wa3mNpUwaOBuZoY,7204
|
227
227
|
khoj/interface/compiled/_next/static/css/9c223d337a984468.css,sha256=F5o-qiwJl16uCWiDADWkkIIk5PNxKjvHz5068EptHps,3075687
|
228
|
+
khoj/interface/compiled/_next/static/css/bb7ea98028b368f3.css,sha256=PBwues3rUFWl02xEnWqKbRFK59SkQUCqYuV45ZedG4U,3318
|
228
229
|
khoj/interface/compiled/_next/static/css/e4eb883b5265d372.css,sha256=6LaW-lQ_ZpgOJNWYwU1Q1egXZ1aqJDEuRj66oRCIU_E,17748
|
229
230
|
khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css,sha256=tn6qi2xSLTWhtzDUE8UlC8iipH9QGV6A9oGj1ap-Sk4,1659
|
230
|
-
khoj/interface/compiled/_next/static/css/
|
231
|
-
khoj/interface/compiled/_next/static/css/fca983d49c3dd1a3.css,sha256=3F1qPtz6PQG-gIpo8h3rAfxreAc2Uvxy8F_G2e78EsM,30452
|
231
|
+
khoj/interface/compiled/_next/static/css/ee66643a6a5bf71c.css,sha256=3JbJLrnwlX_IHdvjmS3l9y3Vgp5_V0XbfFI44ekLh9E,3106
|
232
232
|
khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2,sha256=IzKBwB_bpSGvO7C9aRv29Js-jAbZPRDI-D-P4H2P918,14508
|
233
233
|
khoj/interface/compiled/_next/static/media/2aa11a72f7f24b58-s.woff2,sha256=QjuuSKmViymmy-itXLB1UbSARxFNHWuMiPpCrYqClFI,22728
|
234
234
|
khoj/interface/compiled/_next/static/media/383a65b63658737d-s.woff2,sha256=VH1XkI87HdFVhsurH5D5ekEjG_ZORTVBVg6xz7p87C8,16704
|
@@ -306,10 +306,10 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
|
|
306
306
|
khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
|
307
307
|
khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
|
308
308
|
khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
|
309
|
-
khoj/interface/compiled/_next/static/
|
310
|
-
khoj/interface/compiled/_next/static/
|
311
|
-
khoj/interface/compiled/agents/index.html,sha256
|
312
|
-
khoj/interface/compiled/agents/index.txt,sha256=
|
309
|
+
khoj/interface/compiled/_next/static/y_k1yn7bI1CgM5ZfW7jUq/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
|
310
|
+
khoj/interface/compiled/_next/static/y_k1yn7bI1CgM5ZfW7jUq/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
311
|
+
khoj/interface/compiled/agents/index.html,sha256=-799MhE4fj0M_uziMxl9o37fDQFn2RGaiJmH8BCYXY8,16535
|
312
|
+
khoj/interface/compiled/agents/index.txt,sha256=CCkMrbsxUjYCF0_-8Y-x4RChVJQEek2rhRnEYQV8FNI,7353
|
313
313
|
khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
|
314
314
|
khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
|
315
315
|
khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
|
@@ -324,16 +324,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
|
|
324
324
|
khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
|
325
325
|
khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
|
326
326
|
khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
|
327
|
-
khoj/interface/compiled/automations/index.html,sha256=
|
328
|
-
khoj/interface/compiled/automations/index.txt,sha256=
|
329
|
-
khoj/interface/compiled/chat/index.html,sha256=
|
330
|
-
khoj/interface/compiled/chat/index.txt,sha256=
|
331
|
-
khoj/interface/compiled/search/index.html,sha256=
|
332
|
-
khoj/interface/compiled/search/index.txt,sha256=
|
333
|
-
khoj/interface/compiled/settings/index.html,sha256=
|
334
|
-
khoj/interface/compiled/settings/index.txt,sha256=
|
335
|
-
khoj/interface/compiled/share/chat/index.html,sha256=
|
336
|
-
khoj/interface/compiled/share/chat/index.txt,sha256=
|
327
|
+
khoj/interface/compiled/automations/index.html,sha256=vv5IkV0b6gUeTd9Y5bRSng56atkN52_AYS6yGRIh1Mo,54405
|
328
|
+
khoj/interface/compiled/automations/index.txt,sha256=vNN7bbCPwDEF4SFK9DS7ECe9bhKXrJ-sHxhSE2-z7AQ,7582
|
329
|
+
khoj/interface/compiled/chat/index.html,sha256=D9EkCxISHHBCk2b3gWQFlIsa2Dsu2Pfq88D1ucnIIrg,53532
|
330
|
+
khoj/interface/compiled/chat/index.txt,sha256=GAFcWkkB5oCbwbxNdl-Nkfx9JJePjuDR5pibaoFlX08,7991
|
331
|
+
khoj/interface/compiled/search/index.html,sha256=4NzvbUIxI02sgcjw480llO8U5n6K22Vr3n9GLHS0upg,55304
|
332
|
+
khoj/interface/compiled/search/index.txt,sha256=MLF0AoZ_NPuAG8AJi0yPyZcrCoYKxzZ5gOuIaWc8-I0,6567
|
333
|
+
khoj/interface/compiled/settings/index.html,sha256=Hevt7ThyfbPutTiMjtBjPDa6NDMDjI-f3dkZqD1tDUM,53053
|
334
|
+
khoj/interface/compiled/settings/index.txt,sha256=bMA43IcICTzeojMlpI4dnXzF1DDPikNqgVvFc4E41Z0,7836
|
335
|
+
khoj/interface/compiled/share/chat/index.html,sha256=mGZnLC5XFCDHdJhywQZynNYvQsauoIMFN7eAxXt5BzY,54112
|
336
|
+
khoj/interface/compiled/share/chat/index.txt,sha256=Jrxa-v023r3Ns0pENdha5RQhqLQPzQ4zBlmMQov7WfY,8453
|
337
337
|
khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
|
338
338
|
khoj/interface/email/magic_link.html,sha256=372ESbTPKM9acekuZcOIKOw6kBl-KikFg_L9MOHqJkg,2094
|
339
339
|
khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
|
@@ -386,9 +386,9 @@ khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
|
|
386
386
|
khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
|
387
387
|
khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
388
388
|
khoj/processor/conversation/prompts.py,sha256=78EVB1f3E9O5DQ0t2vnrvJHik_8BOdJHZVL9Vd1A3G8,57907
|
389
|
-
khoj/processor/conversation/utils.py,sha256=
|
389
|
+
khoj/processor/conversation/utils.py,sha256=tlM8pbHD-nw5TBIgjzSnJCoH2-cuVZkKghhpzamOnOg,39237
|
390
390
|
khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
391
|
-
khoj/processor/conversation/anthropic/anthropic_chat.py,sha256
|
391
|
+
khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=-ClTICHgilCiYPzdGTBL5O2iGSyYdOUtlZuDxnqcHgo,9708
|
392
392
|
khoj/processor/conversation/anthropic/utils.py,sha256=h68x7zolymAoQc6fx3Nn3uD7Aql6OuG2HN__SUGZJ5Y,11542
|
393
393
|
khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
394
394
|
khoj/processor/conversation/google/gemini_chat.py,sha256=z99jc5_2I5TFXutJNSnn3wi5fmNTuXKNu8KfoENVw60,10218
|
@@ -398,12 +398,12 @@ khoj/processor/conversation/offline/chat_model.py,sha256=OEwlTH6ODGoC0bcKjaErA4Q
|
|
398
398
|
khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
|
399
399
|
khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
|
400
400
|
khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
401
|
-
khoj/processor/conversation/openai/gpt.py,sha256=
|
401
|
+
khoj/processor/conversation/openai/gpt.py,sha256=J3vRvbUsQdC9AdJXDOlWqZRRvmQtYkFarXhQospP1fQ,11371
|
402
402
|
khoj/processor/conversation/openai/utils.py,sha256=Q8QrFdTD34QSdJRiLTdhvqeZfmpgM_F7L6R2DMB8DZQ,25419
|
403
403
|
khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
|
404
404
|
khoj/processor/image/generate.py,sha256=FAIIsr8TIHxWxK-INNK4jJOOswBxQFyi_G4tI8NNEI8,10571
|
405
405
|
khoj/processor/operator/grounding_agent.py,sha256=vlQPvGJnILpVCSqJ4-54NYtzoW7tZFvL0QNg19XTwh4,15772
|
406
|
-
khoj/processor/operator/grounding_agent_uitars.py,sha256=
|
406
|
+
khoj/processor/operator/grounding_agent_uitars.py,sha256=6Y7kjlPJG4EH4pB2Kd6pRb654UsGqH6fsU5jkKai9Ds,41593
|
407
407
|
khoj/processor/operator/operate_browser.py,sha256=l3FAqPqcBgiYsrPB2V872q1wdlBwIxzvhXBlWaE5P1c,8091
|
408
408
|
khoj/processor/operator/operator_actions.py,sha256=3HPVcwTf-d-tLd6dUT3zcvq2lTsbmRAzqR6hZZaKnyU,3060
|
409
409
|
khoj/processor/operator/operator_agent_anthropic.py,sha256=ZuUT4WQdOuffA6ny-1hNNUz2e5M3ePWsZE7Rsgvx1CA,19686
|
@@ -420,16 +420,16 @@ khoj/processor/tools/run_code.py,sha256=rDGX615hhEeRP-e0BSOGKX3jkzDUnk8jD1uy5aoc
|
|
420
420
|
khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
421
421
|
khoj/routers/api.py,sha256=xF108KeC0F9rIspB_M8skZUvDb2ecobFCPgZ5H-Lo6o,29414
|
422
422
|
khoj/routers/api_agents.py,sha256=aEJJnQe1yogSkKO6W3Q8Ukl-xHMnqIAx3jB4M-kGNdY,17043
|
423
|
-
khoj/routers/api_chat.py,sha256=
|
423
|
+
khoj/routers/api_chat.py,sha256=scN1h9g4PLPQXAAdEuL7uhkzZGstqtHqFoQ79X_a1Q0,61426
|
424
424
|
khoj/routers/api_content.py,sha256=uLO3eir36rERkhhKU1HOdEv8KTi_z_edT9cHMCZP1W8,24578
|
425
|
-
khoj/routers/api_model.py,sha256=
|
425
|
+
khoj/routers/api_model.py,sha256=YxWeCYb32g6h7lixcFeQiMrgdFOxFKnbcgRq0SE5MoQ,5254
|
426
426
|
khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
|
427
427
|
khoj/routers/api_subscription.py,sha256=qnbKwA6N1TWK8Aiu1FFLka_JhbPOuwqT262NSHGZDiQ,5569
|
428
428
|
khoj/routers/auth.py,sha256=jk2lqAS_650lQsoaOFTlZd9W_LL8HbN5zhHTZza_lqs,11258
|
429
429
|
khoj/routers/email.py,sha256=wvr6_fpk0RuKcTPC6suI8JDZPLYzJ9hAhz_G41yZytc,3923
|
430
|
-
khoj/routers/helpers.py,sha256=
|
430
|
+
khoj/routers/helpers.py,sha256=Ho1_ZlR4q-ZaCSdBPnVSaGAvPx8IApga1ljSLuTjuH4,97327
|
431
431
|
khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
|
432
|
-
khoj/routers/research.py,sha256=
|
432
|
+
khoj/routers/research.py,sha256=NV5hDvp61tWIrF0hBf5SW537v67Ws8L0HO8mvOb9iwU,22964
|
433
433
|
khoj/routers/storage.py,sha256=lao0DvsF49QleZvOdjKM98RU2cGfCJDBb7WeoI7Rr3I,2172
|
434
434
|
khoj/routers/twilio.py,sha256=MLsuCm4--ETvr3sLxbF0CL_ehlg_l2rKBSLR2Qh2Xls,1081
|
435
435
|
khoj/routers/web_client.py,sha256=_vyfDaHZZjNoI2LwGNQFRiFmGLkNcgYJe7dOr3mrxH8,4386
|
@@ -449,11 +449,11 @@ khoj/utils/helpers.py,sha256=WvKjmrvH5EGLBays6Ta9RxYBzjC5353bv7pxWF6PDHk,31723
|
|
449
449
|
khoj/utils/initialization.py,sha256=5eULsvGQv_Kp9bMfrHP8T_QFPjurIFyfq3-rVMWiGa4,15066
|
450
450
|
khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
|
451
451
|
khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
|
452
|
-
khoj/utils/rawconfig.py,sha256=
|
452
|
+
khoj/utils/rawconfig.py,sha256=ASl_h3Ivaa_4lD4kCA0uZsMRgSYCjrgGUPm-Hw1jkLk,5083
|
453
453
|
khoj/utils/state.py,sha256=s_GFWOqRzpEDx0eCPStuzBTK2VEw-qgRpH0aiEdGnDo,1791
|
454
454
|
khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
|
455
|
-
khoj-1.41.1.
|
456
|
-
khoj-1.41.1.
|
457
|
-
khoj-1.41.1.
|
458
|
-
khoj-1.41.1.
|
459
|
-
khoj-1.41.1.
|
455
|
+
khoj-1.41.1.dev107.dist-info/METADATA,sha256=jd7MpbdYU5IdITXloEaNj2rFI41XJw3rPyHOxcaHXug,9069
|
456
|
+
khoj-1.41.1.dev107.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
457
|
+
khoj-1.41.1.dev107.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
|
458
|
+
khoj-1.41.1.dev107.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
459
|
+
khoj-1.41.1.dev107.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5477],{5477:function(e,t,a){"use strict";a.d(t,{$:function(){return r},a:function(){return O}});var s,r,n=a(57437),l=a(26442),o=a.n(l),i=a(2265),c=a(18848);a(2446);var d=a(12144),u=a(10107),h=a(19715),f=a(35849),g=a(4203),x=a(51549),m=a(62340),p=a(23518),j=a(37099),b=a(62869),v=a(32759),w=a(57054),y=a(27312),N=a(76818),k=a(81103),C=a(84671),E=a(39535),D=a(14308),S=a(42225),M=a(59199),R=a(7436),T=a(26110),z=a(19378);(s=r||(r={})).MESSAGE="message",s.FILE="file",s.RESEARCH="research";let O=(0,i.forwardRef)((e,t)=>{let[a,s]=(0,i.useState)(""),r=(0,i.useRef)(null),l=(0,i.useRef)(null),O=(0,i.useRef)(null),[A,I]=(0,i.useState)(null),[L,_]=(0,i.useState)(null),[P,F]=(0,i.useState)(!1),[W,U]=(0,i.useState)(null),[$,H]=(0,i.useState)(!1),[J,B]=(0,i.useState)(!1),[K,Y]=(0,i.useState)([]),[Z,X]=(0,i.useState)([]),[q,G]=(0,i.useState)(null),[V,Q]=(0,i.useState)([]),[ee,et]=(0,i.useState)(!1),[ea,es]=(0,i.useState)(null),[er,en]=(0,i.useState)(0),[el,eo]=(0,i.useState)(!1),[ei,ec]=(0,i.useState)(!1),[ed,eu]=(0,i.useState)(e.isResearchModeEnabled||!1);function eh(){if(J&&(B(!1),Y([]),Z.forEach(t=>e.sendImage(t))),!a.trim())return;if(!e.isLoggedIn){U("Hey there, you need to be signed in to send messages to Khoj AI"),H(!0);return}let t=a.trim(),r=e.chatOptionsData&&Object.keys(e.chatOptionsData).some(e=>t.startsWith("/".concat(e)));ed&&!r&&(t="/research ".concat(t)),e.sendMessage(t),G(null),Q([]),s("")}function ef(a){var s,r;if(!e.isLoggedIn){U("Please login to chat with your files"),H(!0);return}let n=["jpg","jpeg","png","webp"],l=[];for(let e=0;e<a.length;e++){let t=a[e],s=t.name.split(".").pop();n.includes(s||"")&&l.push(c.Z.sanitize(URL.createObjectURL(t)))}l.length>0&&(B(!0),Y(e=>[...e,...l]),null==t||null===(r=t.current)||void 0===r||r.focus());let o=Array.from(a).filter(e=>!n.includes(e.name.split(".").pop()||"")),i=o?Array.from(o).concat(Array.from(q||[])):Array.from(q||[]);if(i.length>0){for(let e=0;e<i.length;e++)if(i[e].size>10485760){I("File ".concat(i[e].name," is too large. Please upload files smaller than 10 MB."));return}let t=new DataTransfer;i.forEach(e=>t.items.add(e)),eg(t.files).then(a=>{e.setUploadedFiles(a),G(t.files),Q(a)})}null==t||null===(s=t.current)||void 0===s||s.focus()}async function eg(e){let t=await (0,M.M1)(e);F(!0);try{let e=await fetch("/api/content/convert",{method:"POST",body:t});if(F(!1),!e.ok)throw Error("HTTP error! status: ".concat(e.status));return await e.json()}catch(e){return _("Error converting files. "+e+". Please try again, or contact team@khoj.dev if the issue persists."),console.error("Error converting files:",e),[]}}async function ex(){try{let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=new MediaRecorder(e,{mimeType:"audio/webm"}),a=[];t.ondataavailable=async e=>{a.push(e.data);let t=new Blob(a,{type:"audio/webm"}),r=new FormData;r.append("file",t);try{let e=await fetch("/api/transcribe",{method:"POST",body:r});if(!e.ok)throw Error("Network response was not ok");let t=await e.json();s(t.text.trim())}catch(e){console.error("Error sending audio to server:",e)}},t.start(1500),t.onstop=async()=>{let e=new Blob(a,{type:"audio/webm"}),r=new FormData;r.append("file",e);try{let e=await fetch("/api/transcribe",{method:"POST",body:r});if(!e.ok)throw Error("Network response was not ok");let a=await e.json();t.stream.getTracks().forEach(e=>e.stop()),es(null),s(a.text.trim())}catch(e){console.error("Error sending audio to server:",e)}},es(t)}catch(e){console.error("Error getting microphone",e)}}return(0,i.useEffect)(()=>{if(P||en(0),P){let e=setInterval(()=>{en(e=>{let t=e+(Math.floor(5*Math.random())+1);return t<100?t:100})},800);return()=>clearInterval(e)}},[P]),(0,i.useEffect)(()=>{var a;void 0!==e.prefillMessage&&(s(e.prefillMessage),null==t||null===(a=t.current)||void 0===a||a.focus())},[e.prefillMessage]),(0,i.useEffect)(()=>{var a,s,r;"message"===e.focus?null==t||null===(a=t.current)||void 0===a||a.focus():"file"===e.focus?null===(s=l.current)||void 0===s||s.focus():"research"===e.focus&&(null===(r=O.current)||void 0===r||r.focus())},[e.focus]),(0,i.useEffect)(()=>{async function e(){K.length>0&&X(await Promise.all(K.map(async e=>{let t=await fetch(e),a=await t.blob();return new Promise(e=>{let t=new FileReader;t.onload=()=>e(t.result),t.readAsDataURL(a)})}))),F(!1)}F(!0),e()},[K]),(0,i.useEffect)(()=>{e.isResearchModeEnabled&&eu(e.isResearchModeEnabled)},[e.isResearchModeEnabled]),(0,i.useEffect)(()=>{!ee&&ea&&ea.stop(),ee&&!ea&&ex()},[ee,ea]),(0,i.useEffect)(()=>{(null==t?void 0:t.current)&&(t.current.style.height="auto",t.current.style.height=Math.max(t.current.scrollHeight-24,64)+"px",a.startsWith("/")&&1===a.split(" ").length?ec(!0):ec(!1))},[a]),(0,n.jsxs)(n.Fragment,{children:[$&&W&&(0,n.jsx)(E.Z,{onOpenChange:H,isMobileWidth:e.isMobileWidth}),P&&(0,n.jsx)(j.aR,{open:P,children:(0,n.jsxs)(j._T,{children:[(0,n.jsx)(j.fY,{children:(0,n.jsx)(j.f$,{children:"Uploading data. Please wait."})}),(0,n.jsx)(j.yT,{children:(0,n.jsx)(v.E,{indicatorColor:"bg-slate-500",className:"w-full h-2 rounded-full",value:er})}),(0,n.jsx)(j.OL,{className:"bg-slate-400 hover:bg-slate-500",onClick:()=>F(!1),children:"Dismiss"})]})}),A&&(0,n.jsx)(j.aR,{open:null!==A,children:(0,n.jsxs)(j._T,{children:[(0,n.jsx)(j.fY,{children:(0,n.jsx)(j.f$,{children:"Data Upload Warning"})}),(0,n.jsx)(j.yT,{children:A}),(0,n.jsx)(j.OL,{className:"bg-slate-400 hover:bg-slate-500",onClick:()=>I(null),children:"Close"})]})}),L&&(0,n.jsx)(j.aR,{open:null!==L,children:(0,n.jsxs)(j._T,{children:[(0,n.jsxs)(j.fY,{children:[(0,n.jsx)(j.f$,{children:"Oh no!"}),(0,n.jsx)(j.yT,{children:"Something went wrong while uploading your data"})]}),(0,n.jsx)(j.yT,{children:L}),(0,n.jsx)(j.OL,{className:"bg-slate-400 hover:bg-slate-500",onClick:()=>_(null),children:"Close"})]})}),ei&&(0,n.jsx)("div",{className:"flex justify-center text-center",children:(0,n.jsxs)(w.J2,{open:ei,onOpenChange:ec,children:[(0,n.jsx)(y.xo,{className:"flex justify-center text-center"}),(0,n.jsx)(w.yk,{onOpenAutoFocus:e=>e.preventDefault(),className:"".concat(e.isMobileWidth?"w-[100vw]":"w-full"," rounded-md"),side:"bottom",align:"center",sideOffset:e.conversationId?0:80,alignOffset:0,children:(0,n.jsxs)(p.mY,{className:"max-w-full",children:[(0,n.jsx)(p.sZ,{placeholder:"Type a command or search...",value:a,className:"hidden"}),(0,n.jsxs)(p.e8,{children:[(0,n.jsx)(p.rb,{children:"No matching commands."}),(0,n.jsx)(p.fu,{heading:"Agent Tools",children:e.chatOptionsData&&Object.entries(e.chatOptionsData).map(e=>{let[t,a]=e;return(0,n.jsx)(p.di,{className:"text-md",onSelect:()=>{s("/".concat(t," "))},children:(0,n.jsxs)("div",{className:"grid grid-cols-1 gap-1",children:[(0,n.jsxs)("div",{className:"font-bold flex items-center",children:[(0,S.vH)(t,"h-4 w-4 mr-2"),"/",t]}),(0,n.jsx)("div",{children:a})]})},t)})}),(0,n.jsx)(p.zz,{})]})]})})]})}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 overflow-x-auto",children:[J&&K.map((e,t)=>(0,n.jsxs)("div",{className:"relative flex-shrink-0 pb-3 pt-2 group",children:[(0,n.jsx)("img",{src:e,alt:"img-".concat(t),className:"w-auto h-16 object-cover rounded-xl"}),(0,n.jsx)(b.z,{variant:"ghost",size:"icon",className:"absolute -top-0 -right-2 h-5 w-5 rounded-full bg-neutral-200 dark:bg-neutral-600 hover:bg-neutral-300 dark:hover:bg-neutral-500 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>{Y(e=>e.filter((e,a)=>a!==t)),X(e=>e.filter((e,a)=>a!==t)),1===K.length&&B(!1)},children:(0,n.jsx)(d.X,{className:"h-3 w-3"})})]},t)),V&&Array.from(V).map((t,a)=>(0,n.jsxs)(T.Vq,{children:[(0,n.jsx)(T.hg,{asChild:!0,children:(0,n.jsxs)("div",{className:"relative flex-shrink-0 p-2 group",children:[(0,n.jsx)("div",{className:"w-auto h-16 object-cover rounded-xl ".concat(e.agentColor?(0,C.tp)(e.agentColor):"bg-orange-300 hover:bg-orange-500"," bg-opacity-15"),children:(0,n.jsxs)("div",{className:"flex p-2 flex-col justify-start items-start h-full",children:[(0,n.jsx)("span",{className:"text-sm font-bold text-neutral-500 dark:text-neutral-400 text-ellipsis truncate max-w-[200px] break-words",children:t.name}),(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,S.Le)(t.file_type),(0,n.jsx)("span",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:(0,R.xq)(t.size)})]})]})}),(0,n.jsx)(b.z,{variant:"ghost",size:"icon",className:"absolute -top-0 -right-2 h-5 w-5 rounded-full bg-neutral-200 dark:bg-neutral-600 hover:bg-neutral-300 dark:hover:bg-neutral-500 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>{G(a=>{let s=t.name;if(!a)return null;let r=Array.from(a).filter(e=>e.name!==s),n=new DataTransfer;r.forEach(e=>n.items.add(e));let l=V.filter(e=>e.name!==s);return e.setUploadedFiles(l),Q(l),n.files})},children:(0,n.jsx)(d.X,{className:"h-3 w-3"})})]},a)}),(0,n.jsxs)(T.cZ,{children:[(0,n.jsx)(T.fK,{children:(0,n.jsx)(T.$N,{children:t.name})}),(0,n.jsx)(T.Be,{children:(0,n.jsx)(z.x,{className:"h-72 w-full rounded-md",children:t.content})})]})]},a))]}),(0,n.jsxs)("div",{className:"".concat(o().actualInputArea," justify-between dark:bg-neutral-700 relative ").concat(el&&"animate-pulse"),onDragOver:function(e){e.preventDefault(),eo(!0)},onDragLeave:function(e){e.preventDefault(),eo(!1)},onDrop:function(e){e.preventDefault(),eo(!1),e.dataTransfer.files&&ef(e.dataTransfer.files)},children:[(0,n.jsx)("input",{type:"file",accept:".pdf,.doc,.docx,.txt,.md,.org,.jpg,.jpeg,.png,.webp,.py,.tsx,.js,.json,.html,.css,.ipynb",multiple:!0,ref:r,onChange:function(e){e.target.files&&ef(e.target.files)},style:{display:"none"}}),(0,n.jsx)("div",{className:"flex items-center",children:(0,n.jsx)(k.pn,{children:(0,n.jsxs)(k.u,{children:[(0,n.jsx)(k.aJ,{asChild:!0,children:(0,n.jsx)(b.z,{variant:"ghost",className:"!bg-none p-0 m-2 h-auto text-3xl rounded-full text-gray-300 hover:text-gray-500",disabled:e.sendDisabled||!e.isLoggedIn,onClick:function(){r.current&&r.current.click()},ref:l,children:(0,n.jsx)(u.p,{className:"w-8 h-8"})})}),(0,n.jsx)(k._v,{children:"Attach a PDF, plain text file, or image"})]})})}),(0,n.jsx)("div",{className:"flex-grow flex flex-col w-full gap-1.5 relative",children:(0,n.jsx)(N.g,{ref:t,className:"border-none focus:border-none\n focus:outline-none focus-visible:ring-transparent\n w-full h-16 min-h-16 max-h-[128px] md:py-4 rounded-lg resize-none dark:bg-neutral-700\n ".concat(e.isMobileWidth?"text-md":"text-lg"),placeholder:"Type / to see a list of commands",id:"message",autoFocus:!0,value:a,onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||e.isMobileWidth||e.sendDisabled||(B(!1),Y([]),t.preventDefault(),eh())},onChange:e=>s(e.target.value),disabled:ee})}),(0,n.jsxs)("div",{className:"flex items-end pb-2",children:[ee?(0,n.jsx)(k.pn,{children:(0,n.jsxs)(k.u,{children:[(0,n.jsx)(k.aJ,{asChild:!0,children:(0,n.jsx)(b.z,{variant:"default",className:"".concat(!ee&&"hidden"," ").concat(e.agentColor?(0,C.tp)(e.agentColor):"bg-orange-300 hover:bg-orange-500"," rounded-full p-1 m-2 h-auto text-3xl transition transform md:hover:-translate-y-1"),onClick:()=>{et(!ee)},disabled:e.sendDisabled||!e.isLoggedIn,children:(0,n.jsx)(h.d,{weight:"fill",className:"w-6 h-6"})})}),(0,n.jsx)(k._v,{children:"Click to stop recording and transcribe your voice."})]})}):ea?(0,n.jsx)(D.l,{}):(0,n.jsx)(k.pn,{children:(0,n.jsxs)(k.u,{children:[(0,n.jsx)(k.aJ,{asChild:!0,children:e.sendDisabled?(0,n.jsx)(b.z,{variant:"default",className:"".concat(e.agentColor?(0,C.tp)(e.agentColor):"bg-orange-300 hover:bg-orange-500"," rounded-full p-1 m-2 h-auto text-3xl transition transform md:hover:-translate-y-1"),onClick:()=>{e.setTriggeredAbort(!0)},children:(0,n.jsx)(h.d,{weight:"fill",className:"w-6 h-6"})}):(0,n.jsx)(b.z,{variant:"default",className:"".concat(!a||ee||"hidden"," ").concat(e.agentColor?(0,C.tp)(e.agentColor):"bg-orange-300 hover:bg-orange-500"," rounded-full p-1 m-2 h-auto text-3xl transition transform md:hover:-translate-y-1"),disabled:e.sendDisabled||!e.isLoggedIn,onClick:()=>{s("Listening..."),et(!ee)},children:(0,n.jsx)(f.P,{weight:"fill",className:"w-6 h-6"})})}),(0,n.jsx)(k._v,{children:e.sendDisabled?"Click here to stop the streaming.":"Click to transcribe your message with voice."})]})}),(0,n.jsx)(b.z,{className:"".concat((!a||ee||e.sendDisabled)&&"hidden"," ").concat(e.agentColor?(0,C.tp)(e.agentColor):"bg-orange-300 hover:bg-orange-500"," rounded-full p-1 m-2 h-auto text-3xl transition transform md:hover:-translate-y-1"),disabled:e.sendDisabled||!e.isLoggedIn,onClick:eh,children:(0,n.jsx)(g.a,{className:"w-6 h-6",weight:"bold"})})]})]}),(0,n.jsx)(k.pn,{children:(0,n.jsxs)(k.u,{children:[(0,n.jsx)(k.aJ,{asChild:!0,children:(0,n.jsxs)(b.z,{variant:"ghost",className:"float-right justify-center gap-1 flex items-center p-1.5 mr-2 h-fit",disabled:e.sendDisabled||!e.isLoggedIn,ref:O,onClick:()=>{var e;eu(!ed),null==t||null===(e=t.current)||void 0===e||e.focus()},children:[(0,n.jsx)("span",{className:"text-muted-foreground text-sm",children:"Research Mode"}),ed?(0,n.jsx)(x.W,{weight:"fill",className:"w-6 h-6 inline-block ".concat(e.agentColor?(0,C.oz)(e.agentColor):(0,C.oz)("orange")," rounded-full")}):(0,n.jsx)(m.$,{weight:"fill",className:"w-6 h-6 inline-block ".concat((0,C.oz)("gray")," rounded-full")})]})}),(0,n.jsx)(k._v,{className:"text-xs",children:"Research Mode allows you to get more deeply researched, detailed responses. Response times may be longer."})]})})]})]})});O.displayName="ChatInputArea"},32759:function(e,t,a){"use strict";a.d(t,{E:function(){return o}});var s=a(57437),r=a(2265),n=a(60610),l=a(94508);let o=r.forwardRef((e,t)=>{let{className:a,value:r,indicatorColor:o,...i}=e;return(0,s.jsx)(n.fC,{ref:t,className:(0,l.cn)("relative h-4 w-full overflow-hidden rounded-full bg-secondary",a),...i,children:(0,s.jsx)(n.z$,{className:"h-full w-full flex-1 bg-primary transition-all ".concat(o),style:{transform:"translateX(-".concat(100-(r||0),"%)")}})})});o.displayName=n.fC.displayName},76818:function(e,t,a){"use strict";a.d(t,{g:function(){return l}});var s=a(57437),r=a(2265),n=a(94508);let l=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("textarea",{className:(0,n.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),ref:t,...r})});l.displayName="Textarea"},26442:function(e){e.exports={actualInputArea:"chatInputArea_actualInputArea__Ha6cN"}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8459,3317,7138,244],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3317,8459,7138,244],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[244,8459,3317,7138],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7138,8459,3317,244],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|