khoj 2.0.0b14.dev43__py3-none-any.whl → 2.0.0b15.dev22__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 +59 -20
- khoj/database/admin.py +6 -2
- khoj/database/migrations/0094_serverchatsettings_think_free_deep_and_more.py +61 -0
- khoj/database/models/__init__.py +18 -2
- khoj/interface/compiled/404/index.html +1 -1
- khoj/interface/compiled/_next/static/chunks/{9808-c0742b05e1ef29ba.js → 9808-bd5d7361ad026094.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/page-ac7ed0a1aff1b145.js +1 -0
- khoj/interface/compiled/_next/static/css/fb7ea16e60b40ecd.css +1 -0
- khoj/interface/compiled/agents/index.html +1 -1
- khoj/interface/compiled/agents/index.txt +1 -1
- khoj/interface/compiled/automations/index.html +1 -1
- khoj/interface/compiled/automations/index.txt +1 -1
- khoj/interface/compiled/chat/index.html +2 -2
- khoj/interface/compiled/chat/index.txt +2 -2
- khoj/interface/compiled/index.html +2 -2
- khoj/interface/compiled/index.txt +1 -1
- khoj/interface/compiled/search/index.html +1 -1
- khoj/interface/compiled/search/index.txt +1 -1
- khoj/interface/compiled/settings/index.html +1 -1
- khoj/interface/compiled/settings/index.txt +1 -1
- khoj/interface/compiled/share/chat/index.html +2 -2
- khoj/interface/compiled/share/chat/index.txt +2 -2
- khoj/processor/conversation/anthropic/anthropic_chat.py +4 -88
- khoj/processor/conversation/anthropic/utils.py +1 -2
- khoj/processor/conversation/google/gemini_chat.py +5 -89
- khoj/processor/conversation/google/utils.py +8 -9
- khoj/processor/conversation/openai/gpt.py +16 -93
- khoj/processor/conversation/openai/utils.py +58 -43
- khoj/processor/conversation/prompts.py +30 -39
- khoj/processor/conversation/utils.py +71 -84
- khoj/processor/image/generate.py +69 -15
- khoj/processor/tools/run_code.py +3 -2
- khoj/routers/api_chat.py +8 -21
- khoj/routers/helpers.py +243 -156
- khoj/routers/research.py +6 -6
- khoj/utils/constants.py +3 -1
- khoj/utils/helpers.py +6 -2
- {khoj-2.0.0b14.dev43.dist-info → khoj-2.0.0b15.dev22.dist-info}/METADATA +1 -1
- {khoj-2.0.0b14.dev43.dist-info → khoj-2.0.0b15.dev22.dist-info}/RECORD +44 -43
- khoj/interface/compiled/_next/static/chunks/app/chat/page-1b4893b1a9957220.js +0 -1
- khoj/interface/compiled/_next/static/css/cea3bdfe98c144bd.css +0 -1
- /khoj/interface/compiled/_next/static/{OKbGpkzD6gHDfr1vAog6p → t8O_8CJ9p3UtV9kEsAAWT}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{OKbGpkzD6gHDfr1vAog6p → t8O_8CJ9p3UtV9kEsAAWT}/_ssgManifest.js +0 -0
- {khoj-2.0.0b14.dev43.dist-info → khoj-2.0.0b15.dev22.dist-info}/WHEEL +0 -0
- {khoj-2.0.0b14.dev43.dist-info → khoj-2.0.0b15.dev22.dist-info}/entry_points.txt +0 -0
- {khoj-2.0.0b14.dev43.dist-info → khoj-2.0.0b15.dev22.dist-info}/licenses/LICENSE +0 -0
@@ -1293,32 +1293,71 @@ class ConversationAdapters:
|
|
1293
1293
|
return ChatModel.objects.filter().first()
|
1294
1294
|
|
1295
1295
|
@staticmethod
|
1296
|
-
async def aget_default_chat_model(
|
1297
|
-
|
1296
|
+
async def aget_default_chat_model(
|
1297
|
+
user: KhojUser = None, fallback_chat_model: Optional[ChatModel] = None, fast: Optional[bool] = None
|
1298
|
+
):
|
1299
|
+
"""
|
1300
|
+
Get the chat model to use. Prefer chat model by server admin > agent > user > first created chat model
|
1301
|
+
|
1302
|
+
Fast is a trinary flag to indicate preference for fast, deep or default chat model configured by the server admin.
|
1303
|
+
If fast is True, prefer fast models over deep models when both are configured.
|
1304
|
+
If fast is False, prefer deep models over fast models when both are configured.
|
1305
|
+
If fast is None, do not consider speed preference and use the default model selection logic.
|
1306
|
+
|
1307
|
+
If fallback_chat_model is provided, it will be used as a fallback if server chat settings are not configured.
|
1308
|
+
Else if user settings are found use that.
|
1309
|
+
Otherwise the first chat model will be used.
|
1310
|
+
"""
|
1298
1311
|
# Get the server chat settings
|
1299
1312
|
server_chat_settings: ServerChatSettings = (
|
1300
1313
|
await ServerChatSettings.objects.filter()
|
1301
1314
|
.prefetch_related(
|
1302
|
-
"chat_default",
|
1315
|
+
"chat_default",
|
1316
|
+
"chat_default__ai_model_api",
|
1317
|
+
"chat_advanced",
|
1318
|
+
"chat_advanced__ai_model_api",
|
1319
|
+
"think_free_fast",
|
1320
|
+
"think_free_fast__ai_model_api",
|
1321
|
+
"think_free_deep",
|
1322
|
+
"think_free_deep__ai_model_api",
|
1323
|
+
"think_paid_fast",
|
1324
|
+
"think_paid_fast__ai_model_api",
|
1325
|
+
"think_paid_deep",
|
1326
|
+
"think_paid_deep__ai_model_api",
|
1303
1327
|
)
|
1304
1328
|
.afirst()
|
1305
1329
|
)
|
1306
1330
|
is_subscribed = await ais_user_subscribed(user) if user else False
|
1307
1331
|
|
1308
1332
|
if server_chat_settings:
|
1309
|
-
# If the user is subscribed
|
1310
|
-
if is_subscribed
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1333
|
+
# If the user is subscribed
|
1334
|
+
if is_subscribed:
|
1335
|
+
# If fast is requested and fast paid model is available
|
1336
|
+
if server_chat_settings.think_paid_fast and fast is True:
|
1337
|
+
return server_chat_settings.think_paid_fast
|
1338
|
+
# Else if fast is not requested and deep paid model is available
|
1339
|
+
elif server_chat_settings.think_paid_deep and fast is not None:
|
1340
|
+
return server_chat_settings.think_paid_deep
|
1341
|
+
# Else if advanced model is available
|
1342
|
+
elif server_chat_settings.chat_advanced:
|
1343
|
+
return server_chat_settings.chat_advanced
|
1344
|
+
else:
|
1345
|
+
# If fast is requested and fast free model is available
|
1346
|
+
if server_chat_settings.think_free_fast and fast:
|
1347
|
+
return server_chat_settings.think_free_fast
|
1348
|
+
# Else if fast is not requested and deep free model is available
|
1349
|
+
elif server_chat_settings.think_free_deep:
|
1350
|
+
return server_chat_settings.think_free_deep
|
1351
|
+
# Else if default model is available
|
1352
|
+
elif server_chat_settings.chat_default:
|
1353
|
+
return server_chat_settings.chat_default
|
1315
1354
|
|
1316
1355
|
# Revert to an explicit fallback model if the server chat settings are not set
|
1317
1356
|
if fallback_chat_model:
|
1318
1357
|
# The chat model may not be full loaded from the db, so explicitly load it here
|
1319
1358
|
return await ChatModel.objects.filter(id=fallback_chat_model.id).prefetch_related("ai_model_api").afirst()
|
1320
1359
|
|
1321
|
-
# Get the user's chat settings, if the server chat settings are not set
|
1360
|
+
# Get the user's chat settings, if both the server chat settings and the fallback model are not set
|
1322
1361
|
user_chat_settings = (
|
1323
1362
|
(await UserConversationConfig.objects.filter(user=user).prefetch_related("setting__ai_model_api").afirst())
|
1324
1363
|
if user
|
@@ -1398,16 +1437,6 @@ class ConversationAdapters:
|
|
1398
1437
|
enabled_scrapers = [scraper async for scraper in WebScraper.objects.all().order_by("priority").aiterator()]
|
1399
1438
|
if not enabled_scrapers:
|
1400
1439
|
# Use scrapers enabled via environment variables
|
1401
|
-
if os.getenv("FIRECRAWL_API_KEY"):
|
1402
|
-
api_url = os.getenv("FIRECRAWL_API_URL", "https://api.firecrawl.dev")
|
1403
|
-
enabled_scrapers.append(
|
1404
|
-
WebScraper(
|
1405
|
-
type=WebScraper.WebScraperType.FIRECRAWL,
|
1406
|
-
name=WebScraper.WebScraperType.FIRECRAWL.capitalize(),
|
1407
|
-
api_key=os.getenv("FIRECRAWL_API_KEY"),
|
1408
|
-
api_url=api_url,
|
1409
|
-
)
|
1410
|
-
)
|
1411
1440
|
if os.getenv("OLOSTEP_API_KEY"):
|
1412
1441
|
api_url = os.getenv("OLOSTEP_API_URL", "https://agent.olostep.com/olostep-p2p-incomingAPI")
|
1413
1442
|
enabled_scrapers.append(
|
@@ -1418,6 +1447,16 @@ class ConversationAdapters:
|
|
1418
1447
|
api_url=api_url,
|
1419
1448
|
)
|
1420
1449
|
)
|
1450
|
+
if os.getenv("FIRECRAWL_API_KEY"):
|
1451
|
+
api_url = os.getenv("FIRECRAWL_API_URL", "https://api.firecrawl.dev")
|
1452
|
+
enabled_scrapers.append(
|
1453
|
+
WebScraper(
|
1454
|
+
type=WebScraper.WebScraperType.FIRECRAWL,
|
1455
|
+
name=WebScraper.WebScraperType.FIRECRAWL.capitalize(),
|
1456
|
+
api_key=os.getenv("FIRECRAWL_API_KEY"),
|
1457
|
+
api_url=api_url,
|
1458
|
+
)
|
1459
|
+
)
|
1421
1460
|
# Jina is the default fallback scrapers to use as it does not require an API key
|
1422
1461
|
api_url = os.getenv("JINA_READER_API_URL", "https://r.jina.ai/")
|
1423
1462
|
enabled_scrapers.append(
|
khoj/database/admin.py
CHANGED
@@ -256,10 +256,10 @@ class AiModelApiAdmin(unfold_admin.ModelAdmin):
|
|
256
256
|
list_display = (
|
257
257
|
"id",
|
258
258
|
"name",
|
259
|
-
"api_key",
|
260
259
|
"api_base_url",
|
260
|
+
"api_key",
|
261
261
|
)
|
262
|
-
search_fields = ("id", "name", "
|
262
|
+
search_fields = ("id", "name", "api_base_url", "api_key")
|
263
263
|
|
264
264
|
|
265
265
|
@admin.register(SearchModelConfig)
|
@@ -278,6 +278,10 @@ class ServerChatSettingsAdmin(unfold_admin.ModelAdmin):
|
|
278
278
|
list_display = (
|
279
279
|
"chat_default",
|
280
280
|
"chat_advanced",
|
281
|
+
"think_free_fast",
|
282
|
+
"think_free_deep",
|
283
|
+
"think_paid_fast",
|
284
|
+
"think_paid_deep",
|
281
285
|
"web_scraper",
|
282
286
|
)
|
283
287
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Generated by Django 5.1.10 on 2025-08-26 20:47
|
2
|
+
|
3
|
+
import django.db.models.deletion
|
4
|
+
from django.db import migrations, models
|
5
|
+
|
6
|
+
|
7
|
+
class Migration(migrations.Migration):
|
8
|
+
dependencies = [
|
9
|
+
("database", "0093_remove_localorgconfig_user_and_more"),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.AddField(
|
14
|
+
model_name="serverchatsettings",
|
15
|
+
name="think_free_deep",
|
16
|
+
field=models.ForeignKey(
|
17
|
+
blank=True,
|
18
|
+
default=None,
|
19
|
+
null=True,
|
20
|
+
on_delete=django.db.models.deletion.CASCADE,
|
21
|
+
related_name="think_free_deep",
|
22
|
+
to="database.chatmodel",
|
23
|
+
),
|
24
|
+
),
|
25
|
+
migrations.AddField(
|
26
|
+
model_name="serverchatsettings",
|
27
|
+
name="think_free_fast",
|
28
|
+
field=models.ForeignKey(
|
29
|
+
blank=True,
|
30
|
+
default=None,
|
31
|
+
null=True,
|
32
|
+
on_delete=django.db.models.deletion.CASCADE,
|
33
|
+
related_name="think_free_fast",
|
34
|
+
to="database.chatmodel",
|
35
|
+
),
|
36
|
+
),
|
37
|
+
migrations.AddField(
|
38
|
+
model_name="serverchatsettings",
|
39
|
+
name="think_paid_deep",
|
40
|
+
field=models.ForeignKey(
|
41
|
+
blank=True,
|
42
|
+
default=None,
|
43
|
+
null=True,
|
44
|
+
on_delete=django.db.models.deletion.CASCADE,
|
45
|
+
related_name="think_paid_deep",
|
46
|
+
to="database.chatmodel",
|
47
|
+
),
|
48
|
+
),
|
49
|
+
migrations.AddField(
|
50
|
+
model_name="serverchatsettings",
|
51
|
+
name="think_paid_fast",
|
52
|
+
field=models.ForeignKey(
|
53
|
+
blank=True,
|
54
|
+
default=None,
|
55
|
+
null=True,
|
56
|
+
on_delete=django.db.models.deletion.CASCADE,
|
57
|
+
related_name="think_paid_fast",
|
58
|
+
to="database.chatmodel",
|
59
|
+
),
|
60
|
+
),
|
61
|
+
]
|
khoj/database/models/__init__.py
CHANGED
@@ -472,6 +472,18 @@ class ServerChatSettings(DbBaseModel):
|
|
472
472
|
chat_advanced = models.ForeignKey(
|
473
473
|
ChatModel, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="chat_advanced"
|
474
474
|
)
|
475
|
+
think_free_fast = models.ForeignKey(
|
476
|
+
ChatModel, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="think_free_fast"
|
477
|
+
)
|
478
|
+
think_free_deep = models.ForeignKey(
|
479
|
+
ChatModel, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="think_free_deep"
|
480
|
+
)
|
481
|
+
think_paid_fast = models.ForeignKey(
|
482
|
+
ChatModel, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="think_paid_fast"
|
483
|
+
)
|
484
|
+
think_paid_deep = models.ForeignKey(
|
485
|
+
ChatModel, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="think_paid_deep"
|
486
|
+
)
|
475
487
|
web_scraper = models.ForeignKey(
|
476
488
|
WebScraper, on_delete=models.CASCADE, default=None, null=True, blank=True, related_name="web_scraper"
|
477
489
|
)
|
@@ -480,6 +492,10 @@ class ServerChatSettings(DbBaseModel):
|
|
480
492
|
error = {}
|
481
493
|
if self.chat_default and self.chat_default.price_tier != PriceTier.FREE:
|
482
494
|
error["chat_default"] = "Set the price tier of this chat model to free or use a free tier chat model."
|
495
|
+
if self.think_free_fast and self.think_free_fast.price_tier != PriceTier.FREE:
|
496
|
+
error["think_free_fast"] = "Set the price tier of this chat model to free or use a free tier chat model."
|
497
|
+
if self.think_free_deep and self.think_free_deep.price_tier != PriceTier.FREE:
|
498
|
+
error["think_free_deep"] = "Set the price tier of this chat model to free or use a free tier chat model."
|
483
499
|
if error:
|
484
500
|
raise ValidationError(error)
|
485
501
|
|
@@ -636,9 +652,9 @@ class Conversation(DbBaseModel):
|
|
636
652
|
for msg in self.conversation_log.get("chat", []):
|
637
653
|
try:
|
638
654
|
# Clean up inferred queries if they contain None
|
639
|
-
if msg.get("intent") and msg["intent"].get("
|
655
|
+
if msg.get("intent") and msg["intent"].get("inferred_queries"):
|
640
656
|
msg["intent"]["inferred-queries"] = [
|
641
|
-
q for q in msg["intent"]["
|
657
|
+
q for q in msg["intent"]["inferred_queries"] if q is not None and isinstance(q, str)
|
642
658
|
]
|
643
659
|
msg["message"] = str(msg.get("message", ""))
|
644
660
|
validated_messages.append(ChatMessageModel.model_validate(msg))
|
@@ -5,4 +5,4 @@
|
|
5
5
|
document.documentElement.classList.add('dark');
|
6
6
|
}
|
7
7
|
} catch (e) {}
|
8
|
-
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-5393aad3d824e0cb.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/1d8a05b60287ae6c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/40381518f67e6cb9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/77c207b095007c34-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/82ef96de0e8f4d8c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/a6ecd16fa044d500-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/media/c4250770ab8708b6-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n8:HL[\"/_next/static/css/7889a30fe9c83846.css\",\"style\"]\n9:HL[\"/_next/static/css/5c7a72bad47e50b3.css\",\"style\"]\na:HL[\"/_next/static/css/5b28ced915454767.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"b:I[12846,[],\"\"]\nd:I[4707,[],\"\"]\ne:I[36423,[],\"\"]\nf:I[85147,[\"7200\",\"static/chunks/7200-93ab0072359b8028.js\",\"3185\",\"static/chunks/app/layout-c2de87a25fededbb.js\"],\"ThemeProvider\"]\n15:I[61060,[],\"\"]\n10:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n11:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n12:{\"display\":\"inline-block\"}\n13:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n16:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$Lb\",null,{\"buildId\":\"OKbGpkzD6gHDfr1vAog6p\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lc\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7889a30fe9c83846.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5c7a72bad47e50b3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b28ced915454767.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_f36179 __variable_386ca1\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n if (localStorage.getItem('theme') === 'dark' ||\\n (!localStorage.getItem('theme') \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.classList.add('dark');\\n }\\n } catch (e) {}\\n \"}}]}],[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com https://accounts.google.com; img-src 'self' data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; frame-src 'self' https://accounts.google.com https://app.chatwoot.com; child-src 'self' https://app.chatwoot.com; object-src 'none';\"}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$10\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$11\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$12\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$13\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L14\"],\"globalErrorComponent\":\"$15\",\"missingSlots\":\"$W16\"}]\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Ask Anything\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"33\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"34\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
8
|
+
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-5393aad3d824e0cb.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/1d8a05b60287ae6c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/40381518f67e6cb9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/77c207b095007c34-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/82ef96de0e8f4d8c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/a6ecd16fa044d500-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/bd82c78e5b7b3fe9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/media/c4250770ab8708b6-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n8:HL[\"/_next/static/css/7889a30fe9c83846.css\",\"style\"]\n9:HL[\"/_next/static/css/5c7a72bad47e50b3.css\",\"style\"]\na:HL[\"/_next/static/css/5b28ced915454767.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"b:I[12846,[],\"\"]\nd:I[4707,[],\"\"]\ne:I[36423,[],\"\"]\nf:I[85147,[\"7200\",\"static/chunks/7200-93ab0072359b8028.js\",\"3185\",\"static/chunks/app/layout-c2de87a25fededbb.js\"],\"ThemeProvider\"]\n15:I[61060,[],\"\"]\n10:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n11:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n12:{\"display\":\"inline-block\"}\n13:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n16:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$Lb\",null,{\"buildId\":\"t8O_8CJ9p3UtV9kEsAAWT\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$Lc\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7889a30fe9c83846.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5c7a72bad47e50b3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b28ced915454767.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_f36179 __variable_386ca1\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n if (localStorage.getItem('theme') === 'dark' ||\\n (!localStorage.getItem('theme') \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.classList.add('dark');\\n }\\n } catch (e) {}\\n \"}}]}],[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev https://app.chatwoot.com https://accounts.google.com 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110 https://accounts.google.com; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com https://accounts.google.com; img-src 'self' data: blob: https://*.khoj.dev https://accounts.google.com https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; frame-src 'self' https://accounts.google.com https://app.chatwoot.com; child-src 'self' https://app.chatwoot.com; object-src 'none';\"}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$10\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$11\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$12\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$13\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L14\"],\"globalErrorComponent\":\"$15\",\"missingSlots\":\"$W16\"}]\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Ask Anything\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"research assistant, productivity, AI, Khoj, open source, model agnostic, research, productivity tool, personal assistant, personal research assistant, personal productivity assistant\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"Khoj is a personal research assistant. It helps you understand better and create faster.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_hero.png\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"940\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"525\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"33\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"34\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
khoj/interface/compiled/_next/static/chunks/{9808-c0742b05e1ef29ba.js → 9808-bd5d7361ad026094.js}
RENAMED
@@ -1 +1 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9808],{29808:function(e,t,n){"use strict";n.d(t,{Z:function(){return eL}});var a=n(57437),s=n(42501),r=n.n(s),l=n(2265),o=n(48614),i=n(98239),c=n(91499),d=n.n(c),u=n(19983),h=n(13506),m=n.n(h),g=n(34040),f=n(54887);n(2446);var x=n(37052),p=n(19273),v=n(3244),j=n(4235),w=n(66070),y=n(69304),b=n(57054),N=n(18848),M=n(42225),k=n(27648);let C=new u.Z({html:!0,linkify:!0,typographer:!0});function _(e){let t=(0,M.Le)(e.title||".txt","w-6 h-6 text-muted-foreground inline-flex mr-2"),n=e.title.split("/").pop()||e.title,s=function(e){let t=["org","md","markdown"].includes(e.title.split(".").pop()||"")?e.content.split("\n").slice(1).join("\n"):e.content;return e.showFullContent?N.Z.sanitize(C.render(t)):N.Z.sanitize(t)}(e),[r,o]=(0,l.useState)(!1);return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:r&&!e.showFullContent,onOpenChange:o,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("h3",{className:"".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground}"),children:[t,e.showFullContent?e.title:n]}),(0,a.jsx)("p",{className:"text-sm overflow-x-auto block",dangerouslySetInnerHTML:{__html:s}})]}):(0,a.jsx)(T,{type:"notes"},"".concat(e.title))})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsxs)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,a.jsxs)("h3",{className:"line-clamp-2 text-muted-foreground}",children:[t,e.title]}),(0,a.jsx)("p",{className:"border-t mt-1 pt-1 text-sm overflow-hidden line-clamp-5",dangerouslySetInnerHTML:{__html:s}})]})})]})})}function S(e){var t,n,s,r,o,i;let c=(0,M.Le)(".py","!w-4 h-4 text-muted-foreground flex-shrink-0"),d=N.Z.sanitize(e.code),[u,h]=(0,l.useState)(!1),[m,g]=(0,l.useState)(!1),f=e=>{let t="text/plain",n=e.b64_data;e.filename.match(/\.(png|jpg|jpeg|webp)$/)?(t="image/".concat(e.filename.split(".").pop()),n=atob(e.b64_data)):e.filename.endsWith(".json")?t="application/json":e.filename.endsWith(".csv")&&(t="text/csv");let a=new ArrayBuffer(n.length),s=new Uint8Array(a);for(let e=0;e<n.length;e++)s[e]=n.charCodeAt(e);let r=new Blob([a],{type:t}),l=URL.createObjectURL(r),o=document.createElement("a");o.href=l,o.download=e.filename,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(l)},p=(t,n)=>(null==t?void 0:t.length)==0?null:(0,a.jsx)("div",{className:"".concat(n||e.showFullContent?"border-t mt-1 pt-1":void 0),children:t.slice(0,e.showFullContent?void 0:1).map((t,s)=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("h4",{className:"text-sm text-muted-foreground flex items-center",children:[(0,a.jsx)("span",{className:"overflow-hidden mr-2 font-bold ".concat(e.showFullContent?void 0:"line-clamp-1"),children:t.filename}),(0,a.jsx)("button",{className:"".concat(n?"hidden":void 0),onClick:e=>{e.preventDefault(),f(t)},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),title:"Download file: ".concat(t.filename),children:(0,a.jsx)(x.b,{className:"w-4 h-4",weight:m?"fill":"regular"})})]}),t.filename.match(/\.(txt|org|md|csv|json)$/)?(0,a.jsx)("pre",{className:"".concat(e.showFullContent?"block":"line-clamp-2"," text-sm mt-1 p-1 bg-background rounded overflow-x-auto"),children:t.b64_data}):t.filename.match(/\.(png|jpg|jpeg|webp)$/)?(0,a.jsx)("img",{src:"data:image/".concat(t.filename.split(".").pop(),";base64,").concat(t.b64_data),alt:t.filename,className:"mt-1 max-h-32 rounded"}):null]},"".concat(t.filename,"-").concat(s)))});return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:u&&!e.showFullContent,onOpenChange:h,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)("div",{className:"flex flex-col px-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[c,(0,a.jsxs)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:["code ",(null===(t=e.output_files)||void 0===t?void 0:t.length)>0?"artifacts":""]})]}),(0,a.jsx)("pre",{className:"text-xs pb-2 ".concat(e.showFullContent?"block overflow-x-auto":(null===(n=e.output_files)||void 0===n?void 0:n.length)>0?"hidden":"overflow-hidden line-clamp-3"),children:d}),(null===(s=e.output_files)||void 0===s?void 0:s.length)>0&&p(e.output_files,!1)]}):(0,a.jsx)(T,{type:"code"},"code-".concat(e.code))})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsxs)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[c,(0,a.jsxs)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:["code ",(null===(r=e.output_files)||void 0===r?void 0:r.length)>0?"artifact":""]})]}),(null===(o=e.output_files)||void 0===o?void 0:o.length)>0&&p(null===(i=e.output_files)||void 0===i?void 0:i.slice(0,1),!0)||(0,a.jsx)("pre",{className:"text-xs border-t mt-1 pt-1 overflow-hidden line-clamp-10",children:d})]})})]})})}function E(e){let[t,n]=(0,l.useState)(!1);if(!e.link||e.link.split(" ").length>1)return null;let s="https://www.google.com/s2/favicons?domain=globe",r="unknown";try{r=new URL(e.link).hostname,s="https://www.google.com/s2/favicons?domain=".concat(r)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:t&&!e.showFullContent,onOpenChange:n,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)},className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)(k.default,{href:e.link,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:r})]})}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," font-bold"),children:e.title}),(0,a.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-2"),children:e.description})]}):(0,a.jsx)(T,{type:"online",link:e.link},e.title)})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsx)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none",children:(0,a.jsx)("div",{className:"flex flex-col",children:(0,a.jsxs)("a",{href:e.link,target:"_blank",rel:"noreferrer",className:"!no-underline px-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," text-muted-foreground flex-grow"),children:r})]}),(0,a.jsx)("h3",{className:"border-t mt-1 pt-1 overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," font-bold"),children:e.title}),(0,a.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-5"),children:e.description})]})})})})]})})}function T(e){let t="",n="unknown";if(e.link)try{n=new URL(e.link).hostname,t="https://www.google.com/s2/favicons?domain=".concat(n)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}let s=null,r="!w-4 !h-4 text-muted-foreground inline-flex mr-2 rounded-lg";switch(e.type){case"code":s=(0,a.jsx)(p.E,{className:"".concat(r)});break;case"online":s=(0,a.jsx)("img",{src:t,alt:"",className:"".concat(r)});break;case"notes":s=(0,a.jsx)(v.j,{className:"".concat(r)});break;default:s=null}return s?(0,a.jsx)("div",{className:"flex items-center gap-2",children:s}):null}function R(e){let t=e.notesReferenceCardData.length>0||e.codeReferenceCardData.length>0||e.onlineReferenceCardData.length>0,n=e.notesReferenceCardData.length+e.codeReferenceCardData.length+e.onlineReferenceCardData.length;return 0===n?null:(0,a.jsx)("div",{className:"pt-0 px-4 pb-4",children:(0,a.jsxs)("h3",{className:"inline-flex items-center",children:[(0,a.jsxs)("div",{className:"text-gray-400 m-2",children:[n," sources"]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2 w-auto m-2",children:t&&(0,a.jsx)(I,{notesReferenceCardData:e.notesReferenceCardData,onlineReferenceCardData:e.onlineReferenceCardData,codeReferenceCardData:e.codeReferenceCardData,isMobileWidth:e.isMobileWidth})})]})})}function I(e){let[t,n]=(0,l.useState)(3);if((0,l.useEffect)(()=>{n(e.isMobileWidth?3:5)},[e.isMobileWidth]),!e.notesReferenceCardData&&!e.onlineReferenceCardData)return null;let s=e.codeReferenceCardData.slice(0,t),r=e.notesReferenceCardData.slice(0,t-s.length),o=r.length+s.length<t?e.onlineReferenceCardData.filter(e=>e.link).slice(0,t-s.length-r.length):[];return(0,a.jsxs)(y.yo,{children:[(0,a.jsxs)(y.aM,{className:"text-balance w-auto justify-start overflow-hidden break-words p-0 bg-transparent border-none text-gray-400 align-middle items-center m-0 inline-flex",children:[s.map((e,t)=>(0,l.createElement)(S,{showFullContent:!1,...e,key:"code-".concat(t)})),r.map((e,t)=>(0,l.createElement)(_,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),o.map((e,t)=>(0,l.createElement)(E,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),(0,a.jsx)(j.o,{className:"m-0"})]}),(0,a.jsxs)(y.ue,{className:"overflow-y-scroll",children:[(0,a.jsxs)(y.Tu,{children:[(0,a.jsx)(y.bC,{children:"References"}),(0,a.jsx)(y.Ei,{children:"View all references for this response"})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2 w-auto mt-2",children:[e.codeReferenceCardData.map((e,t)=>(0,l.createElement)(S,{showFullContent:!0,...e,key:"code-".concat(t)})),e.notesReferenceCardData.map((e,t)=>(0,l.createElement)(_,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)})),e.onlineReferenceCardData.map((e,t)=>(0,l.createElement)(E,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)}))]})]})]})}var O=n(59199);function L(e){let{content:t,targetLine:n,maxLines:s=20}=e,r=(t||"").split("\n");if(n&&n>0&&n<=r.length){let e=Math.max(1,n-2),t=Math.min(r.length,n+5),s=r.slice(e-1,t);return(0,a.jsx)("pre",{className:"whitespace-pre-wrap text-xs",children:s.map((t,s)=>{let r=e+s,l=r===n;return(0,a.jsxs)("div",{className:l?"bg-green-100 dark:bg-green-900":"",children:[(0,a.jsxs)("span",{className:"text-gray-400 select-none mr-2",children:[r.toString().padStart(3," "),":"]}),t]},r)})})}let l=r.slice(0,s);return(0,a.jsxs)("pre",{className:"whitespace-pre-wrap text-xs",children:[l.map((e,t)=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("span",{className:"text-gray-400 select-none mr-2",children:[(t+1).toString().padStart(3," "),":"]}),e]},t)),r.length>s&&(0,a.jsxs)("div",{className:"text-gray-500 italic",children:["... and ",r.length-s," more lines"]})]})}function F(e,t){let[n,a]=(0,l.useState)(""),[s,r]=(0,l.useState)(!1),[o,i]=(0,l.useState)(null);return(0,l.useEffect)(()=>{let n=!1;return async function(){if(t&&e){r(!0),i(null),a("");try{let t=await fetch("/api/content/file?file_name=".concat(encodeURIComponent(e)));if(!t.ok)throw Error("Failed to fetch file content (".concat(t.status,")"));let s=await t.json();n||a(s.raw_text||"")}catch(e){n||i(e instanceof Error?e.message:"Failed to load file content")}finally{n||r(!1)}}}(),()=>{n=!0}},[e,t]),{content:n,loading:s,error:o}}var D=n(24379),B=n(58441),P=n(49807),A=n(74541),z=n(52874),q=n(5033),U=n(30655),H=n(80382),Z=n(7143),W=n(2585),V=n(58905),G=n(39966),$=n(71640),J=n(24148),Q=n(68382),K=n(78582),Y=n(96620),X=n(77276),ee=n(39957),et=n(14308),en=n(84671),ea=n(36663);let es=(0,n(30166).default)(()=>Promise.all([n.e(6555),n.e(7293),n.e(4609),n.e(2242)]).then(n.bind(n,92242)).then(e=>e.default),{loadableGenerated:{webpack:()=>[92242]},ssr:!1});function er(e){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(et.Z,{}),children:(0,a.jsx)(es,{data:e.data})})}var el=n(26110),eo=n(49027),ei=n(7436),ec=n(19378),ed=n(50656),eu=n(45199),eh=n(25778),em=n(62869),eg=e=>{let{chart:t}=e,[n,s]=(0,l.useState)(null),[r]=(0,l.useState)("mermaid-chart-".concat(Math.random().toString(12).substring(7))),o=(0,l.useRef)(null);(0,l.useEffect)(()=>{ed.Z.initialize({startOnLoad:!1}),ed.Z.parseError=e=>{let t;console.error("Mermaid errors:",e);try{t="string"==typeof e?JSON.parse(e):e}catch(n){t=(null==e?void 0:e.toString())||"Unknown error"}console.log("Mermaid error message:",t),"element is null"!==t.str?s("Something went wrong while rendering the diagram. Please try again later or downvote the message if the issue persists."):s(null)},ed.Z.contentLoaded()},[]);let i=async()=>{if(o.current)try{var e;let t=o.current.querySelector("svg");if(!t)throw Error("No SVG found");let[,,n,a]=(null===(e=t.getAttribute("viewBox"))||void 0===e?void 0:e.split(" ").map(Number))||[0,0,0,0],s=document.createElement("canvas");s.width=2*n,s.height=2*a;let r=s.getContext("2d");if(!r)throw Error("Failed to get canvas context");let l=new XMLSerializer().serializeToString(t),i=new Blob([l],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(i),d=new Image;d.src=c,await new Promise((e,t)=>{d.onload=()=>{r.scale(2,2),r.drawImage(d,0,0,n,a),s.toBlob(n=>{if(!n){t(Error("Failed to create blob"));return}let a=URL.createObjectURL(n),s=document.createElement("a");s.href=a,s.download="mermaid-diagram-".concat(Date.now(),".png"),s.click(),URL.revokeObjectURL(a),URL.revokeObjectURL(c),e(!0)},"image/png")},d.onerror=()=>t(Error("Failed to load SVG"))})}catch(e){console.error("Error exporting diagram:",e),s("Failed to export diagram")}};return(0,l.useEffect)(()=>{o.current&&(o.current.removeAttribute("data-processed"),ed.Z.run({nodes:[o.current]}).then(()=>{s(null)}).catch(e=>{let t;try{t="string"==typeof e?JSON.parse(e):e}catch(n){t=(null==e?void 0:e.toString())||"Unknown error"}console.log("Mermaid error message:",t),"element is null"!==t.str?s("Something went wrong while rendering the diagram. Please try again later or downvote the message if the issue persists."):s(null)}))},[t]),(0,a.jsxs)("div",{children:[n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 bg-red-100 border border-red-500 rounded-md p-1 mt-3 text-red-900 text-sm",children:[(0,a.jsx)(eu.k,{className:"w-12 h-12"}),(0,a.jsx)("span",{children:n})]}),(0,a.jsx)("code",{className:"block bg-secondary text-secondary-foreground p-4 mt-3 rounded-lg font-mono text-sm whitespace-pre-wrap overflow-x-auto max-h-[400px] border border-gray-200",children:t})]}):(0,a.jsx)("div",{id:r,ref:o,className:"mermaid",style:{width:"auto",height:"auto",boxSizing:"border-box",overflow:"auto"},children:t}),!n&&(0,a.jsxs)(em.z,{onClick:i,variant:"secondary",className:"mt-3",children:[(0,a.jsx)(eh.U,{className:"w-5 h-5"}),"Export as PNG"]})]})};let ef=new u.Z({html:!0,linkify:!0,typographer:!0});function ex(e,t,n){fetch("/api/chat/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uquery:e,kquery:t,sentiment:n})})}function ep(e){let{uquery:t,kquery:n}=e,[s,r]=(0,l.useState)(null);return(0,l.useEffect)(()=>{null!==s&&setTimeout(()=>{r(null)},2e3)},[s]),(0,a.jsxs)("div",{className:"".concat(d().feedbackButtons," flex align-middle justify-center items-center"),children:[(0,a.jsx)("button",{title:"Like",className:d().thumbsUpButton,disabled:null!==s,onClick:()=>{ex(t,n,"positive"),r(!0)},children:!0===s?(0,a.jsx)(D.V,{alt:"Liked Message",className:"text-green-500",weight:"fill"}):(0,a.jsx)(D.V,{alt:"Like Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),(0,a.jsx)("button",{title:"Dislike",className:d().thumbsDownButton,disabled:null!==s,onClick:()=>{ex(t,n,"negative"),r(!1)},children:!1===s?(0,a.jsx)(B.L,{alt:"Disliked Message",className:"text-red-500",weight:"fill"}):(0,a.jsx)(B.L,{alt:"Dislike Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})})]})}function ev(e){let t=e.message.match(/\*\*(.*)\*\*/),n=function(e,t){let n=e.toLowerCase(),s="inline mt-1 mr-2 ".concat(t," h-4 w-4");return n.includes("understanding")?(0,a.jsx)(P.a,{className:"".concat(s)}):n.includes("generating")?(0,a.jsx)(A.Z,{className:"".concat(s)}):n.includes("tools")?(0,a.jsx)(z.v,{className:"".concat(s)}):n.includes("notes")?(0,a.jsx)(q.gt,{className:"".concat(s)}):n.includes("read")?(0,a.jsx)(U.f,{className:"".concat(s)}):n.includes("search")?(0,a.jsx)(H.Y,{className:"".concat(s)}):n.includes("summary")||n.includes("summarize")||n.includes("enhanc")?(0,a.jsx)(Z.u,{className:"".concat(s)}):n.includes("diagram")?(0,a.jsx)(W.j,{className:"".concat(s)}):n.includes("paint")?(0,a.jsx)(V.Y,{className:"".concat(s)}):n.includes("code")?(0,a.jsx)(p.E,{className:"".concat(s)}):n.includes("operating")?(0,a.jsx)(G.A,{className:"".concat(s)}):(0,a.jsx)(P.a,{className:"".concat(s)})}(t?t[1]:"",e.primary?(0,en.oz)(e.agentColor):"text-gray-500"),s=e.message,r=null;try{let e=s.match(/\{.*("action": "screenshot"|"type": "screenshot"|"image": "data:image\/.*").*\}/);if(e){r=JSON.parse(e[0]);let t='<img src="'.concat(r.image,'" alt="State of environment" class="max-w-full" />');s=s.replace(":\n**Action**: ".concat(e[0]),"\n\n- ".concat(r.text,"\n").concat(t))}}catch(e){console.error("Failed to parse screenshot data",e)}let l=N.Z.sanitize(ef.render(s));return l=l.replace(/<h[1-6].*?<\/h[1-6]>/g,""),(0,a.jsxs)("div",{className:"".concat(d().trainOfThoughtElement," break-words items-center ").concat(e.primary?"text-gray-400":"text-gray-300"," ").concat(d().trainOfThought," ").concat(e.primary?d().primary:""),children:[n,(0,a.jsx)("div",{dangerouslySetInnerHTML:{__html:l},className:"break-words"})]})}ef.use(m(),{inline:!0,code:!0}),ef.use(function(e){let t=e.renderer.rules.link_open||function(e,t,n,a,s){return s.renderToken(e,t,n)};e.renderer.rules.link_open=function(e,n,a,s,r){let l=e[n],o=l.attrIndex("href");if(o>=0){let e=l.attrs[o][1];if(e.startsWith("filelink://")){let t=e.replace("filelink://","").match(/^(.+?)(?:#line=(\d+))?$/);if(t){let e=t[1],n=t[2];l.attrSet("data-file-path",e),n&&l.attrSet("data-line-number",n);let a=l.attrIndex("class");a>=0&&l.attrs?l.attrs[a][1]="".concat(l.attrs[a][1]," file-link"):l.attrSet("class","file-link"),l.attrSet("href","#"),l.attrSet("role","button"),l.attrSet("tabindex","0")}}}return t(e,n,a,s,r)}});let ej=(0,l.forwardRef)((e,t)=>{var n,s;let r,o;let[i,c]=(0,l.useState)(!1),[u,h]=(0,l.useState)(!1),[m,x]=(0,l.useState)(""),[p,v]=(0,l.useState)(""),[j,w]=(0,l.useState)(!1),[y,b]=(0,l.useState)(!1),[k,C]=(0,l.useState)(""),[_,S]=(0,l.useState)(""),[E,T]=(0,l.useState)(!1),[I,D]=(0,l.useState)(""),[B,P]=(0,l.useState)(void 0),[A,z]=(0,l.useState)(!1),[q,U]=(0,l.useState)(null),[H,Z]=(0,l.useState)(""),[W,V]=(0,l.useState)(!1),[G,en]=(0,l.useState)(""),[es,ed]=(0,l.useState)(void 0),[eu,eh]=(0,l.useState)(!1),[em,ex]=(0,l.useState)(null),[ev,ej]=(0,l.useState)(""),[ew,ey]=(0,l.useState)({x:0,y:0}),eb=(0,l.useRef)(null),eN=(0,l.useRef)(!1),eM=(0,l.useRef)(null);(0,l.useEffect)(()=>{eN.current=y},[y]),(0,l.useEffect)(()=>{let e=new MutationObserver((e,t)=>{if(eM.current)for(let t of e)"childList"===t.type&&t.addedNodes.length>0&&(0,ea.Z)(eM.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]})});return eM.current&&e.observe(eM.current,{childList:!0}),()=>e.disconnect()},[eM.current]),(0,l.useEffect)(()=>{let t=e.chatMessage.message;e.chatMessage.excalidrawDiagram&&C(e.chatMessage.excalidrawDiagram),e.chatMessage.mermaidjsDiagram&&S(e.chatMessage.mermaidjsDiagram),t=t.replace(/\\\(/g,"LEFTPAREN").replace(/\\\)/g,"RIGHTPAREN").replace(/\\\[/g,"LEFTBRACKET").replace(/\\\]/g,"RIGHTBRACKET"),t=(t=(0,O.AQ)(t,e.chatMessage.codeContext)).replace(/\[([^\]]+)\]\(file:\/\/([^)]+)\)/g,(e,t,n)=>"[".concat(t,"](filelink://").concat(n,")")),e.chatMessage.codeContext&&Object.entries(e.chatMessage.codeContext).forEach(e=>{var n,a;let[s,r]=e;null===(a=r.results)||void 0===a||null===(n=a.output_files)||void 0===n||n.forEach(e=>{(e.filename.endsWith(".png")||e.filename.endsWith(".jpg"))&&!t.includes(")&&(t+="\n\n.concat(e.b64_data,")"))})});let n=t,a=t;if(e.chatMessage.images&&e.chatMessage.images.length>0){let t=e.chatMessage.images.map(e=>{let t=e.startsWith("data%3Aimage")?decodeURIComponent(e):e;return N.Z.sanitize(t)}),s=t.map((e,t)=>".concat(e,")")).join("\n"),r=t.map((e,t)=>'<div class="'.concat(d().imageWrapper,'"><img src="').concat(e,'" alt="uploaded image ').concat(t+1,'" /></div>')).join(""),l='<div class="'.concat(d().imagesContainer,'">').concat(r,"</div>");n="".concat(s,"\n\n").concat(n),a="".concat(l).concat(a)}x(n);let s=ef.render(a);s=s.replace(/LEFTPAREN/g,"\\(").replace(/RIGHTPAREN/g,"\\)").replace(/LEFTBRACKET/g,"\\[").replace(/RIGHTBRACKET/g,"\\]"),v(N.Z.sanitize(s,{ADD_ATTR:["data-file-path","data-line-number"]}))},[e.chatMessage.message,e.chatMessage.images,e.chatMessage.intent]),(0,l.useEffect)(()=>{i&&setTimeout(()=>{c(!1)},2e3)},[i]),(0,l.useEffect)(()=>{if(eM.current){eM.current.querySelectorAll("pre > .hljs").forEach(e=>{if(!e.querySelector("".concat(d().codeCopyButton))){let t=document.createElement("button"),n=(0,a.jsx)($.w,{size:24});(0,g.createRoot)(t).render(n),t.className="hljs ".concat(d().codeCopyButton),t.addEventListener("click",()=>{let n=e.textContent||"";n=(n=(n=n.replace(/^\$+/,"")).replace(/^Copy/,"")).trim(),navigator.clipboard.writeText(n);let s=(0,a.jsx)(J.J,{size:24});(0,g.createRoot)(t).render(s)}),e.prepend(t)}});let e=eM.current,t=e=>{var t;let n=e.target,a=null==n?void 0:null===(t=n.closest)||void 0===t?void 0:t.call(n,"a.file-link");if(!a)return;e.preventDefault(),e.stopPropagation();let s=a.getAttribute("data-file-path")||"",r=a.getAttribute("data-line-number")||void 0;s&&(V(!1),D(s),P(r?parseInt(r):void 0),T(!0))},n=null,s=e=>{var t;let a=e.target,s=null==a?void 0:null===(t=a.closest)||void 0===t?void 0:t.call(a,"a.file-link");if(!s||n===s)return;n=s;let r=s.getBoundingClientRect(),l=s.getAttribute("data-file-path")||"",o=s.getAttribute("data-line-number")||void 0;l&&(ey({x:Math.max(8,r.left),y:r.bottom+6}),en(l),ed(o?parseInt(o):void 0),eb.current&&(window.clearTimeout(eb.current),eb.current=null),V(!0))},r=e=>{var t;let a=e.target,s=e.relatedTarget,r=null==a?void 0:null===(t=a.closest)||void 0===t?void 0:t.call(a,"a.file-link");s&&r&&r.contains(s)||(eb.current&&window.clearTimeout(eb.current),eb.current=window.setTimeout(()=>{V(!1),n=null,eb.current=null},200))},l=e=>{var t;let n=e.target,a=null==n?void 0:null===(t=n.closest)||void 0===t?void 0:t.call(n,"a.file-link");if(!a||"Enter"!==e.key&&" "!==e.key)return;e.preventDefault(),e.stopPropagation();let s=a.getAttribute("data-file-path")||"",r=a.getAttribute("data-line-number")||void 0;s&&(V(!1),D(s),P(r?parseInt(r):void 0),T(!0))};return e.addEventListener("pointerdown",t),e.addEventListener("keydown",l),e.addEventListener("mouseover",s),e.addEventListener("mouseout",r),(0,ea.Z)(eM.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]}),()=>{e.removeEventListener("pointerdown",t),e.removeEventListener("keydown",l),e.removeEventListener("mouseover",s),e.removeEventListener("mouseout",r),eb.current&&(window.clearTimeout(eb.current),eb.current=null)}}},[p,eM]);let{content:ek,loading:eC,error:e_}=F(I,E),{content:eS,loading:eE,error:eT}=F(G,W);function eR(e){let t=new Date(e+"Z"),n=t.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0}).toUpperCase(),a=t.toLocaleString("en-US",{year:"numeric",month:"short",day:"2-digit"}).replaceAll("-"," ");return"".concat(n," on ").concat(a)}async function eI(){let t=e.chatMessage.message.match(/[^.!?]+[.!?]*/g)||[];if(!t||0===t.length||!t[0])return;w(!0);let n=eO(t[0]);for(let e=0;e<t.length&&!eN.current;e++){let a=n;e<t.length-1&&(n=eO(t[e+1]));try{let e=await a,t=URL.createObjectURL(e);await function(e){return new Promise((t,n)=>{let a=new Audio(e);a.onended=t,a.onerror=n,a.play()})}(t)}catch(e){console.error("Error:",e);break}}w(!1),b(!1)}async function eO(e){let t=await fetch("/api/chat/speech?text=".concat(encodeURIComponent(e)),{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("Network response was not ok");return await t.blob()}(0,l.useEffect)(()=>{Z(ek)},[ek]),(0,l.useEffect)(()=>{z(eC)},[eC]),(0,l.useEffect)(()=>{U(e_)},[e_]),(0,l.useEffect)(()=>{ej(eS)},[eS]),(0,l.useEffect)(()=>{eh(eE)},[eE]),(0,l.useEffect)(()=>{ex(eT)},[eT]);let eL=async t=>{let n=t.turnId||e.turnId;(await fetch("/api/chat/conversation/message",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:e.conversationId,turn_id:n})})).ok?e.onDeleteMessage(n):console.error("Failed to delete message")},eF=function(e,t,n){let a=[],s=[],r=[];if(n)for(let[e,t]of Object.entries(n))t.results&&r.push({code:t.code,output:t.results.std_out,output_files:t.results.output_files,error:t.results.std_err});if(t){let e=[];for(let[n,a]of Object.entries(t)){if(a.answerBox&&e.push({title:a.answerBox.title,description:a.answerBox.answer,link:a.answerBox.source}),a.knowledgeGraph&&e.push({title:a.knowledgeGraph.title,description:a.knowledgeGraph.description,link:a.knowledgeGraph.descriptionLink}),a.webpages){if(a.webpages instanceof Array){let t=a.webpages.map(e=>({title:e.query,description:e.snippet,link:e.link}));e.push(...t)}else{let t=a.webpages;e.push({title:t.query,description:t.snippet,link:t.link})}}if(a.organic){let t=a.organic.map(e=>({title:e.title,description:e.snippet,link:e.link}));e.push(...t)}}a.push(...e)}if(e){let t=e.map(e=>{if(!e.compiled&&""!==e.compiled){let t=("string"==typeof e?e:null==e?"":String(e)).split("\n");return{title:t[0]&&t[0].trim()?t[0]:"(untitled)",content:t.slice(1).join("\n")}}return{title:e.file,content:e.compiled}});s.push(...t)}return{notesReferenceCardData:s,onlineReferenceCardData:a,codeReferenceCardData:r}}(e.chatMessage.context,e.chatMessage.onlineContext,e.chatMessage.codeContext);return(0,a.jsxs)("div",{ref:t,className:(n=e.chatMessage,r=[d().chatMessageContainer],"khoj"===n.by&&r.push("shadow-md"),r.push(d()[n.by]),n.message||r.push(d().emptyChatMessage),e.customClassName&&r.push(d()["".concat(n.by).concat(e.customClassName)]),r.join(" ")),onMouseLeave:e=>h(!1),onMouseEnter:e=>h(!0),"data-created":eR(e.chatMessage.created),children:[(0,a.jsxs)("div",{className:(s=e.chatMessage,(o=[d().chatMessageWrapper]).push(d()[s.by]),"khoj"===s.by&&o.push("border-l-4 border-opacity-50 ".concat("border-l-"+e.borderLeftColor)),o.join(" ")),children:[e.chatMessage.queryFiles&&e.chatMessage.queryFiles.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap flex-col mb-2 max-w-full",children:e.chatMessage.queryFiles.map((e,t)=>(0,a.jsxs)(el.Vq,{children:[(0,a.jsx)(el.hg,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center space-x-2 cursor-pointer bg-gray-500 bg-opacity-25 rounded-lg p-2 w-full ",children:[(0,a.jsx)("div",{className:"flex-shrink-0",children:(0,M.Le)(e.file_type)}),(0,a.jsx)("span",{className:"truncate flex-1 min-w-0 max-w-[200px]",children:e.name}),e.size&&(0,a.jsxs)("span",{className:"text-gray-400 flex-shrink-0",children:["(",(0,ei.xq)(e.size),")"]})]})}),(0,a.jsxs)(el.cZ,{children:[(0,a.jsx)(el.fK,{children:(0,a.jsx)(eo.$N,{children:(0,a.jsx)("div",{className:"truncate min-w-0 break-words break-all text-wrap max-w-full whitespace-normal",children:e.name})})}),(0,a.jsx)(el.Be,{children:(0,a.jsx)(ec.x,{className:"h-72 w-full rounded-md break-words break-all text-wrap",children:e.content})})]})]},t))}),(0,a.jsx)("div",{ref:eM,className:d().chatMessage,dangerouslySetInnerHTML:{__html:p}}),W&&(0,f.createPortal)((0,a.jsx)("div",{onMouseEnter:()=>{eb.current&&(window.clearTimeout(eb.current),eb.current=null),V(!0)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),V(!1),G&&(D(G),P(es),T(!0))},onMouseLeave:()=>{eb.current&&window.clearTimeout(eb.current),eb.current=window.setTimeout(()=>{V(!1),eb.current=null},200)},style:{position:"fixed",left:ew.x,top:ew.y,zIndex:9999},className:"w-96 max-h-80 rounded-md border bg-popover p-4 text-popover-foreground shadow-md",children:(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center text-sm font-medium",children:[(0,a.jsx)("span",{className:"truncate",children:G.split("/").pop()||G}),es&&(0,a.jsxs)("span",{className:"text-gray-500 ml-2",children:["- Line ",es]})]}),(0,a.jsxs)(ec.x,{className:"max-h-60",children:[eu&&(0,a.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,a.jsx)(et.l,{})}),!eu&&em&&(0,a.jsxs)("div",{className:"p-3 text-red-500 text-sm",children:["Error: ",em]}),!eu&&!em&&(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(L,{content:ev,targetLine:es,maxLines:8})})]})]})}),document.body),(0,a.jsx)(el.Vq,{open:E,onOpenChange:T,children:(0,a.jsxs)(el.cZ,{className:"max-w-2xl",children:[(0,a.jsx)(el.fK,{children:(0,a.jsx)(eo.$N,{children:(0,a.jsxs)("div",{className:"truncate min-w-0 break-words break-all text-wrap max-w-full whitespace-normal",children:[I.split("/").pop()||I,(0,a.jsx)("span",{className:"text-gray-500 ml-2",children:B?"- Line ".concat(B):""})]})})}),(0,a.jsx)("div",{className:"text-left",children:(0,a.jsxs)(ec.x,{className:"h-80 w-full rounded-md",children:[A&&(0,a.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,a.jsx)(et.l,{})}),!A&&q&&(0,a.jsxs)("div",{className:"p-3 text-red-500 text-sm",children:["Error: ",q]}),!A&&!q&&(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(L,{content:H,targetLine:B,maxLines:20})})]})})]})}),k&&(0,a.jsx)(er,{data:k}),_&&(0,a.jsx)(eg,{chart:_})]}),(0,a.jsx)("div",{className:d().teaserReferencesContainer,children:(0,a.jsx)(R,{isMobileWidth:e.isMobileWidth,notesReferenceCardData:eF.notesReferenceCardData,onlineReferenceCardData:eF.onlineReferenceCardData,codeReferenceCardData:eF.codeReferenceCardData})}),(0,a.jsx)("div",{className:d().chatFooter,children:(u||e.isMobileWidth||e.isLastMessage||j)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{title:eR(e.chatMessage.created),className:"text-gray-400 relative top-0 left-4",children:function(e){e.endsWith("Z")||(e+="Z");let t=new Date(e),n=new Date().getTime()-t.getTime();return n<6e4?"Just now":n<36e5?"".concat(Math.round(n/6e4),"m ago"):n<864e5?"".concat(Math.round(n/36e5),"h ago"):"".concat(Math.round(n/864e5),"d ago")}(e.chatMessage.created)}),(0,a.jsxs)("div",{className:"".concat(d().chatButtons," shadow-sm"),children:["khoj"===e.chatMessage.by&&(j?y?(0,a.jsx)(et.l,{iconClassName:"p-0",className:"m-0"}):(0,a.jsx)("button",{title:"Pause Speech",onClick:e=>b(!0),children:(0,a.jsx)(Q.d,{alt:"Pause Message",className:"hsl(var(--muted-foreground))"})}):(0,a.jsx)("button",{title:"Speak",onClick:e=>eI(),children:(0,a.jsx)(K.j,{alt:"Speak Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})})),e.chatMessage.turnId&&(0,a.jsx)("button",{title:"Delete",className:"".concat(d().deleteButton),onClick:()=>eL(e.chatMessage),children:(0,a.jsx)(Y.r,{alt:"Delete Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})}),"khoj"===e.chatMessage.by&&e.onRetryMessage&&e.isLastMessage&&(0,a.jsx)("button",{title:"Retry",className:"".concat(d().retryButton),onClick:()=>{var t,n,a;let s=e.chatMessage.turnId||e.turnId,r=e.chatMessage.rawQuery||(null===(t=e.chatMessage.intent)||void 0===t?void 0:t.query);if(console.log("Retry button clicked for turnId:",s),console.log("ChatMessage data:",{rawQuery:e.chatMessage.rawQuery,intent:e.chatMessage.intent,message:e.chatMessage.message}),console.log("Extracted query:",r),r)null===(n=e.onRetryMessage)||void 0===n||n.call(e,r,s);else{console.error("No original query found for retry");let t=prompt("Enter the original query to retry:");t&&(null===(a=e.onRetryMessage)||void 0===a||a.call(e,t,s))}},children:(0,a.jsx)(X._,{alt:"Retry Message",className:"hsl(var(--muted-foreground)) hover:text-blue-500"})}),(0,a.jsx)("button",{title:"Copy",className:"".concat(d().copyButton),onClick:()=>{navigator.clipboard.writeText(m),c(!0)},children:i?(0,a.jsx)(ee.C,{alt:"Copied Message",weight:"fill",className:"text-green-500"}):(0,a.jsx)(ee.C,{alt:"Copy Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),"khoj"===e.chatMessage.by&&(e.chatMessage.intent?(0,a.jsx)(ep,{uquery:e.chatMessage.intent.query,kquery:e.chatMessage.message}):(0,a.jsx)(ep,{uquery:e.chatMessage.rawQuery||e.chatMessage.message,kquery:e.chatMessage.message}))]})]})})]})});ej.displayName="ChatMessage";var ew=n(17104),ey=n(66142),eb=n(25397),eN=n(44849),eM=n.n(eN);function ek(e){let{frames:t,autoPlay:n=!0,playbackSpeed:s=1e3}=e,[r,o]=(0,l.useState)(0),[i,c]=(0,l.useState)(n),[d,u]=(0,l.useState)(!0),h=(0,l.useRef)(null);(0,l.useEffect)(()=>{d&&t.length>0&&o(t.length-1)},[t.length,d]),(0,l.useEffect)(()=>(i&&t.length>1?h.current=setInterval(()=>{o(e=>{let n=e+1;return n>=t.length?(c(!1),e):n})},s):h.current&&(clearInterval(h.current),h.current=null),()=>{h.current&&clearInterval(h.current)}),[i,t.length,s]);let m=t[r],g=e=>{o(e),u(!1),c(!1)};return t.length?(0,a.jsxs)("div",{className:eM().videoPlayer,children:[(0,a.jsxs)("div",{className:eM().screen,children:[(null==m?void 0:m.image)&&(0,a.jsx)("img",{src:m.image,alt:"Train of thought frame ".concat(r+1),className:eM().screenImage}),(0,a.jsx)("div",{className:eM().textOverlay,children:(0,a.jsx)("div",{className:eM().thoughtText,children:null==m?void 0:m.text})})]}),(0,a.jsxs)("div",{className:eM().controls,children:[(0,a.jsxs)("div",{className:eM().timeline,children:[(0,a.jsx)("input",{type:"range",min:0,max:Math.max(0,t.length-1),value:r,onChange:e=>g(parseInt(e.target.value)),className:eM().timelineSlider}),(0,a.jsx)("div",{className:eM().frameMarkers,children:t.map((e,t)=>(0,a.jsx)("div",{className:"".concat(eM().frameMarker," ").concat(e.image?eM().hasImage:eM().textOnly," ").concat(t===r?eM().active:""),onClick:()=>g(t),title:"Frame ".concat(t+1,": ").concat(e.text.slice(0,50),"...")},t))})]}),(0,a.jsxs)("div",{className:eM().controlButtons,children:[(0,a.jsx)("button",{onClick:()=>{r>0&&(o(r-1),u(!1),c(!1))},disabled:0===r,title:"Previous frame",className:eM().controlButton,children:(0,a.jsx)(ew.F,{size:16})}),(0,a.jsx)("button",{onClick:()=>{c(!i),u(!1)},disabled:t.length<=1,title:i?"Pause":"Play",className:eM().controlButton,children:i?(0,a.jsx)(Q.d,{size:16}):(0,a.jsx)(ey.s,{size:16})}),(0,a.jsx)("button",{onClick:()=>{r<t.length-1&&(o(r+1),u(!1),c(!1))},disabled:r===t.length-1,title:"Next frame",className:eM().controlButton,children:(0,a.jsx)(eb.N,{size:16})}),(0,a.jsx)("button",{onClick:()=>{u(!0),o(t.length-1),c(!1)},className:"".concat(eM().controlButton," ").concat(d?eM().active:""),title:"Auto-track latest",children:"Live"})]}),(0,a.jsx)("div",{className:eM().frameInfo,children:(0,a.jsxs)("span",{children:[r+1," / ",t.length]})})]})]}):null}var eC=n(72102),e_=n(23713),eS=n(795),eE=n(935),eT=n(81103),eR=e=>{let{name:t,avatar:n,link:s,description:r}=e;return(0,a.jsx)("div",{className:"relative group flex",children:(0,a.jsx)(eT.pn,{children:(0,a.jsxs)(eT.u,{delayDuration:0,children:[(0,a.jsx)(eT.aJ,{asChild:!0,children:(0,a.jsxs)(em.z,{variant:"ghost",className:"flex items-center justify-center",children:[n,(0,a.jsx)("div",{children:t})]})}),(0,a.jsx)(eT._v,{children:(0,a.jsxs)("div",{className:"w-80 h-30",children:[(0,a.jsx)("a",{href:s,target:"_blank",rel:"noreferrer",className:"mt-1 ml-2 block no-underline",children:(0,a.jsxs)("div",{className:"flex items-center justify-start gap-2",children:[n,(0,a.jsxs)("div",{className:"mr-2 mt-1 flex justify-center items-center text-sm font-semibold text-gray-800",children:[t,(0,a.jsx)(j.o,{weight:"bold",className:"ml-1"})]})]})}),r&&(0,a.jsx)("p",{className:"mt-2 ml-6 text-sm text-gray-600 line-clamp-2",children:r||"A Khoj agent"})]})})]})})})},eI=n(37104);function eO(e){let[t,n]=(0,l.useState)(e.completed),[s,c]=(0,l.useState)([]);return(0,l.useEffect)(()=>{e.completed&&n(!0)},[e.completed]),(0,l.useEffect)(()=>{if(!e.trainOfThought||0===e.trainOfThought.length){c([]);return}c(function(e){if(!e)return[];let t=[],n=[],a=[];return e.forEach((e,s)=>{let r=e.data,l=!1;try{let e=r.match(/\{.*(\"action\": \"screenshot\"|\"type\": \"screenshot\"|\"image\": \"data:image\/.*\").*\}/);if(e){let o=JSON.parse(e[0]);o.image&&(l=!0,r=r.replace(":\n**Action**: ".concat(e[0]),""),o.text&&(r+="\n\n".concat(o.text)),a.length>0&&(t.push({type:"text",textEntries:[...a]}),a=[]),n.push({text:r,image:o.image,timestamp:s}))}}catch(e){console.error("Failed to parse screenshot data",e)}l||(n.length>0&&(t.push({type:"video",frames:[...n]}),n=[]),a.push(e))}),n.length>0&&t.push({type:"video",frames:n}),a.length>0&&t.push({type:"text",textEntries:a}),t}("string"==typeof e.trainOfThought[0]?e.trainOfThought.map((e,t)=>({type:"text",data:e})):e.trainOfThought))},[e.trainOfThought]),(0,a.jsxs)("div",{className:"".concat(t?"":r().trainOfThought+" border"," rounded-lg"),children:[!e.completed&&(0,a.jsx)(et.l,{className:"float-right"}),e.completed&&(t?(0,a.jsxs)(em.z,{className:"w-fit text-left justify-start content-start text-xs",onClick:()=>n(!1),variant:"ghost",size:"sm",children:["Thought Process ",(0,a.jsx)(eC.p,{size:16,className:"ml-1"})]}):(0,a.jsxs)(em.z,{className:"w-fit text-left justify-start content-start text-xs p-0 h-fit",onClick:()=>n(!0),variant:"ghost",size:"sm",children:["Close ",(0,a.jsx)(e_.U,{size:16,className:"ml-1"})]})),(0,a.jsx)(o.M,{initial:!1,children:!t&&(0,a.jsx)(i.E.div,{initial:"closed",animate:"open",exit:"closed",variants:{open:{height:"auto",opacity:1,transition:{duration:.3,ease:"easeOut"}},closed:{height:0,opacity:0,transition:{duration:.3,ease:"easeIn"}}},children:s.map((t,n)=>(0,a.jsxs)("div",{children:["video"===t.type&&t.frames&&t.frames.length>0&&(0,a.jsx)(ek,{frames:t.frames,autoPlay:!1,playbackSpeed:1500}),"text"===t.type&&t.textEntries&&t.textEntries.map((r,l)=>{let o=s.length-1,i=l===t.textEntries.length-1,c=n===o&&i&&e.lastMessage&&!e.completed;return(0,a.jsx)(ev,{message:r.data,primary:c,agentColor:e.agentColor},"train-text-".concat(n,"-").concat(l,"-").concat(r.data.length))})]},"train-group-".concat(n)))})})]},e.keyId)}function eL(e){var t,n,s,o,i,c,d;let[u,h]=(0,l.useState)(null),[m,g]=(0,l.useState)(0),[f,x]=(0,l.useState)(!0),[p,v]=(0,l.useState)(null),j=(0,l.useRef)(null),w=(0,l.useRef)(null),y=(0,l.useRef)(null),b=(0,l.useRef)(null),N=(0,l.useRef)(null),[k,C]=(0,l.useState)(null),[_,S]=(0,l.useState)(!1),[E,T]=(0,l.useState)(!0),R=(0,ei.IC)(),I="[data-radix-scroll-area-viewport]",O=localStorage.getItem("message");(0,l.useEffect)(()=>{var e;let t=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);if(!t)return;let n=()=>{let{scrollTop:e,scrollHeight:n,clientHeight:a}=t;T(n-(e+a)<=50)};return t.addEventListener("scroll",n),n(),()=>t.removeEventListener("scroll",n)},[w]),(0,l.useEffect)(()=>{e.incomingMessages&&e.incomingMessages.length>0&&E&&F(!0)},[e.incomingMessages,E]),(0,l.useEffect)(()=>{var t;let n=y.current,a=null===(t=w.current)||void 0===t?void 0:t.querySelector(I);if(!n||!a)return;let s=new ResizeObserver(()=>{let{scrollTop:t,scrollHeight:n,clientHeight:s}=a;if(n-(t+s)<=50&&e.incomingMessages&&e.incomingMessages.length>0){let t=e.incomingMessages[e.incomingMessages.length-1];(!t.completed||t.completed&&null!==k)&&F(!0)}});return s.observe(n),()=>s.disconnect()},[e.incomingMessages,k,w]),(0,l.useEffect)(()=>{u&&u.chat&&u.chat.length>0&&m<2&&requestAnimationFrame(()=>{var e;null===(e=b.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"})})},[u,m]),(0,l.useEffect)(()=>{if(!f||_)return;let t=new IntersectionObserver(t=>{t[0].isIntersecting&&f&&(S(!0),function(t){if(!f||_)return;let n=(t+1)*10,a="";if(e.conversationId)a="/api/chat/history?client=web&conversation_id=".concat(encodeURIComponent(e.conversationId),"&n=").concat(n);else{if(!e.publicConversationSlug)return;a="/api/chat/share/history?client=web&public_conversation_slug=".concat(e.publicConversationSlug,"&n=").concat(n)}fetch(a).then(e=>e.json()).then(n=>{var a;if(e.setTitle(n.response.slug),e.setIsOwner&&e.setIsOwner(null==n?void 0:null===(a=n.response)||void 0===a?void 0:a.is_owner),n&&n.response&&n.response.chat&&n.response.chat.length>0){if(g(Math.ceil(n.response.chat.length/10)),n.response.chat.length===(null==u?void 0:u.chat.length)){x(!1),S(!1);return}e.setAgent(n.response.agent),h(n.response),S(!1),0===t?F(!0):L()}else{if(n.response.agent&&n.response.conversation_id){let t={chat:[],agent:n.response.agent,conversation_id:n.response.conversation_id,slug:n.response.slug,is_owner:n.response.is_owner};e.setAgent(n.response.agent),h(t),e.setIsChatSideBarOpen&&!O&&e.setIsChatSideBarOpen(!0)}x(!1),S(!1)}}).catch(e=>{console.error(e),window.location.href="/"})}(m))},{threshold:1});return j.current&&t.observe(j.current),()=>t.disconnect()},[f,m,_]),(0,l.useEffect)(()=>{x(!0),S(!1),g(0),h(null)},[e.conversationId]),(0,l.useEffect)(()=>{if(e.incomingMessages){let t=e.incomingMessages[e.incomingMessages.length-1];t&&!t.completed&&(C(e.incomingMessages.length-1),e.setTitle(t.rawQuery),t.turnId&&v(t.turnId))}},[e.incomingMessages]);let L=()=>{var e;let t=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);requestAnimationFrame(()=>{var e;null===(e=N.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"}),null==t||t.scrollBy({behavior:"smooth",top:-150})})},F=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);requestAnimationFrame(()=>{null==n||n.scrollTo({top:n.scrollHeight,behavior:t?"auto":"smooth"})}),(t||n&&n.scrollHeight-(n.scrollTop+n.clientHeight)<5)&&T(!0)};function D(){var e,t;return u&&u.agent&&(null===(e=u.agent)||void 0===e?void 0:e.name)?u.agent.is_hidden?"Khoj":null===(t=u.agent)||void 0===t?void 0:t.name:"Agent"}let B=t=>{t&&(h(e=>e&&t?{...e,chat:e.chat.filter(e=>e.turnId!==t)}:e),e.incomingMessages&&e.setIncomingMessages&&e.setIncomingMessages(e.incomingMessages.filter(e=>e.turnId!==t)))},P=(t,n)=>{var a;t&&(n&&B(n),null===(a=e.onRetryMessage)||void 0===a||a.call(e,t,n))};return e.conversationId||e.publicConversationSlug?(0,a.jsx)(ec.x,{className:"\n h-[calc(100svh-theme(spacing.44))]\n sm:h-[calc(100svh-theme(spacing.44))]\n md:h-[calc(100svh-theme(spacing.44))]\n lg:h-[calc(100svh-theme(spacing.44))]\n ",ref:w,children:(0,a.jsxs)("div",{ref:y,children:[(0,a.jsxs)("div",{className:"print-only-header",children:[(0,a.jsxs)("div",{className:"print-header-content",children:[(0,a.jsx)("div",{className:"print-header-left",children:(0,a.jsx)(eI.S6,{className:"print-logo"})}),(0,a.jsxs)("div",{className:"print-header-right",children:[(0,a.jsx)("h1",{children:(null==u?void 0:u.slug)||"Conversation with Khoj"}),(0,a.jsx)("div",{className:"conversation-meta",children:(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Agent:"})," ",D()]})})]})]}),(0,a.jsx)("hr",{})]}),(0,a.jsxs)("div",{className:"".concat(r().chatHistory," ").concat(e.customClassName),children:[(0,a.jsx)("div",{ref:j,style:{height:"1px"},children:_&&(0,a.jsx)(et.l,{className:"opacity-50"})}),u&&u.chat&&u.chat.map((t,n)=>{var s,r;return(0,a.jsxs)(l.Fragment,{children:[t.trainOfThought&&"khoj"===t.by&&(0,a.jsx)(eO,{trainOfThought:t.trainOfThought,lastMessage:!1,agentColor:(null==u?void 0:null===(s=u.agent)||void 0===s?void 0:s.color)||"orange",keyId:"".concat(n,"trainOfThought"),completed:!0},"".concat(n,"trainOfThought")),(0,a.jsx)(ej,{ref:n===u.chat.length-2?b:n===u.chat.length-(m-1)*10?N:null,isMobileWidth:R,chatMessage:t,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(r=u.agent)||void 0===r?void 0:r.color,"-500"),isLastMessage:n===u.chat.length-1,onDeleteMessage:B,onRetryMessage:P,conversationId:e.conversationId},"".concat(n,"fullHistory"))]},"chatMessage-".concat(n))}),e.incomingMessages&&e.incomingMessages.map((t,n)=>{var s,r,o,i,c;let d=null!==(c=null!==(i=t.turnId)&&void 0!==i?i:p)&&void 0!==c?c:void 0;return(0,a.jsxs)(l.Fragment,{children:[(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:t.rawQuery,context:[],onlineContext:{},codeContext:{},created:t.timestamp,by:"you",automationId:"",images:t.images,conversationId:e.conversationId,turnId:d,queryFiles:t.queryFiles},customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(s=u.agent)||void 0===s?void 0:s.color,"-500"),onDeleteMessage:B,onRetryMessage:P,conversationId:e.conversationId,turnId:d},"".concat(n,"outgoing")),t.trainOfThought&&t.trainOfThought.length>0&&(0,a.jsx)(eO,{trainOfThought:t.trainOfThought,lastMessage:n===k,agentColor:(null==u?void 0:null===(r=u.agent)||void 0===r?void 0:r.color)||"orange",keyId:"".concat(n,"trainOfThought"),completed:t.completed},"".concat(n,"trainOfThought-").concat(t.trainOfThought.length,"-").concat(t.trainOfThought.map(e=>e.length).join("-"))),(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:t.rawResponse,context:t.context,onlineContext:t.onlineContext,codeContext:t.codeContext,created:t.timestamp,by:"khoj",automationId:"",rawQuery:t.rawQuery,intent:{type:t.intentType||"",query:t.rawQuery,"memory-type":"","inferred-queries":t.inferredQueries||[]},conversationId:e.conversationId,images:t.generatedImages,queryFiles:t.generatedFiles,mermaidjsDiagram:t.generatedMermaidjsDiagram,turnId:d},conversationId:e.conversationId,turnId:d,onDeleteMessage:B,onRetryMessage:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(o=u.agent)||void 0===o?void 0:o.color,"-500"),isLastMessage:n===e.incomingMessages.length-1},"".concat(n,"incoming"))]},"incomingMessage".concat(n))}),e.pendingMessage&&(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:e.pendingMessage,context:[],onlineContext:{},codeContext:{},created:new Date().getTime().toString(),by:"you",automationId:"",conversationId:e.conversationId,turnId:void 0},conversationId:e.conversationId,onDeleteMessage:B,onRetryMessage:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(t=u.agent)||void 0===t?void 0:t.color,"-500"),isLastMessage:!0},"pendingMessage-".concat(e.pendingMessage.length)),u&&(0,a.jsx)("div",{className:"".concat(r().agentIndicator," pb-4"),children:(0,a.jsx)("div",{className:"relative group mx-2 cursor-pointer",children:(0,a.jsx)(eR,{name:D(),link:u&&u.agent&&(null===(o=u.agent)||void 0===o?void 0:o.slug)?"/agents?agent=".concat(null===(i=u.agent)||void 0===i?void 0:i.slug):"/agents",avatar:(0,M.TI)(null===(n=u.agent)||void 0===n?void 0:n.icon,null===(s=u.agent)||void 0===s?void 0:s.color)||(0,a.jsx)(eS.v,{}),description:u&&u.agent?(null===(c=u.agent)||void 0===c?void 0:c.persona)?null===(d=u.agent)||void 0===d?void 0:d.persona:"You can set a persona for your agent in the Chat Options side panel.":"Your agent is no longer available. You will be reset to the default agent."})})})]}),(0,a.jsx)("div",{className:"".concat(e.customClassName," fixed bottom-[20%] z-10"),children:!E&&(0,a.jsx)("button",{title:"Scroll to bottom",className:"absolute bottom-0 right-0 bg-white dark:bg-[hsl(var(--background))] text-neutral-500 dark:text-white p-2 rounded-full shadow-xl",onClick:()=>{F()},children:(0,a.jsx)(eE.K,{size:24})})})]})}):null}},42501:function(e){e.exports={chatHistory:"chatHistory_chatHistory__CoaVT",agentIndicator:"chatHistory_agentIndicator__wOU1f",trainOfThought:"chatHistory_trainOfThought__mMWSR"}},91499:function(e){e.exports={chatMessageContainer:"chatMessage_chatMessageContainer__sAivf",chatMessageWrapper:"chatMessage_chatMessageWrapper__u5m8A","file-link":"chatMessage_file-link__PL84f",khojfullHistory:"chatMessage_khojfullHistory__NPu2l",youfullHistory:"chatMessage_youfullHistory__ioyfH",you:"chatMessage_you__6GUC4",khoj:"chatMessage_khoj__cjWON",khojChatMessage:"chatMessage_khojChatMessage__BabQz",emptyChatMessage:"chatMessage_emptyChatMessage__J9JRn",imagesContainer:"chatMessage_imagesContainer__HTRjT",imageWrapper:"chatMessage_imageWrapper__DF92M",author:"chatMessage_author__muRtC",chatFooter:"chatMessage_chatFooter__0vR8s",chatButtons:"chatMessage_chatButtons__Lbk8T",codeCopyButton:"chatMessage_codeCopyButton__Y_Ujv",feedbackButtons:"chatMessage_feedbackButtons___Brdy",copyButton:"chatMessage_copyButton__jd7q7",retryButton:"chatMessage_retryButton__Z7Pzk",trainOfThought:"chatMessage_trainOfThought__mR2Gg",primary:"chatMessage_primary__WYPEb",trainOfThoughtElement:"chatMessage_trainOfThoughtElement__le_bC"}},44849:function(e){e.exports={videoPlayer:"trainOfThoughtVideoPlayer_videoPlayer__Dz3mA",screen:"trainOfThoughtVideoPlayer_screen__dvEVh",screenImage:"trainOfThoughtVideoPlayer_screenImage__3SgOQ",textOverlay:"trainOfThoughtVideoPlayer_textOverlay__BGbhO",thoughtText:"trainOfThoughtVideoPlayer_thoughtText__zn_vT",controls:"trainOfThoughtVideoPlayer_controls__HDkO_",timeline:"trainOfThoughtVideoPlayer_timeline__hSpWu",timelineSlider:"trainOfThoughtVideoPlayer_timelineSlider__GQ8dx",frameMarkers:"trainOfThoughtVideoPlayer_frameMarkers__5y3He",frameMarker:"trainOfThoughtVideoPlayer_frameMarker__DBO9Y",hasImage:"trainOfThoughtVideoPlayer_hasImage__GFGAk",textOnly:"trainOfThoughtVideoPlayer_textOnly__okufk",active:"trainOfThoughtVideoPlayer_active__zp6u9",controlButtons:"trainOfThoughtVideoPlayer_controlButtons__rqfIH",controlButton:"trainOfThoughtVideoPlayer_controlButton___RdE_",frameInfo:"trainOfThoughtVideoPlayer_frameInfo__u5nwA"}}}]);
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9808],{29808:function(e,t,n){"use strict";n.d(t,{Z:function(){return eL}});var a=n(57437),s=n(42501),r=n.n(s),l=n(2265),o=n(48614),i=n(98239),c=n(91499),d=n.n(c),u=n(19983),h=n(13506),m=n.n(h),g=n(34040),f=n(54887);n(2446);var x=n(37052),p=n(19273),v=n(3244),j=n(4235),w=n(66070),y=n(69304),b=n(57054),N=n(18848),M=n(42225),k=n(27648);let C=new u.Z({html:!0,linkify:!0,typographer:!0});function _(e){let t=(0,M.Le)(e.title||".txt","w-6 h-6 text-muted-foreground inline-flex mr-2"),n=e.title.split("/").pop()||e.title,s=function(e){let t=["org","md","markdown"].includes(e.title.split(".").pop()||"")?e.content.split("\n").slice(1).join("\n"):e.content;return e.showFullContent?N.Z.sanitize(C.render(t)):N.Z.sanitize(t)}(e),[r,o]=(0,l.useState)(!1);return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:r&&!e.showFullContent,onOpenChange:o,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("h3",{className:"".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground}"),children:[t,e.showFullContent?e.title:n]}),(0,a.jsx)("p",{className:"text-sm overflow-x-auto block",dangerouslySetInnerHTML:{__html:s}})]}):(0,a.jsx)(T,{type:"notes"},"".concat(e.title))})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsxs)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,a.jsxs)("h3",{className:"line-clamp-2 text-muted-foreground}",children:[t,e.title]}),(0,a.jsx)("p",{className:"border-t mt-1 pt-1 text-sm overflow-hidden line-clamp-5",dangerouslySetInnerHTML:{__html:s}})]})})]})})}function S(e){var t,n,s,r,o,i;let c=(0,M.Le)(".py","!w-4 h-4 text-muted-foreground flex-shrink-0"),d=N.Z.sanitize(e.code),[u,h]=(0,l.useState)(!1),[m,g]=(0,l.useState)(!1),f=e=>{let t="text/plain",n=e.b64_data;e.filename.match(/\.(png|jpg|jpeg|webp)$/)?(t="image/".concat(e.filename.split(".").pop()),n=atob(e.b64_data)):e.filename.endsWith(".json")?t="application/json":e.filename.endsWith(".csv")&&(t="text/csv");let a=new ArrayBuffer(n.length),s=new Uint8Array(a);for(let e=0;e<n.length;e++)s[e]=n.charCodeAt(e);let r=new Blob([a],{type:t}),l=URL.createObjectURL(r),o=document.createElement("a");o.href=l,o.download=e.filename,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(l)},p=(t,n)=>(null==t?void 0:t.length)==0?null:(0,a.jsx)("div",{className:"".concat(n||e.showFullContent?"border-t mt-1 pt-1":void 0),children:t.slice(0,e.showFullContent?void 0:1).map((t,s)=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("h4",{className:"text-sm text-muted-foreground flex items-center",children:[(0,a.jsx)("span",{className:"overflow-hidden mr-2 font-bold ".concat(e.showFullContent?void 0:"line-clamp-1"),children:t.filename}),(0,a.jsx)("button",{className:"".concat(n?"hidden":void 0),onClick:e=>{e.preventDefault(),f(t)},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),title:"Download file: ".concat(t.filename),children:(0,a.jsx)(x.b,{className:"w-4 h-4",weight:m?"fill":"regular"})})]}),t.filename.match(/\.(txt|org|md|csv|json)$/)?(0,a.jsx)("pre",{className:"".concat(e.showFullContent?"block":"line-clamp-2"," text-sm mt-1 p-1 bg-background rounded overflow-x-auto"),children:t.b64_data}):t.filename.match(/\.(png|jpg|jpeg|webp)$/)?(0,a.jsx)("img",{src:"data:image/".concat(t.filename.split(".").pop(),";base64,").concat(t.b64_data),alt:t.filename,className:"mt-1 max-h-32 rounded"}):null]},"".concat(t.filename,"-").concat(s)))});return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:u&&!e.showFullContent,onOpenChange:h,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)("div",{className:"flex flex-col px-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[c,(0,a.jsxs)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:["code ",(null===(t=e.output_files)||void 0===t?void 0:t.length)>0?"artifacts":""]})]}),(0,a.jsx)("pre",{className:"text-xs pb-2 ".concat(e.showFullContent?"block overflow-x-auto":(null===(n=e.output_files)||void 0===n?void 0:n.length)>0?"hidden":"overflow-hidden line-clamp-3"),children:d}),(null===(s=e.output_files)||void 0===s?void 0:s.length)>0&&p(e.output_files,!1)]}):(0,a.jsx)(T,{type:"code"},"code-".concat(e.code))})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsxs)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[c,(0,a.jsxs)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:["code ",(null===(r=e.output_files)||void 0===r?void 0:r.length)>0?"artifact":""]})]}),(null===(o=e.output_files)||void 0===o?void 0:o.length)>0&&p(null===(i=e.output_files)||void 0===i?void 0:i.slice(0,1),!0)||(0,a.jsx)("pre",{className:"text-xs border-t mt-1 pt-1 overflow-hidden line-clamp-10",children:d})]})})]})})}function E(e){let[t,n]=(0,l.useState)(!1);if(!e.link||e.link.split(" ").length>1)return null;let s="https://www.google.com/s2/favicons?domain=globe",r="unknown";try{r=new URL(e.link).hostname,s="https://www.google.com/s2/favicons?domain=".concat(r)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(b.J2,{open:t&&!e.showFullContent,onOpenChange:n,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsx)(w.Zb,{onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)},className:"".concat(e.showFullContent?"w-auto bg-muted":"w-auto"," overflow-hidden break-words text-balance rounded-lg border-none p-2 shadow-none"),children:e.showFullContent?(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)(k.default,{href:e.link,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:r})]})}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," font-bold"),children:e.title}),(0,a.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-2"),children:e.description})]}):(0,a.jsx)(T,{type:"online",link:e.link},e.title)})}),(0,a.jsx)(b.yk,{className:"w-[400px] mx-2",children:(0,a.jsx)(w.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none",children:(0,a.jsx)("div",{className:"flex flex-col",children:(0,a.jsxs)("a",{href:e.link,target:"_blank",rel:"noreferrer",className:"!no-underline px-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,a.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," text-muted-foreground flex-grow"),children:r})]}),(0,a.jsx)("h3",{className:"border-t mt-1 pt-1 overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," font-bold"),children:e.title}),(0,a.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-5"),children:e.description})]})})})})]})})}function T(e){let t="",n="unknown";if(e.link)try{n=new URL(e.link).hostname,t="https://www.google.com/s2/favicons?domain=".concat(n)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}let s=null,r="!w-4 !h-4 text-muted-foreground inline-flex mr-2 rounded-lg";switch(e.type){case"code":s=(0,a.jsx)(p.E,{className:"".concat(r)});break;case"online":s=(0,a.jsx)("img",{src:t,alt:"",className:"".concat(r)});break;case"notes":s=(0,a.jsx)(v.j,{className:"".concat(r)});break;default:s=null}return s?(0,a.jsx)("div",{className:"flex items-center gap-2",children:s}):null}function R(e){let t=e.notesReferenceCardData.length>0||e.codeReferenceCardData.length>0||e.onlineReferenceCardData.length>0,n=e.notesReferenceCardData.length+e.codeReferenceCardData.length+e.onlineReferenceCardData.length;return 0===n?null:(0,a.jsx)("div",{className:"pt-0 px-4 pb-4",children:(0,a.jsxs)("h3",{className:"inline-flex items-center",children:[(0,a.jsxs)("div",{className:"text-gray-400 m-2",children:[n," sources"]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2 w-auto m-2",children:t&&(0,a.jsx)(I,{notesReferenceCardData:e.notesReferenceCardData,onlineReferenceCardData:e.onlineReferenceCardData,codeReferenceCardData:e.codeReferenceCardData,isMobileWidth:e.isMobileWidth})})]})})}function I(e){let[t,n]=(0,l.useState)(3);if((0,l.useEffect)(()=>{n(e.isMobileWidth?3:5)},[e.isMobileWidth]),!e.notesReferenceCardData&&!e.onlineReferenceCardData)return null;let s=e.codeReferenceCardData.slice(0,t),r=e.notesReferenceCardData.slice(0,t-s.length),o=r.length+s.length<t?e.onlineReferenceCardData.filter(e=>e.link).slice(0,t-s.length-r.length):[];return(0,a.jsxs)(y.yo,{children:[(0,a.jsxs)(y.aM,{className:"text-balance w-auto justify-start overflow-hidden break-words p-0 bg-transparent border-none text-gray-400 align-middle items-center m-0 inline-flex",children:[s.map((e,t)=>(0,l.createElement)(S,{showFullContent:!1,...e,key:"code-".concat(t)})),r.map((e,t)=>(0,l.createElement)(_,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),o.map((e,t)=>(0,l.createElement)(E,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),(0,a.jsx)(j.o,{className:"m-0"})]}),(0,a.jsxs)(y.ue,{className:"overflow-y-scroll",children:[(0,a.jsxs)(y.Tu,{children:[(0,a.jsx)(y.bC,{children:"References"}),(0,a.jsx)(y.Ei,{children:"View all references for this response"})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2 w-auto mt-2",children:[e.codeReferenceCardData.map((e,t)=>(0,l.createElement)(S,{showFullContent:!0,...e,key:"code-".concat(t)})),e.notesReferenceCardData.map((e,t)=>(0,l.createElement)(_,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)})),e.onlineReferenceCardData.map((e,t)=>(0,l.createElement)(E,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)}))]})]})]})}var O=n(59199);function L(e){let{content:t,targetLine:n,maxLines:s=20}=e,r=(t||"").split("\n");if(n&&n>0&&n<=r.length){let e=Math.max(1,n-2),t=Math.min(r.length,n+5),s=r.slice(e-1,t);return(0,a.jsx)("pre",{className:"whitespace-pre-wrap text-xs",children:s.map((t,s)=>{let r=e+s,l=r===n;return(0,a.jsxs)("div",{className:l?"bg-green-100 dark:bg-green-900":"",children:[(0,a.jsxs)("span",{className:"text-gray-400 select-none mr-2",children:[r.toString().padStart(3," "),":"]}),t]},r)})})}let l=r.slice(0,s);return(0,a.jsxs)("pre",{className:"whitespace-pre-wrap text-xs",children:[l.map((e,t)=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("span",{className:"text-gray-400 select-none mr-2",children:[(t+1).toString().padStart(3," "),":"]}),e]},t)),r.length>s&&(0,a.jsxs)("div",{className:"text-gray-500 italic",children:["... and ",r.length-s," more lines"]})]})}function F(e,t){let[n,a]=(0,l.useState)(""),[s,r]=(0,l.useState)(!1),[o,i]=(0,l.useState)(null);return(0,l.useEffect)(()=>{let n=!1;return async function(){if(t&&e){r(!0),i(null),a("");try{let t=await fetch("/api/content/file?file_name=".concat(encodeURIComponent(e)));if(!t.ok)throw Error("Failed to fetch file content (".concat(t.status,")"));let s=await t.json();n||a(s.raw_text||"")}catch(e){n||i(e instanceof Error?e.message:"Failed to load file content")}finally{n||r(!1)}}}(),()=>{n=!0}},[e,t]),{content:n,loading:s,error:o}}var D=n(24379),B=n(58441),P=n(49807),A=n(74541),z=n(52874),q=n(5033),U=n(30655),H=n(80382),Z=n(7143),W=n(2585),V=n(58905),G=n(39966),$=n(71640),J=n(24148),Q=n(68382),K=n(78582),Y=n(96620),X=n(77276),ee=n(39957),et=n(14308),en=n(84671),ea=n(36663);let es=(0,n(30166).default)(()=>Promise.all([n.e(6555),n.e(7293),n.e(4609),n.e(2242)]).then(n.bind(n,92242)).then(e=>e.default),{loadableGenerated:{webpack:()=>[92242]},ssr:!1});function er(e){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(et.Z,{}),children:(0,a.jsx)(es,{data:e.data})})}var el=n(26110),eo=n(49027),ei=n(7436),ec=n(19378),ed=n(50656),eu=n(45199),eh=n(25778),em=n(62869),eg=e=>{let{chart:t}=e,[n,s]=(0,l.useState)(null),[r]=(0,l.useState)("mermaid-chart-".concat(Math.random().toString(12).substring(7))),o=(0,l.useRef)(null);(0,l.useEffect)(()=>{ed.Z.initialize({startOnLoad:!1}),ed.Z.parseError=e=>{let t;console.error("Mermaid errors:",e);try{t="string"==typeof e?JSON.parse(e):e}catch(n){t=(null==e?void 0:e.toString())||"Unknown error"}console.log("Mermaid error message:",t),"element is null"!==t.str?s("Something went wrong while rendering the diagram. Please try again later or downvote the message if the issue persists."):s(null)},ed.Z.contentLoaded()},[]);let i=async()=>{if(o.current)try{var e;let t=o.current.querySelector("svg");if(!t)throw Error("No SVG found");let[,,n,a]=(null===(e=t.getAttribute("viewBox"))||void 0===e?void 0:e.split(" ").map(Number))||[0,0,0,0],s=document.createElement("canvas");s.width=2*n,s.height=2*a;let r=s.getContext("2d");if(!r)throw Error("Failed to get canvas context");let l=new XMLSerializer().serializeToString(t),i=new Blob([l],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(i),d=new Image;d.src=c,await new Promise((e,t)=>{d.onload=()=>{r.scale(2,2),r.drawImage(d,0,0,n,a),s.toBlob(n=>{if(!n){t(Error("Failed to create blob"));return}let a=URL.createObjectURL(n),s=document.createElement("a");s.href=a,s.download="mermaid-diagram-".concat(Date.now(),".png"),s.click(),URL.revokeObjectURL(a),URL.revokeObjectURL(c),e(!0)},"image/png")},d.onerror=()=>t(Error("Failed to load SVG"))})}catch(e){console.error("Error exporting diagram:",e),s("Failed to export diagram")}};return(0,l.useEffect)(()=>{o.current&&(o.current.removeAttribute("data-processed"),ed.Z.run({nodes:[o.current]}).then(()=>{s(null)}).catch(e=>{let t;try{t="string"==typeof e?JSON.parse(e):e}catch(n){t=(null==e?void 0:e.toString())||"Unknown error"}console.log("Mermaid error message:",t),"element is null"!==t.str?s("Something went wrong while rendering the diagram. Please try again later or downvote the message if the issue persists."):s(null)}))},[t]),(0,a.jsxs)("div",{children:[n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 bg-red-100 border border-red-500 rounded-md p-1 mt-3 text-red-900 text-sm",children:[(0,a.jsx)(eu.k,{className:"w-12 h-12"}),(0,a.jsx)("span",{children:n})]}),(0,a.jsx)("code",{className:"block bg-secondary text-secondary-foreground p-4 mt-3 rounded-lg font-mono text-sm whitespace-pre-wrap overflow-x-auto max-h-[400px] border border-gray-200",children:t})]}):(0,a.jsx)("div",{id:r,ref:o,className:"mermaid",style:{width:"auto",height:"auto",boxSizing:"border-box",overflow:"auto"},children:t}),!n&&(0,a.jsxs)(em.z,{onClick:i,variant:"secondary",className:"mt-3",children:[(0,a.jsx)(eh.U,{className:"w-5 h-5"}),"Export as PNG"]})]})};let ef=new u.Z({html:!0,linkify:!0,typographer:!0});function ex(e,t,n){fetch("/api/chat/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uquery:e,kquery:t,sentiment:n})})}function ep(e){let{uquery:t,kquery:n}=e,[s,r]=(0,l.useState)(null);return(0,l.useEffect)(()=>{null!==s&&setTimeout(()=>{r(null)},2e3)},[s]),(0,a.jsxs)("div",{className:"".concat(d().feedbackButtons," flex align-middle justify-center items-center"),children:[(0,a.jsx)("button",{title:"Like",className:d().thumbsUpButton,disabled:null!==s,onClick:()=>{ex(t,n,"positive"),r(!0)},children:!0===s?(0,a.jsx)(D.V,{alt:"Liked Message",className:"text-green-500",weight:"fill"}):(0,a.jsx)(D.V,{alt:"Like Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),(0,a.jsx)("button",{title:"Dislike",className:d().thumbsDownButton,disabled:null!==s,onClick:()=>{ex(t,n,"negative"),r(!1)},children:!1===s?(0,a.jsx)(B.L,{alt:"Disliked Message",className:"text-red-500",weight:"fill"}):(0,a.jsx)(B.L,{alt:"Dislike Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})})]})}function ev(e){let t=e.message.match(/\*\*(.*)\*\*/),n=function(e,t){let n=e.toLowerCase(),s="inline mt-1 mr-2 ".concat(t," h-4 w-4");return n.includes("understanding")?(0,a.jsx)(P.a,{className:"".concat(s)}):n.includes("generating")?(0,a.jsx)(A.Z,{className:"".concat(s)}):n.includes("tools")?(0,a.jsx)(z.v,{className:"".concat(s)}):n.includes("notes")?(0,a.jsx)(q.gt,{className:"".concat(s)}):n.includes("read")?(0,a.jsx)(U.f,{className:"".concat(s)}):n.includes("search")?(0,a.jsx)(H.Y,{className:"".concat(s)}):n.includes("summary")||n.includes("summarize")||n.includes("enhanc")?(0,a.jsx)(Z.u,{className:"".concat(s)}):n.includes("diagram")?(0,a.jsx)(W.j,{className:"".concat(s)}):n.includes("paint")?(0,a.jsx)(V.Y,{className:"".concat(s)}):n.includes("code")?(0,a.jsx)(p.E,{className:"".concat(s)}):n.includes("operating")?(0,a.jsx)(G.A,{className:"".concat(s)}):(0,a.jsx)(P.a,{className:"".concat(s)})}(t?t[1]:"",e.primary?(0,en.oz)(e.agentColor):"text-gray-500"),s=e.message,r=null;try{let e=s.match(/\{.*("action": "screenshot"|"type": "screenshot"|"image": "data:image\/.*").*\}/);if(e){r=JSON.parse(e[0]);let t='<img src="'.concat(r.image,'" alt="State of environment" class="max-w-full" />');s=s.replace(":\n**Action**: ".concat(e[0]),"\n\n- ".concat(r.text,"\n").concat(t))}}catch(e){console.error("Failed to parse screenshot data",e)}let l=N.Z.sanitize(ef.render(s));return l=l.replace(/<h[1-6].*?<\/h[1-6]>/g,""),(0,a.jsxs)("div",{className:"".concat(d().trainOfThoughtElement," break-words items-center ").concat(e.primary?"text-gray-400":"text-gray-300"," ").concat(d().trainOfThought," ").concat(e.primary?d().primary:""),children:[n,(0,a.jsx)("div",{dangerouslySetInnerHTML:{__html:l},className:"break-words"})]})}ef.use(m(),{inline:!0,code:!0}),ef.use(function(e){let t=e.renderer.rules.link_open||function(e,t,n,a,s){return s.renderToken(e,t,n)};e.renderer.rules.link_open=function(e,n,a,s,r){let l=e[n],o=l.attrIndex("href");if(o>=0){let e=l.attrs[o][1];if(e.startsWith("filelink://")){let t=e.replace("filelink://","").match(/^(.+?)(?:#line=(\d+))?$/);if(t){let e=t[1],n=t[2];l.attrSet("data-file-path",e),n&&l.attrSet("data-line-number",n);let a=l.attrIndex("class");a>=0&&l.attrs?l.attrs[a][1]="".concat(l.attrs[a][1]," file-link"):l.attrSet("class","file-link"),l.attrSet("href","#"),l.attrSet("role","button"),l.attrSet("tabindex","0")}}}return t(e,n,a,s,r)}});let ej=(0,l.forwardRef)((e,t)=>{var n,s;let r,o;let[i,c]=(0,l.useState)(!1),[u,h]=(0,l.useState)(!1),[m,x]=(0,l.useState)(""),[p,v]=(0,l.useState)(""),[j,w]=(0,l.useState)(!1),[y,b]=(0,l.useState)(!1),[k,C]=(0,l.useState)(""),[_,S]=(0,l.useState)(""),[E,T]=(0,l.useState)(!1),[I,D]=(0,l.useState)(""),[B,P]=(0,l.useState)(void 0),[A,z]=(0,l.useState)(!1),[q,U]=(0,l.useState)(null),[H,Z]=(0,l.useState)(""),[W,V]=(0,l.useState)(!1),[G,en]=(0,l.useState)(""),[es,ed]=(0,l.useState)(void 0),[eu,eh]=(0,l.useState)(!1),[em,ex]=(0,l.useState)(null),[ev,ej]=(0,l.useState)(""),[ew,ey]=(0,l.useState)({x:0,y:0}),eb=(0,l.useRef)(null),eN=(0,l.useRef)(!1),eM=(0,l.useRef)(null);(0,l.useEffect)(()=>{eN.current=y},[y]),(0,l.useEffect)(()=>{let e=new MutationObserver((e,t)=>{if(eM.current)for(let t of e)"childList"===t.type&&t.addedNodes.length>0&&(0,ea.Z)(eM.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]})});return eM.current&&e.observe(eM.current,{childList:!0}),()=>e.disconnect()},[eM.current]),(0,l.useEffect)(()=>{let t=e.chatMessage.message;e.chatMessage.excalidrawDiagram&&C(e.chatMessage.excalidrawDiagram),e.chatMessage.mermaidjsDiagram&&S(e.chatMessage.mermaidjsDiagram),t=(0,O.AQ)(t,e.chatMessage.codeContext),e.chatMessage.codeContext&&Object.entries(e.chatMessage.codeContext).forEach(e=>{var n,a;let[s,r]=e;null===(a=r.results)||void 0===a||null===(n=a.output_files)||void 0===n||n.forEach(e=>{(e.filename.endsWith(".png")||e.filename.endsWith(".jpg"))&&!t.includes(")&&(t+="\n\n.concat(e.b64_data,")"))})});let n=t,a=t;if(e.chatMessage.images&&e.chatMessage.images.length>0){let t=e.chatMessage.images.map(e=>{let t=e.startsWith("data%3Aimage")?decodeURIComponent(e):e;return N.Z.sanitize(t)}),s=t.map((e,t)=>".concat(e,")")).join("\n"),r=t.map((e,t)=>'<div class="'.concat(d().imageWrapper,'"><img src="').concat(e,'" alt="rendered image ').concat(t+1,'" /></div>')).join(""),l='<div class="'.concat(d().imagesContainer,'">').concat(r,"</div>");n="".concat(s,"\n\n").concat(n),a="".concat(l).concat(a)}x(n),a=(a=a.replace(/\\\(/g,"LEFTPAREN").replace(/\\\)/g,"RIGHTPAREN").replace(/\\\[/g,"LEFTBRACKET").replace(/\\\]/g,"RIGHTBRACKET")).replace(/\[([^\]]+)\]\(file:\/\/([^)]+)\)/g,(e,t,n)=>"[".concat(t,"](filelink://").concat(n,")"));let s=ef.render(a);s=s.replace(/LEFTPAREN/g,"\\(").replace(/RIGHTPAREN/g,"\\)").replace(/LEFTBRACKET/g,"\\[").replace(/RIGHTBRACKET/g,"\\]"),v(N.Z.sanitize(s,{ADD_ATTR:["data-file-path","data-line-number"]}))},[e.chatMessage.message,e.chatMessage.images,e.chatMessage.intent]),(0,l.useEffect)(()=>{i&&setTimeout(()=>{c(!1)},2e3)},[i]),(0,l.useEffect)(()=>{if(eM.current){eM.current.querySelectorAll("pre > .hljs").forEach(e=>{if(!e.querySelector("".concat(d().codeCopyButton))){let t=document.createElement("button"),n=(0,a.jsx)($.w,{size:24});(0,g.createRoot)(t).render(n),t.className="hljs ".concat(d().codeCopyButton),t.addEventListener("click",()=>{let n=e.textContent||"";n=(n=(n=n.replace(/^\$+/,"")).replace(/^Copy/,"")).trim(),navigator.clipboard.writeText(n);let s=(0,a.jsx)(J.J,{size:24});(0,g.createRoot)(t).render(s)}),e.prepend(t)}});let e=eM.current,t=e=>{var t;let n=e.target,a=null==n?void 0:null===(t=n.closest)||void 0===t?void 0:t.call(n,"a.file-link");if(!a)return;e.preventDefault(),e.stopPropagation();let s=a.getAttribute("data-file-path")||"",r=a.getAttribute("data-line-number")||void 0;s&&(V(!1),D(s),P(r?parseInt(r):void 0),T(!0))},n=null,s=e=>{var t;let a=e.target,s=null==a?void 0:null===(t=a.closest)||void 0===t?void 0:t.call(a,"a.file-link");if(!s||n===s)return;n=s;let r=s.getBoundingClientRect(),l=s.getAttribute("data-file-path")||"",o=s.getAttribute("data-line-number")||void 0;l&&(ey({x:Math.max(8,r.left),y:r.bottom+6}),en(l),ed(o?parseInt(o):void 0),eb.current&&(window.clearTimeout(eb.current),eb.current=null),V(!0))},r=e=>{var t;let a=e.target,s=e.relatedTarget,r=null==a?void 0:null===(t=a.closest)||void 0===t?void 0:t.call(a,"a.file-link");s&&r&&r.contains(s)||(eb.current&&window.clearTimeout(eb.current),eb.current=window.setTimeout(()=>{V(!1),n=null,eb.current=null},200))},l=e=>{var t;let n=e.target,a=null==n?void 0:null===(t=n.closest)||void 0===t?void 0:t.call(n,"a.file-link");if(!a||"Enter"!==e.key&&" "!==e.key)return;e.preventDefault(),e.stopPropagation();let s=a.getAttribute("data-file-path")||"",r=a.getAttribute("data-line-number")||void 0;s&&(V(!1),D(s),P(r?parseInt(r):void 0),T(!0))};return e.addEventListener("pointerdown",t),e.addEventListener("keydown",l),e.addEventListener("mouseover",s),e.addEventListener("mouseout",r),(0,ea.Z)(eM.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]}),()=>{e.removeEventListener("pointerdown",t),e.removeEventListener("keydown",l),e.removeEventListener("mouseover",s),e.removeEventListener("mouseout",r),eb.current&&(window.clearTimeout(eb.current),eb.current=null)}}},[p,eM]);let{content:ek,loading:eC,error:e_}=F(I,E),{content:eS,loading:eE,error:eT}=F(G,W);function eR(e){let t=new Date(e+"Z"),n=t.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0}).toUpperCase(),a=t.toLocaleString("en-US",{year:"numeric",month:"short",day:"2-digit"}).replaceAll("-"," ");return"".concat(n," on ").concat(a)}async function eI(){let t=e.chatMessage.message.match(/[^.!?]+[.!?]*/g)||[];if(!t||0===t.length||!t[0])return;w(!0);let n=eO(t[0]);for(let e=0;e<t.length&&!eN.current;e++){let a=n;e<t.length-1&&(n=eO(t[e+1]));try{let e=await a,t=URL.createObjectURL(e);await function(e){return new Promise((t,n)=>{let a=new Audio(e);a.onended=t,a.onerror=n,a.play()})}(t)}catch(e){console.error("Error:",e);break}}w(!1),b(!1)}async function eO(e){let t=await fetch("/api/chat/speech?text=".concat(encodeURIComponent(e)),{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("Network response was not ok");return await t.blob()}(0,l.useEffect)(()=>{Z(ek)},[ek]),(0,l.useEffect)(()=>{z(eC)},[eC]),(0,l.useEffect)(()=>{U(e_)},[e_]),(0,l.useEffect)(()=>{ej(eS)},[eS]),(0,l.useEffect)(()=>{eh(eE)},[eE]),(0,l.useEffect)(()=>{ex(eT)},[eT]);let eL=async t=>{let n=t.turnId||e.turnId;(await fetch("/api/chat/conversation/message",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:e.conversationId,turn_id:n})})).ok?e.onDeleteMessage(n):console.error("Failed to delete message")},eF=function(e,t,n){let a=[],s=[],r=[];if(n)for(let[e,t]of Object.entries(n))t.results&&r.push({code:t.code,output:t.results.std_out,output_files:t.results.output_files,error:t.results.std_err});if(t){let e=[];for(let[n,a]of Object.entries(t)){if(a.answerBox&&e.push({title:a.answerBox.title,description:a.answerBox.answer,link:a.answerBox.source}),a.knowledgeGraph&&e.push({title:a.knowledgeGraph.title,description:a.knowledgeGraph.description,link:a.knowledgeGraph.descriptionLink}),a.webpages){if(a.webpages instanceof Array){let t=a.webpages.map(e=>({title:e.query,description:e.snippet,link:e.link}));e.push(...t)}else{let t=a.webpages;e.push({title:t.query,description:t.snippet,link:t.link})}}if(a.organic){let t=a.organic.map(e=>({title:e.title,description:e.snippet,link:e.link}));e.push(...t)}}a.push(...e)}if(e){let t=e.map(e=>{if(!e.compiled&&""!==e.compiled){let t=("string"==typeof e?e:null==e?"":String(e)).split("\n");return{title:t[0]&&t[0].trim()?t[0]:"(untitled)",content:t.slice(1).join("\n")}}return{title:e.file,content:e.compiled}});s.push(...t)}return{notesReferenceCardData:s,onlineReferenceCardData:a,codeReferenceCardData:r}}(e.chatMessage.context,e.chatMessage.onlineContext,e.chatMessage.codeContext);return(0,a.jsxs)("div",{ref:t,className:(n=e.chatMessage,r=[d().chatMessageContainer],"khoj"===n.by&&r.push("shadow-md"),r.push(d()[n.by]),n.message||r.push(d().emptyChatMessage),e.customClassName&&r.push(d()["".concat(n.by).concat(e.customClassName)]),r.join(" ")),onMouseLeave:e=>h(!1),onMouseEnter:e=>h(!0),"data-created":eR(e.chatMessage.created),children:[(0,a.jsxs)("div",{className:(s=e.chatMessage,(o=[d().chatMessageWrapper]).push(d()[s.by]),"khoj"===s.by&&o.push("border-l-4 border-opacity-50 ".concat("border-l-"+e.borderLeftColor)),o.join(" ")),children:[e.chatMessage.queryFiles&&e.chatMessage.queryFiles.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap flex-col mb-2 max-w-full",children:e.chatMessage.queryFiles.map((e,t)=>(0,a.jsxs)(el.Vq,{children:[(0,a.jsx)(el.hg,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center space-x-2 cursor-pointer bg-gray-500 bg-opacity-25 rounded-lg p-2 w-full ",children:[(0,a.jsx)("div",{className:"flex-shrink-0",children:(0,M.Le)(e.file_type)}),(0,a.jsx)("span",{className:"truncate flex-1 min-w-0 max-w-[200px]",children:e.name}),e.size&&(0,a.jsxs)("span",{className:"text-gray-400 flex-shrink-0",children:["(",(0,ei.xq)(e.size),")"]})]})}),(0,a.jsxs)(el.cZ,{children:[(0,a.jsx)(el.fK,{children:(0,a.jsx)(eo.$N,{children:(0,a.jsx)("div",{className:"truncate min-w-0 break-words break-all text-wrap max-w-full whitespace-normal",children:e.name})})}),(0,a.jsx)(el.Be,{children:(0,a.jsx)(ec.x,{className:"h-72 w-full rounded-md break-words break-all text-wrap",children:e.content})})]})]},t))}),(0,a.jsx)("div",{ref:eM,className:d().chatMessage,dangerouslySetInnerHTML:{__html:p}}),W&&(0,f.createPortal)((0,a.jsx)("div",{onMouseEnter:()=>{eb.current&&(window.clearTimeout(eb.current),eb.current=null),V(!0)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),V(!1),G&&(D(G),P(es),T(!0))},onMouseLeave:()=>{eb.current&&window.clearTimeout(eb.current),eb.current=window.setTimeout(()=>{V(!1),eb.current=null},200)},style:{position:"fixed",left:ew.x,top:ew.y,zIndex:9999},className:"w-96 max-h-80 rounded-md border bg-popover p-4 text-popover-foreground shadow-md",children:(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center text-sm font-medium",children:[(0,a.jsx)("span",{className:"truncate",children:G.split("/").pop()||G}),es&&(0,a.jsxs)("span",{className:"text-gray-500 ml-2",children:["- Line ",es]})]}),(0,a.jsxs)(ec.x,{className:"max-h-60",children:[eu&&(0,a.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,a.jsx)(et.l,{})}),!eu&&em&&(0,a.jsxs)("div",{className:"p-3 text-red-500 text-sm",children:["Error: ",em]}),!eu&&!em&&(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(L,{content:ev,targetLine:es,maxLines:8})})]})]})}),document.body),(0,a.jsx)(el.Vq,{open:E,onOpenChange:T,children:(0,a.jsxs)(el.cZ,{className:"max-w-2xl",children:[(0,a.jsx)(el.fK,{children:(0,a.jsx)(eo.$N,{children:(0,a.jsxs)("div",{className:"truncate min-w-0 break-words break-all text-wrap max-w-full whitespace-normal",children:[I.split("/").pop()||I,(0,a.jsx)("span",{className:"text-gray-500 ml-2",children:B?"- Line ".concat(B):""})]})})}),(0,a.jsx)("div",{className:"text-left",children:(0,a.jsxs)(ec.x,{className:"h-80 w-full rounded-md",children:[A&&(0,a.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,a.jsx)(et.l,{})}),!A&&q&&(0,a.jsxs)("div",{className:"p-3 text-red-500 text-sm",children:["Error: ",q]}),!A&&!q&&(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(L,{content:H,targetLine:B,maxLines:20})})]})})]})}),k&&(0,a.jsx)(er,{data:k}),_&&(0,a.jsx)(eg,{chart:_})]}),(0,a.jsx)("div",{className:d().teaserReferencesContainer,children:(0,a.jsx)(R,{isMobileWidth:e.isMobileWidth,notesReferenceCardData:eF.notesReferenceCardData,onlineReferenceCardData:eF.onlineReferenceCardData,codeReferenceCardData:eF.codeReferenceCardData})}),(0,a.jsx)("div",{className:d().chatFooter,children:(u||e.isMobileWidth||e.isLastMessage||j)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{title:eR(e.chatMessage.created),className:"text-gray-400 relative top-0 left-4",children:function(e){e.endsWith("Z")||(e+="Z");let t=new Date(e),n=new Date().getTime()-t.getTime();return n<6e4?"Just now":n<36e5?"".concat(Math.round(n/6e4),"m ago"):n<864e5?"".concat(Math.round(n/36e5),"h ago"):"".concat(Math.round(n/864e5),"d ago")}(e.chatMessage.created)}),(0,a.jsxs)("div",{className:"".concat(d().chatButtons," shadow-sm"),children:["khoj"===e.chatMessage.by&&(j?y?(0,a.jsx)(et.l,{iconClassName:"p-0",className:"m-0"}):(0,a.jsx)("button",{title:"Pause Speech",onClick:e=>b(!0),children:(0,a.jsx)(Q.d,{alt:"Pause Message",className:"hsl(var(--muted-foreground))"})}):(0,a.jsx)("button",{title:"Speak",onClick:e=>eI(),children:(0,a.jsx)(K.j,{alt:"Speak Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})})),e.chatMessage.turnId&&(0,a.jsx)("button",{title:"Delete",className:"".concat(d().deleteButton),onClick:()=>eL(e.chatMessage),children:(0,a.jsx)(Y.r,{alt:"Delete Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})}),"khoj"===e.chatMessage.by&&e.onRetryMessage&&e.isLastMessage&&(0,a.jsx)("button",{title:"Retry",className:"".concat(d().retryButton),onClick:()=>{var t,n,a;let s=e.chatMessage.turnId||e.turnId,r=e.chatMessage.rawQuery||(null===(t=e.chatMessage.intent)||void 0===t?void 0:t.query);if(console.log("Retry button clicked for turnId:",s),console.log("ChatMessage data:",{rawQuery:e.chatMessage.rawQuery,intent:e.chatMessage.intent,message:e.chatMessage.message}),console.log("Extracted query:",r),r)null===(n=e.onRetryMessage)||void 0===n||n.call(e,r,s);else{console.error("No original query found for retry");let t=prompt("Enter the original query to retry:");t&&(null===(a=e.onRetryMessage)||void 0===a||a.call(e,t,s))}},children:(0,a.jsx)(X._,{alt:"Retry Message",className:"hsl(var(--muted-foreground)) hover:text-blue-500"})}),(0,a.jsx)("button",{title:"Copy",className:"".concat(d().copyButton),onClick:()=>{navigator.clipboard.writeText(m),c(!0)},children:i?(0,a.jsx)(ee.C,{alt:"Copied Message",weight:"fill",className:"text-green-500"}):(0,a.jsx)(ee.C,{alt:"Copy Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),"khoj"===e.chatMessage.by&&(e.chatMessage.intent?(0,a.jsx)(ep,{uquery:e.chatMessage.intent.query,kquery:e.chatMessage.message}):(0,a.jsx)(ep,{uquery:e.chatMessage.rawQuery||e.chatMessage.message,kquery:e.chatMessage.message}))]})]})})]})});ej.displayName="ChatMessage";var ew=n(17104),ey=n(66142),eb=n(25397),eN=n(44849),eM=n.n(eN);function ek(e){let{frames:t,autoPlay:n=!0,playbackSpeed:s=1e3}=e,[r,o]=(0,l.useState)(0),[i,c]=(0,l.useState)(n),[d,u]=(0,l.useState)(!0),h=(0,l.useRef)(null);(0,l.useEffect)(()=>{d&&t.length>0&&o(t.length-1)},[t.length,d]),(0,l.useEffect)(()=>(i&&t.length>1?h.current=setInterval(()=>{o(e=>{let n=e+1;return n>=t.length?(c(!1),e):n})},s):h.current&&(clearInterval(h.current),h.current=null),()=>{h.current&&clearInterval(h.current)}),[i,t.length,s]);let m=t[r],g=e=>{o(e),u(!1),c(!1)};return t.length?(0,a.jsxs)("div",{className:eM().videoPlayer,children:[(0,a.jsxs)("div",{className:eM().screen,children:[(null==m?void 0:m.image)&&(0,a.jsx)("img",{src:m.image,alt:"Train of thought frame ".concat(r+1),className:eM().screenImage}),(0,a.jsx)("div",{className:eM().textOverlay,children:(0,a.jsx)("div",{className:eM().thoughtText,children:null==m?void 0:m.text})})]}),(0,a.jsxs)("div",{className:eM().controls,children:[(0,a.jsxs)("div",{className:eM().timeline,children:[(0,a.jsx)("input",{type:"range",min:0,max:Math.max(0,t.length-1),value:r,onChange:e=>g(parseInt(e.target.value)),className:eM().timelineSlider}),(0,a.jsx)("div",{className:eM().frameMarkers,children:t.map((e,t)=>(0,a.jsx)("div",{className:"".concat(eM().frameMarker," ").concat(e.image?eM().hasImage:eM().textOnly," ").concat(t===r?eM().active:""),onClick:()=>g(t),title:"Frame ".concat(t+1,": ").concat(e.text.slice(0,50),"...")},t))})]}),(0,a.jsxs)("div",{className:eM().controlButtons,children:[(0,a.jsx)("button",{onClick:()=>{r>0&&(o(r-1),u(!1),c(!1))},disabled:0===r,title:"Previous frame",className:eM().controlButton,children:(0,a.jsx)(ew.F,{size:16})}),(0,a.jsx)("button",{onClick:()=>{c(!i),u(!1)},disabled:t.length<=1,title:i?"Pause":"Play",className:eM().controlButton,children:i?(0,a.jsx)(Q.d,{size:16}):(0,a.jsx)(ey.s,{size:16})}),(0,a.jsx)("button",{onClick:()=>{r<t.length-1&&(o(r+1),u(!1),c(!1))},disabled:r===t.length-1,title:"Next frame",className:eM().controlButton,children:(0,a.jsx)(eb.N,{size:16})}),(0,a.jsx)("button",{onClick:()=>{u(!0),o(t.length-1),c(!1)},className:"".concat(eM().controlButton," ").concat(d?eM().active:""),title:"Auto-track latest",children:"Live"})]}),(0,a.jsx)("div",{className:eM().frameInfo,children:(0,a.jsxs)("span",{children:[r+1," / ",t.length]})})]})]}):null}var eC=n(72102),e_=n(23713),eS=n(795),eE=n(935),eT=n(81103),eR=e=>{let{name:t,avatar:n,link:s,description:r}=e;return(0,a.jsx)("div",{className:"relative group flex",children:(0,a.jsx)(eT.pn,{children:(0,a.jsxs)(eT.u,{delayDuration:0,children:[(0,a.jsx)(eT.aJ,{asChild:!0,children:(0,a.jsxs)(em.z,{variant:"ghost",className:"flex items-center justify-center",children:[n,(0,a.jsx)("div",{children:t})]})}),(0,a.jsx)(eT._v,{children:(0,a.jsxs)("div",{className:"w-80 h-30",children:[(0,a.jsx)("a",{href:s,target:"_blank",rel:"noreferrer",className:"mt-1 ml-2 block no-underline",children:(0,a.jsxs)("div",{className:"flex items-center justify-start gap-2",children:[n,(0,a.jsxs)("div",{className:"mr-2 mt-1 flex justify-center items-center text-sm font-semibold text-gray-800",children:[t,(0,a.jsx)(j.o,{weight:"bold",className:"ml-1"})]})]})}),r&&(0,a.jsx)("p",{className:"mt-2 ml-6 text-sm text-gray-600 line-clamp-2",children:r||"A Khoj agent"})]})})]})})})},eI=n(37104);function eO(e){let[t,n]=(0,l.useState)(e.completed),[s,c]=(0,l.useState)([]);return(0,l.useEffect)(()=>{e.completed&&n(!0)},[e.completed]),(0,l.useEffect)(()=>{if(!e.trainOfThought||0===e.trainOfThought.length){c([]);return}c(function(e){if(!e)return[];let t=[],n=[],a=[];return e.forEach((e,s)=>{let r=e.data,l=!1;try{let e=r.match(/\{.*(\"action\": \"screenshot\"|\"type\": \"screenshot\"|\"image\": \"data:image\/.*\").*\}/);if(e){let o=JSON.parse(e[0]);o.image&&(l=!0,r=r.replace(":\n**Action**: ".concat(e[0]),""),o.text&&(r+="\n\n".concat(o.text)),a.length>0&&(t.push({type:"text",textEntries:[...a]}),a=[]),n.push({text:r,image:o.image,timestamp:s}))}}catch(e){console.error("Failed to parse screenshot data",e)}l||(n.length>0&&(t.push({type:"video",frames:[...n]}),n=[]),a.push(e))}),n.length>0&&t.push({type:"video",frames:n}),a.length>0&&t.push({type:"text",textEntries:a}),t}("string"==typeof e.trainOfThought[0]?e.trainOfThought.map((e,t)=>({type:"text",data:e})):e.trainOfThought))},[e.trainOfThought]),(0,a.jsxs)("div",{className:"".concat(t?"":r().trainOfThought+" border"," rounded-lg"),children:[!e.completed&&(0,a.jsx)(et.l,{className:"float-right"}),e.completed&&(t?(0,a.jsxs)(em.z,{className:"w-fit text-left justify-start content-start text-xs",onClick:()=>n(!1),variant:"ghost",size:"sm",children:["Thought Process ",(0,a.jsx)(eC.p,{size:16,className:"ml-1"})]}):(0,a.jsxs)(em.z,{className:"w-fit text-left justify-start content-start text-xs p-0 h-fit",onClick:()=>n(!0),variant:"ghost",size:"sm",children:["Close ",(0,a.jsx)(e_.U,{size:16,className:"ml-1"})]})),(0,a.jsx)(o.M,{initial:!1,children:!t&&(0,a.jsx)(i.E.div,{initial:"closed",animate:"open",exit:"closed",variants:{open:{height:"auto",opacity:1,transition:{duration:.3,ease:"easeOut"}},closed:{height:0,opacity:0,transition:{duration:.3,ease:"easeIn"}}},children:s.map((t,n)=>(0,a.jsxs)("div",{children:["video"===t.type&&t.frames&&t.frames.length>0&&(0,a.jsx)(ek,{frames:t.frames,autoPlay:!1,playbackSpeed:1500}),"text"===t.type&&t.textEntries&&t.textEntries.map((r,l)=>{let o=s.length-1,i=l===t.textEntries.length-1,c=n===o&&i&&e.lastMessage&&!e.completed;return(0,a.jsx)(ev,{message:r.data,primary:c,agentColor:e.agentColor},"train-text-".concat(n,"-").concat(l,"-").concat(r.data.length))})]},"train-group-".concat(n)))})})]},e.keyId)}function eL(e){var t,n,s,o,i,c,d;let[u,h]=(0,l.useState)(null),[m,g]=(0,l.useState)(0),[f,x]=(0,l.useState)(!0),[p,v]=(0,l.useState)(null),j=(0,l.useRef)(null),w=(0,l.useRef)(null),y=(0,l.useRef)(null),b=(0,l.useRef)(null),N=(0,l.useRef)(null),[k,C]=(0,l.useState)(null),[_,S]=(0,l.useState)(!1),[E,T]=(0,l.useState)(!0),R=(0,ei.IC)(),I="[data-radix-scroll-area-viewport]",O=localStorage.getItem("message");(0,l.useEffect)(()=>{var e;let t=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);if(!t)return;let n=()=>{let{scrollTop:e,scrollHeight:n,clientHeight:a}=t;T(n-(e+a)<=50)};return t.addEventListener("scroll",n),n(),()=>t.removeEventListener("scroll",n)},[w]),(0,l.useEffect)(()=>{e.incomingMessages&&e.incomingMessages.length>0&&E&&F(!0)},[e.incomingMessages,E]),(0,l.useEffect)(()=>{var t;let n=y.current,a=null===(t=w.current)||void 0===t?void 0:t.querySelector(I);if(!n||!a)return;let s=new ResizeObserver(()=>{let{scrollTop:t,scrollHeight:n,clientHeight:s}=a;if(n-(t+s)<=50&&e.incomingMessages&&e.incomingMessages.length>0){let t=e.incomingMessages[e.incomingMessages.length-1];(!t.completed||t.completed&&null!==k)&&F(!0)}});return s.observe(n),()=>s.disconnect()},[e.incomingMessages,k,w]),(0,l.useEffect)(()=>{u&&u.chat&&u.chat.length>0&&m<2&&requestAnimationFrame(()=>{var e;null===(e=b.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"})})},[u,m]),(0,l.useEffect)(()=>{if(!f||_)return;let t=new IntersectionObserver(t=>{t[0].isIntersecting&&f&&(S(!0),function(t){if(!f||_)return;let n=(t+1)*10,a="";if(e.conversationId)a="/api/chat/history?client=web&conversation_id=".concat(encodeURIComponent(e.conversationId),"&n=").concat(n);else{if(!e.publicConversationSlug)return;a="/api/chat/share/history?client=web&public_conversation_slug=".concat(e.publicConversationSlug,"&n=").concat(n)}fetch(a).then(e=>e.json()).then(n=>{var a;if(e.setTitle(n.response.slug),e.setIsOwner&&e.setIsOwner(null==n?void 0:null===(a=n.response)||void 0===a?void 0:a.is_owner),n&&n.response&&n.response.chat&&n.response.chat.length>0){if(g(Math.ceil(n.response.chat.length/10)),n.response.chat.length===(null==u?void 0:u.chat.length)){x(!1),S(!1);return}e.setAgent(n.response.agent),h(n.response),S(!1),0===t?F(!0):L()}else{if(n.response.agent&&n.response.conversation_id){let t={chat:[],agent:n.response.agent,conversation_id:n.response.conversation_id,slug:n.response.slug,is_owner:n.response.is_owner};e.setAgent(n.response.agent),h(t),e.setIsChatSideBarOpen&&!O&&e.setIsChatSideBarOpen(!0)}x(!1),S(!1)}}).catch(e=>{console.error(e),window.location.href="/"})}(m))},{threshold:1});return j.current&&t.observe(j.current),()=>t.disconnect()},[f,m,_]),(0,l.useEffect)(()=>{x(!0),S(!1),g(0),h(null)},[e.conversationId]),(0,l.useEffect)(()=>{if(e.incomingMessages){let t=e.incomingMessages[e.incomingMessages.length-1];t&&!t.completed&&(C(e.incomingMessages.length-1),e.setTitle(t.rawQuery),t.turnId&&v(t.turnId))}},[e.incomingMessages]);let L=()=>{var e;let t=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);requestAnimationFrame(()=>{var e;null===(e=N.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"}),null==t||t.scrollBy({behavior:"smooth",top:-150})})},F=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=null===(e=w.current)||void 0===e?void 0:e.querySelector(I);requestAnimationFrame(()=>{null==n||n.scrollTo({top:n.scrollHeight,behavior:t?"auto":"smooth"})}),(t||n&&n.scrollHeight-(n.scrollTop+n.clientHeight)<5)&&T(!0)};function D(){var e,t;return u&&u.agent&&(null===(e=u.agent)||void 0===e?void 0:e.name)?u.agent.is_hidden?"Khoj":null===(t=u.agent)||void 0===t?void 0:t.name:"Agent"}let B=t=>{t&&(h(e=>e&&t?{...e,chat:e.chat.filter(e=>e.turnId!==t)}:e),e.incomingMessages&&e.setIncomingMessages&&e.setIncomingMessages(e.incomingMessages.filter(e=>e.turnId!==t)))},P=(t,n)=>{var a;t&&(n&&B(n),null===(a=e.onRetryMessage)||void 0===a||a.call(e,t,n))};return e.conversationId||e.publicConversationSlug?(0,a.jsx)(ec.x,{className:"\n h-[calc(100svh-theme(spacing.44))]\n sm:h-[calc(100svh-theme(spacing.44))]\n md:h-[calc(100svh-theme(spacing.44))]\n lg:h-[calc(100svh-theme(spacing.44))]\n ",ref:w,children:(0,a.jsxs)("div",{ref:y,children:[(0,a.jsxs)("div",{className:"print-only-header",children:[(0,a.jsxs)("div",{className:"print-header-content",children:[(0,a.jsx)("div",{className:"print-header-left",children:(0,a.jsx)(eI.S6,{className:"print-logo"})}),(0,a.jsxs)("div",{className:"print-header-right",children:[(0,a.jsx)("h1",{children:(null==u?void 0:u.slug)||"Conversation with Khoj"}),(0,a.jsx)("div",{className:"conversation-meta",children:(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Agent:"})," ",D()]})})]})]}),(0,a.jsx)("hr",{})]}),(0,a.jsxs)("div",{className:"".concat(r().chatHistory," ").concat(e.customClassName),children:[(0,a.jsx)("div",{ref:j,style:{height:"1px"},children:_&&(0,a.jsx)(et.l,{className:"opacity-50"})}),u&&u.chat&&u.chat.map((t,n)=>{var s,r;return(0,a.jsxs)(l.Fragment,{children:[t.trainOfThought&&"khoj"===t.by&&(0,a.jsx)(eO,{trainOfThought:t.trainOfThought,lastMessage:!1,agentColor:(null==u?void 0:null===(s=u.agent)||void 0===s?void 0:s.color)||"orange",keyId:"".concat(n,"trainOfThought"),completed:!0},"".concat(n,"trainOfThought")),(0,a.jsx)(ej,{ref:n===u.chat.length-2?b:n===u.chat.length-(m-1)*10?N:null,isMobileWidth:R,chatMessage:t,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(r=u.agent)||void 0===r?void 0:r.color,"-500"),isLastMessage:n===u.chat.length-1,onDeleteMessage:B,onRetryMessage:P,conversationId:e.conversationId},"".concat(n,"fullHistory"))]},"chatMessage-".concat(n))}),e.incomingMessages&&e.incomingMessages.map((t,n)=>{var s,r,o,i,c;let d=null!==(c=null!==(i=t.turnId)&&void 0!==i?i:p)&&void 0!==c?c:void 0;return(0,a.jsxs)(l.Fragment,{children:[(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:t.rawQuery,context:[],onlineContext:{},codeContext:{},created:t.timestamp,by:"you",automationId:"",images:t.images,conversationId:e.conversationId,turnId:d,queryFiles:t.queryFiles},customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(s=u.agent)||void 0===s?void 0:s.color,"-500"),onDeleteMessage:B,onRetryMessage:P,conversationId:e.conversationId,turnId:d},"".concat(n,"outgoing")),t.trainOfThought&&t.trainOfThought.length>0&&(0,a.jsx)(eO,{trainOfThought:t.trainOfThought,lastMessage:n===k,agentColor:(null==u?void 0:null===(r=u.agent)||void 0===r?void 0:r.color)||"orange",keyId:"".concat(n,"trainOfThought"),completed:t.completed},"".concat(n,"trainOfThought-").concat(t.trainOfThought.length,"-").concat(t.trainOfThought.map(e=>e.length).join("-"))),(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:t.rawResponse,context:t.context,onlineContext:t.onlineContext,codeContext:t.codeContext,created:t.timestamp,by:"khoj",automationId:"",rawQuery:t.rawQuery,intent:{type:t.intentType||"",query:t.rawQuery,"memory-type":"","inferred-queries":t.inferredQueries||[]},conversationId:e.conversationId,images:t.generatedImages,queryFiles:t.generatedFiles,mermaidjsDiagram:t.generatedMermaidjsDiagram,turnId:d},conversationId:e.conversationId,turnId:d,onDeleteMessage:B,onRetryMessage:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(o=u.agent)||void 0===o?void 0:o.color,"-500"),isLastMessage:n===e.incomingMessages.length-1},"".concat(n,"incoming"))]},"incomingMessage".concat(n))}),e.pendingMessage&&(0,a.jsx)(ej,{isMobileWidth:R,chatMessage:{message:e.pendingMessage,context:[],onlineContext:{},codeContext:{},created:new Date().getTime().toString(),by:"you",automationId:"",conversationId:e.conversationId,turnId:void 0},conversationId:e.conversationId,onDeleteMessage:B,onRetryMessage:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==u?void 0:null===(t=u.agent)||void 0===t?void 0:t.color,"-500"),isLastMessage:!0},"pendingMessage-".concat(e.pendingMessage.length)),u&&(0,a.jsx)("div",{className:"".concat(r().agentIndicator," pb-4"),children:(0,a.jsx)("div",{className:"relative group mx-2 cursor-pointer",children:(0,a.jsx)(eR,{name:D(),link:u&&u.agent&&(null===(o=u.agent)||void 0===o?void 0:o.slug)?"/agents?agent=".concat(null===(i=u.agent)||void 0===i?void 0:i.slug):"/agents",avatar:(0,M.TI)(null===(n=u.agent)||void 0===n?void 0:n.icon,null===(s=u.agent)||void 0===s?void 0:s.color)||(0,a.jsx)(eS.v,{}),description:u&&u.agent?(null===(c=u.agent)||void 0===c?void 0:c.persona)?null===(d=u.agent)||void 0===d?void 0:d.persona:"You can set a persona for your agent in the Chat Options side panel.":"Your agent is no longer available. You will be reset to the default agent."})})})]}),(0,a.jsx)("div",{className:"".concat(e.customClassName," fixed bottom-[20%] z-10"),children:!E&&(0,a.jsx)("button",{title:"Scroll to bottom",className:"absolute bottom-0 right-0 bg-white dark:bg-[hsl(var(--background))] text-neutral-500 dark:text-white p-2 rounded-full shadow-xl",onClick:()=>{F()},children:(0,a.jsx)(eE.K,{size:24})})})]})}):null}},42501:function(e){e.exports={chatHistory:"chatHistory_chatHistory__CoaVT",agentIndicator:"chatHistory_agentIndicator__wOU1f",trainOfThought:"chatHistory_trainOfThought__mMWSR"}},91499:function(e){e.exports={chatMessageContainer:"chatMessage_chatMessageContainer__sAivf",chatMessageWrapper:"chatMessage_chatMessageWrapper__u5m8A","file-link":"chatMessage_file-link__PL84f",khojfullHistory:"chatMessage_khojfullHistory__NPu2l",youfullHistory:"chatMessage_youfullHistory__ioyfH",you:"chatMessage_you__6GUC4",khoj:"chatMessage_khoj__cjWON",khojChatMessage:"chatMessage_khojChatMessage__BabQz",emptyChatMessage:"chatMessage_emptyChatMessage__J9JRn",imagesContainer:"chatMessage_imagesContainer__HTRjT",imageWrapper:"chatMessage_imageWrapper__DF92M",author:"chatMessage_author__muRtC",chatFooter:"chatMessage_chatFooter__0vR8s",chatButtons:"chatMessage_chatButtons__Lbk8T",codeCopyButton:"chatMessage_codeCopyButton__Y_Ujv",feedbackButtons:"chatMessage_feedbackButtons___Brdy",copyButton:"chatMessage_copyButton__jd7q7",retryButton:"chatMessage_retryButton__Z7Pzk",trainOfThought:"chatMessage_trainOfThought__mR2Gg",primary:"chatMessage_primary__WYPEb",trainOfThoughtElement:"chatMessage_trainOfThoughtElement__le_bC"}},44849:function(e){e.exports={videoPlayer:"trainOfThoughtVideoPlayer_videoPlayer__Dz3mA",screen:"trainOfThoughtVideoPlayer_screen__dvEVh",screenImage:"trainOfThoughtVideoPlayer_screenImage__3SgOQ",textOverlay:"trainOfThoughtVideoPlayer_textOverlay__BGbhO",thoughtText:"trainOfThoughtVideoPlayer_thoughtText__zn_vT",controls:"trainOfThoughtVideoPlayer_controls__HDkO_",timeline:"trainOfThoughtVideoPlayer_timeline__hSpWu",timelineSlider:"trainOfThoughtVideoPlayer_timelineSlider__GQ8dx",frameMarkers:"trainOfThoughtVideoPlayer_frameMarkers__5y3He",frameMarker:"trainOfThoughtVideoPlayer_frameMarker__DBO9Y",hasImage:"trainOfThoughtVideoPlayer_hasImage__GFGAk",textOnly:"trainOfThoughtVideoPlayer_textOnly__okufk",active:"trainOfThoughtVideoPlayer_active__zp6u9",controlButtons:"trainOfThoughtVideoPlayer_controlButtons__rqfIH",controlButton:"trainOfThoughtVideoPlayer_controlButton___RdE_",frameInfo:"trainOfThoughtVideoPlayer_frameInfo__u5nwA"}}}]);
|