khoj 1.30.2.dev11__py3-none-any.whl → 1.30.2.dev20__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/interface/compiled/404/index.html +1 -1
- khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js +1 -0
- khoj/interface/compiled/_next/static/chunks/1603-1407afe510f0145a.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-5f6e0dacc34e33ad.js → page-b086c9b0aa5a3833.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/automations/{page-60bc7454bc3ea881.js → page-697a2d415e11a872.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/{page-ac366c9111374312.js → page-461e26fcb7578d39.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{page-358154a4436ef316.js → page-4a3c49c5e996cc40.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/{page-64ea1717528979af.js → page-9013658bebfc3d17.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/{page-17a538580c65e7fe.js → page-41eb536497bb544a.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-47641b3691fb0856.js → page-6a68ac7e227b34e7.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-1c0a37d7df44bed9.js → webpack-a0662b55edcc1ea3.js} +1 -1
- khoj/interface/compiled/_next/static/css/2d097a35da6bfe8d.css +1 -0
- khoj/interface/compiled/_next/static/css/592ca99f5122e75a.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/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/conversation/anthropic/utils.py +15 -1
- khoj/processor/conversation/google/utils.py +12 -1
- khoj/processor/conversation/openai/utils.py +33 -17
- khoj/processor/conversation/prompts.py +40 -21
- khoj/processor/conversation/utils.py +3 -2
- khoj/routers/api_chat.py +29 -14
- khoj/routers/helpers.py +19 -4
- khoj/utils/constants.py +17 -0
- khoj/utils/helpers.py +24 -0
- {khoj-1.30.2.dev11.dist-info → khoj-1.30.2.dev20.dist-info}/METADATA +1 -1
- {khoj-1.30.2.dev11.dist-info → khoj-1.30.2.dev20.dist-info}/RECORD +43 -43
- khoj/interface/compiled/_next/static/chunks/1210.132a7e1910006bbb.js +0 -1
- khoj/interface/compiled/_next/static/chunks/1603-859ddcf58f3ca639.js +0 -1
- khoj/interface/compiled/_next/static/css/2ff098d0815fdbc1.css +0 -1
- khoj/interface/compiled/_next/static/css/4cae6c0e5c72fb2d.css +0 -1
- /khoj/interface/compiled/_next/static/{ZwZ17DepweYHu7DUF8zml → oPcgzExVhSkog0L9tEf2n}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{ZwZ17DepweYHu7DUF8zml → oPcgzExVhSkog0L9tEf2n}/_ssgManifest.js +0 -0
- {khoj-1.30.2.dev11.dist-info → khoj-1.30.2.dev20.dist-info}/WHEEL +0 -0
- {khoj-1.30.2.dev11.dist-info → khoj-1.30.2.dev20.dist-info}/entry_points.txt +0 -0
- {khoj-1.30.2.dev11.dist-info → khoj-1.30.2.dev20.dist-info}/licenses/LICENSE +0 -0
khoj/routers/api_chat.py
CHANGED
@@ -667,27 +667,37 @@ async def chat(
|
|
667
667
|
finally:
|
668
668
|
yield event_delimiter
|
669
669
|
|
670
|
-
async def send_llm_response(response: str):
|
670
|
+
async def send_llm_response(response: str, usage: dict = None):
|
671
|
+
# Send Chat Response
|
671
672
|
async for result in send_event(ChatEvent.START_LLM_RESPONSE, ""):
|
672
673
|
yield result
|
673
674
|
async for result in send_event(ChatEvent.MESSAGE, response):
|
674
675
|
yield result
|
675
676
|
async for result in send_event(ChatEvent.END_LLM_RESPONSE, ""):
|
676
677
|
yield result
|
678
|
+
# Send Usage Metadata once llm interactions are complete
|
679
|
+
if usage:
|
680
|
+
async for event in send_event(ChatEvent.USAGE, usage):
|
681
|
+
yield event
|
682
|
+
async for result in send_event(ChatEvent.END_RESPONSE, ""):
|
683
|
+
yield result
|
677
684
|
|
678
685
|
def collect_telemetry():
|
679
686
|
# Gather chat response telemetry
|
680
687
|
nonlocal chat_metadata
|
681
688
|
latency = time.perf_counter() - start_time
|
682
689
|
cmd_set = set([cmd.value for cmd in conversation_commands])
|
690
|
+
cost = (tracer.get("usage", {}) or {}).get("cost", 0)
|
683
691
|
chat_metadata = chat_metadata or {}
|
684
692
|
chat_metadata["conversation_command"] = cmd_set
|
685
693
|
chat_metadata["agent"] = conversation.agent.slug if conversation and conversation.agent else None
|
686
694
|
chat_metadata["latency"] = f"{latency:.3f}"
|
687
695
|
chat_metadata["ttft_latency"] = f"{ttft:.3f}"
|
696
|
+
chat_metadata["usage"] = tracer.get("usage")
|
688
697
|
|
689
698
|
logger.info(f"Chat response time to first token: {ttft:.3f} seconds")
|
690
699
|
logger.info(f"Chat response total time: {latency:.3f} seconds")
|
700
|
+
logger.info(f"Chat response cost: ${cost:.5f}")
|
691
701
|
update_telemetry_state(
|
692
702
|
request=request,
|
693
703
|
telemetry_type="api",
|
@@ -699,7 +709,7 @@ async def chat(
|
|
699
709
|
)
|
700
710
|
|
701
711
|
if is_query_empty(q):
|
702
|
-
async for result in send_llm_response("Please ask your query to get started."):
|
712
|
+
async for result in send_llm_response("Please ask your query to get started.", tracer.get("usage")):
|
703
713
|
yield result
|
704
714
|
return
|
705
715
|
|
@@ -713,7 +723,7 @@ async def chat(
|
|
713
723
|
create_new=body.create_new,
|
714
724
|
)
|
715
725
|
if not conversation:
|
716
|
-
async for result in send_llm_response(f"Conversation {conversation_id} not found"):
|
726
|
+
async for result in send_llm_response(f"Conversation {conversation_id} not found", tracer.get("usage")):
|
717
727
|
yield result
|
718
728
|
return
|
719
729
|
conversation_id = conversation.id
|
@@ -777,7 +787,7 @@ async def chat(
|
|
777
787
|
await conversation_command_rate_limiter.update_and_check_if_valid(request, cmd)
|
778
788
|
q = q.replace(f"/{cmd.value}", "").strip()
|
779
789
|
except HTTPException as e:
|
780
|
-
async for result in send_llm_response(str(e.detail)):
|
790
|
+
async for result in send_llm_response(str(e.detail), tracer.get("usage")):
|
781
791
|
yield result
|
782
792
|
return
|
783
793
|
|
@@ -834,7 +844,7 @@ async def chat(
|
|
834
844
|
agent_has_entries = await EntryAdapters.aagent_has_entries(agent)
|
835
845
|
if len(file_filters) == 0 and not agent_has_entries:
|
836
846
|
response_log = "No files selected for summarization. Please add files using the section on the left."
|
837
|
-
async for result in send_llm_response(response_log):
|
847
|
+
async for result in send_llm_response(response_log, tracer.get("usage")):
|
838
848
|
yield result
|
839
849
|
else:
|
840
850
|
async for response in generate_summary_from_files(
|
@@ -853,7 +863,7 @@ async def chat(
|
|
853
863
|
else:
|
854
864
|
if isinstance(response, str):
|
855
865
|
response_log = response
|
856
|
-
async for result in send_llm_response(response):
|
866
|
+
async for result in send_llm_response(response, tracer.get("usage")):
|
857
867
|
yield result
|
858
868
|
|
859
869
|
await sync_to_async(save_to_conversation_log)(
|
@@ -880,7 +890,7 @@ async def chat(
|
|
880
890
|
conversation_config = await ConversationAdapters.aget_default_conversation_config(user)
|
881
891
|
model_type = conversation_config.model_type
|
882
892
|
formatted_help = help_message.format(model=model_type, version=state.khoj_version, device=get_device())
|
883
|
-
async for result in send_llm_response(formatted_help):
|
893
|
+
async for result in send_llm_response(formatted_help, tracer.get("usage")):
|
884
894
|
yield result
|
885
895
|
return
|
886
896
|
# Adding specification to search online specifically on khoj.dev pages.
|
@@ -895,7 +905,7 @@ async def chat(
|
|
895
905
|
except Exception as e:
|
896
906
|
logger.error(f"Error scheduling task {q} for {user.email}: {e}")
|
897
907
|
error_message = f"Unable to create automation. Ensure the automation doesn't already exist."
|
898
|
-
async for result in send_llm_response(error_message):
|
908
|
+
async for result in send_llm_response(error_message, tracer.get("usage")):
|
899
909
|
yield result
|
900
910
|
return
|
901
911
|
|
@@ -916,7 +926,7 @@ async def chat(
|
|
916
926
|
raw_query_files=raw_query_files,
|
917
927
|
tracer=tracer,
|
918
928
|
)
|
919
|
-
async for result in send_llm_response(llm_response):
|
929
|
+
async for result in send_llm_response(llm_response, tracer.get("usage")):
|
920
930
|
yield result
|
921
931
|
return
|
922
932
|
|
@@ -963,7 +973,7 @@ async def chat(
|
|
963
973
|
yield result
|
964
974
|
|
965
975
|
if conversation_commands == [ConversationCommand.Notes] and not await EntryAdapters.auser_has_entries(user):
|
966
|
-
async for result in send_llm_response(f"{no_entries_found.format()}"):
|
976
|
+
async for result in send_llm_response(f"{no_entries_found.format()}", tracer.get("usage")):
|
967
977
|
yield result
|
968
978
|
return
|
969
979
|
|
@@ -1105,7 +1115,7 @@ async def chat(
|
|
1105
1115
|
"detail": improved_image_prompt,
|
1106
1116
|
"image": None,
|
1107
1117
|
}
|
1108
|
-
async for result in send_llm_response(json.dumps(content_obj)):
|
1118
|
+
async for result in send_llm_response(json.dumps(content_obj), tracer.get("usage")):
|
1109
1119
|
yield result
|
1110
1120
|
return
|
1111
1121
|
|
@@ -1132,7 +1142,7 @@ async def chat(
|
|
1132
1142
|
"inferredQueries": [improved_image_prompt],
|
1133
1143
|
"image": generated_image,
|
1134
1144
|
}
|
1135
|
-
async for result in send_llm_response(json.dumps(content_obj)):
|
1145
|
+
async for result in send_llm_response(json.dumps(content_obj), tracer.get("usage")):
|
1136
1146
|
yield result
|
1137
1147
|
return
|
1138
1148
|
|
@@ -1166,7 +1176,7 @@ async def chat(
|
|
1166
1176
|
diagram_description = excalidraw_diagram_description
|
1167
1177
|
else:
|
1168
1178
|
error_message = "Failed to generate diagram. Please try again later."
|
1169
|
-
async for result in send_llm_response(error_message):
|
1179
|
+
async for result in send_llm_response(error_message, tracer.get("usage")):
|
1170
1180
|
yield result
|
1171
1181
|
|
1172
1182
|
await sync_to_async(save_to_conversation_log)(
|
@@ -1213,7 +1223,7 @@ async def chat(
|
|
1213
1223
|
tracer=tracer,
|
1214
1224
|
)
|
1215
1225
|
|
1216
|
-
async for result in send_llm_response(json.dumps(content_obj)):
|
1226
|
+
async for result in send_llm_response(json.dumps(content_obj), tracer.get("usage")):
|
1217
1227
|
yield result
|
1218
1228
|
return
|
1219
1229
|
|
@@ -1252,6 +1262,11 @@ async def chat(
|
|
1252
1262
|
if item is None:
|
1253
1263
|
async for result in send_event(ChatEvent.END_LLM_RESPONSE, ""):
|
1254
1264
|
yield result
|
1265
|
+
# Send Usage Metadata once llm interactions are complete
|
1266
|
+
async for event in send_event(ChatEvent.USAGE, tracer.get("usage")):
|
1267
|
+
yield event
|
1268
|
+
async for result in send_event(ChatEvent.END_RESPONSE, ""):
|
1269
|
+
yield result
|
1255
1270
|
logger.debug("Finished streaming response")
|
1256
1271
|
return
|
1257
1272
|
if not connection_alive or not continue_stream:
|
khoj/routers/helpers.py
CHANGED
@@ -753,7 +753,11 @@ async def generate_excalidraw_diagram(
|
|
753
753
|
yield None, None
|
754
754
|
return
|
755
755
|
|
756
|
-
|
756
|
+
scratchpad = excalidraw_diagram_description.get("scratchpad")
|
757
|
+
|
758
|
+
inferred_queries = f"Instruction: {better_diagram_description_prompt}\n\nScratchpad: {scratchpad}"
|
759
|
+
|
760
|
+
yield inferred_queries, excalidraw_diagram_description.get("elements")
|
757
761
|
|
758
762
|
|
759
763
|
async def generate_better_diagram_description(
|
@@ -822,7 +826,7 @@ async def generate_excalidraw_diagram_from_description(
|
|
822
826
|
user: KhojUser = None,
|
823
827
|
agent: Agent = None,
|
824
828
|
tracer: dict = {},
|
825
|
-
) -> str:
|
829
|
+
) -> Dict[str, Any]:
|
826
830
|
personality_context = (
|
827
831
|
prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else ""
|
828
832
|
)
|
@@ -838,10 +842,18 @@ async def generate_excalidraw_diagram_from_description(
|
|
838
842
|
)
|
839
843
|
raw_response = clean_json(raw_response)
|
840
844
|
try:
|
845
|
+
# Expect response to have `elements` and `scratchpad` keys
|
841
846
|
response: Dict[str, str] = json.loads(raw_response)
|
847
|
+
if (
|
848
|
+
not response
|
849
|
+
or not isinstance(response, Dict)
|
850
|
+
or not response.get("elements")
|
851
|
+
or not response.get("scratchpad")
|
852
|
+
):
|
853
|
+
raise AssertionError(f"Invalid response for generating Excalidraw diagram: {response}")
|
842
854
|
except Exception:
|
843
855
|
raise AssertionError(f"Invalid response for generating Excalidraw diagram: {raw_response}")
|
844
|
-
if not response or not isinstance(response, List) or not isinstance(response[0], Dict):
|
856
|
+
if not response or not isinstance(response["elements"], List) or not isinstance(response["elements"][0], Dict):
|
845
857
|
# TODO Some additional validation here that it's a valid Excalidraw diagram
|
846
858
|
raise AssertionError(f"Invalid response for improving diagram description: {response}")
|
847
859
|
|
@@ -1770,6 +1782,7 @@ Manage your automations [here](/automations).
|
|
1770
1782
|
class MessageProcessor:
|
1771
1783
|
def __init__(self):
|
1772
1784
|
self.references = {}
|
1785
|
+
self.usage = {}
|
1773
1786
|
self.raw_response = ""
|
1774
1787
|
|
1775
1788
|
def convert_message_chunk_to_json(self, raw_chunk: str) -> Dict[str, Any]:
|
@@ -1793,6 +1806,8 @@ class MessageProcessor:
|
|
1793
1806
|
chunk_type = ChatEvent(chunk["type"])
|
1794
1807
|
if chunk_type == ChatEvent.REFERENCES:
|
1795
1808
|
self.references = chunk["data"]
|
1809
|
+
elif chunk_type == ChatEvent.USAGE:
|
1810
|
+
self.usage = chunk["data"]
|
1796
1811
|
elif chunk_type == ChatEvent.MESSAGE:
|
1797
1812
|
chunk_data = chunk["data"]
|
1798
1813
|
if isinstance(chunk_data, dict):
|
@@ -1837,7 +1852,7 @@ async def read_chat_stream(response_iterator: AsyncGenerator[str, None]) -> Dict
|
|
1837
1852
|
if buffer:
|
1838
1853
|
processor.process_message_chunk(buffer)
|
1839
1854
|
|
1840
|
-
return {"response": processor.raw_response, "references": processor.references}
|
1855
|
+
return {"response": processor.raw_response, "references": processor.references, "usage": processor.usage}
|
1841
1856
|
|
1842
1857
|
|
1843
1858
|
def get_user_config(user: KhojUser, request: Request, is_detailed: bool = False):
|
khoj/utils/constants.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
from pathlib import Path
|
2
|
+
from typing import Dict
|
2
3
|
|
3
4
|
app_root_directory = Path(__file__).parent.parent.parent
|
4
5
|
web_directory = app_root_directory / "khoj/interface/web/"
|
@@ -31,3 +32,19 @@ default_config = {
|
|
31
32
|
"image": {"encoder": "sentence-transformers/clip-ViT-B-32", "model_directory": "~/.khoj/search/image/"},
|
32
33
|
},
|
33
34
|
}
|
35
|
+
|
36
|
+
model_to_cost: Dict[str, Dict[str, float]] = {
|
37
|
+
# OpenAI Pricing: https://openai.com/api/pricing/
|
38
|
+
"gpt-4o": {"input": 2.50, "output": 10.00},
|
39
|
+
"gpt-4o-mini": {"input": 0.15, "output": 0.60},
|
40
|
+
"o1-preview": {"input": 15.0, "output": 60.00},
|
41
|
+
"o1-mini": {"input": 3.0, "output": 12.0},
|
42
|
+
# Gemini Pricing: https://ai.google.dev/pricing
|
43
|
+
"gemini-1.5-flash": {"input": 0.075, "output": 0.30},
|
44
|
+
"gemini-1.5-flash-002": {"input": 0.075, "output": 0.30},
|
45
|
+
"gemini-1.5-pro": {"input": 1.25, "output": 5.00},
|
46
|
+
"gemini-1.5-pro-002": {"input": 1.25, "output": 5.00},
|
47
|
+
# Anthropic Pricing: https://www.anthropic.com/pricing#anthropic-api_
|
48
|
+
"claude-3-5-sonnet-20241022": {"input": 3.0, "output": 15.0},
|
49
|
+
"claude-3-5-haiku-20241022": {"input": 1.0, "output": 5.0},
|
50
|
+
}
|
khoj/utils/helpers.py
CHANGED
@@ -540,3 +540,27 @@ def get_country_code_from_timezone(tz: str) -> str:
|
|
540
540
|
def get_country_name_from_timezone(tz: str) -> str:
|
541
541
|
"""Get country name from timezone"""
|
542
542
|
return country_names.get(get_country_code_from_timezone(tz), "United States")
|
543
|
+
|
544
|
+
|
545
|
+
def get_cost_of_chat_message(model_name: str, input_tokens: int = 0, output_tokens: int = 0, prev_cost: float = 0.0):
|
546
|
+
"""
|
547
|
+
Calculate cost of chat message based on input and output tokens
|
548
|
+
"""
|
549
|
+
|
550
|
+
# Calculate cost of input and output tokens. Costs are per million tokens
|
551
|
+
input_cost = constants.model_to_cost.get(model_name, {}).get("input", 0) * (input_tokens / 1e6)
|
552
|
+
output_cost = constants.model_to_cost.get(model_name, {}).get("output", 0) * (output_tokens / 1e6)
|
553
|
+
|
554
|
+
return input_cost + output_cost + prev_cost
|
555
|
+
|
556
|
+
|
557
|
+
def get_chat_usage_metrics(model_name: str, input_tokens: int = 0, output_tokens: int = 0, usage: dict = {}):
|
558
|
+
"""
|
559
|
+
Get usage metrics for chat message based on input and output tokens
|
560
|
+
"""
|
561
|
+
prev_usage = usage or {"input_tokens": 0, "output_tokens": 0, "cost": 0.0}
|
562
|
+
return {
|
563
|
+
"input_tokens": prev_usage["input_tokens"] + input_tokens,
|
564
|
+
"output_tokens": prev_usage["output_tokens"] + output_tokens,
|
565
|
+
"cost": get_cost_of_chat_message(model_name, input_tokens, output_tokens, prev_cost=prev_usage["cost"]),
|
566
|
+
}
|
@@ -111,21 +111,19 @@ khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvt
|
|
111
111
|
khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
|
112
112
|
khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
|
113
113
|
khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
|
114
|
-
khoj/interface/compiled/index.html,sha256=
|
115
|
-
khoj/interface/compiled/index.txt,sha256=
|
114
|
+
khoj/interface/compiled/index.html,sha256=1yeMdWMNSNjZrlFUIX_iBxQwxPauj9Q3U7_rjNGS4vY,12153
|
115
|
+
khoj/interface/compiled/index.txt,sha256=o63URVnv2EAOWTfmPY3kZhwZ24t0RuYrSbrV6jJpMqw,5609
|
116
116
|
khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
|
117
117
|
khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
|
118
118
|
khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
|
119
119
|
khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
|
120
120
|
khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
|
121
121
|
khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
|
122
|
-
khoj/interface/compiled/404/index.html,sha256=
|
123
|
-
khoj/interface/compiled/_next/static/
|
124
|
-
khoj/interface/compiled/_next/static/ZwZ17DepweYHu7DUF8zml/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
125
|
-
khoj/interface/compiled/_next/static/chunks/1210.132a7e1910006bbb.js,sha256=2dJueIfOg5qlQdanOM9HrgwcfrUXCD57bfd8Iv7iJcU,2104
|
122
|
+
khoj/interface/compiled/404/index.html,sha256=uakz5UrBwg_sFzj2MMPEu-U3Shr_YbqXd4zoKJ49z_A,12023
|
123
|
+
khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js,sha256=yOh1qtmNHPpDd6vR7CJOXSbq8M_slPujdTR_OXxaEYU,2121
|
126
124
|
khoj/interface/compiled/_next/static/chunks/1279-4cb23143aa2c0228.js,sha256=zHMz-ixoNkLNUjN2-C48RGEyMs2mI9wsNRCczXnzIvQ,45616
|
127
125
|
khoj/interface/compiled/_next/static/chunks/1459.690bf20e7d7b7090.js,sha256=z-ruZPxF_Z3ef_WOThd9Ox36AMhxaW3znizVivNnA34,34239
|
128
|
-
khoj/interface/compiled/_next/static/chunks/1603-
|
126
|
+
khoj/interface/compiled/_next/static/chunks/1603-1407afe510f0145a.js,sha256=p9EvJACAEa6gwEA9q4hYpwkDuSBoVk1Lvl0PKNVtVHw,73915
|
129
127
|
khoj/interface/compiled/_next/static/chunks/1970-e1935a1d0930a7c5.js,sha256=3hp_EoSjfrivYwGsLAZd22tJdGVnLrld6vV94-ABKU4,29801
|
130
128
|
khoj/interface/compiled/_next/static/chunks/216-b2e4344315b88832.js,sha256=Sz0t6FNM1oJXke42354nmPFREqb14BXDJO4AsqKOtAY,238786
|
131
129
|
khoj/interface/compiled/_next/static/chunks/3072-be830e4f8412b9d2.js,sha256=BBUjJdE8AgmhoF6PA8WPC8d-01ppYgcZpjNyTGeayRE,35457
|
@@ -150,30 +148,30 @@ khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256
|
|
150
148
|
khoj/interface/compiled/_next/static/chunks/main-1ea5c2e0fdef4626.js,sha256=8_u87PGI3PahFbDfGWGvpD-a18J7X7ChUqWIeqxVq7g,111061
|
151
149
|
khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
|
152
150
|
khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
153
|
-
khoj/interface/compiled/_next/static/chunks/webpack-
|
151
|
+
khoj/interface/compiled/_next/static/chunks/webpack-a0662b55edcc1ea3.js,sha256=ZY1ZOYet2gTnrSsfr9BM-QUScgRBjiAobGxWGUNT_Cg,4039
|
154
152
|
khoj/interface/compiled/_next/static/chunks/app/layout-86561d2fac35a91a.js,sha256=2EWsyKE2kcC5uDvsOtgG5OP0hHCX8sCph4NqhUU2rCg,442
|
155
|
-
khoj/interface/compiled/_next/static/chunks/app/page-
|
153
|
+
khoj/interface/compiled/_next/static/chunks/app/page-4a3c49c5e996cc40.js,sha256=6yWpNUFJZtRQ1D8KEtiFHUX6nSnyw_5j5RCLEJykpd4,33219
|
156
154
|
khoj/interface/compiled/_next/static/chunks/app/_not-found/page-cfba071f5a657256.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
|
157
155
|
khoj/interface/compiled/_next/static/chunks/app/agents/layout-e9838b642913a071.js,sha256=w3vWDf7m2_VG7q98_KGAWbCO06RI7iqFYsb4nDqGUDw,372
|
158
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/page-
|
156
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/page-b086c9b0aa5a3833.js,sha256=HgQImDHRNqLWrd1N5uzBcZVu5owQKwvpO-aNoaARpH4,11754
|
159
157
|
khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f1b79a2c67af0b4.js,sha256=MvPp1IfxmpfRaT4XDDpj-l6F4CV-loeGqi315QYXKZw,5143
|
160
|
-
khoj/interface/compiled/_next/static/chunks/app/automations/page-
|
158
|
+
khoj/interface/compiled/_next/static/chunks/app/automations/page-697a2d415e11a872.js,sha256=dXCTbZkLZaI12_YIWMgmvjr8kIBvI9GFKe95XC9C4-I,35343
|
161
159
|
khoj/interface/compiled/_next/static/chunks/app/chat/layout-b0e7ff4baa3b5265.js,sha256=a-Qv2nHUrCa1gIs4Qo5txnOlhhQessAdcnAhhjaN3ag,374
|
162
|
-
khoj/interface/compiled/_next/static/chunks/app/chat/page-
|
160
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/page-461e26fcb7578d39.js,sha256=EDvD-AFs_OBDRGefTi08x9G6WuVsaaM57fn1FQknsz0,7069
|
163
161
|
khoj/interface/compiled/_next/static/chunks/app/search/layout-ea6b73fdaf9b24ca.js,sha256=mBgNUjaTBNgIKOpZj722mh1ojg1CNIYRBPiupStSS6s,165
|
164
|
-
khoj/interface/compiled/_next/static/chunks/app/search/page-
|
162
|
+
khoj/interface/compiled/_next/static/chunks/app/search/page-9013658bebfc3d17.js,sha256=ufxcLuHLFf2IoGpU1sBp64ldmX_otBE2HJ22LULJJW8,6957
|
165
163
|
khoj/interface/compiled/_next/static/chunks/app/settings/layout-1f4d76a8b09517b1.js,sha256=gmAaWa1vNym-LKxvESq4b4PRxJ2zi7slSXVTv3aadhE,5347
|
166
|
-
khoj/interface/compiled/_next/static/chunks/app/settings/page-
|
164
|
+
khoj/interface/compiled/_next/static/chunks/app/settings/page-41eb536497bb544a.js,sha256=JjNA0NKuJ2QiMgKlFOPlfGCvggPl7DzPduRyQrDAqDg,32243
|
167
165
|
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-cf7445cf0326bda3.js,sha256=W3axh1K4y-pLSXcXogLl4qLKXr5BZLY1uA7JfSWp5TU,373
|
168
|
-
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-
|
166
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-6a68ac7e227b34e7.js,sha256=4mT5YSFDEsfOZzC2A1l9K19DkAQJUv_gc_is0sgb6so,4374
|
169
167
|
khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
|
170
168
|
khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
171
169
|
khoj/interface/compiled/_next/static/css/0e9d53dcd7f11342.css,sha256=52_LSJ59Vwm1p2UpcDXEvq99pTjz2sW4EjF5iKf-dzs,2622
|
172
170
|
khoj/interface/compiled/_next/static/css/1a4038cc4acc8ee4.css,sha256=-DxhDuhlUAQ3m_90PhhOWP5xHO-6ET5j0IhlK7_3cR4,3058882
|
173
171
|
khoj/interface/compiled/_next/static/css/1f293605f2871853.css,sha256=G2b3Wx4e0DRBWSdNU20ivCChZI5HBzvPYUVVIdTRjLc,26590
|
174
|
-
khoj/interface/compiled/_next/static/css/
|
172
|
+
khoj/interface/compiled/_next/static/css/2d097a35da6bfe8d.css,sha256=Px3pPL_D-UjBJEghSLIchKux1WSch40GQHPv60qZEC8,8449
|
175
173
|
khoj/interface/compiled/_next/static/css/3cf13271869a4aeb.css,sha256=sGjJTeMeN6wbQF4OCPgWYgJmSLLSHyzIH2rSVstWx7k,1857
|
176
|
-
khoj/interface/compiled/_next/static/css/
|
174
|
+
khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
|
177
175
|
khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
|
178
176
|
khoj/interface/compiled/_next/static/css/80bd6301fc657983.css,sha256=T7_aQHcWpQBQLKadauHNzjYGw713FtRNTlUqmJjsL6I,1634
|
179
177
|
khoj/interface/compiled/_next/static/media/5455839c73f146e7-s.p.woff2,sha256=BUeNjYxyX7Bu76aNlJrZtW3PwYgcH-kp8syFdODZoyc,35788
|
@@ -248,8 +246,10 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
|
|
248
246
|
khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
|
249
247
|
khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
|
250
248
|
khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
|
251
|
-
khoj/interface/compiled/
|
252
|
-
khoj/interface/compiled/
|
249
|
+
khoj/interface/compiled/_next/static/oPcgzExVhSkog0L9tEf2n/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
|
250
|
+
khoj/interface/compiled/_next/static/oPcgzExVhSkog0L9tEf2n/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
251
|
+
khoj/interface/compiled/agents/index.html,sha256=7TSMxD7JnZ34QJwblpbImlv1V1oCufbTh76E5e-G4h8,12963
|
252
|
+
khoj/interface/compiled/agents/index.txt,sha256=fKGky4hjS5kwKkSclmKVUGJuO8eIkpGthnQ82DHXDWQ,6176
|
253
253
|
khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
|
254
254
|
khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
|
255
255
|
khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
|
@@ -260,16 +260,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
|
|
260
260
|
khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
|
261
261
|
khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
|
262
262
|
khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
|
263
|
-
khoj/interface/compiled/automations/index.html,sha256=
|
264
|
-
khoj/interface/compiled/automations/index.txt,sha256=
|
265
|
-
khoj/interface/compiled/chat/index.html,sha256=
|
266
|
-
khoj/interface/compiled/chat/index.txt,sha256=
|
267
|
-
khoj/interface/compiled/search/index.html,sha256=
|
268
|
-
khoj/interface/compiled/search/index.txt,sha256=
|
269
|
-
khoj/interface/compiled/settings/index.html,sha256=
|
270
|
-
khoj/interface/compiled/settings/index.txt,sha256=
|
271
|
-
khoj/interface/compiled/share/chat/index.html,sha256=
|
272
|
-
khoj/interface/compiled/share/chat/index.txt,sha256=
|
263
|
+
khoj/interface/compiled/automations/index.html,sha256=HJ6QNah77Z0fW1qOsnj40tbhdPGJsV7I96foV5zEKDM,30630
|
264
|
+
khoj/interface/compiled/automations/index.txt,sha256=QE3o3S1dUzwZlI_a2Iu1dL3ogg9cQHOQgPYqdC8j7kQ,5498
|
265
|
+
khoj/interface/compiled/chat/index.html,sha256=u2MKfINUEDvsXNh6lIm5sYT_gKnwdwM6rxag69q_qpE,13854
|
266
|
+
khoj/interface/compiled/chat/index.txt,sha256=T9ljt4sYPNN4I280WQvduDZ0Bts6c85V_ZMOyWxjvpc,6586
|
267
|
+
khoj/interface/compiled/search/index.html,sha256=yfRjGDYmaSwHqYWEMjfM69uIlwKQMJ1PmZC9SC-loyU,30158
|
268
|
+
khoj/interface/compiled/search/index.txt,sha256=C1agS8OIBIZdSpoRbtUrMT6YwoeYTdn41D5hL5PL5zw,5254
|
269
|
+
khoj/interface/compiled/settings/index.html,sha256=GHAPq8HjofiTj95imkaqu1UamFdbHduHb2MQ37KV9fU,12828
|
270
|
+
khoj/interface/compiled/settings/index.txt,sha256=sskOBn533nyE7h_Dw8Ncht8kJorvGDyMX9WVJ5c6scs,6076
|
271
|
+
khoj/interface/compiled/share/chat/index.html,sha256=Sqf11d4RIhixhowavSDMIo33KR2ktj1K6uosG1y8I4A,15151
|
272
|
+
khoj/interface/compiled/share/chat/index.txt,sha256=CdzN68Xu7NI8ONx80_uI2vANhnrAeBLMOGjYA5t3z7w,7383
|
273
273
|
khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
|
274
274
|
khoj/interface/email/magic_link.html,sha256=EoGKQucfPj3xQrWXhSZAzPFOYCHF_ZX94TWCd1XHl1M,941
|
275
275
|
khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
|
@@ -320,21 +320,21 @@ khoj/processor/content/pdf/pdf_to_entries.py,sha256=GQUvab61okhV9_DK0g2MCrMq8wKp
|
|
320
320
|
khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
321
321
|
khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
|
322
322
|
khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
323
|
-
khoj/processor/conversation/prompts.py,sha256=
|
324
|
-
khoj/processor/conversation/utils.py,sha256=
|
323
|
+
khoj/processor/conversation/prompts.py,sha256=nSaaXWNCGk7x3gL2aJrT2N-E640l7te_xfoEUQI3WqE,50150
|
324
|
+
khoj/processor/conversation/utils.py,sha256=ZbWD43lgEhiWRo9uDmghkR1VHvMNVhk6RXZ5fKzfl2o,28545
|
325
325
|
khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
326
326
|
khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=8w7oSTBIxcZa6y03Zo2nuQFa2WMiazwK_qfO2q_O-6c,8618
|
327
|
-
khoj/processor/conversation/anthropic/utils.py,sha256=
|
327
|
+
khoj/processor/conversation/anthropic/utils.py,sha256=dMhtKzzPv2-PkuxLpaqKlejrFA0zz_mtin4c12m1jF4,7309
|
328
328
|
khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
329
329
|
khoj/processor/conversation/google/gemini_chat.py,sha256=MABG3OAqfz-DDp6sHbkHcyM3VTevPOUV6x3iCB__mcc,8819
|
330
|
-
khoj/processor/conversation/google/utils.py,sha256
|
330
|
+
khoj/processor/conversation/google/utils.py,sha256=HOgnd5JY4lr9dUdYX0_IvUs_c1EY7RxV93CyRoiyJ8k,10833
|
331
331
|
khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
332
332
|
khoj/processor/conversation/offline/chat_model.py,sha256=SCkloMOcQlC01yE-mYOU_hF5efpq_sDpaOYK6aYxN_c,10941
|
333
333
|
khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
|
334
334
|
khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
|
335
335
|
khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
336
336
|
khoj/processor/conversation/openai/gpt.py,sha256=IYv1PAiO1KaD5hCxWKQfzfSBRYR7seMP_kfofuLrexQ,8104
|
337
|
-
khoj/processor/conversation/openai/utils.py,sha256=
|
337
|
+
khoj/processor/conversation/openai/utils.py,sha256=tCg5I3EiQofxbg-V5Zmqz8HGlVFLGxI046Fl77n_aRE,7576
|
338
338
|
khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
|
339
339
|
khoj/processor/image/generate.py,sha256=i5J51AwlMZbdlHHov-_MAw9bYgdVYmGgFjCYWDfx02s,9120
|
340
340
|
khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -345,14 +345,14 @@ khoj/processor/tools/run_code.py,sha256=i9ce53dw0y5ZNhPorRNYJieIKw6eyrZQX0ABDrWi
|
|
345
345
|
khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
346
346
|
khoj/routers/api.py,sha256=Z-0MqhlbhxR-palz_Kl3CqsC8O91n-xmgj8JNqQ8lv0,28495
|
347
347
|
khoj/routers/api_agents.py,sha256=vHPruCjlQxGBdm0lcmymEb9-aAELqbOplqh21WwD0DQ,9699
|
348
|
-
khoj/routers/api_chat.py,sha256=
|
348
|
+
khoj/routers/api_chat.py,sha256=hqchX_kKcdeMpOxB2EDftyzk8lsRrUGnTtoN4DqBEoU,50400
|
349
349
|
khoj/routers/api_content.py,sha256=WNlB6lVwRW8hHDthO2HypbpPvqrqt9rTU5oMRNknpMU,21070
|
350
350
|
khoj/routers/api_model.py,sha256=KDsxNwHspC94eTcv6l3ehr773EOvgc670UnZLE1WZ4o,3642
|
351
351
|
khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
|
352
352
|
khoj/routers/api_subscription.py,sha256=J6xZNZDdOA71vCfethlPfAyfvRBq4HGCBpbsOZ9CWj0,5333
|
353
353
|
khoj/routers/auth.py,sha256=HO54PR-BkWA_iJIktEobUrObcXVYG-00jpnIcEVdR5s,6564
|
354
354
|
khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
|
355
|
-
khoj/routers/helpers.py,sha256=
|
355
|
+
khoj/routers/helpers.py,sha256=PY14ukbc7pzl_8p2j2xySRRg755Ll_QHb2iV64dOlBQ,82368
|
356
356
|
khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
|
357
357
|
khoj/routers/research.py,sha256=SczFMS9a8_Wxhh3n_Zt9CJ-zZugBDAd_WmiZGFa6RR8,16117
|
358
358
|
khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
|
@@ -368,17 +368,17 @@ khoj/search_type/text_search.py,sha256=PZzJVCXpeBM795SIqiAKXAxgnCp1NIRiVikm040r1
|
|
368
368
|
khoj/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
369
369
|
khoj/utils/cli.py,sha256=EA7IvWAInUIll8YFTOpQtqLtCQXwphfHi5rJ2TKAdSQ,3757
|
370
370
|
khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
|
371
|
-
khoj/utils/constants.py,sha256=
|
371
|
+
khoj/utils/constants.py,sha256=Icw4vD_d0rlk2IXi5oqbLVlUtFQYw8BtV7LEIerimjU,2074
|
372
372
|
khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
|
373
|
-
khoj/utils/helpers.py,sha256=
|
373
|
+
khoj/utils/helpers.py,sha256=8Z20fl7EVOHyGCInQzt8DPV-K5dwv-fCogm0u03XOEI,21322
|
374
374
|
khoj/utils/initialization.py,sha256=nJtqPUv52SPA6sPHn0_vs1uSBdDihX25Dvvagu81Xbs,13490
|
375
375
|
khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
|
376
376
|
khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
|
377
377
|
khoj/utils/rawconfig.py,sha256=bQ_MGbBzYt6ZUIsHUwZjaHKDLh6GQ7h-sENkv3fyVbQ,5028
|
378
378
|
khoj/utils/state.py,sha256=KtUEIKAZdGGN_Qr58RS1pgcywgSafun8YIXx-YEclAY,1645
|
379
379
|
khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
|
380
|
-
khoj-1.30.2.
|
381
|
-
khoj-1.30.2.
|
382
|
-
khoj-1.30.2.
|
383
|
-
khoj-1.30.2.
|
384
|
-
khoj-1.30.2.
|
380
|
+
khoj-1.30.2.dev20.dist-info/METADATA,sha256=OtIaLUAJjWVqkauPEFWBhip0ydB-IFi0Ntbm5Bv9pf8,7120
|
381
|
+
khoj-1.30.2.dev20.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
382
|
+
khoj-1.30.2.dev20.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
|
383
|
+
khoj-1.30.2.dev20.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
384
|
+
khoj-1.30.2.dev20.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1210],{51210:function(e,t,i){i.r(t),i.d(t,{default:function(){return f}});var a=i(57437),l=i(2265),n=i(57818),d=i(60266),r=i(50495),s=i(10077),o=i(46613);let c=(0,n.default)(async()=>(await Promise.resolve().then(i.t.bind(i,60266,23))).Excalidraw,{loadableGenerated:{webpack:()=>[60266]},ssr:!1});function f(e){let[t,i]=(0,l.useState)([]),[n,f]=(0,l.useState)(!1),u=e=>void 0!==e.x&&void 0!==e.y&&void 0!==e.id&&void 0!==e.type;return(0,l.useEffect)(()=>{onkeydown=n?e=>{"Escape"===e.key&&(f(!1),window.dispatchEvent(new Event("resize")))}:null},[n]),(0,l.useEffect)(()=>{let t=[];for(let i of e.data)u(i)&&t.push(i);let a=[];for(let e of t)if("frame"!==e.type){if("arrow"===e.type){let i=t.find(t=>{var i;return t.id===(null===(i=e.start)||void 0===i?void 0:i.id)}),l=t.find(t=>{var i;return t.id===(null===(i=e.end)||void 0===i?void 0:i.id)});i&&l&&a.push(e)}else a.push(e)}for(let e of t)if("frame"===e.type){var l;let t=null===(l=e.children)||void 0===l?void 0:l.map(e=>a.find(t=>t.id===e)),i=null==t?void 0:t.map(e=>null==e?void 0:e.id).filter(e=>void 0!==e);if(void 0===i||0===i.length)continue;a.push({...e,children:i})}i((0,d.convertToExcalidrawElements)(a))},[]),(0,a.jsx)("div",{className:"relative",children:(0,a.jsxs)("div",{className:"".concat(n?"fixed inset-0 bg-black bg-opacity-50 backdrop-blur-sm z-50 flex items-center justify-center":""),children:[(0,a.jsx)(r.z,{onClick:()=>{f(!n),window.dispatchEvent(new Event("resize"))},variant:"outline",className:"".concat(n?"absolute top-2 left-2 z-[60]":""),children:n?(0,a.jsx)(s.f,{className:"h-4 w-4"}):(0,a.jsx)(o.t,{className:"h-4 w-4"})}),(0,a.jsx)("div",{className:"\n ".concat(n?"w-[80vw] h-[80vh]":"w-full h-[500px]","\n bg-white overflow-hidden rounded-lg relative\n "),children:(0,a.jsx)(c,{initialData:{elements:t,appState:{zenModeEnabled:!0},scrollToContent:!0},theme:"dark"===localStorage.getItem("theme")?"dark":"light",validateEmbeddable:!0,renderTopRightUI:(e,t)=>(0,a.jsx)(a.Fragment,{})})})]})})}}}]);
|