khoj 1.38.1.dev3__py3-none-any.whl → 1.38.1.dev9__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 +2 -2
- khoj/interface/compiled/_next/static/chunks/app/agents/{layout-47a59a404205b142.js → layout-5961c3717e1d8813.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-df5446aa4fb82e1a.js → page-0d31f76257d6ec11.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/automations/{page-0a44416f9183aec0.js → page-c6180af69fc9c766.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/{layout-904fbbb3974588da.js → layout-3e25af7224d678a0.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/{page-d273748c128b0103.js → page-926ee054e844236a.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{page-aad371f66ac52191.js → page-df51e61295c4a9b5.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/{layout-d7f7528ff387fba5.js → layout-9ccd090dcc2aa58a.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/{page-1df7b236b30620f7.js → page-098017fa7f6ba0bf.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/{page-3473bab693ef81b2.js → page-1ff027f4e0a5c468.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{layout-d090bd23befd0207.js → layout-9cc742afcea0b421.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-33d056fbcb8ec85d.js → page-61f5aa755a5d5612.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-b5babbc0c315ce8d.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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- khoj/processor/tools/online_search.py +110 -25
- {khoj-1.38.1.dev3.dist-info → khoj-1.38.1.dev9.dist-info}/METADATA +1 -1
- {khoj-1.38.1.dev3.dist-info → khoj-1.38.1.dev9.dist-info}/RECORD +38 -38
- 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/{YvH2derieknk8OvRg-Pc- → J5RtRciYC8sK6ywli27r1}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{YvH2derieknk8OvRg-Pc- → J5RtRciYC8sK6ywli27r1}/_ssgManifest.js +0 -0
- {khoj-1.38.1.dev3.dist-info → khoj-1.38.1.dev9.dist-info}/WHEEL +0 -0
- {khoj-1.38.1.dev3.dist-info → khoj-1.38.1.dev9.dist-info}/entry_points.txt +0 -0
- {khoj-1.38.1.dev3.dist-info → khoj-1.38.1.dev9.dist-info}/licenses/LICENSE +0 -0
@@ -33,11 +33,13 @@ logger = logging.getLogger(__name__)
|
|
33
33
|
GOOGLE_SEARCH_API_KEY = os.getenv("GOOGLE_SEARCH_API_KEY")
|
34
34
|
GOOGLE_SEARCH_ENGINE_ID = os.getenv("GOOGLE_SEARCH_ENGINE_ID")
|
35
35
|
SERPER_DEV_API_KEY = os.getenv("SERPER_DEV_API_KEY")
|
36
|
+
AUTO_READ_WEBPAGE = is_env_var_true("AUTO_READ_WEBPAGE")
|
36
37
|
SERPER_DEV_URL = "https://google.serper.dev/search"
|
37
38
|
|
38
39
|
JINA_SEARCH_API_URL = "https://s.jina.ai/"
|
39
40
|
JINA_API_KEY = os.getenv("JINA_API_KEY")
|
40
41
|
|
42
|
+
FIRECRAWL_API_KEY = os.getenv("FIRECRAWL_API_KEY")
|
41
43
|
FIRECRAWL_USE_LLM_EXTRACT = is_env_var_true("FIRECRAWL_USE_LLM_EXTRACT")
|
42
44
|
|
43
45
|
OLOSTEP_QUERY_PARAMS = {
|
@@ -95,29 +97,44 @@ async def search_online(
|
|
95
97
|
yield response_dict
|
96
98
|
return
|
97
99
|
|
100
|
+
search_engines = []
|
101
|
+
if SERPER_DEV_API_KEY:
|
102
|
+
search_engine = "Serper"
|
103
|
+
search_engines.append((search_engine, search_with_serper))
|
98
104
|
if GOOGLE_SEARCH_API_KEY and GOOGLE_SEARCH_ENGINE_ID:
|
99
105
|
search_engine = "Google"
|
100
|
-
|
101
|
-
|
102
|
-
search_engine = "
|
103
|
-
|
104
|
-
|
106
|
+
search_engines.append((search_engine, search_with_google))
|
107
|
+
if FIRECRAWL_API_KEY:
|
108
|
+
search_engine = "Firecrawl"
|
109
|
+
search_engines.append((search_engine, search_with_firecrawl))
|
110
|
+
if JINA_API_KEY:
|
105
111
|
search_engine = "Jina"
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
search_func = search_with_searxng
|
112
|
+
search_engines.append((search_engine, search_with_jina))
|
113
|
+
search_engine = "Searxng"
|
114
|
+
search_engines.append((search_engine, search_with_searxng))
|
110
115
|
|
111
|
-
logger.info(f"🌐 Searching the Internet
|
116
|
+
logger.info(f"🌐 Searching the Internet for {subqueries}")
|
112
117
|
if send_status_func:
|
113
118
|
subqueries_str = "\n- " + "\n- ".join(subqueries)
|
114
119
|
async for event in send_status_func(f"**Searching the Internet for**: {subqueries_str}"):
|
115
120
|
yield {ChatEvent.STATUS: event}
|
116
121
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
122
|
+
response_dict = {}
|
123
|
+
for search_engine, search_func in search_engines:
|
124
|
+
with timer(f"Internet searches with {search_engine} for {subqueries} took", logger):
|
125
|
+
try:
|
126
|
+
search_tasks = [search_func(subquery, location) for subquery in subqueries]
|
127
|
+
search_results = await asyncio.gather(*search_tasks)
|
128
|
+
response_dict = {subquery: search_result for subquery, search_result in search_results if search_result}
|
129
|
+
if not is_none_or_empty(response_dict):
|
130
|
+
break
|
131
|
+
except Exception as e:
|
132
|
+
logger.error(f"Error searching with {search_engine}: {e}")
|
133
|
+
response_dict = {}
|
134
|
+
|
135
|
+
if not AUTO_READ_WEBPAGE:
|
136
|
+
yield response_dict
|
137
|
+
return
|
121
138
|
|
122
139
|
# Gather distinct web pages from organic results for subqueries without an instant answer.
|
123
140
|
webpages: Dict[str, Dict] = {}
|
@@ -159,6 +176,69 @@ async def search_online(
|
|
159
176
|
yield response_dict
|
160
177
|
|
161
178
|
|
179
|
+
async def search_with_firecrawl(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
|
180
|
+
"""
|
181
|
+
Search using Firecrawl API.
|
182
|
+
|
183
|
+
Args:
|
184
|
+
query: The search query string
|
185
|
+
location: Location data for geolocation-based search
|
186
|
+
|
187
|
+
Returns:
|
188
|
+
Tuple containing the original query and a dictionary of search results
|
189
|
+
"""
|
190
|
+
# Set up API endpoint and headers
|
191
|
+
firecrawl_api_url = "https://api.firecrawl.dev/v1/search"
|
192
|
+
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {FIRECRAWL_API_KEY}"}
|
193
|
+
|
194
|
+
# Prepare request payload
|
195
|
+
country_code = location.country_code.lower() if location and location.country_code else "us"
|
196
|
+
payload = {
|
197
|
+
"query": query,
|
198
|
+
"limit": 10, # Maximum number of results
|
199
|
+
"country": country_code,
|
200
|
+
"lang": "en",
|
201
|
+
"timeout": 10000,
|
202
|
+
"scrapeOptions": {},
|
203
|
+
}
|
204
|
+
|
205
|
+
# Add location parameter if available
|
206
|
+
if location and location.city:
|
207
|
+
payload["location"] = f"{location.city}, {location.region}, {location.country}"
|
208
|
+
|
209
|
+
async with aiohttp.ClientSession() as session:
|
210
|
+
try:
|
211
|
+
async with session.post(firecrawl_api_url, headers=headers, json=payload) as response:
|
212
|
+
if response.status != 200:
|
213
|
+
error_text = await response.text()
|
214
|
+
logger.error(f"Firecrawl search failed: {error_text}")
|
215
|
+
return query, {}
|
216
|
+
|
217
|
+
response_json = await response.json()
|
218
|
+
|
219
|
+
if not response_json.get("success", False):
|
220
|
+
logger.error(f"Firecrawl search failed: {response_json.get('warning', 'Unknown error')}")
|
221
|
+
return query, {}
|
222
|
+
|
223
|
+
# Transform Firecrawl response to match the expected format
|
224
|
+
organic_results = []
|
225
|
+
for item in response_json.get("data", []):
|
226
|
+
organic_results.append(
|
227
|
+
{
|
228
|
+
"title": item["title"],
|
229
|
+
"link": item["url"],
|
230
|
+
"snippet": item["description"],
|
231
|
+
"content": item.get("markdown", None),
|
232
|
+
}
|
233
|
+
)
|
234
|
+
|
235
|
+
return query, {"organic": organic_results}
|
236
|
+
|
237
|
+
except Exception as e:
|
238
|
+
logger.error(f"Error searching with Firecrawl: {str(e)}")
|
239
|
+
return query, {}
|
240
|
+
|
241
|
+
|
162
242
|
async def search_with_searxng(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
|
163
243
|
"""Search using local SearXNG instance."""
|
164
244
|
# Use environment variable or default to localhost
|
@@ -251,9 +331,16 @@ async def search_with_google(query: str, location: LocationData) -> Tuple[str, D
|
|
251
331
|
|
252
332
|
|
253
333
|
async def search_with_serper(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
|
334
|
+
headers = {"X-API-KEY": SERPER_DEV_API_KEY, "Content-Type": "application/json"}
|
254
335
|
country_code = location.country_code.lower() if location and location.country_code else "us"
|
336
|
+
max_query_length = 2048
|
337
|
+
if len(query) > max_query_length:
|
338
|
+
logger.warning(
|
339
|
+
f"Truncate online query. Query length {len(query)} exceeds {max_query_length} supported by Serper. Query: {query}"
|
340
|
+
)
|
341
|
+
query = query[:max_query_length]
|
342
|
+
|
255
343
|
payload = json.dumps({"q": query, "gl": country_code})
|
256
|
-
headers = {"X-API-KEY": SERPER_DEV_API_KEY, "Content-Type": "application/json"}
|
257
344
|
|
258
345
|
async with aiohttp.ClientSession() as session:
|
259
346
|
async with session.post(SERPER_DEV_URL, headers=headers, data=payload) as response:
|
@@ -398,16 +485,16 @@ async def read_webpage_with_olostep(web_url: str, api_key: str, api_url: str) ->
|
|
398
485
|
|
399
486
|
|
400
487
|
async def read_webpage_with_jina(web_url: str, api_key: str, api_url: str) -> str:
|
401
|
-
|
402
|
-
|
488
|
+
headers = {"Accept": "application/json", "X-Timeout": "30", "X-With-Generated-Alt": "true"}
|
489
|
+
data = {"url": web_url}
|
403
490
|
if api_key:
|
404
491
|
headers["Authorization"] = f"Bearer {api_key}"
|
405
492
|
|
406
493
|
async with aiohttp.ClientSession() as session:
|
407
|
-
async with session.
|
494
|
+
async with session.post(api_url, json=data, headers=headers) as response:
|
408
495
|
response.raise_for_status()
|
409
|
-
|
410
|
-
return
|
496
|
+
content = await response.text()
|
497
|
+
return content
|
411
498
|
|
412
499
|
|
413
500
|
async def read_webpage_with_firecrawl(web_url: str, api_key: str, api_url: str) -> str:
|
@@ -459,10 +546,6 @@ Collate only relevant information from the website to answer the target query an
|
|
459
546
|
|
460
547
|
|
461
548
|
async def search_with_jina(query: str, location: LocationData) -> Tuple[str, Dict[str, List[Dict]]]:
|
462
|
-
encoded_query = urllib.parse.quote(query)
|
463
|
-
jina_search_api_url = f"{JINA_SEARCH_API_URL}/{encoded_query}"
|
464
|
-
headers = {"Accept": "application/json"}
|
465
|
-
|
466
549
|
# First check for jina scraper configuration in database
|
467
550
|
default_jina_scraper = (
|
468
551
|
await ServerChatSettings.objects.filter()
|
@@ -477,13 +560,15 @@ async def search_with_jina(query: str, location: LocationData) -> Tuple[str, Dic
|
|
477
560
|
jina_scraper = await WebScraper.objects.filter(type=WebScraper.WebScraperType.JINA).afirst()
|
478
561
|
|
479
562
|
# Get API key from DB scraper config or environment variable
|
563
|
+
data = {"q": query}
|
564
|
+
headers = {"Accept": "application/json", "X-Respond-With": "no-content"}
|
480
565
|
api_key = jina_scraper.api_key if jina_scraper and jina_scraper.api_key else JINA_API_KEY
|
481
566
|
|
482
567
|
if api_key:
|
483
568
|
headers["Authorization"] = f"Bearer {api_key}"
|
484
569
|
|
485
570
|
async with aiohttp.ClientSession() as session:
|
486
|
-
async with session.
|
571
|
+
async with session.post(JINA_SEARCH_API_URL, json=data, headers=headers) as response:
|
487
572
|
if response.status != 200:
|
488
573
|
error_text = await response.text()
|
489
574
|
logger.error(f"Jina search failed: {error_text}")
|
@@ -127,17 +127,17 @@ khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvt
|
|
127
127
|
khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
|
128
128
|
khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
|
129
129
|
khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
|
130
|
-
khoj/interface/compiled/index.html,sha256=
|
131
|
-
khoj/interface/compiled/index.txt,sha256=
|
130
|
+
khoj/interface/compiled/index.html,sha256=2ApJrMTXtiz4Hn2i03O0QmMHVj4PKfl72_7L4z3BVX0,53319
|
131
|
+
khoj/interface/compiled/index.txt,sha256=rLYjeCu_YAMVcZxqNtaCejX-yT7DEphpp5uLxMuNnR8,7717
|
132
132
|
khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
|
133
133
|
khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
|
134
134
|
khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
|
135
135
|
khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
|
136
136
|
khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
|
137
137
|
khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
|
138
|
-
khoj/interface/compiled/404/index.html,sha256=
|
139
|
-
khoj/interface/compiled/_next/static/
|
140
|
-
khoj/interface/compiled/_next/static/
|
138
|
+
khoj/interface/compiled/404/index.html,sha256=2GJ1AnnESIMyL7cZrWrhsyhPMXGuiNubGApEiMAycYU,17063
|
139
|
+
khoj/interface/compiled/_next/static/J5RtRciYC8sK6ywli27r1/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
|
140
|
+
khoj/interface/compiled/_next/static/J5RtRciYC8sK6ywli27r1/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
141
141
|
khoj/interface/compiled/_next/static/chunks/1160-8e7e42e77145b712.js,sha256=-QFyQbKtlBEXOxl_xK246z8WERbIc88SU1RehiTjcaI,317731
|
142
142
|
khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js,sha256=Y6ceAwyTH4HSGDvBRoBB-RVXRCzGGr8NSPcspYF5OM8,182
|
143
143
|
khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js,sha256=IK-mb9ZlF6uJUdU8AuXsppc99tFL8svJvZtKNZGNtcY,411
|
@@ -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-bd8210ff1de491d7.js,sha256=8gTcL8-sV5oa7vJRTxlgOpZvhNrsKomsu75DpVpqfE0,3983
|
208
|
-
khoj/interface/compiled/_next/static/chunks/app/page-
|
208
|
+
khoj/interface/compiled/_next/static/chunks/app/page-df51e61295c4a9b5.js,sha256=Jtm6XRwe69g_JpU_0cs4VCFWhPWhUagFKfBGZX0I4bo,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-5961c3717e1d8813.js,sha256=aZPuT0zAh0R0UEEYnuECRlf7jwbRPWGNDOalN9hOYZ8,3455
|
211
|
+
khoj/interface/compiled/_next/static/chunks/app/agents/page-0d31f76257d6ec11.js,sha256=oWl_zLRFvxZp60jGau8Vi6dvr83y68yyBtEBRjEaF58,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-c6180af69fc9c766.js,sha256=5UqvUzxfTu8XqS1o9enSFi3jFZ6OmpCIW-Vzvhbb8Pc,34836
|
214
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/layout-3e25af7224d678a0.js,sha256=GdLRvoYSJiXx3limcAoEnq5fOiuDey_7d23CZ9b6c1A,3455
|
215
|
+
khoj/interface/compiled/_next/static/chunks/app/chat/page-926ee054e844236a.js,sha256=YgxOe-lQsomVqIflMsdH6ciSq1r1mvZQGkg3PeBKTlM,28294
|
216
|
+
khoj/interface/compiled/_next/static/chunks/app/search/layout-9ccd090dcc2aa58a.js,sha256=YpMcmZ-rIm4KgkDJr9jncqcoVZodRdiiTNx1iBdN51w,3455
|
217
|
+
khoj/interface/compiled/_next/static/chunks/app/search/page-098017fa7f6ba0bf.js,sha256=uP1wUboLrSP3hT2XxW98YvLjmcJnBV26vv0SBkV9dmk,32714
|
218
218
|
khoj/interface/compiled/_next/static/chunks/app/settings/layout-a7262b2bb8c7ae64.js,sha256=lvyfWVLYyJsxhQvh5UWUVUBM71nmq9DdsmmnVfFXCgk,9401
|
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-1ff027f4e0a5c468.js,sha256=srmYMIrDRYeZ9Md98V-WHuNUoVQMETpD4zt5OEEdpAU,30575
|
220
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-9cc742afcea0b421.js,sha256=Xuq31gs_tCtfympW0yXKmxvY9rJ-dLv7LoS2NolWuY8,3455
|
221
|
+
khoj/interface/compiled/_next/static/chunks/app/share/chat/page-61f5aa755a5d5612.js,sha256=qu9ec8I5uf5cdmgW_uxZvYIg54E4gDGTCdhSbCaxG0s,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/0db53bacf81896f5.css,sha256=7Kq40hXKsqTnQEz4otvA49gEDms7a0XAFCB0rwrnXQo,30547
|
224
225
|
khoj/interface/compiled/_next/static/css/0ddca54f48cc6850.css,sha256=3ewc3-WlnLVSDnoVwktQjsS7OS1F8GMBKVQM6Anexx0,3075770
|
225
|
-
khoj/interface/compiled/_next/static/css/37a73b87f02df402.css,sha256=hp0vlekKu0K2eITR5YIqFmLHQPqV3JETFnRd_-Uh0mk,165
|
226
226
|
khoj/interface/compiled/_next/static/css/76c658ee459140a9.css,sha256=7tI24VB66ZUsAPUxRdQhboopun0AXLUnF64uv9RkC08,1833
|
227
227
|
khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css,sha256=IUkZhkx4GpYOIhN-EJw9T1DqGMO3Wa3mNpUwaOBuZoY,7204
|
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,8 +306,8 @@ 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/agents/index.html,sha256=
|
310
|
-
khoj/interface/compiled/agents/index.txt,sha256=
|
309
|
+
khoj/interface/compiled/agents/index.html,sha256=IdMzF3xKmerLdSAzkq2UUiN23BQkW9FWxaR1sxt3soc,19567
|
310
|
+
khoj/interface/compiled/agents/index.txt,sha256=uGYi8KDExSY1eUfJcLXa96Zq678tdsS9IKU3eC5MrqA,8839
|
311
311
|
khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
|
312
312
|
khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
|
313
313
|
khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
|
@@ -322,16 +322,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
|
|
322
322
|
khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
|
323
323
|
khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
|
324
324
|
khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
|
325
|
-
khoj/interface/compiled/automations/index.html,sha256=
|
326
|
-
khoj/interface/compiled/automations/index.txt,sha256=
|
327
|
-
khoj/interface/compiled/chat/index.html,sha256=
|
328
|
-
khoj/interface/compiled/chat/index.txt,sha256=
|
329
|
-
khoj/interface/compiled/search/index.html,sha256=
|
330
|
-
khoj/interface/compiled/search/index.txt,sha256=
|
331
|
-
khoj/interface/compiled/settings/index.html,sha256=
|
332
|
-
khoj/interface/compiled/settings/index.txt,sha256=
|
333
|
-
khoj/interface/compiled/share/chat/index.html,sha256=
|
334
|
-
khoj/interface/compiled/share/chat/index.txt,sha256=
|
325
|
+
khoj/interface/compiled/automations/index.html,sha256=HMWmDIvgSYeMMnpWl-hyaYzvMnkxumbGk_E0hf8qJ9c,56234
|
326
|
+
khoj/interface/compiled/automations/index.txt,sha256=YiP_DfS0EPpfIQktQyyQNoD9XPxaoUWWE5UK_fVUKUk,8436
|
327
|
+
khoj/interface/compiled/chat/index.html,sha256=1epRLhenqtcgRNAeqq8DydrYRclZWy2Yr7SHA4antZs,56561
|
328
|
+
khoj/interface/compiled/chat/index.txt,sha256=2o54GmWz_jyAFMFoo0WiNLlHE6dIIpXYYyH--tEvt-I,9475
|
329
|
+
khoj/interface/compiled/search/index.html,sha256=d2Rn_FPxP_N3v4c1EijcbvFkGuhe4HZhBaE-a1wxrls,58213
|
330
|
+
khoj/interface/compiled/search/index.txt,sha256=rGq2MzEHp0oEA2P6VtI4DhDBjhLZhMyQ6Z3DqCw12OI,7990
|
331
|
+
khoj/interface/compiled/settings/index.html,sha256=YphTNE7WuNpVaDgBaGkQSZ496WT90BGqSZEMxSRQr70,56257
|
332
|
+
khoj/interface/compiled/settings/index.txt,sha256=FEpkSjg-deknIvUt2vzzxtEaSiFesxiFZkiNpRCgH6g,9564
|
333
|
+
khoj/interface/compiled/share/chat/index.html,sha256=JYNnZ4mgn8sAYD0cj4LgCrDLTg6UGFfbykBEYeL6Mes,57153
|
334
|
+
khoj/interface/compiled/share/chat/index.txt,sha256=eEAYGsreJGUgIRKi7wC5uqupwBhUbAPS8IElcKvk2ck,9943
|
335
335
|
khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
|
336
336
|
khoj/interface/email/magic_link.html,sha256=372ESbTPKM9acekuZcOIKOw6kBl-KikFg_L9MOHqJkg,2094
|
337
337
|
khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
|
@@ -403,7 +403,7 @@ khoj/processor/image/generate.py,sha256=FAIIsr8TIHxWxK-INNK4jJOOswBxQFyi_G4tI8NN
|
|
403
403
|
khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
404
404
|
khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
|
405
405
|
khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
406
|
-
khoj/processor/tools/online_search.py,sha256=
|
406
|
+
khoj/processor/tools/online_search.py,sha256=NkKitJZ5cx4N8Vsnt2pahFWJXoUa5wtcZSMHl_SgrXo,24689
|
407
407
|
khoj/processor/tools/run_code.py,sha256=TuGSp-WYUas0dSK19a96SPfC423F2vvkZDwwPJm67IY,12159
|
408
408
|
khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
409
409
|
khoj/routers/api.py,sha256=1sAJN5KvssFph7AcoFSJmQDlveOgyy530E9Bb-rJUTk,29491
|
@@ -440,8 +440,8 @@ khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
|
|
440
440
|
khoj/utils/rawconfig.py,sha256=wfZTk-Aifb-_q9Yh-NPfh9LlLTioYG-yBqrasgvo4pc,5045
|
441
441
|
khoj/utils/state.py,sha256=axjZhnby8L3bY-N1VVoWgBH1RpFGK6U3_ZeNo1Kt7hs,1679
|
442
442
|
khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
|
443
|
-
khoj-1.38.1.
|
444
|
-
khoj-1.38.1.
|
445
|
-
khoj-1.38.1.
|
446
|
-
khoj-1.38.1.
|
447
|
-
khoj-1.38.1.
|
443
|
+
khoj-1.38.1.dev9.dist-info/METADATA,sha256=k8U3hl1CvMfZzSpu30NMQJe0eTnimiaNTlj_V5ERFjA,7838
|
444
|
+
khoj-1.38.1.dev9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
445
|
+
khoj-1.38.1.dev9.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
|
446
|
+
khoj-1.38.1.dev9.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
447
|
+
khoj-1.38.1.dev9.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
div.search_searchLayout__fP3m0{display:grid;grid-template-columns:1fr;gap:1rem;height:100%}@media screen and (max-width:768px){div.search_searchLayout__fP3m0{gap:0}}
|
@@ -1 +0,0 @@
|
|
1
|
-
div.agents_titleBar__FzYbY{padding:16px 0;text-align:left}.agents_agentPersonality__o0Ysz p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agents_agentPersonality__o0Ysz{text-align:left;grid-column:span 3;overflow:hidden}div.agents_pageLayout__gR3S3{max-width:60vw;margin:auto auto 2rem}button.agents_infoButton__NqI7E{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}div.agents_agentList__XVx4A{display:grid;gap:20px;padding-top:30px;margin-right:auto;grid-auto-flow:row;grid-template-columns:1fr 1fr;margin-left:auto}@media only screen and (max-width:768px){div.agents_agentList__XVx4A{width:100%;padding:0;margin-right:auto;margin-left:auto;grid-template-columns:1fr}div.agents_pageLayout__gR3S3{max-width:90vw}}div.chatInputArea_actualInputArea__Ha6cN{display:grid;grid-template-columns:auto 1fr auto auto}.loginPrompt_gsiMaterialButton__8QVFH{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-appearance:none;background-image:none;border-radius:20px;box-sizing:border-box;color:#1f1f1f;cursor:pointer;font-family:Roboto,arial,sans-serif;font-size:14px;height:40px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0;position:relative;text-align:center;transition:background-color .218s,border-color .218s,box-shadow .218s;vertical-align:middle;white-space:nowrap;width:40px;max-width:400px;min-width:-moz-min-content;min-width:min-content}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonIcon__6TSC5{height:100%;min-width:20px;width:100%;margin:0;padding:9px}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonContentWrapper__9tahB{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;justify-content:space-between;position:relative;width:100%}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonContents__3_YcB{flex-grow:1;font-family:Roboto,arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.loginPrompt_gsiMaterialButton__8QVFH .loginPrompt_gsiMaterialButtonState__CDGQm{transition:opacity .218s;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.loginPrompt_gsiMaterialButton__8QVFH:disabled{cursor:default;background-color:#ffffff61;border-color:#1f1f1f1f}.loginPrompt_gsiMaterialButton__8QVFH:disabled .loginPrompt_gsiMaterialButtonContents__3_YcB,.loginPrompt_gsiMaterialButton__8QVFH:disabled .loginPrompt_gsiMaterialButtonIcon__6TSC5{opacity:38%}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):active .loginPrompt_gsiMaterialButton-State__mAfCZ,.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):focus .loginPrompt_gsiMaterialButtonState__CDGQm{background-color:#303030;opacity:12%}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):hover{box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15)}.loginPrompt_gsiMaterialButton__8QVFH:not(:disabled):hover .loginPrompt_gsiMaterialButtonState__CDGQm{background-color:#303030;opacity:8%}div.sidePanel_session__EeNjH{padding:.5rem;margin-bottom:.25rem;border-radius:.5rem;cursor:pointer;max-width:14rem;font-size:medium;display:grid;grid-template-columns:minmax(auto,400px) 1fr;gap:0}div.sidePanel_compressed__CUgIn{grid-template-columns:minmax(12rem,100%) 1fr 1fr}div.sidePanel_sessionHover__cf_VO,div.sidePanel_session__EeNjH:hover{background-color:hsla(var(--popover))}div.sidePanel_session__EeNjH:hover{color:hsla(var(--popover-foreground))}div.sidePanel_session__EeNjH a{text-decoration:none}button.sidePanel_button__NzdN_{border:none;outline:none;background-color:transparent;cursor:pointer;color:var(--main-text-color);width:24px}button.sidePanel_showMoreButton__nDt4Z{border-radius:.5rem;padding:8px}div.sidePanel_panel__9offQ{display:flex;flex-direction:column;padding:1rem;overflow-y:auto;max-width:auto;transition:background-color .5s}div.sidePanel_expanded__aHnYV{gap:1rem;background-color:hsla(var(--muted));height:100%}div.sidePanel_collapsed__ewO3e{display:grid;grid-template-columns:1fr;height:-moz-fit-content;height:fit-content;padding:1rem 0 0 1rem}p.sidePanel_session__EeNjH{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;font-size:small}p.sidePanel_compressed__CUgIn{width:11rem}p.sidePanel_expanded__aHnYV{max-width:20rem}div.sidePanel_header__NCT_v{display:grid;grid-template-columns:1fr auto}div.sidePanel_profile__pfAJU{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;margin-top:auto}div.sidePanel_panelWrapper__cDMvb{display:grid;grid-template-rows:1fr auto auto;height:100%}div.sidePanel_modalSessionsList___u3aa{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(var(--frosted-background-color));z-index:1;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}div.sidePanel_modalSessionsList___u3aa div.sidePanel_content__z60YO{max-width:80%;max-height:80%;background-color:hsla(var(--frosted-background-color));overflow:auto;padding:20px;border-radius:10px}div.sidePanel_modalSessionsList___u3aa div.sidePanel_session__EeNjH{max-width:100%;text-overflow:ellipsis}@media screen and (max-width:768px){div.sidePanel_panel__9offQ{padding:.25rem;width:100%}div.sidePanel_expanded__aHnYV{z-index:1}div.sidePanel_singleReference__vmXZr{padding:4px}div.sidePanel_panelWrapper__cDMvb{width:100%;padding:0 1rem}div.sidePanel_session__EeNjH.sidePanel_compressed__CUgIn{max-width:100%;display:grid;grid-template-columns:70vw auto;justify-content:space-between}div.sidePanel_session__EeNjH{max-width:100%;grid-template-columns:minmax(auto,70vw) 1fr}}.agentCard_agentPersonality__MmRlN p{white-space:inherit;overflow:hidden;height:77px;line-height:1.5}div.agentCard_agentPersonality__MmRlN{text-align:left;grid-column:span 3;overflow:hidden}button.agentCard_infoButton__heh_w{border:none;background-color:transparent!important;text-align:left;font-family:inherit;font-size:medium}div.automations_automationsLayout__Atoh_{display:grid;grid-template-columns:1fr 1fr;gap:1rem}div.automations_automationCard__BKidA{display:grid;grid-template-rows:auto 1fr auto}div.automations_pageLayout__OaoYA{max-width:60vw;margin:auto auto 2rem}@media screen and (max-width:768px){div.automations_automationsLayout__Atoh_{grid-template-columns:1fr}div.automations_pageLayout__OaoYA{max-width:90vw}}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|