khoj 1.25.1.dev12__py3-none-any.whl → 1.26.2__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/adapters/__init__.py +87 -9
- khoj/database/admin.py +16 -0
- khoj/database/migrations/0068_alter_agent_output_modes.py +24 -0
- khoj/database/migrations/0069_webscraper_serverchatsettings_web_scraper.py +89 -0
- khoj/database/models/__init__.py +78 -2
- khoj/interface/compiled/404/index.html +1 -1
- khoj/interface/compiled/_next/static/chunks/1603-fa3ee48860b9dc5c.js +1 -0
- khoj/interface/compiled/_next/static/chunks/{9417-1d158bf46d3a0dc9.js → 9417-46ed3aaa639c85ef.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{9479-563e4d61f91d5a7c.js → 9479-ea776e73f549090c.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/agents/{layout-e71c8e913cccf792.js → layout-75636ab3a413fa8e.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-f8d03847a0fa2539.js → page-88aa3042711107b7.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/{layout-8102549127db3067.js → layout-96fcf62857bf8f30.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{layout-f3e40d346da53112.js → layout-d0f0a9067427fb20.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/{layout-6f9314b0d7a26046.js → layout-a8f33dfe92f997fb.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{layout-39f03f9e32399f0f.js → layout-2df56074e42adaa0.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-dff708c71e9234cb.js → webpack-64dc39af85cd2625.js} +1 -1
- khoj/interface/compiled/_next/static/css/467a524c75e7d7c0.css +1 -0
- khoj/interface/compiled/agents/index.html +1 -1
- khoj/interface/compiled/agents/index.txt +2 -2
- khoj/interface/compiled/automations/index.html +1 -1
- khoj/interface/compiled/automations/index.txt +2 -2
- khoj/interface/compiled/chat/index.html +1 -1
- khoj/interface/compiled/chat/index.txt +2 -2
- khoj/interface/compiled/factchecker/index.html +1 -1
- khoj/interface/compiled/factchecker/index.txt +2 -2
- khoj/interface/compiled/index.html +1 -1
- khoj/interface/compiled/index.txt +2 -2
- khoj/interface/compiled/search/index.html +1 -1
- khoj/interface/compiled/search/index.txt +2 -2
- khoj/interface/compiled/settings/index.html +1 -1
- khoj/interface/compiled/settings/index.txt +3 -3
- khoj/interface/compiled/share/chat/index.html +1 -1
- khoj/interface/compiled/share/chat/index.txt +2 -2
- khoj/interface/web/assets/icons/agents.svg +1 -0
- khoj/interface/web/assets/icons/automation.svg +1 -0
- khoj/interface/web/assets/icons/chat.svg +24 -0
- khoj/interface/web/login.html +11 -22
- khoj/processor/content/images/image_to_entries.py +2 -0
- khoj/processor/content/pdf/pdf_to_entries.py +1 -1
- khoj/processor/conversation/google/utils.py +4 -0
- khoj/processor/conversation/prompts.py +1 -1
- khoj/processor/embeddings.py +1 -0
- khoj/processor/tools/online_search.py +135 -40
- khoj/routers/api_chat.py +41 -31
- khoj/routers/helpers.py +13 -11
- khoj/search_type/text_search.py +7 -2
- khoj/utils/helpers.py +50 -5
- {khoj-1.25.1.dev12.dist-info → khoj-1.26.2.dist-info}/METADATA +4 -4
- {khoj-1.25.1.dev12.dist-info → khoj-1.26.2.dist-info}/RECORD +56 -53
- khoj/interface/compiled/_next/static/chunks/1603-67a89278e2c5dbe6.js +0 -1
- khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css +0 -1
- /khoj/interface/compiled/_next/static/chunks/{9178-f208a3e6404714a9.js → 9178-899fe9a6b754ecfe.js} +0 -0
- /khoj/interface/compiled/_next/static/chunks/app/{page-421d13f70c505dd9.js → page-10a5aad6e04f3cf8.js} +0 -0
- /khoj/interface/compiled/_next/static/{CGyts-FEbV6owmPboHtLL → eim4XajTfG4ub4ft5AEkJ}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{CGyts-FEbV6owmPboHtLL → eim4XajTfG4ub4ft5AEkJ}/_ssgManifest.js +0 -0
- {khoj-1.25.1.dev12.dist-info → khoj-1.26.2.dist-info}/WHEEL +0 -0
- {khoj-1.25.1.dev12.dist-info → khoj-1.26.2.dist-info}/entry_points.txt +0 -0
- {khoj-1.25.1.dev12.dist-info → khoj-1.26.2.dist-info}/licenses/LICENSE +0 -0
khoj/routers/api_chat.py
CHANGED
@@ -3,7 +3,6 @@ import base64
|
|
3
3
|
import json
|
4
4
|
import logging
|
5
5
|
import time
|
6
|
-
import warnings
|
7
6
|
from datetime import datetime
|
8
7
|
from functools import partial
|
9
8
|
from typing import Dict, Optional
|
@@ -11,9 +10,8 @@ from urllib.parse import unquote
|
|
11
10
|
|
12
11
|
from asgiref.sync import sync_to_async
|
13
12
|
from fastapi import APIRouter, Depends, HTTPException, Request
|
14
|
-
from fastapi.requests import Request
|
15
13
|
from fastapi.responses import Response, StreamingResponse
|
16
|
-
from starlette.authentication import
|
14
|
+
from starlette.authentication import requires
|
17
15
|
|
18
16
|
from khoj.app.settings import ALLOWED_HOSTS
|
19
17
|
from khoj.database.adapters import (
|
@@ -574,7 +572,6 @@ async def chat(
|
|
574
572
|
chat_metadata: dict = {}
|
575
573
|
connection_alive = True
|
576
574
|
user: KhojUser = request.user.object
|
577
|
-
subscribed: bool = has_required_scope(request, ["premium"])
|
578
575
|
event_delimiter = "␃🔚␗"
|
579
576
|
q = unquote(q)
|
580
577
|
nonlocal conversation_id
|
@@ -641,7 +638,7 @@ async def chat(
|
|
641
638
|
request=request,
|
642
639
|
telemetry_type="api",
|
643
640
|
api="chat",
|
644
|
-
client=
|
641
|
+
client=common.client,
|
645
642
|
user_agent=request.headers.get("user-agent"),
|
646
643
|
host=request.headers.get("host"),
|
647
644
|
metadata=chat_metadata,
|
@@ -839,26 +836,34 @@ async def chat(
|
|
839
836
|
|
840
837
|
# Gather Context
|
841
838
|
## Extract Document References
|
842
|
-
compiled_references, inferred_queries, defiltered_query = [], [],
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
839
|
+
compiled_references, inferred_queries, defiltered_query = [], [], q
|
840
|
+
try:
|
841
|
+
async for result in extract_references_and_questions(
|
842
|
+
request,
|
843
|
+
meta_log,
|
844
|
+
q,
|
845
|
+
(n or 7),
|
846
|
+
d,
|
847
|
+
conversation_id,
|
848
|
+
conversation_commands,
|
849
|
+
location,
|
850
|
+
partial(send_event, ChatEvent.STATUS),
|
851
|
+
uploaded_image_url=uploaded_image_url,
|
852
|
+
agent=agent,
|
853
|
+
):
|
854
|
+
if isinstance(result, dict) and ChatEvent.STATUS in result:
|
855
|
+
yield result[ChatEvent.STATUS]
|
856
|
+
else:
|
857
|
+
compiled_references.extend(result[0])
|
858
|
+
inferred_queries.extend(result[1])
|
859
|
+
defiltered_query = result[2]
|
860
|
+
except Exception as e:
|
861
|
+
error_message = f"Error searching knowledge base: {e}. Attempting to respond without document references."
|
862
|
+
logger.error(error_message, exc_info=True)
|
863
|
+
async for result in send_event(
|
864
|
+
ChatEvent.STATUS, "Document search failed. I'll try respond without document references"
|
865
|
+
):
|
866
|
+
yield result
|
862
867
|
|
863
868
|
if not is_none_or_empty(compiled_references):
|
864
869
|
headings = "\n- " + "\n- ".join(set([c.get("compiled", c).split("\n")[0] for c in compiled_references]))
|
@@ -894,12 +899,13 @@ async def chat(
|
|
894
899
|
yield result[ChatEvent.STATUS]
|
895
900
|
else:
|
896
901
|
online_results = result
|
897
|
-
except
|
902
|
+
except Exception as e:
|
898
903
|
error_message = f"Error searching online: {e}. Attempting to respond without online results"
|
899
904
|
logger.warning(error_message)
|
900
|
-
async for result in
|
905
|
+
async for result in send_event(
|
906
|
+
ChatEvent.STATUS, "Online search failed. I'll try respond without online references"
|
907
|
+
):
|
901
908
|
yield result
|
902
|
-
return
|
903
909
|
|
904
910
|
## Gather Webpage References
|
905
911
|
if ConversationCommand.Webpage in conversation_commands:
|
@@ -928,11 +934,15 @@ async def chat(
|
|
928
934
|
webpages.append(webpage["link"])
|
929
935
|
async for result in send_event(ChatEvent.STATUS, f"**Read web pages**: {webpages}"):
|
930
936
|
yield result
|
931
|
-
except
|
937
|
+
except Exception as e:
|
932
938
|
logger.warning(
|
933
|
-
f"Error
|
939
|
+
f"Error reading webpages: {e}. Attempting to respond without webpage results",
|
934
940
|
exc_info=True,
|
935
941
|
)
|
942
|
+
async for result in send_event(
|
943
|
+
ChatEvent.STATUS, "Webpage read failed. I'll try respond without webpage references"
|
944
|
+
):
|
945
|
+
yield result
|
936
946
|
|
937
947
|
## Send Gathered References
|
938
948
|
async for result in send_event(
|
@@ -949,7 +959,7 @@ async def chat(
|
|
949
959
|
## Generate Image Output
|
950
960
|
if ConversationCommand.Image in conversation_commands:
|
951
961
|
async for result in text_to_image(
|
952
|
-
|
962
|
+
defiltered_query,
|
953
963
|
user,
|
954
964
|
meta_log,
|
955
965
|
location_data=location,
|
khoj/routers/helpers.py
CHANGED
@@ -353,13 +353,13 @@ async def aget_relevant_information_sources(
|
|
353
353
|
final_response = [ConversationCommand.Default]
|
354
354
|
else:
|
355
355
|
final_response = [ConversationCommand.General]
|
356
|
-
|
357
|
-
except Exception as e:
|
356
|
+
except Exception:
|
358
357
|
logger.error(f"Invalid response for determining relevant tools: {response}")
|
359
358
|
if len(agent_tools) == 0:
|
360
359
|
final_response = [ConversationCommand.Default]
|
361
360
|
else:
|
362
361
|
final_response = agent_tools
|
362
|
+
return final_response
|
363
363
|
|
364
364
|
|
365
365
|
async def aget_relevant_output_modes(
|
@@ -551,12 +551,14 @@ async def schedule_query(
|
|
551
551
|
raise AssertionError(f"Invalid response for scheduling query: {raw_response}")
|
552
552
|
|
553
553
|
|
554
|
-
async def extract_relevant_info(
|
554
|
+
async def extract_relevant_info(
|
555
|
+
qs: set[str], corpus: str, user: KhojUser = None, agent: Agent = None
|
556
|
+
) -> Union[str, None]:
|
555
557
|
"""
|
556
558
|
Extract relevant information for a given query from the target corpus
|
557
559
|
"""
|
558
560
|
|
559
|
-
if is_none_or_empty(corpus) or is_none_or_empty(
|
561
|
+
if is_none_or_empty(corpus) or is_none_or_empty(qs):
|
560
562
|
return None
|
561
563
|
|
562
564
|
personality_context = (
|
@@ -564,17 +566,16 @@ async def extract_relevant_info(q: str, corpus: str, user: KhojUser = None, agen
|
|
564
566
|
)
|
565
567
|
|
566
568
|
extract_relevant_information = prompts.extract_relevant_information.format(
|
567
|
-
query=
|
569
|
+
query=", ".join(qs),
|
568
570
|
corpus=corpus.strip(),
|
569
571
|
personality_context=personality_context,
|
570
572
|
)
|
571
573
|
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
)
|
574
|
+
response = await send_message_to_model_wrapper(
|
575
|
+
extract_relevant_information,
|
576
|
+
prompts.system_prompt_extract_relevant_information,
|
577
|
+
user=user,
|
578
|
+
)
|
578
579
|
return response.strip()
|
579
580
|
|
580
581
|
|
@@ -880,6 +881,7 @@ def send_message_to_model_wrapper_sync(
|
|
880
881
|
messages=truncated_messages,
|
881
882
|
api_key=api_key,
|
882
883
|
model=chat_model,
|
884
|
+
response_type=response_type,
|
883
885
|
)
|
884
886
|
else:
|
885
887
|
raise HTTPException(status_code=500, detail="Invalid conversation config")
|
khoj/search_type/text_search.py
CHANGED
@@ -3,6 +3,7 @@ import math
|
|
3
3
|
from pathlib import Path
|
4
4
|
from typing import List, Optional, Tuple, Type, Union
|
5
5
|
|
6
|
+
import requests
|
6
7
|
import torch
|
7
8
|
from asgiref.sync import sync_to_async
|
8
9
|
from sentence_transformers import util
|
@@ -231,8 +232,12 @@ def setup(
|
|
231
232
|
|
232
233
|
def cross_encoder_score(query: str, hits: List[SearchResponse], search_model_name: str) -> List[SearchResponse]:
|
233
234
|
"""Score all retrieved entries using the cross-encoder"""
|
234
|
-
|
235
|
-
|
235
|
+
try:
|
236
|
+
with timer("Cross-Encoder Predict Time", logger, state.device):
|
237
|
+
cross_scores = state.cross_encoder_model[search_model_name].predict(query, hits)
|
238
|
+
except requests.exceptions.HTTPError as e:
|
239
|
+
logger.error(f"Failed to rerank documents using the inference endpoint. Error: {e}.", exc_info=True)
|
240
|
+
cross_scores = [0.0] * len(hits)
|
236
241
|
|
237
242
|
# Convert cross-encoder scores to distances and pass in hits for reranking
|
238
243
|
for idx in range(len(cross_scores)):
|
khoj/utils/helpers.py
CHANGED
@@ -2,10 +2,12 @@ from __future__ import annotations # to avoid quoting type hints
|
|
2
2
|
|
3
3
|
import datetime
|
4
4
|
import io
|
5
|
+
import ipaddress
|
5
6
|
import logging
|
6
7
|
import os
|
7
8
|
import platform
|
8
9
|
import random
|
10
|
+
import urllib.parse
|
9
11
|
import uuid
|
10
12
|
from collections import OrderedDict
|
11
13
|
from enum import Enum
|
@@ -125,6 +127,8 @@ def get_file_type(file_type: str, file_content: bytes) -> tuple[str, str]:
|
|
125
127
|
return "image", encoding
|
126
128
|
elif file_type in ["image/png"]:
|
127
129
|
return "image", encoding
|
130
|
+
elif file_type in ["image/webp"]:
|
131
|
+
return "image", encoding
|
128
132
|
elif content_group in ["code", "text"]:
|
129
133
|
return "plaintext", encoding
|
130
134
|
else:
|
@@ -164,9 +168,9 @@ def get_class_by_name(name: str) -> object:
|
|
164
168
|
class timer:
|
165
169
|
"""Context manager to log time taken for a block of code to run"""
|
166
170
|
|
167
|
-
def __init__(self, message: str, logger: logging.Logger, device: torch.device = None):
|
171
|
+
def __init__(self, message: str, logger: logging.Logger, device: torch.device = None, log_level=logging.DEBUG):
|
168
172
|
self.message = message
|
169
|
-
self.logger = logger
|
173
|
+
self.logger = logger.debug if log_level == logging.DEBUG else logger.info
|
170
174
|
self.device = device
|
171
175
|
|
172
176
|
def __enter__(self):
|
@@ -176,9 +180,9 @@ class timer:
|
|
176
180
|
def __exit__(self, *_):
|
177
181
|
elapsed = perf_counter() - self.start
|
178
182
|
if self.device is None:
|
179
|
-
self.logger
|
183
|
+
self.logger(f"{self.message}: {elapsed:.3f} seconds")
|
180
184
|
else:
|
181
|
-
self.logger
|
185
|
+
self.logger(f"{self.message}: {elapsed:.3f} seconds on device: {self.device}")
|
182
186
|
|
183
187
|
|
184
188
|
class LRU(OrderedDict):
|
@@ -347,12 +351,13 @@ tool_descriptions_for_llm = {
|
|
347
351
|
|
348
352
|
mode_descriptions_for_llm = {
|
349
353
|
ConversationCommand.Image: "Use this if the user is requesting you to generate a picture based on their description.",
|
350
|
-
ConversationCommand.Automation: "Use this if the user is requesting a response at a scheduled date
|
354
|
+
ConversationCommand.Automation: "Use this if you are confident the user is requesting a response at a scheduled date, time and frequency",
|
351
355
|
ConversationCommand.Text: "Use this if the other response modes don't seem to fit the query.",
|
352
356
|
}
|
353
357
|
|
354
358
|
mode_descriptions_for_agent = {
|
355
359
|
ConversationCommand.Image: "Agent can generate image in response.",
|
360
|
+
ConversationCommand.Automation: "Agent can schedule a task to run at a scheduled date, time and frequency in response.",
|
356
361
|
ConversationCommand.Text: "Agent can generate text in response.",
|
357
362
|
}
|
358
363
|
|
@@ -435,6 +440,46 @@ def is_internet_connected():
|
|
435
440
|
return False
|
436
441
|
|
437
442
|
|
443
|
+
def is_internal_url(url: str) -> bool:
|
444
|
+
"""
|
445
|
+
Check if a URL is likely to be internal/non-public.
|
446
|
+
|
447
|
+
Args:
|
448
|
+
url (str): The URL to check.
|
449
|
+
|
450
|
+
Returns:
|
451
|
+
bool: True if the URL is likely internal, False otherwise.
|
452
|
+
"""
|
453
|
+
try:
|
454
|
+
parsed_url = urllib.parse.urlparse(url)
|
455
|
+
hostname = parsed_url.hostname
|
456
|
+
|
457
|
+
# Check for localhost
|
458
|
+
if hostname in ["localhost", "127.0.0.1", "::1"]:
|
459
|
+
return True
|
460
|
+
|
461
|
+
# Check for IP addresses in private ranges
|
462
|
+
try:
|
463
|
+
ip = ipaddress.ip_address(hostname)
|
464
|
+
return ip.is_private
|
465
|
+
except ValueError:
|
466
|
+
pass # Not an IP address, continue with other checks
|
467
|
+
|
468
|
+
# Check for common internal TLDs
|
469
|
+
internal_tlds = [".local", ".internal", ".private", ".corp", ".home", ".lan"]
|
470
|
+
if any(hostname.endswith(tld) for tld in internal_tlds):
|
471
|
+
return True
|
472
|
+
|
473
|
+
# Check for URLs without a TLD
|
474
|
+
if "." not in hostname:
|
475
|
+
return True
|
476
|
+
|
477
|
+
return False
|
478
|
+
except Exception:
|
479
|
+
# If we can't parse the URL or something else goes wrong, assume it's not internal
|
480
|
+
return False
|
481
|
+
|
482
|
+
|
438
483
|
def convert_image_to_webp(image_bytes):
|
439
484
|
"""Convert image bytes to webp format for faster loading"""
|
440
485
|
image_io = io.BytesIO(image_bytes)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: khoj
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.26.2
|
4
4
|
Summary: Your Second Brain
|
5
5
|
Project-URL: Homepage, https://khoj.dev
|
6
6
|
Project-URL: Documentation, https://docs.khoj.dev
|
@@ -32,7 +32,7 @@ Requires-Dist: dateparser>=1.1.1
|
|
32
32
|
Requires-Dist: defusedxml==0.7.1
|
33
33
|
Requires-Dist: django-apscheduler==0.6.2
|
34
34
|
Requires-Dist: django-phonenumber-field==7.3.0
|
35
|
-
Requires-Dist: django==5.0.
|
35
|
+
Requires-Dist: django==5.0.9
|
36
36
|
Requires-Dist: docx2txt==0.8
|
37
37
|
Requires-Dist: einops==0.8.0
|
38
38
|
Requires-Dist: fastapi>=0.110.0
|
@@ -138,8 +138,8 @@ Description-Content-Type: text/markdown
|
|
138
138
|
- Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini).
|
139
139
|
- Get answers from the internet and your docs (including image, pdf, markdown, org-mode, word, notion files).
|
140
140
|
- Access it from your Browser, Obsidian, Emacs, Desktop, Phone or Whatsapp.
|
141
|
-
-
|
142
|
-
-
|
141
|
+
- Create agents with custom knowledge, persona, chat model and tools to take on any role.
|
142
|
+
- Automate away repetitive research. Get personal newsletters and smart notifications delivered to your inbox.
|
143
143
|
- Find relevant docs quickly and easily using our advanced semantic search.
|
144
144
|
- Generate images, talk out loud, play your messages.
|
145
145
|
- Khoj is open-source, self-hostable. Always.
|
@@ -8,10 +8,10 @@ khoj/app/asgi.py,sha256=soh3C1xazlgHt_bDgKzrfzo2TKXbNYJsckcXNEgTip8,388
|
|
8
8
|
khoj/app/settings.py,sha256=M6sQUu_AdeKl3eruecBaifRBhYOBIait0KA2NPizcBM,6198
|
9
9
|
khoj/app/urls.py,sha256=7ECnusoAPAfbO_H_b5FUzYGvnb4LLdWaRDyKNvYuBvg,869
|
10
10
|
khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
khoj/database/admin.py,sha256=
|
11
|
+
khoj/database/admin.py,sha256=VGXfQYYURbfeAslZq9icTsKKk3s93iTmssW6UtTtw88,9571
|
12
12
|
khoj/database/apps.py,sha256=pM4tkX5Odw4YW_hLLKK8Nd5kqGddf1en0oMCea44RZw,153
|
13
13
|
khoj/database/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
|
14
|
-
khoj/database/adapters/__init__.py,sha256=
|
14
|
+
khoj/database/adapters/__init__.py,sha256=Utuj9i9_cAI6mWZcbmZg5wbPNxczdefHBzAhlVS_YQI,64141
|
15
15
|
khoj/database/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
khoj/database/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
17
|
khoj/database/management/commands/change_generated_images_url.py,sha256=w52FwRlyOL4YRpp9O6jJUjSIuGLxVhaS2w1D7gtQgOE,2644
|
@@ -95,27 +95,27 @@ khoj/database/migrations/0064_remove_conversation_temp_id_alter_conversation_id.
|
|
95
95
|
khoj/database/migrations/0065_remove_agent_avatar_remove_agent_public_and_more.py,sha256=Gyj6vARtNo96weF9UXBIiPn5y3cAxQecbtYmNxgFFKw,1529
|
96
96
|
khoj/database/migrations/0066_remove_agent_tools_agent_input_tools_and_more.py,sha256=M4mprWoUmAizYOLNehBLREybHzFc5dbKoLtIsuoEaNI,2358
|
97
97
|
khoj/database/migrations/0067_alter_agent_style_icon.py,sha256=Z2HrLjBV5gx_OguzeJOPQmopx4HO52SsjAeR7bvZBQw,1861
|
98
|
+
khoj/database/migrations/0068_alter_agent_output_modes.py,sha256=G86wHkT2eWUSwsO4U2NS1t_UzVjEz4kzbgENy8mpicw,692
|
99
|
+
khoj/database/migrations/0069_webscraper_serverchatsettings_web_scraper.py,sha256=5yQ4DsYqtz2SvUU7b1izrNtgFOHNsVD2l05oC_gBAjU,3145
|
98
100
|
khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
99
|
-
khoj/database/models/__init__.py,sha256=
|
101
|
+
khoj/database/models/__init__.py,sha256=ls0tbnxI4UNlIXT7UQR3A8ROGpHEkHJUJs5dKI7PjYo,23912
|
100
102
|
khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
|
101
103
|
khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
|
102
104
|
khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
|
103
105
|
khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
|
104
106
|
khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
|
105
107
|
khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
|
106
|
-
khoj/interface/compiled/index.html,sha256=
|
107
|
-
khoj/interface/compiled/index.txt,sha256=
|
108
|
+
khoj/interface/compiled/index.html,sha256=Z7fgO21VZ8Zf3Qj4fKB5QgDkjYkNh7gjycmirQWRbrg,11791
|
109
|
+
khoj/interface/compiled/index.txt,sha256=8bXoeNKkyBaGlVTlc6zDRkCRT1RZXNSFOR0DSiDqsts,5479
|
108
110
|
khoj/interface/compiled/khoj.webmanifest,sha256=lsknYkvEdMbRTOUYKXPM_8krN2gamJmM4u3qj8u9lrU,1682
|
109
111
|
khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
|
110
112
|
khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
|
111
113
|
khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
|
112
114
|
khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
|
113
115
|
khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
|
114
|
-
khoj/interface/compiled/404/index.html,sha256=
|
115
|
-
khoj/interface/compiled/_next/static/CGyts-FEbV6owmPboHtLL/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
|
116
|
-
khoj/interface/compiled/_next/static/CGyts-FEbV6owmPboHtLL/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
116
|
+
khoj/interface/compiled/404/index.html,sha256=HLDD_LULAJNiocF66xLYzesuYp2UmiFvQseHyD-j65M,12051
|
117
117
|
khoj/interface/compiled/_next/static/chunks/121-7024f479c297aef0.js,sha256=CcRT2AArGYTo7Orl5w69nrnMqdI_EmyEP_YqIj3FU1c,20952
|
118
|
-
khoj/interface/compiled/_next/static/chunks/1603-
|
118
|
+
khoj/interface/compiled/_next/static/chunks/1603-fa3ee48860b9dc5c.js,sha256=HVKZBRar7SDL79-0YMd-Czrr3nyWu5nWvcU11xSQH2k,71504
|
119
119
|
khoj/interface/compiled/_next/static/chunks/2697-a38d01981ad3bdf8.js,sha256=bPajH6RHGusfrF6IlxIsLLwnIwMIPeZfsFzJ_oS-UCI,7511
|
120
120
|
khoj/interface/compiled/_next/static/chunks/3062-71ed4b46ac2bb87c.js,sha256=847h3nNxc8t4GOW20GIAp8c5kquVPEQ7EZurPzGySo0,258667
|
121
121
|
khoj/interface/compiled/_next/static/chunks/3110-ef2cacd1b8d79ad8.js,sha256=6Mbnwyhm_BJLppjqXE74SDZsekJV-t1mhjTK86iE904,9508
|
@@ -129,44 +129,46 @@ khoj/interface/compiled/_next/static/chunks/6297-d1c842ed3f714ab0.js,sha256=4nzZ
|
|
129
129
|
khoj/interface/compiled/_next/static/chunks/7023-a5bf5744d19b3bd3.js,sha256=TBJA7dTnI8nymtbljKuZzo2hbStXWR-P8Qkl57k2Tw8,123898
|
130
130
|
khoj/interface/compiled/_next/static/chunks/7762-79f2205740622b5c.js,sha256=DOPdP09qQbmaPZhirSEh6YqTkC7afirl0Pzu3v3A9Pg,35789
|
131
131
|
khoj/interface/compiled/_next/static/chunks/9001-3b27af6d5f21df44.js,sha256=ran2mMGTO2kiAJebRGMyfyAu4Sdjw-WobS_m6g-qjz8,34223
|
132
|
-
khoj/interface/compiled/_next/static/chunks/9178-
|
133
|
-
khoj/interface/compiled/_next/static/chunks/9417-
|
134
|
-
khoj/interface/compiled/_next/static/chunks/9479-
|
132
|
+
khoj/interface/compiled/_next/static/chunks/9178-899fe9a6b754ecfe.js,sha256=AkZ8mx8fdZKFZxR0wXVkQ_0hkcd8NYbNoSSF8sthUSY,17798
|
133
|
+
khoj/interface/compiled/_next/static/chunks/9417-46ed3aaa639c85ef.js,sha256=xFWvkQGxr-fe7OTQKZKN8oTIwFindg50yrM15g_F-Sw,19484
|
134
|
+
khoj/interface/compiled/_next/static/chunks/9479-ea776e73f549090c.js,sha256=UMEvFNiYVNbeJneDLiBMzVZkjQusLakatsMUh71vFAI,22265
|
135
135
|
khoj/interface/compiled/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js,sha256=wK1TsLdl56xtbQG6HMRDpylzTOYXQaAnnn2xobFnX40,267216
|
136
136
|
khoj/interface/compiled/_next/static/chunks/fd9d1056-2b978342deb60015.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
|
137
137
|
khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256=sFFnSyDnFoOc61lP-EtTzTyf-zGA78ejDyMgPFMDw2Q,140001
|
138
138
|
khoj/interface/compiled/_next/static/chunks/main-app-6d6ee3495efe03d4.js,sha256=i52E7sWOcSq1G8eYZL3mtTxbUbwRNxcAbSWQ6uWpMsY,475
|
139
139
|
khoj/interface/compiled/_next/static/chunks/main-f84cd3c1873cd842.js,sha256=jKg2A4pPMmEAQmrA10rACH3daS8XXJeMnGOz1AsTkdI,111099
|
140
140
|
khoj/interface/compiled/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
141
|
-
khoj/interface/compiled/_next/static/chunks/webpack-
|
142
|
-
khoj/interface/compiled/_next/static/chunks/app/layout-
|
143
|
-
khoj/interface/compiled/_next/static/chunks/app/page-
|
141
|
+
khoj/interface/compiled/_next/static/chunks/webpack-64dc39af85cd2625.js,sha256=3suqw3hD_HZpSmBVYQPLKgBMab-tLjaGIVM2oVIYn6M,3724
|
142
|
+
khoj/interface/compiled/_next/static/chunks/app/layout-d0f0a9067427fb20.js,sha256=ilPUPuMQt_2D48lC5c6AYeXT7J28ElR_Ym6VtjQwCO0,442
|
143
|
+
khoj/interface/compiled/_next/static/chunks/app/page-10a5aad6e04f3cf8.js,sha256=eugKXd0nrJGg9NbfmNmUrkCxT-w5opawTRxpheHICQ4,28641
|
144
144
|
khoj/interface/compiled/_next/static/chunks/app/_not-found/page-07ff4ab42b07845e.js,sha256=3mCUnxfMxyK44eqk21TVBrC6u--WSbvx31fTmQuOvMQ,1755
|
145
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/layout-
|
146
|
-
khoj/interface/compiled/_next/static/chunks/app/agents/page-
|
145
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/layout-75636ab3a413fa8e.js,sha256=0bdI7GBXZxpLy88hdWQiOc26QRZaD9R86YNMmGakWl4,372
|
146
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/page-88aa3042711107b7.js,sha256=vRLLjZnRlAh_FsSoEvBcXmMWOnl0YpetRuQ5ijVmsk8,38511
|
147
147
|
khoj/interface/compiled/_next/static/chunks/app/automations/layout-27c28e923c9b1ff0.js,sha256=d2vJ_lVB0pfeFXNUPzHAe1ca5NzdNowHPh___SPqugM,5143
|
148
148
|
khoj/interface/compiled/_next/static/chunks/app/automations/page-5480731341f34450.js,sha256=PgsFxtYymaDBMcJR31xPXLp4HX--uFJt6OAES95jM8k,35441
|
149
|
-
khoj/interface/compiled/_next/static/chunks/app/chat/layout-
|
149
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/layout-96fcf62857bf8f30.js,sha256=1CjjxW27P-98-jfx8gBX3eBiLI-3k9zQ6nJqcZoNMBQ,374
|
150
150
|
khoj/interface/compiled/_next/static/chunks/app/chat/page-702057ccbcf27881.js,sha256=Fge4qq3mFhPk0-tI5ts5JsJErlfjmlgHwbEugyVyAnk,5666
|
151
151
|
khoj/interface/compiled/_next/static/chunks/app/factchecker/layout-7b30c541c05fb904.js,sha256=yub2AuBKHKSCqrHRFnkZv9JXLmLJLOB99iiaD3DtZQM,170
|
152
152
|
khoj/interface/compiled/_next/static/chunks/app/factchecker/page-e7b34316ec6f44de.js,sha256=DPWy4Lh773zmhmrgEu8TPTI-r5DfZDeaoIOUGPKhi18,14032
|
153
153
|
khoj/interface/compiled/_next/static/chunks/app/search/layout-3720f1362310bebb.js,sha256=Smpa4MQaw5ItashtspsDKsOvRa6sOXH_lv4jIfWIbNI,170
|
154
154
|
khoj/interface/compiled/_next/static/chunks/app/search/page-d56541c746fded7d.js,sha256=4uRb6Ns9ichFXH7kBmbFLa7g8KgSgUsKFEYXEQqx9CQ,6958
|
155
|
-
khoj/interface/compiled/_next/static/chunks/app/settings/layout-
|
155
|
+
khoj/interface/compiled/_next/static/chunks/app/settings/layout-a8f33dfe92f997fb.js,sha256=VQp-ZD9hDz-r6yXCDMgdxrvnm6qcuKViX7AKc9B6JBw,5347
|
156
156
|
khoj/interface/compiled/_next/static/chunks/app/settings/page-e044a999468a7c5d.js,sha256=PgBPWWlZyx65XgxrttZlHREESMDt44ICdrrZiO5gH9M,31848
|
157
|
-
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-
|
157
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-2df56074e42adaa0.js,sha256=RPeayaV3Gbu0bJnD9vW5ml-xN-zN6UFBlTel-vOMYys,373
|
158
158
|
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-fbbd66a4d4633438.js,sha256=NfaF2T_Do-HHf0aFKmWqMUIQIXBJDzFiyxInUV7ulgw,4820
|
159
159
|
khoj/interface/compiled/_next/static/chunks/pages/_app-f870474a17b7f2fd.js,sha256=eqdFPAN_XFyMUzZ9qwFk-_rhMWZrU7lgNVt1foVUANo,286
|
160
160
|
khoj/interface/compiled/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
161
|
-
khoj/interface/compiled/_next/static/css/1538cedb321e3a97.css,sha256=-qLZhPN-wA3kcrVODVTaG1sN0pmuzRCqNH12gs5_qYc,2569
|
162
161
|
khoj/interface/compiled/_next/static/css/2272c73fc7a3b571.css,sha256=1fHKFd8zLOHosAHx-kxv4b9lVSqHag_E71WkV3dXx2Y,26940
|
163
162
|
khoj/interface/compiled/_next/static/css/2de69f0be774c768.css,sha256=E00JnHdJVDT2Ai0dxE6VRD0odoBTLEyeQW48rlv5zH4,7849
|
164
163
|
khoj/interface/compiled/_next/static/css/3e1f1fdd70775091.css,sha256=HT70_NVRMtV5IPc5k9JBGrVirjDZ3tyap7mEPXjQlGM,1634
|
164
|
+
khoj/interface/compiled/_next/static/css/467a524c75e7d7c0.css,sha256=yNoCTf6WSvmOpMGCnq1LEjF8lFDydKu4O5isN5KWqO8,2622
|
165
165
|
khoj/interface/compiled/_next/static/css/553f9cdcc7a2bcd6.css,sha256=JpjOOwmqP9Hba-w_8Lx9jWW0ZD0kD3wR0HvdPGDyUPo,2134
|
166
166
|
khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css,sha256=BSqRkeb9vBh0phx5GkAlZirTFZintbyggGaUkuOBfaU,914
|
167
167
|
khoj/interface/compiled/_next/static/css/5a400c87d295e68a.css,sha256=ojDUPJ9fJpEo9DzTAsEa-k1cg7Bef-nSTfpszMiqknQ,17711
|
168
168
|
khoj/interface/compiled/_next/static/css/b9a6bf04305d98d7.css,sha256=NfTj8QxZYyhwgCdImGQBYwhxnvByYhtK9LhVooVBqHA,1882291
|
169
169
|
khoj/interface/compiled/_next/static/css/c808691c459e3887.css,sha256=Xj1SLFCKntSIqZSDCMg2MnzZowIiKFtqPT3KxrT4i94,1857
|
170
|
+
khoj/interface/compiled/_next/static/eim4XajTfG4ub4ft5AEkJ/_buildManifest.js,sha256=6I9QUstNpJnhe3leR2Daw0pSXwzcbBscv6h2jmmPpms,224
|
171
|
+
khoj/interface/compiled/_next/static/eim4XajTfG4ub4ft5AEkJ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
170
172
|
khoj/interface/compiled/_next/static/media/0e790e04fd40ad16-s.p.woff2,sha256=41ewITd0G1ZAoB62BTHMW58a1q8Hl6vSbTQkkHP7EbI,39372
|
171
173
|
khoj/interface/compiled/_next/static/media/4221e1667cd19c7d-s.woff2,sha256=_Y3g0keA8P6nZnFfm_VO5o2Sne1iST3v9xz4fBo3fwM,75532
|
172
174
|
khoj/interface/compiled/_next/static/media/6c276159aa0eb14b-s.woff2,sha256=i9Ibzi_O7y5KpImujj2rEdOZf96lpNYxYzVvCryW5Uc,140408
|
@@ -239,8 +241,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
|
|
239
241
|
khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
|
240
242
|
khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
|
241
243
|
khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
|
242
|
-
khoj/interface/compiled/agents/index.html,sha256=
|
243
|
-
khoj/interface/compiled/agents/index.txt,sha256=
|
244
|
+
khoj/interface/compiled/agents/index.html,sha256=Agw5cLPj5cCK0MN-jTHmvh_oqzq4j0FL4rKoZIYmiHg,12830
|
245
|
+
khoj/interface/compiled/agents/index.txt,sha256=2TJ6LCyP7hcXOLZRJ4rIkKFa3wuEx-VU1ZAKsFTz9oo,6126
|
244
246
|
khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
|
245
247
|
khoj/interface/compiled/assets/icons/khoj_lantern_128x128.png,sha256=aTxivDb3CYyThkVZWz8A19xl_dNut5DbkXhODWF3A9Q,5640
|
246
248
|
khoj/interface/compiled/assets/icons/khoj_lantern_256x256.png,sha256=xPCMLHiaL7lYOdQLZrKwWE-Qjn5ZaysSZB0ScYv4UZU,12312
|
@@ -251,30 +253,31 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
|
|
251
253
|
khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
|
252
254
|
khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
|
253
255
|
khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
|
254
|
-
khoj/interface/compiled/automations/index.html,sha256=
|
255
|
-
khoj/interface/compiled/automations/index.txt,sha256=
|
256
|
-
khoj/interface/compiled/chat/index.html,sha256=
|
257
|
-
khoj/interface/compiled/chat/index.txt,sha256=
|
258
|
-
khoj/interface/compiled/factchecker/index.html,sha256=
|
259
|
-
khoj/interface/compiled/factchecker/index.txt,sha256=
|
260
|
-
khoj/interface/compiled/search/index.html,sha256=
|
261
|
-
khoj/interface/compiled/search/index.txt,sha256=
|
262
|
-
khoj/interface/compiled/settings/index.html,sha256=
|
263
|
-
khoj/interface/compiled/settings/index.txt,sha256=
|
264
|
-
khoj/interface/compiled/share/chat/index.html,sha256=
|
265
|
-
khoj/interface/compiled/share/chat/index.txt,sha256=
|
256
|
+
khoj/interface/compiled/automations/index.html,sha256=9gA8DETG69t1Ce-wAohc7F49gPtvkxqmv45OYcrYQxw,30624
|
257
|
+
khoj/interface/compiled/automations/index.txt,sha256=X6R0pcIrDzbeve096zvvcBfRiAZUp2UgvdToXRcy3e0,5494
|
258
|
+
khoj/interface/compiled/chat/index.html,sha256=Wy-mHS729C1ZGB5pn2lTyETTDVCi_Ro5CjV6kkCFPio,13724
|
259
|
+
khoj/interface/compiled/chat/index.txt,sha256=AUhHQhQVS_X6dDR3Ba4g-dzIzqJzBqNNGYDJpQc6ITc,6486
|
260
|
+
khoj/interface/compiled/factchecker/index.html,sha256=ZeIpVY5ZzQy6ptY8MRjl1f_Jrn41nQx5i8v-gkjx1sI,29973
|
261
|
+
khoj/interface/compiled/factchecker/index.txt,sha256=kUVWAFpv-4bgcj0qgy5L5ZUwX_jz_okDhQT2CVeTl_Y,5788
|
262
|
+
khoj/interface/compiled/search/index.html,sha256=I8Yxymzav6nyd6divZ2ORYeXlARf-v6jbWh-e4ZaZos,30161
|
263
|
+
khoj/interface/compiled/search/index.txt,sha256=GJyZGMXyN3cNXPcJQ3ocYcXvswX0L1MsLXGjVpcUpKI,5256
|
264
|
+
khoj/interface/compiled/settings/index.html,sha256=xuvAbVY4LFaeKPR4J9DdgdMIN-9CPxTIKGYk-YL1fo0,12831
|
265
|
+
khoj/interface/compiled/settings/index.txt,sha256=Xl2BIozV8qWqtEEDJZ5Xg9rhxVh6QyfOpok4ymg53-s,6078
|
266
|
+
khoj/interface/compiled/share/chat/index.html,sha256=GENOCPpU2RO-4RX9VIsVeeG4GvctJ-ccfWmAJSURgGE,15049
|
267
|
+
khoj/interface/compiled/share/chat/index.txt,sha256=1IX_FXR0OTkUb_TNSpqra48rhNtWtbZA6N-HZtcq4k4,7297
|
266
268
|
khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
|
267
269
|
khoj/interface/email/magic_link.html,sha256=EoGKQucfPj3xQrWXhSZAzPFOYCHF_ZX94TWCd1XHl1M,941
|
268
270
|
khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
|
269
271
|
khoj/interface/email/welcome.html,sha256=CpOLmNZV8jK1B_el7bxtZEFMr7k4g6MHfSHBhYFifB0,6081
|
270
272
|
khoj/interface/web/base_config.html,sha256=3aRwGF546vUdtCqL4tbWDdvO3ThEzt627vopx_tS4zo,12181
|
271
273
|
khoj/interface/web/content_source_github_input.html,sha256=YpsLBpsATW08ttrGysqktx2EczC4nebKlvWpwxtwmFY,8249
|
272
|
-
khoj/interface/web/login.html,sha256=
|
274
|
+
khoj/interface/web/login.html,sha256=xSrzU_rjfA-7Bwb9hkgxbOti8SWowIUD5JhzPgsnKNU,9245
|
273
275
|
khoj/interface/web/utils.html,sha256=_UrcCvSkx1SAzhlTsvrj9LFlnJuJ-_cMtz6HY-rEIkI,3143
|
274
276
|
khoj/interface/web/assets/khoj.css,sha256=rhW8-RwvkpTC5GbtBt0EByaXaHjlxpxPYxrUuzMWDC0,5659
|
275
277
|
khoj/interface/web/assets/utils.js,sha256=A22W1nOVuD1osI7TtZC8fZ0r1g4pE66tXQ_4XNbhreo,1269
|
276
|
-
khoj/interface/web/assets/icons/agents.svg,sha256=
|
277
|
-
khoj/interface/web/assets/icons/automation.svg,sha256=
|
278
|
+
khoj/interface/web/assets/icons/agents.svg,sha256=_DK73fRvvn5I-ajKZxH--9qLv-721QSiMk_lnwZKXlw,2609
|
279
|
+
khoj/interface/web/assets/icons/automation.svg,sha256=6SHlGisTmg7iFQ3mLG1BQoSc-HMaaJKsLFVIYaFV2Hs,1579
|
280
|
+
khoj/interface/web/assets/icons/chat.svg,sha256=cDicxL36Nn0BkCUFezwm7UOM0KefSClsid5HbRHxovU,2439
|
278
281
|
khoj/interface/web/assets/icons/favicon-128x128.ico,sha256=JMZf9aZor9AUbh5kuFNDaG3Mjxvoau5k80yRA9ly5TQ,205167
|
279
282
|
khoj/interface/web/assets/icons/github.svg,sha256=E789GwMweG0aU1wJNp0FjWHlFX1AxuA5H0durEnw5hQ,964
|
280
283
|
khoj/interface/web/assets/icons/khoj-logo-sideways-200.png,sha256=2_F1PpTZzfjvaHej9jjENx03H1vKtFsVkolwTPLJP9Q,6637
|
@@ -293,7 +296,7 @@ khoj/migrations/migrate_processor_config_openai.py,sha256=FfeUU2JPQMtlr1iYoc4Cer
|
|
293
296
|
khoj/migrations/migrate_server_pg.py,sha256=b6ULFFBEF__W10YpgF28deKoOzGqDbdvyL4nBdj3eNU,5015
|
294
297
|
khoj/migrations/migrate_version.py,sha256=6CTsLuxiLnFVF8A7CjsIz3PcnJd8fAOZeIx6tTu6Vgg,569
|
295
298
|
khoj/processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
296
|
-
khoj/processor/embeddings.py,sha256=
|
299
|
+
khoj/processor/embeddings.py,sha256=DirOTKBVBJ9kuzxixdT227zgEHQV3ttjLLGdzedYsFs,5467
|
297
300
|
khoj/processor/content/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
298
301
|
khoj/processor/content/text_to_entries.py,sha256=Oa4Ny8c5S1_IGCmjCtUI45hX1fPTRwxXhHg1lHFqHy8,14537
|
299
302
|
khoj/processor/content/docx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -301,7 +304,7 @@ khoj/processor/content/docx/docx_to_entries.py,sha256=qCVbvetCDG30lxxUeEjg_BTNJt
|
|
301
304
|
khoj/processor/content/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
302
305
|
khoj/processor/content/github/github_to_entries.py,sha256=SfgXJi59LvFldnRLC5dJ3tUhM5vym-ZrbUovh1G42LQ,9887
|
303
306
|
khoj/processor/content/images/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
304
|
-
khoj/processor/content/images/image_to_entries.py,sha256=
|
307
|
+
khoj/processor/content/images/image_to_entries.py,sha256=zv71SpXlHmMbdJsDw6mEgwQITNWlr3nd_VRj0CH2rm8,5120
|
305
308
|
khoj/processor/content/markdown/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
306
309
|
khoj/processor/content/markdown/markdown_to_entries.py,sha256=3ZXkJtehcVcMrNY6V4p-8i53zDIIsiVGQg-AMtD_U1U,7076
|
307
310
|
khoj/processor/content/notion/notion_to_entries.py,sha256=aFu41uynXTDU5TjXJhGpE6kYNDzXTB98NX3ruJUomRY,9858
|
@@ -309,18 +312,18 @@ khoj/processor/content/org_mode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
309
312
|
khoj/processor/content/org_mode/org_to_entries.py,sha256=UYlCJRaNwwuf9LobiprVSGECOOyNV0q3R1kVnmOdvE8,10251
|
310
313
|
khoj/processor/content/org_mode/orgnode.py,sha256=C0j0e6iHAY3bKBIcM9PaytqoR9dQ1Qd6hNHzMN-Zeg0,18476
|
311
314
|
khoj/processor/content/pdf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
312
|
-
khoj/processor/content/pdf/pdf_to_entries.py,sha256=
|
315
|
+
khoj/processor/content/pdf/pdf_to_entries.py,sha256=kROQUGqHs6J8Xi2rEHVgkc_iLMcSlhtyXTAL5yafsRo,4912
|
313
316
|
khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
314
317
|
khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=97i7Cm0DTY7jW4iqKOT_oVc2ooa_XhQ8iImsljp1Kek,4994
|
315
318
|
khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
316
|
-
khoj/processor/conversation/prompts.py,sha256=
|
319
|
+
khoj/processor/conversation/prompts.py,sha256=UZqtvZ4HmVLJMW_3rVPGdXqrTeLLTa3sr5ic2PUpWv4,36307
|
317
320
|
khoj/processor/conversation/utils.py,sha256=16Y8DUHcw7SQa65qnA1jFzJjoKyuTek9-5BGsnt1Qhk,11963
|
318
321
|
khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
319
322
|
khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=2O44WySb7xZqXxqA0M12gT9YsOLdBn4mz-mtJKj6fgY,8143
|
320
323
|
khoj/processor/conversation/anthropic/utils.py,sha256=GHCz-xll_DBipqSc5e5qdVhLQiKX5Kso3KQRf1BXbVA,3456
|
321
324
|
khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
322
325
|
khoj/processor/conversation/google/gemini_chat.py,sha256=WMXsufumpQBqq2onpJ_Wc6CFrJd0YsvYajiYpstM3Qo,7823
|
323
|
-
khoj/processor/conversation/google/utils.py,sha256=
|
326
|
+
khoj/processor/conversation/google/utils.py,sha256=TplQ2_lwyOkbncBjokXVWFPY6o9BJmBAIjxvV8_0NmI,8930
|
324
327
|
khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
325
328
|
khoj/processor/conversation/offline/chat_model.py,sha256=aqAhf2N-Kw3klTg3StrKWev6FWmFCH2BN9Jqq2Nm_FU,9740
|
326
329
|
khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
|
@@ -333,17 +336,17 @@ khoj/processor/image/generate.py,sha256=sY0mYhFubeZqZ02KGBdAXGskTeCIsADwwf715tNV
|
|
333
336
|
khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
334
337
|
khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
|
335
338
|
khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
336
|
-
khoj/processor/tools/online_search.py,sha256=
|
339
|
+
khoj/processor/tools/online_search.py,sha256=rve174mQz6CEBsLHt4SWEWA9Sp9anXjFHJo62SxmP3M,14317
|
337
340
|
khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
338
341
|
khoj/routers/api.py,sha256=rf31Pfs6mEA_SHXWNzjUHoFrIZJwiwN9hebRQ3Evq8Y,27590
|
339
342
|
khoj/routers/api_agents.py,sha256=1rmFp6rnvf3JxL0VS7X5awEvartYieBHjEWNJNnObvQ,8877
|
340
|
-
khoj/routers/api_chat.py,sha256=
|
343
|
+
khoj/routers/api_chat.py,sha256=Z0HbSTw_fY4UJA6C7t--aNLWpiUof8fqjYtSp7rifwI,40293
|
341
344
|
khoj/routers/api_content.py,sha256=lWunOwVWYvnl1ue_D81g9ZSwBc0UxHmBIrdJoVPxN_A,17900
|
342
345
|
khoj/routers/api_model.py,sha256=CR6aMVwgbh6dZEq1NZEeUBRVMMZubBQHTWAu6uzckf8,4650
|
343
346
|
khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
|
344
347
|
khoj/routers/auth.py,sha256=d3wzcysoYBQkPeqc1-gX8EnE7I_roVirMp5uzxOgobs,6560
|
345
348
|
khoj/routers/email.py,sha256=SGYNPQvfcvYeHf70F0YqpY0FLMRElF2ZekROXdwGI18,3821
|
346
|
-
khoj/routers/helpers.py,sha256=
|
349
|
+
khoj/routers/helpers.py,sha256=592dErA2MU9LSDfRNxnJeOtBjMnIBcSs4w17B3jZHM8,67886
|
347
350
|
khoj/routers/notion.py,sha256=Lp67xP9rVgpAF9BQoGTjZFcVdF1HYtvPP0kjq6uurKU,2802
|
348
351
|
khoj/routers/storage.py,sha256=tJrwhFRVWv0MHv7V7huMc1Diwm-putZSwnZXJ3tqT_c,2338
|
349
352
|
khoj/routers/subscription.py,sha256=JsKYS00Z2QXlXTobP1vU8T5cN5SE2PYp50CGDAQXofU,4699
|
@@ -355,21 +358,21 @@ khoj/search_filter/date_filter.py,sha256=4VL63kDVqYKFOzkCeV6R8Z8lxFaAbbn_z_RWaWQ
|
|
355
358
|
khoj/search_filter/file_filter.py,sha256=tHYW-ibaENf_jrJ88kiO_xhrPZb6FQLtngG9ISTB6h8,1168
|
356
359
|
khoj/search_filter/word_filter.py,sha256=5Yx95aSiqGke9kEIbp8T-Ak4dS9cTd3VxI1SaJoK1wY,1005
|
357
360
|
khoj/search_type/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
358
|
-
khoj/search_type/text_search.py,sha256=
|
361
|
+
khoj/search_type/text_search.py,sha256=S7aHl6WhOuIe5HyXVAukmWJDu5NwzBo_XOvEDbUHH7A,9470
|
359
362
|
khoj/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
360
363
|
khoj/utils/cli.py,sha256=AgO3rO-bN5oI71sIReGxrJXPeXEH80fnCIsyVlZYgjI,3695
|
361
364
|
khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
|
362
365
|
khoj/utils/constants.py,sha256=UwE7U9bNsfeqTb0K2lcdXdAscM4-7uuVoR3KbZS03Pg,1216
|
363
366
|
khoj/utils/fs_syncer.py,sha256=bQgcbYYC3x11RyCqI_kUzzqGpcKTodGgdT-3OTQsXqw,9977
|
364
|
-
khoj/utils/helpers.py,sha256=
|
367
|
+
khoj/utils/helpers.py,sha256=eT-KuLiGpEw_umINhDjGUrt2CPbM2AiYTQbJEHG3wP8,17455
|
365
368
|
khoj/utils/initialization.py,sha256=TjA2ZImYKI-J1tEBE_0TaOLnVQidVV5GDEFBOPq8aik,10048
|
366
369
|
khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
|
367
370
|
khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
|
368
371
|
khoj/utils/rawconfig.py,sha256=kURDuk7x0MDtniGLU4x1IsvU4UIBS-V9dSM4GD8X-LY,4274
|
369
372
|
khoj/utils/state.py,sha256=x4GTewP1YhOA6c_32N4wOjnV-3AA3xG_qbY1-wC2Uxc,1559
|
370
373
|
khoj/utils/yaml.py,sha256=H0mfw0ZvBFUvFmCQn8pWkfxdmIebsrSykza7D8Wv6wQ,1430
|
371
|
-
khoj-1.
|
372
|
-
khoj-1.
|
373
|
-
khoj-1.
|
374
|
-
khoj-1.
|
375
|
-
khoj-1.
|
374
|
+
khoj-1.26.2.dist-info/METADATA,sha256=aggi03FPND43osEv0tIIWIDGmIXF2WVbHXjTrCboCa4,7019
|
375
|
+
khoj-1.26.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
376
|
+
khoj-1.26.2.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
|
377
|
+
khoj-1.26.2.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
378
|
+
khoj-1.26.2.dist-info/RECORD,,
|