khoj 1.42.1.dev8__py3-none-any.whl → 1.42.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. khoj/configure.py +2 -0
  2. khoj/database/adapters/__init__.py +9 -7
  3. khoj/database/models/__init__.py +9 -9
  4. khoj/interface/compiled/404/index.html +2 -2
  5. khoj/interface/compiled/_next/static/chunks/{2117-5a41630a2bd2eae8.js → 2117-056a00add390772b.js} +1 -1
  6. khoj/interface/compiled/_next/static/chunks/7127-79a3af5138960272.js +1 -0
  7. khoj/interface/compiled/_next/static/chunks/{5138-2cce449fd2454abf.js → 7211-7fedd2ee3655239c.js} +1 -1
  8. khoj/interface/compiled/_next/static/chunks/app/agents/layout-1b6273baddb72146.js +1 -0
  9. khoj/interface/compiled/_next/static/chunks/app/agents/{page-774c78ff0f55a228.js → page-2fac1d5ac7192e73.js} +1 -1
  10. khoj/interface/compiled/_next/static/chunks/app/automations/page-ef89ac958e78aa81.js +1 -0
  11. khoj/interface/compiled/_next/static/chunks/app/chat/page-d71351493e1f7c2b.js +1 -0
  12. khoj/interface/compiled/_next/static/chunks/app/{page-f7a0286dfc31ad6b.js → page-4bbe55de8b080c1f.js} +1 -1
  13. khoj/interface/compiled/_next/static/chunks/app/search/layout-4505b79deb734a30.js +1 -0
  14. khoj/interface/compiled/_next/static/chunks/app/search/{page-f1a7f278c89e09b6.js → page-afb5e7ed13d221c1.js} +1 -1
  15. khoj/interface/compiled/_next/static/chunks/app/settings/{page-5d9134d4a97f8834.js → page-8fb6cc97be8774a7.js} +1 -1
  16. khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-e8e5db7830bf3f47.js +1 -0
  17. khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-32cd0ceb9ffbd777.js → page-e3f49c25480e3be4.js} +1 -1
  18. khoj/interface/compiled/_next/static/chunks/{main-876327ac335776ab.js → main-63d6432f34cdf74b.js} +1 -1
  19. khoj/interface/compiled/_next/static/chunks/{webpack-97e712397e673897.js → webpack-e4c73eaddc365142.js} +1 -1
  20. khoj/interface/compiled/_next/static/css/2945c4a857922f3b.css +1 -0
  21. khoj/interface/compiled/_next/static/css/2b1cdb68b799b876.css +1 -0
  22. khoj/interface/compiled/_next/static/css/440ae0f0f650dc35.css +1 -0
  23. khoj/interface/compiled/_next/static/css/{9c223d337a984468.css → 7017ee76c2f2cd87.css} +1 -1
  24. khoj/interface/compiled/agents/index.html +2 -2
  25. khoj/interface/compiled/agents/index.txt +2 -2
  26. khoj/interface/compiled/automations/index.html +2 -2
  27. khoj/interface/compiled/automations/index.txt +2 -2
  28. khoj/interface/compiled/chat/index.html +2 -2
  29. khoj/interface/compiled/chat/index.txt +2 -2
  30. khoj/interface/compiled/index.html +2 -2
  31. khoj/interface/compiled/index.txt +2 -2
  32. khoj/interface/compiled/search/index.html +2 -2
  33. khoj/interface/compiled/search/index.txt +2 -2
  34. khoj/interface/compiled/settings/index.html +2 -2
  35. khoj/interface/compiled/settings/index.txt +2 -2
  36. khoj/interface/compiled/share/chat/index.html +2 -2
  37. khoj/interface/compiled/share/chat/index.txt +2 -2
  38. khoj/processor/conversation/anthropic/anthropic_chat.py +19 -134
  39. khoj/processor/conversation/anthropic/utils.py +1 -1
  40. khoj/processor/conversation/google/gemini_chat.py +20 -141
  41. khoj/processor/conversation/offline/chat_model.py +23 -153
  42. khoj/processor/conversation/openai/gpt.py +14 -128
  43. khoj/processor/conversation/prompts.py +2 -63
  44. khoj/processor/conversation/utils.py +94 -89
  45. khoj/processor/image/generate.py +16 -11
  46. khoj/processor/operator/__init__.py +2 -3
  47. khoj/processor/operator/operator_agent_binary.py +11 -11
  48. khoj/processor/operator/operator_environment_computer.py +2 -2
  49. khoj/processor/tools/online_search.py +9 -3
  50. khoj/processor/tools/run_code.py +5 -5
  51. khoj/routers/api.py +5 -527
  52. khoj/routers/api_automation.py +243 -0
  53. khoj/routers/api_chat.py +48 -129
  54. khoj/routers/helpers.py +373 -121
  55. khoj/routers/research.py +13 -43
  56. khoj/utils/helpers.py +0 -6
  57. {khoj-1.42.1.dev8.dist-info → khoj-1.42.2.dist-info}/METADATA +3 -3
  58. {khoj-1.42.1.dev8.dist-info → khoj-1.42.2.dist-info}/RECORD +63 -62
  59. khoj/interface/compiled/_next/static/chunks/7127-d3199617463d45f0.js +0 -1
  60. khoj/interface/compiled/_next/static/chunks/app/agents/layout-4e2a134ec26aa606.js +0 -1
  61. khoj/interface/compiled/_next/static/chunks/app/automations/page-4454891c5007b870.js +0 -1
  62. khoj/interface/compiled/_next/static/chunks/app/chat/page-3c299bf8e6b1afd3.js +0 -1
  63. khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js +0 -1
  64. khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-abb6c5f4239ad7be.js +0 -1
  65. khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css +0 -1
  66. khoj/interface/compiled/_next/static/css/76c658ee459140a9.css +0 -1
  67. khoj/interface/compiled/_next/static/css/93eeacc43e261162.css +0 -1
  68. /khoj/interface/compiled/_next/static/{TrHI4J6qnG7RYFl2Irnqj → BDHACq0ud8EERJ3YZ4aWo}/_buildManifest.js +0 -0
  69. /khoj/interface/compiled/_next/static/{TrHI4J6qnG7RYFl2Irnqj → BDHACq0ud8EERJ3YZ4aWo}/_ssgManifest.js +0 -0
  70. {khoj-1.42.1.dev8.dist-info → khoj-1.42.2.dist-info}/WHEEL +0 -0
  71. {khoj-1.42.1.dev8.dist-info → khoj-1.42.2.dist-info}/entry_points.txt +0 -0
  72. {khoj-1.42.1.dev8.dist-info → khoj-1.42.2.dist-info}/licenses/LICENSE +0 -0
khoj/routers/research.py CHANGED
@@ -10,7 +10,7 @@ import yaml
10
10
  from pydantic import BaseModel, Field
11
11
 
12
12
  from khoj.database.adapters import AgentAdapters, EntryAdapters
13
- from khoj.database.models import Agent, KhojUser
13
+ from khoj.database.models import Agent, ChatMessageModel, KhojUser
14
14
  from khoj.processor.conversation import prompts
15
15
  from khoj.processor.conversation.utils import (
16
16
  OperatorRun,
@@ -22,10 +22,10 @@ from khoj.processor.conversation.utils import (
22
22
  from khoj.processor.operator import operate_environment
23
23
  from khoj.processor.tools.online_search import read_webpages, search_online
24
24
  from khoj.processor.tools.run_code import run_code
25
- from khoj.routers.api import extract_references_and_questions
26
25
  from khoj.routers.helpers import (
27
26
  ChatEvent,
28
27
  generate_summary_from_files,
28
+ search_documents,
29
29
  send_message_to_model_wrapper,
30
30
  )
31
31
  from khoj.utils.helpers import (
@@ -84,7 +84,7 @@ class PlanningResponse(BaseModel):
84
84
 
85
85
  async def apick_next_tool(
86
86
  query: str,
87
- conversation_history: dict,
87
+ conversation_history: List[ChatMessageModel],
88
88
  user: KhojUser = None,
89
89
  location: LocationData = None,
90
90
  user_name: str = None,
@@ -166,18 +166,18 @@ async def apick_next_tool(
166
166
  query = f"[placeholder for user attached images]\n{query}"
167
167
 
168
168
  # Construct chat history with user and iteration history with researcher agent for context
169
- previous_iterations_history = construct_iteration_history(previous_iterations, prompts.previous_iteration, query)
170
- iteration_chat_log = {"chat": conversation_history.get("chat", []) + previous_iterations_history}
169
+ iteration_chat_history = construct_iteration_history(previous_iterations, prompts.previous_iteration, query)
170
+ chat_and_research_history = conversation_history + iteration_chat_history
171
171
 
172
172
  # Plan function execution for the next tool
173
- query = prompts.plan_function_execution_next_tool.format(query=query) if previous_iterations_history else query
173
+ query = prompts.plan_function_execution_next_tool.format(query=query) if iteration_chat_history else query
174
174
 
175
175
  try:
176
176
  with timer("Chat actor: Infer information sources to refer", logger):
177
177
  response = await send_message_to_model_wrapper(
178
178
  query=query,
179
179
  system_message=function_planning_prompt,
180
- conversation_log=iteration_chat_log,
180
+ chat_history=chat_and_research_history,
181
181
  response_type="json_object",
182
182
  response_schema=planning_response_model,
183
183
  deepthought=True,
@@ -198,6 +198,8 @@ async def apick_next_tool(
198
198
 
199
199
  try:
200
200
  response = load_complex_json(response)
201
+ if not isinstance(response, dict):
202
+ raise ValueError(f"Expected dict response, got {type(response).__name__}: {response}")
201
203
  selected_tool = response.get("tool", None)
202
204
  generated_query = response.get("query", None)
203
205
  scratchpad = response.get("scratchpad", None)
@@ -236,7 +238,7 @@ async def research(
236
238
  user: KhojUser,
237
239
  query: str,
238
240
  conversation_id: str,
239
- conversation_history: dict,
241
+ conversation_history: List[ChatMessageModel],
240
242
  previous_iterations: List[ResearchIteration],
241
243
  query_images: List[str],
242
244
  agent: Agent = None,
@@ -259,9 +261,7 @@ async def research(
259
261
  if current_iteration := len(previous_iterations) > 0:
260
262
  logger.info(f"Continuing research with the previous {len(previous_iterations)} iteration results.")
261
263
  previous_iterations_history = construct_iteration_history(previous_iterations, prompts.previous_iteration)
262
- research_conversation_history["chat"] = (
263
- research_conversation_history.get("chat", []) + previous_iterations_history
264
- )
264
+ research_conversation_history += previous_iterations_history
265
265
 
266
266
  while current_iteration < MAX_ITERATIONS:
267
267
  # Check for cancellation at the start of each iteration
@@ -273,7 +273,6 @@ async def research(
273
273
  code_results: Dict = dict()
274
274
  document_results: List[Dict[str, str]] = []
275
275
  operator_results: OperatorRun = None
276
- summarize_files: str = ""
277
276
  this_iteration = ResearchIteration(tool=None, query=query)
278
277
 
279
278
  async for result in apick_next_tool(
@@ -313,7 +312,7 @@ async def research(
313
312
  previous_inferred_queries = {
314
313
  c["query"] for iteration in previous_iterations if iteration.context for c in iteration.context
315
314
  }
316
- async for result in extract_references_and_questions(
315
+ async for result in search_documents(
317
316
  user,
318
317
  construct_tool_chat_history(previous_iterations, ConversationCommand.Notes),
319
318
  this_iteration.query,
@@ -473,40 +472,13 @@ async def research(
473
472
  this_iteration.warning = f"Error operating browser: {e}"
474
473
  logger.error(this_iteration.warning, exc_info=True)
475
474
 
476
- elif this_iteration.tool == ConversationCommand.Summarize:
477
- try:
478
- async for result in generate_summary_from_files(
479
- this_iteration.query,
480
- user,
481
- file_filters,
482
- construct_tool_chat_history(previous_iterations, ConversationCommand.Summarize),
483
- query_images=query_images,
484
- agent=agent,
485
- send_status_func=send_status_func,
486
- query_files=query_files,
487
- ):
488
- if isinstance(result, dict) and ChatEvent.STATUS in result:
489
- yield result[ChatEvent.STATUS]
490
- else:
491
- summarize_files = result # type: ignore
492
- except Exception as e:
493
- this_iteration.warning = f"Error summarizing files: {e}"
494
- logger.error(this_iteration.warning, exc_info=True)
495
-
496
475
  else:
497
476
  # No valid tools. This is our exit condition.
498
477
  current_iteration = MAX_ITERATIONS
499
478
 
500
479
  current_iteration += 1
501
480
 
502
- if (
503
- document_results
504
- or online_results
505
- or code_results
506
- or operator_results
507
- or summarize_files
508
- or this_iteration.warning
509
- ):
481
+ if document_results or online_results or code_results or operator_results or this_iteration.warning:
510
482
  results_data = f"\n<iteration>{current_iteration}\n<tool>{this_iteration.tool}</tool>\n<query>{this_iteration.query}</query>\n<results>"
511
483
  if document_results:
512
484
  results_data += f"\n<document_references>\n{yaml.dump(document_results, allow_unicode=True, sort_keys=False, default_flow_style=False)}\n</document_references>"
@@ -518,8 +490,6 @@ async def research(
518
490
  results_data += (
519
491
  f"\n<browser_operator_results>\n{operator_results.response}\n</browser_operator_results>"
520
492
  )
521
- if summarize_files:
522
- results_data += f"\n<summarized_files>\n{yaml.dump(summarize_files, allow_unicode=True, sort_keys=False, default_flow_style=False)}\n</summarized_files>"
523
493
  if this_iteration.warning:
524
494
  results_data += f"\n<warning>\n{this_iteration.warning}\n</warning>"
525
495
  results_data += "\n</results>\n</iteration>"
khoj/utils/helpers.py CHANGED
@@ -338,15 +338,12 @@ class ConversationCommand(str, Enum):
338
338
  Default = "default"
339
339
  General = "general"
340
340
  Notes = "notes"
341
- Help = "help"
342
341
  Online = "online"
343
342
  Webpage = "webpage"
344
343
  Code = "code"
345
344
  Image = "image"
346
345
  Text = "text"
347
- Automation = "automation"
348
346
  AutomatedTask = "automated_task"
349
- Summarize = "summarize"
350
347
  Diagram = "diagram"
351
348
  Research = "research"
352
349
  Operator = "operator"
@@ -360,9 +357,6 @@ command_descriptions = {
360
357
  ConversationCommand.Webpage: "Get information from webpage suggested by you.",
361
358
  ConversationCommand.Code: "Run Python code to parse information, run complex calculations, create documents and charts.",
362
359
  ConversationCommand.Image: "Generate illustrative, creative images by describing your imagination in words.",
363
- ConversationCommand.Automation: "Automatically run your query at a specified time or interval.",
364
- ConversationCommand.Help: "Get help with how to use or setup Khoj from the documentation",
365
- ConversationCommand.Summarize: "Get help with a question pertaining to an entire document.",
366
360
  ConversationCommand.Diagram: "Draw a flowchart, diagram, or any other visual representation best expressed with primitives like lines, rectangles, and text.",
367
361
  ConversationCommand.Research: "Do deep research on a topic. This will take longer than usual, but give a more detailed, comprehensive answer.",
368
362
  ConversationCommand.Operator: "Operate and perform tasks using a computer.",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: khoj
3
- Version: 1.42.1.dev8
3
+ Version: 1.42.2
4
4
  Summary: Your Second Brain
5
5
  Project-URL: Homepage, https://khoj.dev
6
6
  Project-URL: Documentation, https://docs.khoj.dev
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
21
21
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
22
  Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
23
- Requires-Python: >=3.10
23
+ Requires-Python: <3.13,>=3.10
24
24
  Requires-Dist: aiohttp~=3.9.0
25
25
  Requires-Dist: anthropic==0.52.0
26
26
  Requires-Dist: anyio~=4.8.0
@@ -33,7 +33,7 @@ Requires-Dist: defusedxml==0.7.1
33
33
  Requires-Dist: django-apscheduler==0.7.0
34
34
  Requires-Dist: django-phonenumber-field==7.3.0
35
35
  Requires-Dist: django-unfold==0.42.0
36
- Requires-Dist: django==5.1.9
36
+ Requires-Dist: django==5.1.10
37
37
  Requires-Dist: docx2txt==0.8
38
38
  Requires-Dist: e2b-code-interpreter~=1.0.0
39
39
  Requires-Dist: einops==0.8.0
@@ -1,5 +1,5 @@
1
1
  khoj/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- khoj/configure.py,sha256=tOue0mllL8MkUA-LC6_9BE2HpyVDi1LM9RhuTdNd-jw,18870
2
+ khoj/configure.py,sha256=Z3c3cE4-pqZ5eqGA8lRqcpNlDRby4cjtcFYVD2RD4i8,18994
3
3
  khoj/main.py,sha256=UScenj61cw-FK8mrf6G2P6jE63SztDsQzWwNjFRfBkg,8523
4
4
  khoj/manage.py,sha256=njo6uLxGaMamTPesHjFEOIBJbpIUrz39e1V59zKj544,664
5
5
  khoj/app/README.md,sha256=PSQjKCdpU2hgszLVF8yEhV7TWhbEEb-1aYLTRuuAsKI,2832
@@ -11,7 +11,7 @@ khoj/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  khoj/database/admin.py,sha256=yX_g1CUpEijnufIgTdefUfiakmd3MB3GSYwKfZo-Cms,13206
12
12
  khoj/database/apps.py,sha256=pM4tkX5Odw4YW_hLLKK8Nd5kqGddf1en0oMCea44RZw,153
13
13
  khoj/database/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
14
- khoj/database/adapters/__init__.py,sha256=JuHjR_Gz6DKbcMUPAX4yzIgtkybomlPCqT_IAp7_QSg,80505
14
+ khoj/database/adapters/__init__.py,sha256=vUgz_fu5zTCyV8CLQ4NdoU4wC_vy9VIJVX1uStT30UM,80729
15
15
  khoj/database/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  khoj/database/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  khoj/database/management/commands/change_default_model.py,sha256=6QXJttG58gpU7vZApQEeEPVNAuhjU2xa6_BwJsfz320,4877
@@ -123,30 +123,30 @@ khoj/database/migrations/0088_ratelimitrecord.py,sha256=CxlkfbA8eTO57pv0AvJYfGRp
123
123
  khoj/database/migrations/0089_chatmodel_price_tier_and_more.py,sha256=EJ1Yf6MMzhGMwJOS3AECaU6ks4NfRW0utyDa7lreNwQ,1211
124
124
  khoj/database/migrations/0090_alter_khojuser_uuid.py,sha256=2h9v-DiuqFuZKpAyWYwueqZkBHvxZbm-_guRjNaZzxg,3802
125
125
  khoj/database/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- khoj/database/models/__init__.py,sha256=VYCLQLir4SYSGscqzp5oD70FI_l_23umHirPPF15caA,31108
126
+ khoj/database/models/__init__.py,sha256=u9_0j7UEBVSKq2bwc7ClfgSFHLddb2cL4_L4XO-lSqY,31192
127
127
  khoj/interface/compiled/agents.svg,sha256=yFCRwIM-Qawa0C5ggAo3ekb-Q1ElmotBOKIGhtfIQqM,1722
128
128
  khoj/interface/compiled/automation.svg,sha256=o7L2XYwJWRSMvl8h6TBv6Pt28RTRVMHqF04EPY0AFj0,1467
129
129
  khoj/interface/compiled/chat.svg,sha256=l2JoYRRgk201adTTdvJ-buKUrc0WGfsudix5xEvtM3A,2424
130
130
  khoj/interface/compiled/close.svg,sha256=hQ2iFLkNzHk0_iyTrSbwnWAeXYlgA-c2Eof2Iqh76n4,417
131
131
  khoj/interface/compiled/copy-button-success.svg,sha256=byqWAYD3Pn9IOXRjOKudJ-TJbP2UESbQGvtLWazNGjY,829
132
132
  khoj/interface/compiled/copy-button.svg,sha256=05bKM2eRxksfBlAPT7yMaoNJEk85bZCxQg67EVrPeHo,669
133
- khoj/interface/compiled/index.html,sha256=Va-q2NgJPI8RoY6IWBvaJ-FFv4eTz3RzOtq4CL0smpI,53043
134
- khoj/interface/compiled/index.txt,sha256=Hac84hQQli4oIUFSRw3g6rDPGbYxTHbstBX_0sXmskk,7616
133
+ khoj/interface/compiled/index.html,sha256=haH0fPuVRWAjDoZbhk8otqG3gcq_t7t8ZSv-9_pMD00,53043
134
+ khoj/interface/compiled/index.txt,sha256=z4uklK9r32zOmF6vHsKNxZH80EdEgQ7DloekGcSJNi4,7616
135
135
  khoj/interface/compiled/khoj.webmanifest,sha256=9wOK2BMS6xH5NKd2eaUgTLg9WepIxB2K2U33KU89LD8,2543
136
136
  khoj/interface/compiled/logo.svg,sha256=_QCKVYM4WT2Qhcf7aVFImjq_s5CwjynGXYAOgI7yf8w,8059
137
137
  khoj/interface/compiled/send.svg,sha256=VdavOWkVddcwcGcld6pdfmwfz7S91M-9O28cfeiKJkM,635
138
138
  khoj/interface/compiled/share.svg,sha256=91lwo75PvMDrgocuZQab6EQ62CxRbubh9Bhw7CWMKbg,1221
139
139
  khoj/interface/compiled/thumbs-down.svg,sha256=JGNl-DwoRmH2XFMPWwFFklmoYtKxaQbkLE3nuYKe8ZY,1019
140
140
  khoj/interface/compiled/thumbs-up.svg,sha256=yS1wxTRtiztkN-6nZciLoYQUB_KTYNPV8xFRwH2TQFw,1036
141
- khoj/interface/compiled/404/index.html,sha256=B0igT6spLmc1NaQ3TxMEq4B0btkjOPiF3SBhrgkhdIA,17097
142
- khoj/interface/compiled/_next/static/TrHI4J6qnG7RYFl2Irnqj/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
143
- khoj/interface/compiled/_next/static/TrHI4J6qnG7RYFl2Irnqj/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
141
+ khoj/interface/compiled/404/index.html,sha256=7aQxEyqvkO4fw2OMtV35jkZFB5O_AtM659kdoW3Nol0,17097
142
+ khoj/interface/compiled/_next/static/BDHACq0ud8EERJ3YZ4aWo/_buildManifest.js,sha256=f2_nYnw25hHWQJ-39Lf5OH1u6kgdbOInyfplqgjvAV4,224
143
+ khoj/interface/compiled/_next/static/BDHACq0ud8EERJ3YZ4aWo/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
144
144
  khoj/interface/compiled/_next/static/chunks/1243.ea2826fb35adb15a.js,sha256=Y6ceAwyTH4HSGDvBRoBB-RVXRCzGGr8NSPcspYF5OM8,182
145
145
  khoj/interface/compiled/_next/static/chunks/133.392ae90c3b2a67f2.js,sha256=IK-mb9ZlF6uJUdU8AuXsppc99tFL8svJvZtKNZGNtcY,411
146
146
  khoj/interface/compiled/_next/static/chunks/1592.b069bdb7aaddd2eb.js,sha256=VUaP2gjX3W9tA9pOH_VIPG_2BIg7Wk1AICrfU5iHgrk,71096
147
147
  khoj/interface/compiled/_next/static/chunks/1915-1943ee8a628b893c.js,sha256=qArqL3leavWRcZkX4ZuWgemtKnmV6c-_yrNtMu_8SeY,11277
148
148
  khoj/interface/compiled/_next/static/chunks/2069.f060659791c0c484.js,sha256=C_oat_BkZcLOHsyJlNN_5I55fB7ee1zkkZ9FT5zOzn4,186
149
- khoj/interface/compiled/_next/static/chunks/2117-5a41630a2bd2eae8.js,sha256=3KtUs1Aeno0OfsXZ2ymJ0d5HXwO2_Osq2uGIIGiDagI,123994
149
+ khoj/interface/compiled/_next/static/chunks/2117-056a00add390772b.js,sha256=lTuiCOTU8XMmlt22c10pK0DmvUgmNwebKYEeobCK56A,123994
150
150
  khoj/interface/compiled/_next/static/chunks/2170.45431769330fa5b7.js,sha256=C7Puu9x18DhdR5Sh8XXvTzPdP_HTK6WhsJDNW-NoB7o,24019
151
151
  khoj/interface/compiled/_next/static/chunks/2327-aa22697ed9c8d54a.js,sha256=vfsI4C3PymQROGRo1xU6iMUjLlw_xT6gUTzmq5BSdnk,127496
152
152
  khoj/interface/compiled/_next/static/chunks/3237.c4754f02f1a388cb.js,sha256=Z5iOEX0mPj-5tuoU4Bq_IjpAlyc4MURKlBoaExsULTk,177
@@ -166,7 +166,6 @@ khoj/interface/compiled/_next/static/chunks/4650.41f041da0ad365ad.js,sha256=EZec
166
166
  khoj/interface/compiled/_next/static/chunks/479.a7e0c9cfc376a695.js,sha256=IMtRORJyc8TGABlltunJ1si_GUwBMK9bCSeyr7RDdw8,7379
167
167
  khoj/interface/compiled/_next/static/chunks/4872.5422e8324272ab40.js,sha256=fXqb_gUYEnKRgeI3AJuAG6kKAOlVkVXyndmNkhetCyo,11176
168
168
  khoj/interface/compiled/_next/static/chunks/5061.79a660faed0e16a9.js,sha256=EJDyOblv9Po4UPs6ylIKVspSnRQehMXKXuLlW2NVCzo,11215
169
- khoj/interface/compiled/_next/static/chunks/5138-2cce449fd2454abf.js,sha256=jq62xCsNAEmc8b5FUp-ndWtrJ20d74aZFeju1NaQ1c4,1629261
170
169
  khoj/interface/compiled/_next/static/chunks/5279.85d537880b8041ae.js,sha256=3VvdW0sZ8Abfq-qXFvBinh3n65XkjWJBUrFMcRMHIXw,3878
171
170
  khoj/interface/compiled/_next/static/chunks/5402.b9460f1b16b57e92.js,sha256=TFB5N1RYbKelRJXW70T4tT0lEjB3u7RS5lItHOfX-TU,24369
172
171
  khoj/interface/compiled/_next/static/chunks/5427-442f34b514b9fc26.js,sha256=QaxSADflROkzhUDs3OPtt8mpaFIc_3UtBjSS8aTWpzE,31914
@@ -179,9 +178,10 @@ khoj/interface/compiled/_next/static/chunks/5854-745bea90ea77a1c7.js,sha256=ZxxH
179
178
  khoj/interface/compiled/_next/static/chunks/5978.ddc72cd73130aadc.js,sha256=G2kFfcVjqIA6Rqf3BdZUU6E1TJTcb0wRaJd4pSgFsY8,178
180
179
  khoj/interface/compiled/_next/static/chunks/6434.7afea9648e238ad5.js,sha256=kx0Emzxp_59WehJjGu7yS7vbgtHZhBKZgyiAg7dC0As,36261
181
180
  khoj/interface/compiled/_next/static/chunks/6663-133d5db72d2d5f24.js,sha256=XIWY3DhytwBlgJNrryOTTcTtmzYJU93_P5kwifLJV9Q,86271
182
- khoj/interface/compiled/_next/static/chunks/7127-d3199617463d45f0.js,sha256=pzDG715_JjfRd7uFas0TKdGnkC4CZd-x_LuYS2M5O2U,41801
181
+ khoj/interface/compiled/_next/static/chunks/7127-79a3af5138960272.js,sha256=7pkrrH4qxZlJRl5ZeSg8N_Zm4UziW8i8AESa61Tmuug,42840
183
182
  khoj/interface/compiled/_next/static/chunks/7140.4be689873f6a2d1f.js,sha256=-77DqIa_YjhKPwY8UvYjH11SaQpSO6FGa6kOvfnnSY8,76618
184
183
  khoj/interface/compiled/_next/static/chunks/7200-cabc57d26c4b32da.js,sha256=xrBbOYRHGcox-mh5cLLDZd1Mj9Qtqq4oeJlnWVFthAU,11380
184
+ khoj/interface/compiled/_next/static/chunks/7211-7fedd2ee3655239c.js,sha256=3JC88Dq5U23hOoGTfoW-wc0JlARo29My_XioYz9Lzqg,1631697
185
185
  khoj/interface/compiled/_next/static/chunks/7647-2aa4cf0e69b7a84d.js,sha256=5F507Hwv8Rs_p8b8VHraNOC6SpYcLFtn7gyZHm9IWWc,24433
186
186
  khoj/interface/compiled/_next/static/chunks/7836.86884157d53d23a1.js,sha256=3_-E1PqyVC-Lp-iwqIDIkiTMWqU_bYXiqi2PzN-ffFk,89887
187
187
  khoj/interface/compiled/_next/static/chunks/7890.f681eb1d1f83bea2.js,sha256=xd1qCSKkEUfSpKWgqUA-iAj4o5Nl-rEhbgvim5fkUKU,33661
@@ -203,33 +203,33 @@ khoj/interface/compiled/_next/static/chunks/d3ac728e-07f1976c92cfb109.js,sha256=
203
203
  khoj/interface/compiled/_next/static/chunks/ebbfb5c1-a73c51b6a41a5ff6.js,sha256=KWCCB4d3hTJ2OVXDThrHLjlbcgsckoG9UpBKRvbHPIk,83853
204
204
  khoj/interface/compiled/_next/static/chunks/fd9d1056-7454f5bbfcf5bd5b.js,sha256=hlytZKRKDEm1va3Ww-mpo2P2lD-5pw78G2KS66tnJ28,172837
205
205
  khoj/interface/compiled/_next/static/chunks/framework-8e0e0f4a6b83a956.js,sha256=sFFnSyDnFoOc61lP-EtTzTyf-zGA78ejDyMgPFMDw2Q,140001
206
- khoj/interface/compiled/_next/static/chunks/main-876327ac335776ab.js,sha256=JkQUmA9vh1B4VVGF5dbZ8Kun0AnIVUbZr5IBK90T4Zs,111290
206
+ khoj/interface/compiled/_next/static/chunks/main-63d6432f34cdf74b.js,sha256=bXVce22CrDNgnPypCNcoRkRMzcxj0OXFhFE1ZTZDgjo,111290
207
207
  khoj/interface/compiled/_next/static/chunks/main-app-de1f09df97a3cfc7.js,sha256=bqnztujKItXfFBzQlaBmDZyfJpQt_M93CXOuchJfpD0,471
208
208
  khoj/interface/compiled/_next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
209
- khoj/interface/compiled/_next/static/chunks/webpack-97e712397e673897.js,sha256=2Gr0ISOFYzJLFQ4qyhbiDfYIhVr0VLhSIyF81cDYGEk,4891
209
+ khoj/interface/compiled/_next/static/chunks/webpack-e4c73eaddc365142.js,sha256=p_2-3LmahU_KfBNbRGfWp1xEfFg1uol8Ro05wcb2F8s,4889
210
210
  khoj/interface/compiled/_next/static/chunks/app/layout-baa6e7974e560a7a.js,sha256=7JZS2Pr995Lwu3FeQpAvheLS1Bn5w5HOFsecV2_kyQA,3880
211
- khoj/interface/compiled/_next/static/chunks/app/page-f7a0286dfc31ad6b.js,sha256=2IVko37SGOhH4OO1_TL5k8xdulAbDTnJwqVyZjXRfMY,31218
211
+ khoj/interface/compiled/_next/static/chunks/app/page-4bbe55de8b080c1f.js,sha256=GPRTPCHAam-i2B3TKmVNB9dKvR5B29o8gY8jt10y5rU,31217
212
212
  khoj/interface/compiled/_next/static/chunks/app/_not-found/page-0ec97c4970898f2d.js,sha256=zElhiTkdu2JqrEvJ8Lrxh4HCyfLmPllBHHWOuDtrVlw,1755
213
- khoj/interface/compiled/_next/static/chunks/app/agents/layout-4e2a134ec26aa606.js,sha256=B3HJ6CKzJccEIOk54Erl1FtKUxGJq2p-ch932X1vjwE,180
214
- khoj/interface/compiled/_next/static/chunks/app/agents/page-774c78ff0f55a228.js,sha256=lnKW5X-xvNpxPv3-KoHm5P9Dmkrl-9qd88Xfq4ipBL4,18314
213
+ khoj/interface/compiled/_next/static/chunks/app/agents/layout-1b6273baddb72146.js,sha256=mLo7avyr3x2HXbQwaL5vwu7szO_576TnQdOXdtinRI8,180
214
+ khoj/interface/compiled/_next/static/chunks/app/agents/page-2fac1d5ac7192e73.js,sha256=pATgYmEwvudjV7rOL1P6t-KSk5dpq5hw-MenPZ7017Y,18314
215
215
  khoj/interface/compiled/_next/static/chunks/app/automations/layout-7f5c33a70e46b3af.js,sha256=s2wHeQ-ai9rKyU9EjOGY1Yo51L4ZEkjLtML85BqN3Zc,5143
216
- khoj/interface/compiled/_next/static/chunks/app/automations/page-4454891c5007b870.js,sha256=PwKLPT0t1y8V_hIBjz3B6YbrjcazTIPNxaevCAgXXUw,34831
216
+ khoj/interface/compiled/_next/static/chunks/app/automations/page-ef89ac958e78aa81.js,sha256=IrNnuUQYH0cMgS3OddjPADIYL-JXwPh18LfqAGjAfrA,34830
217
217
  khoj/interface/compiled/_next/static/chunks/app/chat/layout-ad4d1792ab1a4108.js,sha256=g815zvSZenVssWcOYjyqAOPDjTCa359nqspXeIsXQ5A,180
218
- khoj/interface/compiled/_next/static/chunks/app/chat/page-3c299bf8e6b1afd3.js,sha256=rkIezx-oJDe2TlpyI9qTXMJThJpwsO1vqgzM41PIHQo,28640
219
- khoj/interface/compiled/_next/static/chunks/app/search/layout-f5881c7ae3ba0795.js,sha256=Bm4Y73ylR-j9_LdKXVUjgLppZJ6JRdLTUgYAsZCOBkQ,180
220
- khoj/interface/compiled/_next/static/chunks/app/search/page-f1a7f278c89e09b6.js,sha256=KnZkmDhLxwikGTsG3voC5ks8LvoO0iRCWQLimf2r2KQ,32714
218
+ khoj/interface/compiled/_next/static/chunks/app/chat/page-d71351493e1f7c2b.js,sha256=TZRB0EQz2Adesu-NPD3Auy3HtF4jee5Dsb4NvedSfMU,29020
219
+ khoj/interface/compiled/_next/static/chunks/app/search/layout-4505b79deb734a30.js,sha256=HPQfR8XLd1MObIR-vRu0kAWYesDP3yGGTA7jyORnrX4,180
220
+ khoj/interface/compiled/_next/static/chunks/app/search/page-afb5e7ed13d221c1.js,sha256=y7Fap-jyzRv5j9diCscAi-E5bQaGh5OFlma1OeaJ5c4,32714
221
221
  khoj/interface/compiled/_next/static/chunks/app/settings/layout-8a22f370d3eaeed3.js,sha256=dIfmM5C_Al-Zh_uqaJmniSxjXbu3LqPzrEw4SQ7vs0I,6132
222
- khoj/interface/compiled/_next/static/chunks/app/settings/page-5d9134d4a97f8834.js,sha256=Kn02UECOHZ3VWMJDmsck_e698P-iXOw_4VtDKMNL-oc,27893
223
- khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-abb6c5f4239ad7be.js,sha256=_HdxnZ70IoB5eHZ5e__Z0jt-2ElBo_BsNPboM-2SMLg,180
224
- khoj/interface/compiled/_next/static/chunks/app/share/chat/page-32cd0ceb9ffbd777.js,sha256=15jie9DbTiv_1n_yAYrR1qGswkzNOJ3F-Ojf8u0xlFo,5563
222
+ khoj/interface/compiled/_next/static/chunks/app/settings/page-8fb6cc97be8774a7.js,sha256=7IV60Rd8kMXB_8yjU6vvpmxIUaJtW-on3uC-SGeP-tc,27893
223
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/layout-e8e5db7830bf3f47.js,sha256=rcoit2AQboqPwZMTVlVhz1AbyHRJOs-xNMTdYonejCU,180
224
+ khoj/interface/compiled/_next/static/chunks/app/share/chat/page-e3f49c25480e3be4.js,sha256=AFwE37Cg16M-LEe0VGgT8DvHZs4-hFw9iDUR4HtzacU,5557
225
225
  khoj/interface/compiled/_next/static/chunks/pages/_app-3c9ca398d360b709.js,sha256=UqtikLsCsOWtDUJOW6Tuk9P-bV1V3MhYd3ghrQuEmfs,286
226
226
  khoj/interface/compiled/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js,sha256=w_It3VzKT8O1M3CrJ_hZHsaU7M7dq3EAaVG8KvJ-fhU,253
227
- khoj/interface/compiled/_next/static/css/0db53bacf81896f5.css,sha256=7Kq40hXKsqTnQEz4otvA49gEDms7a0XAFCB0rwrnXQo,30547
227
+ khoj/interface/compiled/_next/static/css/2945c4a857922f3b.css,sha256=ARp32IQvPZk88JXcPUb7fkM6WuvAEL1EqqGwhdnR2T8,9831
228
+ khoj/interface/compiled/_next/static/css/2b1cdb68b799b876.css,sha256=6N0Zvr1QT1dplYOC1TKA90Frq-5DrXff9uGDfg5-AR4,30653
228
229
  khoj/interface/compiled/_next/static/css/37a73b87f02df402.css,sha256=hp0vlekKu0K2eITR5YIqFmLHQPqV3JETFnRd_-Uh0mk,165
229
- khoj/interface/compiled/_next/static/css/76c658ee459140a9.css,sha256=7tI24VB66ZUsAPUxRdQhboopun0AXLUnF64uv9RkC08,1833
230
+ khoj/interface/compiled/_next/static/css/440ae0f0f650dc35.css,sha256=FlGtVO8aI0FrkVFsPQdk1PO5ECGYJrF1tEmLXVuAIvk,1674
231
+ khoj/interface/compiled/_next/static/css/7017ee76c2f2cd87.css,sha256=crgwDRN7r35lT_QXQDaW3_i48PPhIekfbPdHBz3IIv4,3075782
230
232
  khoj/interface/compiled/_next/static/css/7889a30fe9c83846.css,sha256=IUkZhkx4GpYOIhN-EJw9T1DqGMO3Wa3mNpUwaOBuZoY,7204
231
- khoj/interface/compiled/_next/static/css/93eeacc43e261162.css,sha256=rbrg1ppryE0iLWmJexa3Qibtrb6gegftRjKIIMpnR2s,9736
232
- khoj/interface/compiled/_next/static/css/9c223d337a984468.css,sha256=F5o-qiwJl16uCWiDADWkkIIk5PNxKjvHz5068EptHps,3075687
233
233
  khoj/interface/compiled/_next/static/css/e4eb883b5265d372.css,sha256=6LaW-lQ_ZpgOJNWYwU1Q1egXZ1aqJDEuRj66oRCIU_E,17748
234
234
  khoj/interface/compiled/_next/static/css/ea5485b3f3859a5a.css,sha256=tn6qi2xSLTWhtzDUE8UlC8iipH9QGV6A9oGj1ap-Sk4,1659
235
235
  khoj/interface/compiled/_next/static/media/1d8a05b60287ae6c-s.p.woff2,sha256=IzKBwB_bpSGvO7C9aRv29Js-jAbZPRDI-D-P4H2P918,14508
@@ -309,8 +309,8 @@ khoj/interface/compiled/_next/static/media/flags.3afdda2f.webp,sha256=M2AW_HLpBn
309
309
  khoj/interface/compiled/_next/static/media/flags@2x.5fbe9fc1.webp,sha256=BBeRPBZkxY3-aKkMnYv5TSkxmbeMbyUH4VRIPfrWg1E,137406
310
310
  khoj/interface/compiled/_next/static/media/globe.98e105ca.webp,sha256=g3ofb8-W9GM75zIhlvQhaS8I2py9TtrovOKR3_7Jf04,514
311
311
  khoj/interface/compiled/_next/static/media/globe@2x.974df6f8.webp,sha256=I_N7Yke3IOoS-0CC6XD8o0IUWG8PdPbrHmf6lpgWlZY,1380
312
- khoj/interface/compiled/agents/index.html,sha256=fzP8IIiPZ1_HGEcKmLSgHq0dd7BoTSpmDosomCXjZRM,16224
313
- khoj/interface/compiled/agents/index.txt,sha256=tMw-mexCyq2Ym4tZKbKSBSdr6OanctDUwxTYnvd2c2E,7220
312
+ khoj/interface/compiled/agents/index.html,sha256=KKSYfoknaZuqrCIX9nw6NKBgVMTIRgk2u_ZvcpWazZ4,16224
313
+ khoj/interface/compiled/agents/index.txt,sha256=3zYEED-08xyYRKkSTs_vf_MBs4WqEZoiL3e_FJzd3Ns,7220
314
314
  khoj/interface/compiled/assets/icons/khoj_lantern.ico,sha256=eggu-B_v3z1R53EjOFhIqqPnICBGdoaw1xnc0NrzHck,174144
315
315
  khoj/interface/compiled/assets/icons/khoj_lantern.svg,sha256=I_8XP5X84gEOoCRhCRKOQn_GKZrz3SUBXct7WxHvY7c,8767
316
316
  khoj/interface/compiled/assets/icons/khoj_lantern_1200x1200.png,sha256=xDx0bbD-WMflgg8zck9oPIIuTIvywtuED2k7CjSQS4w,66194
@@ -325,16 +325,16 @@ khoj/interface/compiled/assets/samples/desktop-remember-plan-sample.png,sha256=i
325
325
  khoj/interface/compiled/assets/samples/phone-browse-draw-sample.png,sha256=Dd4fPwtFl6BWqnHjeb1mCK_ND0hhHsWtx8sNE7EiMuE,406179
326
326
  khoj/interface/compiled/assets/samples/phone-plain-chat-sample.png,sha256=DEDaNRCkfEWUeh3kYZWIQDTVK1a6KKnYdwj5ZWisN_Q,82985
327
327
  khoj/interface/compiled/assets/samples/phone-remember-plan-sample.png,sha256=Ma3blirRmq3X4oYSsDbbT7MDn29rymDrjwmUfA9BMuM,236285
328
- khoj/interface/compiled/automations/index.html,sha256=muYlugr6E561Z6kQ2_t_xOWskOdf9oYA08GqH4Jzjo8,54094
329
- khoj/interface/compiled/automations/index.txt,sha256=QSnCUKDaxdVxC1pgln-uK5Wnawyx2JQoR4PHBbJFWxE,7449
330
- khoj/interface/compiled/chat/index.html,sha256=KY7J2nWzMBwKDRflGam6G0k9JhcZN09NEmPg3atEk7Y,53222
331
- khoj/interface/compiled/chat/index.txt,sha256=0JUXcfHnyvaQOBN6_OWIkzox6a_4KZa-bOm0JXrZz2Q,7858
332
- khoj/interface/compiled/search/index.html,sha256=nIKQYtlZhs2IPEiCmV9dE-G_SiI0N3jNfOn3KLWbwTA,55304
333
- khoj/interface/compiled/search/index.txt,sha256=hDdgmRzWagyycg55OIojDPPeDFxztVQcufQV3NJ5X6U,6567
334
- khoj/interface/compiled/settings/index.html,sha256=vAgr1ZFy5Aw33kXq38NLE5XUZcPn9-joNuFPERtprxc,52743
335
- khoj/interface/compiled/settings/index.txt,sha256=FF7GHszKT_zj-gLtDn9Zc7ydi91QtwMWChuoUA4JDJ0,7703
336
- khoj/interface/compiled/share/chat/index.html,sha256=yg8TTwa8BLlcCxuCoAWqSCwXXhR0v9BFe5lc5jEuJjY,53802
337
- khoj/interface/compiled/share/chat/index.txt,sha256=P8oFukbPHwKrpiNef_EVLiFEvOzeusaPKrOY8Ax8FrE,8320
328
+ khoj/interface/compiled/automations/index.html,sha256=WeetPiJRKuHz2rzbVA2G9s7DkRMQKsLOnK7MlOGdiLo,54094
329
+ khoj/interface/compiled/automations/index.txt,sha256=OTz1UHjt5QlGDfTbUF_dZJGkOjAFki85Cz4j6InxtGg,7449
330
+ khoj/interface/compiled/chat/index.html,sha256=9CPv6VSPhMFDNWFko6gvWP-NadRUQ0Ook3vX7ycUOpw,53532
331
+ khoj/interface/compiled/chat/index.txt,sha256=Eh9eLNp7UPETfOpaIM90o20k9jhRc4hR8F0Tezc5PxU,7991
332
+ khoj/interface/compiled/search/index.html,sha256=kWOwBQiLqcgoQOJAa-5e5HOoQHXdJG-RIgptjfuezO4,55304
333
+ khoj/interface/compiled/search/index.txt,sha256=rx9_g_b6iJ-XDZ5Ru3CFEYaMgH-plZSsFi9Ynwb6wqs,6567
334
+ khoj/interface/compiled/settings/index.html,sha256=2MMG5iSQfbDWJsS5167CKkC7ShkroeRAIDa981SXj_Y,52743
335
+ khoj/interface/compiled/settings/index.txt,sha256=GJUaAPl-7QkkhxujLeVpg9Zdri18HulW4fD1JuT602I,7703
336
+ khoj/interface/compiled/share/chat/index.html,sha256=cz7-8g6ggksREq7JuoSCrUtLkhtU7lEjoStOkqa9CAM,53492
337
+ khoj/interface/compiled/share/chat/index.txt,sha256=uimEr065U-uvSUA4BYLb_QZc_M_InDs7GN9DCa03bFA,8187
338
338
  khoj/interface/email/feedback.html,sha256=xksuPFamx4hGWyTTxZKRgX_eiYQQEuv-eK9Xmkt-nwU,1216
339
339
  khoj/interface/email/magic_link.html,sha256=372ESbTPKM9acekuZcOIKOw6kBl-KikFg_L9MOHqJkg,2094
340
340
  khoj/interface/email/task.html,sha256=tY7a0gzVeQ2lSQNu7WyXR_s7VYeWTrxWEj1iHVuoVE4,2813
@@ -386,53 +386,54 @@ khoj/processor/content/pdf/pdf_to_entries.py,sha256=GQUvab61okhV9_DK0g2MCrMq8wKp
386
386
  khoj/processor/content/plaintext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
387
387
  khoj/processor/content/plaintext/plaintext_to_entries.py,sha256=wFZwK_zIc7gWbRtO9sOHo9KvfhGAzL9psX_nKWYFduo,4975
388
388
  khoj/processor/conversation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
389
- khoj/processor/conversation/prompts.py,sha256=78EVB1f3E9O5DQ0t2vnrvJHik_8BOdJHZVL9Vd1A3G8,57907
390
- khoj/processor/conversation/utils.py,sha256=lau8WzCJnsiVjCRvjSbkfw3mZTlBEW634l3NRdJ9ukA,43830
389
+ khoj/processor/conversation/prompts.py,sha256=XkLuA8npw4gdfXQqBJqn-13uJd1xoGtnzOsnobFrw5g,54523
390
+ khoj/processor/conversation/utils.py,sha256=L5jtIkKLG6Tx7JZC8faDT4b2zAA1ZIxN2NQV7rAYOE0,43799
391
391
  khoj/processor/conversation/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
392
- khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=QTJNTV6sT4-Qg3WTcP6-4tp5YqM1tUfTK39N-tKewkY,9752
393
- khoj/processor/conversation/anthropic/utils.py,sha256=ZFUj1cuRs7PCznHBjSvga19N9HUARx64mt1CyrVrVKA,16415
392
+ khoj/processor/conversation/anthropic/anthropic_chat.py,sha256=7QnT5no46slRahe3UlCEmPMVb7LrIcth0pkjVneaq0g,5290
393
+ khoj/processor/conversation/anthropic/utils.py,sha256=P5xBr2VaqEgp5LJbgY0o9_C6z_nuHQYwsgYpYaY7l7I,16452
394
394
  khoj/processor/conversation/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
395
- khoj/processor/conversation/google/gemini_chat.py,sha256=hk7ZwtjFtxKtyIhHI3AKbVl7hbp6NEwlTBl1BZQzePs,10239
395
+ khoj/processor/conversation/google/gemini_chat.py,sha256=L8a4NYstCGQlax_HHaeaqlu_qs6pITeCX7sD5BDeEC0,5659
396
396
  khoj/processor/conversation/google/utils.py,sha256=FmK09N4zp0uGv2AVdHnJBzKKb9kr6wG1cJOelI9zraY,16269
397
397
  khoj/processor/conversation/offline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
398
- khoj/processor/conversation/offline/chat_model.py,sha256=-HsulPLJ-aFXrOIU4gJUvMMwiee6Xs1AHgZwSaFee0o,13413
398
+ khoj/processor/conversation/offline/chat_model.py,sha256=lD2sIGEKBuF9AZSyU2UUHAZHeTyE6v1B2-qUoVoSiXg,8579
399
399
  khoj/processor/conversation/offline/utils.py,sha256=51McImxl6u1qgRYvMt7uzsgLGSLq5SMFy74ymlNjIcc,3033
400
400
  khoj/processor/conversation/offline/whisper.py,sha256=DJI-8y8DULO2cQ49m2VOvRyIZ2TxBypc15gM8O3HuMI,470
401
401
  khoj/processor/conversation/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
402
- khoj/processor/conversation/openai/gpt.py,sha256=xLXOc2CRqCQTL-lZJgqFNWKw2igdVwroCO5Jh_84FyE,11266
402
+ khoj/processor/conversation/openai/gpt.py,sha256=_i0greQTSxLL5wOCqBot6cIPtdhtBL_y8fZsn8lRmYc,7174
403
403
  khoj/processor/conversation/openai/utils.py,sha256=Q8QrFdTD34QSdJRiLTdhvqeZfmpgM_F7L6R2DMB8DZQ,25419
404
404
  khoj/processor/conversation/openai/whisper.py,sha256=zoEeK1LNCg_tzP4xzYi5vRPzNPGuDGzpkrkG7d1LUn4,447
405
- khoj/processor/image/generate.py,sha256=FAIIsr8TIHxWxK-INNK4jJOOswBxQFyi_G4tI8NNEI8,10571
405
+ khoj/processor/image/generate.py,sha256=4Hzq-rl3ZavnWml5Q6bjRfw1Y-ybDSRQTDs7sCrsXIA,10606
406
406
  khoj/processor/operator/README.md,sha256=QaV00W1IB7i8ZrvhNkpjmFMVDtORFt-OASieRQGE_UE,2308
407
- khoj/processor/operator/__init__.py,sha256=kefTXc_0U8ZaDxSekU53Ia5tWGb535pETm7dOt-nK5w,10190
407
+ khoj/processor/operator/__init__.py,sha256=ZdB1LfYBGiKC7Zrd97jRkMuGfCDJpyb2uwHY9zk8ap4,10198
408
408
  khoj/processor/operator/grounding_agent.py,sha256=uxLFpLQH63g5_jhuI8HFsIl6roxh0VseiT-46n5vbLQ,18911
409
409
  khoj/processor/operator/grounding_agent_uitars.py,sha256=Ujdug_Z2_r1tZmy5kBtHbZcqOp0jSH-7ZnYo1fVdcDQ,42261
410
410
  khoj/processor/operator/operator_actions.py,sha256=eJHxs6idstIbGzzRPHsveuJxl5jH9dHvBhOxuAqjg7M,4268
411
411
  khoj/processor/operator/operator_agent_anthropic.py,sha256=qLxT53pGIdCH8xzkxhSmnSMT5LTOlm68MFnQSGMkdm4,31556
412
412
  khoj/processor/operator/operator_agent_base.py,sha256=k2iq2VyJ59bNqRd_PKuFaxO3Q09nTdi4_TutNs2VtRo,4490
413
- khoj/processor/operator/operator_agent_binary.py,sha256=k4cTXUHpWAP1WyJihG21oPICsFMmNFN-uR2kHFhGgKU,19892
413
+ khoj/processor/operator/operator_agent_binary.py,sha256=u8uRgsr5XGpj1IXomZX3t7iAKGmKxXBnNAFYCF-J0co,19901
414
414
  khoj/processor/operator/operator_agent_openai.py,sha256=lGBX5MTLO1WpDFBSivIqb71Hpdhrbc5orwBdttJDk3A,23687
415
415
  khoj/processor/operator/operator_environment_base.py,sha256=nHvn8lB-h6bY-v7rOEp_VZcn3aooy_v9YJbVas2CfXg,1045
416
416
  khoj/processor/operator/operator_environment_browser.py,sha256=4SmLIRVECI53hplGEqBLrkwQJfNtESum637vnS3tGeA,17896
417
- khoj/processor/operator/operator_environment_computer.py,sha256=exzXsb6YQdvQpr11jzH8MgA7yZbLwslhOl8jf6X94lU,31591
417
+ khoj/processor/operator/operator_environment_computer.py,sha256=bqpnSqQEElRjqzzxtKL7hjgNm7uylsrtDZ_sUBpFJM8,31599
418
418
  khoj/processor/speech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
419
419
  khoj/processor/speech/text_to_speech.py,sha256=Q7sapi5Hv6woXOumtrGqR0t6izZrFBkWXFOGrHM6dJ4,1929
420
420
  khoj/processor/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
421
- khoj/processor/tools/online_search.py,sha256=yIerR4foilGzqcwmUdDCFzLf2vqiqddv1VrPgGoykGc,24802
422
- khoj/processor/tools/run_code.py,sha256=rDGX615hhEeRP-e0BSOGKX3jkzDUnk8jD1uy5aocAYA,12509
421
+ khoj/processor/tools/online_search.py,sha256=MjTkD9gbf9iRWkzcbP5ZRBGKX9ppBXIk7LEKQ0zDvXQ,24881
422
+ khoj/processor/tools/run_code.py,sha256=S1HJcV5zA-n1Ue2a5A7cY3gzsSfYHy3KdLkjkZu3aro,12555
423
423
  khoj/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
424
- khoj/routers/api.py,sha256=xF108KeC0F9rIspB_M8skZUvDb2ecobFCPgZ5H-Lo6o,29414
424
+ khoj/routers/api.py,sha256=BFiKwdYjkR-4aHBumM7Hu4XdN2RvQ0Z9V4_2Wd8aPiM,8633
425
425
  khoj/routers/api_agents.py,sha256=aEJJnQe1yogSkKO6W3Q8Ukl-xHMnqIAx3jB4M-kGNdY,17043
426
- khoj/routers/api_chat.py,sha256=F8-6t-5xQ_D0dbSfXRTgDq_ug2ddjgEIsaPVIpTGzfg,62502
426
+ khoj/routers/api_automation.py,sha256=SwQGsVcZmtf8g3w8Xz220YhTIT6D4mLwUp_YCYLpbCY,9389
427
+ khoj/routers/api_chat.py,sha256=kL7Ug8Zzs6K2Y-tZHXcrtt_dp28QhoyJjsDcSgNCZ3M,58516
427
428
  khoj/routers/api_content.py,sha256=uLO3eir36rERkhhKU1HOdEv8KTi_z_edT9cHMCZP1W8,24578
428
429
  khoj/routers/api_model.py,sha256=trYi5ZrG7OfkSvXmsVu8Dtzzm0n0B8XCqvaGuuJ5wSA,5255
429
430
  khoj/routers/api_phone.py,sha256=p9yfc4WeMHDC0hg3aQk60a2VBy8rZPdEnz9wdJ7DzkU,2208
430
431
  khoj/routers/api_subscription.py,sha256=qnbKwA6N1TWK8Aiu1FFLka_JhbPOuwqT262NSHGZDiQ,5569
431
432
  khoj/routers/auth.py,sha256=jk2lqAS_650lQsoaOFTlZd9W_LL8HbN5zhHTZza_lqs,11258
432
433
  khoj/routers/email.py,sha256=wvr6_fpk0RuKcTPC6suI8JDZPLYzJ9hAhz_G41yZytc,3923
433
- khoj/routers/helpers.py,sha256=6SqikhBDbg1HFRJUMzzHxTlVn0mPgxtGSYzDuIk7hP8,97053
434
+ khoj/routers/helpers.py,sha256=l1qRWupwYtwDRVOytZnDkc9xEb1iOp36eQk5FGeakRU,105993
434
435
  khoj/routers/notion.py,sha256=g53xyYFmjr2JnuIrTW2vytbfkiK_UkoRTxqnnLSmD5o,2802
435
- khoj/routers/research.py,sha256=6lVVPRb9QOKF_JI18syJRUnqclsmvID6BEFnRNRwF_A,23935
436
+ khoj/routers/research.py,sha256=cqTVLnQ74UwVgtGJqOWagN25S13hsUfVHTp4bPgjeWU,22672
436
437
  khoj/routers/storage.py,sha256=lao0DvsF49QleZvOdjKM98RU2cGfCJDBb7WeoI7Rr3I,2172
437
438
  khoj/routers/twilio.py,sha256=MLsuCm4--ETvr3sLxbF0CL_ehlg_l2rKBSLR2Qh2Xls,1081
438
439
  khoj/routers/web_client.py,sha256=_vyfDaHZZjNoI2LwGNQFRiFmGLkNcgYJe7dOr3mrxH8,4386
@@ -448,15 +449,15 @@ khoj/utils/cli.py,sha256=fI1XQYMtJzLGOKQZQ5XxFOrC8sGjK3Alnteg5U62rWI,3882
448
449
  khoj/utils/config.py,sha256=aiOkH0je8A30DAGYTHMRePrgJonFv_i07_7CdhhhcdA,1805
449
450
  khoj/utils/constants.py,sha256=hh4C7At_N0da3P0Dn2OJXKpbdpeZGfY5M1FFuDRI7qg,4226
450
451
  khoj/utils/fs_syncer.py,sha256=5nqwAZqRk3Nwhkwd8y4IomTPZQmW32GwAqyMzal5KyY,9996
451
- khoj/utils/helpers.py,sha256=sEXCzctAL5SzBN8usWHPn6r7fpryen18XM5XNKOIEVA,32374
452
+ khoj/utils/helpers.py,sha256=h-H3ioGB5PIYLBr-SmUjmNBIkN5-YDXsoK5B1DvI3i4,32005
452
453
  khoj/utils/initialization.py,sha256=5eULsvGQv_Kp9bMfrHP8T_QFPjurIFyfq3-rVMWiGa4,15066
453
454
  khoj/utils/jsonl.py,sha256=0Ac_COqr8sLCXntzZtquxuCEVRM2c3yKeDRGhgOBRpQ,1192
454
455
  khoj/utils/models.py,sha256=Q5tcC9-z25sCiub048fLnvZ6_IIO1bcPNxt5payekk0,2009
455
456
  khoj/utils/rawconfig.py,sha256=ASl_h3Ivaa_4lD4kCA0uZsMRgSYCjrgGUPm-Hw1jkLk,5083
456
457
  khoj/utils/state.py,sha256=s_GFWOqRzpEDx0eCPStuzBTK2VEw-qgRpH0aiEdGnDo,1791
457
458
  khoj/utils/yaml.py,sha256=qy1Tkc61rDMesBw_Cyx2vOR6H-Hngcsm5kYfjwQBwkE,1543
458
- khoj-1.42.1.dev8.dist-info/METADATA,sha256=jlOjmXZkLveGcqvDdxziDjHBMlq6lqYV8FfXHNhmmNk,8965
459
- khoj-1.42.1.dev8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
460
- khoj-1.42.1.dev8.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
461
- khoj-1.42.1.dev8.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
462
- khoj-1.42.1.dev8.dist-info/RECORD,,
459
+ khoj-1.42.2.dist-info/METADATA,sha256=tsJF9KqQO7FdqGNcmXGb7nrsyniVvqALDfJeAfsO1K4,8967
460
+ khoj-1.42.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
461
+ khoj-1.42.2.dist-info/entry_points.txt,sha256=KBIcez5N_jCgq_ER4Uxf-e1lxTBMTE_BBjMwwfeZyAg,39
462
+ khoj-1.42.2.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
463
+ khoj-1.42.2.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7127],{27127:function(e,t,a){"use strict";a.d(t,{Z:function(){return eO}});var n=a(57437),s=a(42501),o=a.n(s),l=a(2265),r=a(48614),c=a(99597),i=a(91499),d=a.n(i),h=a(19983),u=a(13506),g=a.n(u),m=a(34040);a(2446);var f=a(5147),p=a(86018),x=a(38525),v=a(45178),j=a(66070),w=a(69304),y=a(57054),b=a(18848),C=a(42225),N=a(27648);let _=new h.Z({html:!0,linkify:!0,typographer:!0});function M(e){let t=(0,C.Le)(e.title||".txt","w-6 h-6 text-muted-foreground inline-flex mr-2"),a=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?b.Z.sanitize(_.render(t)):b.Z.sanitize(t)}(e),[o,r]=(0,l.useState)(!1);return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(y.J2,{open:o&&!e.showFullContent,onOpenChange:r,children:[(0,n.jsx)(y.xo,{asChild:!0,children:(0,n.jsx)(j.Zb,{onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!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,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("h3",{className:"".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground}"),children:[t,e.showFullContent?e.title:a]}),(0,n.jsx)("p",{className:"text-sm overflow-x-auto block",dangerouslySetInnerHTML:{__html:s}})]}):(0,n.jsx)(O,{type:"notes"},"".concat(e.title))})}),(0,n.jsx)(y.yk,{className:"w-[400px] mx-2",children:(0,n.jsxs)(j.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,n.jsxs)("h3",{className:"line-clamp-2 text-muted-foreground}",children:[t,e.title]}),(0,n.jsx)("p",{className:"border-t mt-1 pt-1 text-sm overflow-hidden line-clamp-5",dangerouslySetInnerHTML:{__html:s}})]})})]})})}function k(e){var t,a,s,o,r,c;let i=(0,C.Le)(".py","!w-4 h-4 text-muted-foreground flex-shrink-0"),d=b.Z.sanitize(e.code),[h,u]=(0,l.useState)(!1),[g,m]=(0,l.useState)(!1),p=e=>{let t="text/plain",a=e.b64_data;e.filename.match(/\.(png|jpg|jpeg|webp)$/)?(t="image/".concat(e.filename.split(".").pop()),a=atob(e.b64_data)):e.filename.endsWith(".json")?t="application/json":e.filename.endsWith(".csv")&&(t="text/csv");let n=new ArrayBuffer(a.length),s=new Uint8Array(n);for(let e=0;e<a.length;e++)s[e]=a.charCodeAt(e);let o=new Blob([n],{type:t}),l=URL.createObjectURL(o),r=document.createElement("a");r.href=l,r.download=e.filename,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(l)},x=(t,a)=>(null==t?void 0:t.length)==0?null:(0,n.jsx)("div",{className:"".concat(a||e.showFullContent?"border-t mt-1 pt-1":void 0),children:t.slice(0,e.showFullContent?void 0:1).map((t,s)=>(0,n.jsxs)("div",{children:[(0,n.jsxs)("h4",{className:"text-sm text-muted-foreground flex items-center",children:[(0,n.jsx)("span",{className:"overflow-hidden mr-2 font-bold ".concat(e.showFullContent?void 0:"line-clamp-1"),children:t.filename}),(0,n.jsx)("button",{className:"".concat(a?"hidden":void 0),onClick:e=>{e.preventDefault(),p(t)},onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),title:"Download file: ".concat(t.filename),children:(0,n.jsx)(f.b,{className:"w-4 h-4",weight:g?"fill":"regular"})})]}),t.filename.match(/\.(txt|org|md|csv|json)$/)?(0,n.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,n.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,n.jsx)(n.Fragment,{children:(0,n.jsxs)(y.J2,{open:h&&!e.showFullContent,onOpenChange:u,children:[(0,n.jsx)(y.xo,{asChild:!0,children:(0,n.jsx)(j.Zb,{onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!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,n.jsxs)("div",{className:"flex flex-col px-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[i,(0,n.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,n.jsx)("pre",{className:"text-xs pb-2 ".concat(e.showFullContent?"block overflow-x-auto":(null===(a=e.output_files)||void 0===a?void 0:a.length)>0?"hidden":"overflow-hidden line-clamp-3"),children:d}),(null===(s=e.output_files)||void 0===s?void 0:s.length)>0&&x(e.output_files,!1)]}):(0,n.jsx)(O,{type:"code"},"code-".concat(e.code))})}),(0,n.jsx)(y.yk,{className:"w-[400px] mx-2",children:(0,n.jsxs)(j.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none p-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[i,(0,n.jsxs)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:["code ",(null===(o=e.output_files)||void 0===o?void 0:o.length)>0?"artifact":""]})]}),(null===(r=e.output_files)||void 0===r?void 0:r.length)>0&&x(null===(c=e.output_files)||void 0===c?void 0:c.slice(0,1),!0)||(0,n.jsx)("pre",{className:"text-xs border-t mt-1 pt-1 overflow-hidden line-clamp-10",children:d})]})})]})})}function T(e){let[t,a]=(0,l.useState)(!1);if(!e.link||e.link.split(" ").length>1)return null;let s="https://www.google.com/s2/favicons?domain=globe",o="unknown";try{o=new URL(e.link).hostname,s="https://www.google.com/s2/favicons?domain=".concat(o)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(y.J2,{open:t&&!e.showFullContent,onOpenChange:a,children:[(0,n.jsx)(y.xo,{asChild:!0,children:(0,n.jsx)(j.Zb,{onMouseEnter:()=>{a(!0)},onMouseLeave:()=>{a(!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,n.jsxs)("div",{className:"flex flex-col",children:[(0,n.jsx)(N.default,{href:e.link,children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,n.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," text-muted-foreground flex-grow"),children:o})]})}),(0,n.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-1"," font-bold"),children:e.title}),(0,n.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-2"),children:e.description})]}):(0,n.jsx)(O,{type:"online",link:e.link},e.title)})}),(0,n.jsx)(y.yk,{className:"w-[400px] mx-2",children:(0,n.jsx)(j.Zb,{className:"w-auto overflow-hidden break-words text-balance rounded-lg border-none",children:(0,n.jsx)("div",{className:"flex flex-col",children:(0,n.jsxs)("a",{href:e.link,target:"_blank",rel:"noreferrer",className:"!no-underline px-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("img",{src:s,alt:"",className:"!w-4 h-4 flex-shrink-0"}),(0,n.jsx)("h3",{className:"overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," text-muted-foreground flex-grow"),children:o})]}),(0,n.jsx)("h3",{className:"border-t mt-1 pt-1 overflow-hidden ".concat(e.showFullContent?"block":"line-clamp-2"," font-bold"),children:e.title}),(0,n.jsx)("p",{className:"overflow-hidden text-sm ".concat(e.showFullContent?"block":"line-clamp-5"),children:e.description})]})})})})]})})}function O(e){let t="",a="unknown";if(e.link)try{a=new URL(e.link).hostname,t="https://www.google.com/s2/favicons?domain=".concat(a)}catch(t){return console.warn("Error parsing domain from link: ".concat(e.link)),null}let s=null,o="!w-4 !h-4 text-muted-foreground inline-flex mr-2 rounded-lg";switch(e.type){case"code":s=(0,n.jsx)(p.E,{className:"".concat(o)});break;case"online":s=(0,n.jsx)("img",{src:t,alt:"",className:"".concat(o)});break;case"notes":s=(0,n.jsx)(x.j,{className:"".concat(o)});break;default:s=null}return s?(0,n.jsx)("div",{className:"flex items-center gap-2",children:s}):null}function E(e){let t=e.notesReferenceCardData.length>0||e.codeReferenceCardData.length>0||e.onlineReferenceCardData.length>0,a=e.notesReferenceCardData.length+e.codeReferenceCardData.length+e.onlineReferenceCardData.length;return 0===a?null:(0,n.jsx)("div",{className:"pt-0 px-4 pb-4",children:(0,n.jsxs)("h3",{className:"inline-flex items-center",children:[(0,n.jsxs)("div",{className:"text-gray-400 m-2",children:[a," sources"]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2 w-auto m-2",children:t&&(0,n.jsx)(I,{notesReferenceCardData:e.notesReferenceCardData,onlineReferenceCardData:e.onlineReferenceCardData,codeReferenceCardData:e.codeReferenceCardData,isMobileWidth:e.isMobileWidth})})]})})}function I(e){let[t,a]=(0,l.useState)(3);if((0,l.useEffect)(()=>{a(e.isMobileWidth?3:5)},[e.isMobileWidth]),!e.notesReferenceCardData&&!e.onlineReferenceCardData)return null;let s=e.codeReferenceCardData.slice(0,t),o=e.notesReferenceCardData.slice(0,t-s.length),r=o.length+s.length<t?e.onlineReferenceCardData.filter(e=>e.link).slice(0,t-s.length-o.length):[];return(0,n.jsxs)(w.yo,{children:[(0,n.jsxs)(w.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)(k,{showFullContent:!1,...e,key:"code-".concat(t)})),o.map((e,t)=>(0,l.createElement)(M,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),r.map((e,t)=>(0,l.createElement)(T,{showFullContent:!1,...e,key:"".concat(e.title,"-").concat(t)})),(0,n.jsx)(v.o,{className:"m-0"})]}),(0,n.jsxs)(w.ue,{className:"overflow-y-scroll",children:[(0,n.jsxs)(w.Tu,{children:[(0,n.jsx)(w.bC,{children:"References"}),(0,n.jsx)(w.Ei,{children:"View all references for this response"})]}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2 w-auto mt-2",children:[e.codeReferenceCardData.map((e,t)=>(0,l.createElement)(k,{showFullContent:!0,...e,key:"code-".concat(t)})),e.notesReferenceCardData.map((e,t)=>(0,l.createElement)(M,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)})),e.onlineReferenceCardData.map((e,t)=>(0,l.createElement)(T,{showFullContent:!0,...e,key:"".concat(e.title,"-").concat(t)}))]})]})]})}var R=a(59199),S=a(62467),F=a(93893),L=a(2452),D=a(22105),B=a(52938),P=a(68950),z=a(63329),A=a(35099),q=a(46561),H=a(33758),U=a(58717),W=a(33511),Z=a(51059),V=a(38513),G=a(46732),J=a(47924),$=a(19841),Q=a(88435),K=a(14308),Y=a(84671),X=a(36663);let ee=(0,a(30166).default)(()=>Promise.all([a.e(6555),a.e(7293),a.e(4609),a.e(479)]).then(a.bind(a,60479)).then(e=>e.default),{loadableGenerated:{webpack:()=>[60479]},ssr:!1});function et(e){return(0,n.jsx)(l.Suspense,{fallback:(0,n.jsx)(K.Z,{}),children:(0,n.jsx)(ee,{data:e.data})})}var ea=a(26110),en=a(49027),es=a(7436),eo=a(19378),el=a(50656),er=a(75419),ec=a(41648),ei=a(62869),ed=e=>{let{chart:t}=e,[a,s]=(0,l.useState)(null),[o]=(0,l.useState)("mermaid-chart-".concat(Math.random().toString(12).substring(7))),r=(0,l.useRef)(null);(0,l.useEffect)(()=>{el.Z.initialize({startOnLoad:!1}),el.Z.parseError=e=>{let t;console.error("Mermaid errors:",e);try{t="string"==typeof e?JSON.parse(e):e}catch(a){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)},el.Z.contentLoaded()},[]);let c=async()=>{if(r.current)try{var e;let t=r.current.querySelector("svg");if(!t)throw Error("No SVG found");let[,,a,n]=(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*a,s.height=2*n;let o=s.getContext("2d");if(!o)throw Error("Failed to get canvas context");let l=new XMLSerializer().serializeToString(t),c=new Blob([l],{type:"image/svg+xml;charset=utf-8"}),i=URL.createObjectURL(c),d=new Image;d.src=i,await new Promise((e,t)=>{d.onload=()=>{o.scale(2,2),o.drawImage(d,0,0,a,n),s.toBlob(a=>{if(!a){t(Error("Failed to create blob"));return}let n=URL.createObjectURL(a),s=document.createElement("a");s.href=n,s.download="mermaid-diagram-".concat(Date.now(),".png"),s.click(),URL.revokeObjectURL(n),URL.revokeObjectURL(i),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)(()=>{r.current&&(r.current.removeAttribute("data-processed"),el.Z.run({nodes:[r.current]}).then(()=>{s(null)}).catch(e=>{let t;try{t="string"==typeof e?JSON.parse(e):e}catch(a){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,n.jsxs)("div",{children:[a?(0,n.jsxs)(n.Fragment,{children:[(0,n.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,n.jsx)(er.k,{className:"w-12 h-12"}),(0,n.jsx)("span",{children:a})]}),(0,n.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,n.jsx)("div",{id:o,ref:r,className:"mermaid",style:{width:"auto",height:"auto",boxSizing:"border-box",overflow:"auto"},children:t}),!a&&(0,n.jsxs)(ei.z,{onClick:c,variant:"secondary",className:"mt-3",children:[(0,n.jsx)(ec.U,{className:"w-5 h-5"}),"Export as PNG"]})]})};let eh=new h.Z({html:!0,linkify:!0,typographer:!0});function eu(e,t,a){fetch("/api/chat/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uquery:e,kquery:t,sentiment:a})})}function eg(e){let{uquery:t,kquery:a}=e,[s,o]=(0,l.useState)(null);return(0,l.useEffect)(()=>{null!==s&&setTimeout(()=>{o(null)},2e3)},[s]),(0,n.jsxs)("div",{className:"".concat(d().feedbackButtons," flex align-middle justify-center items-center"),children:[(0,n.jsx)("button",{title:"Like",className:d().thumbsUpButton,disabled:null!==s,onClick:()=>{eu(t,a,"positive"),o(!0)},children:!0===s?(0,n.jsx)(S.V,{alt:"Liked Message",className:"text-green-500",weight:"fill"}):(0,n.jsx)(S.V,{alt:"Like Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),(0,n.jsx)("button",{title:"Dislike",className:d().thumbsDownButton,disabled:null!==s,onClick:()=>{eu(t,a,"negative"),o(!1)},children:!1===s?(0,n.jsx)(F.L,{alt:"Disliked Message",className:"text-red-500",weight:"fill"}):(0,n.jsx)(F.L,{alt:"Dislike Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})})]})}function em(e){let t=e.message.match(/\*\*(.*)\*\*/),a=function(e,t){let a=e.toLowerCase(),s="inline mt-1 mr-2 ".concat(t," h-4 w-4");return a.includes("understanding")?(0,n.jsx)(L.a,{className:"".concat(s)}):a.includes("generating")?(0,n.jsx)(D.Z,{className:"".concat(s)}):a.includes("tools")?(0,n.jsx)(B.v,{className:"".concat(s)}):a.includes("notes")?(0,n.jsx)(P.g,{className:"".concat(s)}):a.includes("read")?(0,n.jsx)(z.f,{className:"".concat(s)}):a.includes("search")?(0,n.jsx)(A.Y,{className:"".concat(s)}):a.includes("summary")||a.includes("summarize")||a.includes("enhanc")?(0,n.jsx)(q.u,{className:"".concat(s)}):a.includes("diagram")?(0,n.jsx)(H.j,{className:"".concat(s)}):a.includes("paint")?(0,n.jsx)(U.Y,{className:"".concat(s)}):a.includes("code")?(0,n.jsx)(p.E,{className:"".concat(s)}):a.includes("operating")?(0,n.jsx)(W.A,{className:"".concat(s)}):(0,n.jsx)(L.a,{className:"".concat(s)})}(t?t[1]:"",e.primary?(0,Y.oz)(e.agentColor):"text-gray-500"),s=e.message,o=null;try{let e=s.match(/\{.*("action": "screenshot"|"type": "screenshot"|"image": "data:image\/.*").*\}/);if(e){o=JSON.parse(e[0]);let t='<img src="'.concat(o.image,'" alt="State of environment" class="max-w-full" />');s=s.replace(":\n**Action**: ".concat(e[0]),"\n\n- ".concat(o.text,"\n").concat(t))}}catch(e){console.error("Failed to parse screenshot data",e)}let l=b.Z.sanitize(eh.render(s));return l=l.replace(/<h[1-6].*?<\/h[1-6]>/g,""),(0,n.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:[a,(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:l},className:"break-words"})]})}eh.use(g(),{inline:!0,code:!0});let ef=(0,l.forwardRef)((e,t)=>{var a,s;let o,r,c,i,h;let[u,g]=(0,l.useState)(!1),[f,p]=(0,l.useState)(!1),[x,v]=(0,l.useState)(""),[j,w]=(0,l.useState)(""),[y,N]=(0,l.useState)(!1),[_,M]=(0,l.useState)(!1),[k,T]=(0,l.useState)(""),[O,I]=(0,l.useState)(""),S=(0,l.useRef)(!1),F=(0,l.useRef)(null);async function L(){let t=e.chatMessage.message.match(/[^.!?]+[.!?]*/g)||[];if(!t||0===t.length||!t[0])return;N(!0);let a=D(t[0]);for(let e=0;e<t.length&&!S.current;e++){let n=a;e<t.length-1&&(a=D(t[e+1]));try{let e=await n,t=URL.createObjectURL(e);await function(e){return new Promise((t,a)=>{let n=new Audio(e);n.onended=t,n.onerror=a,n.play()})}(t)}catch(e){console.error("Error:",e);break}}N(!1),M(!1)}async function D(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)(()=>{S.current=_},[_]),(0,l.useEffect)(()=>{let e=new MutationObserver((e,t)=>{if(F.current)for(let t of e)"childList"===t.type&&t.addedNodes.length>0&&(0,X.Z)(F.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]})});return F.current&&e.observe(F.current,{childList:!0}),()=>e.disconnect()},[F.current]),(0,l.useEffect)(()=>{let t=e.chatMessage.message;e.chatMessage.excalidrawDiagram&&T(e.chatMessage.excalidrawDiagram),e.chatMessage.mermaidjsDiagram&&I(e.chatMessage.mermaidjsDiagram),t=t.replace(/\\\(/g,"LEFTPAREN").replace(/\\\)/g,"RIGHTPAREN").replace(/\\\[/g,"LEFTBRACKET").replace(/\\\]/g,"RIGHTBRACKET"),t=(0,R.AQ)(t,e.chatMessage.codeContext),e.chatMessage.codeContext&&Object.entries(e.chatMessage.codeContext).forEach(e=>{var a;let[n,s]=e;null===(a=s.results.output_files)||void 0===a||a.forEach(e=>{(e.filename.endsWith(".png")||e.filename.endsWith(".jpg"))&&!t.includes("![".concat(e.filename,"]("))&&(t+="\n\n![".concat(e.filename,"](data:image/png;base64,").concat(e.b64_data,")"))})});let a=t,n=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 b.Z.sanitize(t)}),s=t.map((e,t)=>"![uploaded image ".concat(t+1,"](").concat(e,")")).join("\n"),o=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(o,"</div>");a="".concat(s,"\n\n").concat(a),n="".concat(l).concat(n)}v(a);let s=eh.render(n);s=s.replace(/LEFTPAREN/g,"\\(").replace(/RIGHTPAREN/g,"\\)").replace(/LEFTBRACKET/g,"\\[").replace(/RIGHTBRACKET/g,"\\]"),w(b.Z.sanitize(s))},[e.chatMessage.message,e.chatMessage.images,e.chatMessage.intent]),(0,l.useEffect)(()=>{u&&setTimeout(()=>{g(!1)},2e3)},[u]),(0,l.useEffect)(()=>{F.current&&(F.current.querySelectorAll("pre > .hljs").forEach(e=>{if(!e.querySelector("".concat(d().codeCopyButton))){let t=document.createElement("button"),a=(0,n.jsx)(Z.w,{size:24});(0,m.createRoot)(t).render(a),t.className="hljs ".concat(d().codeCopyButton),t.addEventListener("click",()=>{let a=e.textContent||"";a=(a=(a=a.replace(/^\$+/,"")).replace(/^Copy/,"")).trim(),navigator.clipboard.writeText(a);let s=(0,n.jsx)(V.J,{size:24});(0,m.createRoot)(t).render(s)}),e.prepend(t)}}),(0,X.Z)(F.current,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!1}]}))},[j,f,F]);let B=async t=>{let a=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:a})})).ok?e.onDeleteMessage(a):console.error("Failed to delete message")},P=function(e,t,a){let n=[],s=[],o=[];if(a)for(let[e,t]of Object.entries(a))t.results&&o.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[a,n]of Object.entries(t)){if(n.answerBox&&e.push({title:n.answerBox.title,description:n.answerBox.answer,link:n.answerBox.source}),n.knowledgeGraph&&e.push({title:n.knowledgeGraph.title,description:n.knowledgeGraph.description,link:n.knowledgeGraph.descriptionLink}),n.webpages){if(n.webpages instanceof Array){let t=n.webpages.map(e=>({title:e.query,description:e.snippet,link:e.link}));e.push(...t)}else{let t=n.webpages;e.push({title:t.query,description:t.snippet,link:t.link})}}if(n.organic){let t=n.organic.map(e=>({title:e.title,description:e.snippet,link:e.link}));e.push(...t)}}n.push(...e)}if(e){let t=e.map(e=>e.compiled?{title:e.file,content:e.compiled}:{title:e.split("\n")[0],content:e.split("\n").slice(1).join("\n")});s.push(...t)}return{notesReferenceCardData:s,onlineReferenceCardData:n,codeReferenceCardData:o}}(e.chatMessage.context,e.chatMessage.onlineContext,e.chatMessage.codeContext);return(0,n.jsxs)("div",{ref:t,className:(a=e.chatMessage,o=[d().chatMessageContainer],"khoj"===a.by&&o.push("shadow-md"),o.push(d()[a.by]),a.message||o.push(d().emptyChatMessage),e.customClassName&&o.push(d()["".concat(a.by).concat(e.customClassName)]),o.join(" ")),onMouseLeave:e=>p(!1),onMouseEnter:e=>p(!0),children:[(0,n.jsxs)("div",{className:(s=e.chatMessage,(r=[d().chatMessageWrapper]).push(d()[s.by]),"khoj"===s.by&&r.push("border-l-4 border-opacity-50 ".concat("border-l-"+e.borderLeftColor)),r.join(" ")),children:[e.chatMessage.queryFiles&&e.chatMessage.queryFiles.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap flex-col mb-2 max-w-full",children:e.chatMessage.queryFiles.map((e,t)=>(0,n.jsxs)(ea.Vq,{children:[(0,n.jsx)(ea.hg,{asChild:!0,children:(0,n.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,n.jsx)("div",{className:"flex-shrink-0",children:(0,C.Le)(e.file_type)}),(0,n.jsx)("span",{className:"truncate flex-1 min-w-0 max-w-[200px]",children:e.name}),e.size&&(0,n.jsxs)("span",{className:"text-gray-400 flex-shrink-0",children:["(",(0,es.xq)(e.size),")"]})]})}),(0,n.jsxs)(ea.cZ,{children:[(0,n.jsx)(ea.fK,{children:(0,n.jsx)(en.$N,{children:(0,n.jsx)("div",{className:"truncate min-w-0 break-words break-all text-wrap max-w-full whitespace-normal",children:e.name})})}),(0,n.jsx)(ea.Be,{children:(0,n.jsx)(eo.x,{className:"h-72 w-full rounded-md break-words break-all text-wrap",children:e.content})})]})]},t))}),(0,n.jsx)("div",{ref:F,className:d().chatMessage,dangerouslySetInnerHTML:{__html:j}}),k&&(0,n.jsx)(et,{data:k}),O&&(0,n.jsx)(ed,{chart:O})]}),(0,n.jsx)("div",{className:d().teaserReferencesContainer,children:(0,n.jsx)(E,{isMobileWidth:e.isMobileWidth,notesReferenceCardData:P.notesReferenceCardData,onlineReferenceCardData:P.onlineReferenceCardData,codeReferenceCardData:P.codeReferenceCardData})}),(0,n.jsx)("div",{className:d().chatFooter,children:(f||e.isMobileWidth||e.isLastMessage||y)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{title:(i=(c=new Date(e.chatMessage.created+"Z")).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0}).toUpperCase(),h=c.toLocaleString("en-US",{year:"numeric",month:"short",day:"2-digit"}).replaceAll("-"," "),"".concat(i," on ").concat(h)),className:"text-gray-400 relative top-0 left-4",children:function(e){e.endsWith("Z")||(e+="Z");let t=new Date(e),a=new Date().getTime()-t.getTime();return a<6e4?"Just now":a<36e5?"".concat(Math.round(a/6e4),"m ago"):a<864e5?"".concat(Math.round(a/36e5),"h ago"):"".concat(Math.round(a/864e5),"d ago")}(e.chatMessage.created)}),(0,n.jsxs)("div",{className:"".concat(d().chatButtons," shadow-sm"),children:["khoj"===e.chatMessage.by&&(y?_?(0,n.jsx)(K.l,{iconClassName:"p-0",className:"m-0"}):(0,n.jsx)("button",{title:"Pause Speech",onClick:e=>M(!0),children:(0,n.jsx)(G.d,{alt:"Pause Message",className:"hsl(var(--muted-foreground))"})}):(0,n.jsx)("button",{title:"Speak",onClick:e=>L(),children:(0,n.jsx)(J.j,{alt:"Speak Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})})),e.chatMessage.turnId&&(0,n.jsx)("button",{title:"Delete",className:"".concat(d().deleteButton),onClick:()=>B(e.chatMessage),children:(0,n.jsx)($.r,{alt:"Delete Message",className:"hsl(var(--muted-foreground)) hover:text-red-500"})}),(0,n.jsx)("button",{title:"Copy",className:"".concat(d().copyButton),onClick:()=>{navigator.clipboard.writeText(x),g(!0)},children:u?(0,n.jsx)(Q.C,{alt:"Copied Message",weight:"fill",className:"text-green-500"}):(0,n.jsx)(Q.C,{alt:"Copy Message",className:"hsl(var(--muted-foreground)) hover:text-green-500"})}),"khoj"===e.chatMessage.by&&(e.chatMessage.intent?(0,n.jsx)(eg,{uquery:e.chatMessage.intent.query,kquery:e.chatMessage.message}):(0,n.jsx)(eg,{uquery:e.chatMessage.rawQuery||e.chatMessage.message,kquery:e.chatMessage.message}))]})]})})]})});ef.displayName="ChatMessage";var ep=a(46843),ex=a(87332),ev=a(91832),ej=a(44849),ew=a.n(ej);function ey(e){let{frames:t,autoPlay:a=!0,playbackSpeed:s=1e3}=e,[o,r]=(0,l.useState)(0),[c,i]=(0,l.useState)(a),[d,h]=(0,l.useState)(!0),u=(0,l.useRef)(null);(0,l.useEffect)(()=>{d&&t.length>0&&r(t.length-1)},[t.length,d]),(0,l.useEffect)(()=>(c&&t.length>1?u.current=setInterval(()=>{r(e=>{let a=e+1;return a>=t.length?(i(!1),e):a})},s):u.current&&(clearInterval(u.current),u.current=null),()=>{u.current&&clearInterval(u.current)}),[c,t.length,s]);let g=t[o],m=e=>{r(e),h(!1),i(!1)};return t.length?(0,n.jsxs)("div",{className:ew().videoPlayer,children:[(0,n.jsxs)("div",{className:ew().screen,children:[(null==g?void 0:g.image)&&(0,n.jsx)("img",{src:g.image,alt:"Train of thought frame ".concat(o+1),className:ew().screenImage}),(0,n.jsx)("div",{className:ew().textOverlay,children:(0,n.jsx)("div",{className:ew().thoughtText,children:null==g?void 0:g.text})})]}),(0,n.jsxs)("div",{className:ew().controls,children:[(0,n.jsxs)("div",{className:ew().timeline,children:[(0,n.jsx)("input",{type:"range",min:0,max:Math.max(0,t.length-1),value:o,onChange:e=>m(parseInt(e.target.value)),className:ew().timelineSlider}),(0,n.jsx)("div",{className:ew().frameMarkers,children:t.map((e,t)=>(0,n.jsx)("div",{className:"".concat(ew().frameMarker," ").concat(e.image?ew().hasImage:ew().textOnly," ").concat(t===o?ew().active:""),onClick:()=>m(t),title:"Frame ".concat(t+1,": ").concat(e.text.slice(0,50),"...")},t))})]}),(0,n.jsxs)("div",{className:ew().controlButtons,children:[(0,n.jsx)("button",{onClick:()=>{o>0&&(r(o-1),h(!1),i(!1))},disabled:0===o,title:"Previous frame",className:ew().controlButton,children:(0,n.jsx)(ep.F,{size:16})}),(0,n.jsx)("button",{onClick:()=>{i(!c),h(!1)},disabled:t.length<=1,title:c?"Pause":"Play",className:ew().controlButton,children:c?(0,n.jsx)(G.d,{size:16}):(0,n.jsx)(ex.s,{size:16})}),(0,n.jsx)("button",{onClick:()=>{o<t.length-1&&(r(o+1),h(!1),i(!1))},disabled:o===t.length-1,title:"Next frame",className:ew().controlButton,children:(0,n.jsx)(ev.N,{size:16})}),(0,n.jsx)("button",{onClick:()=>{h(!0),r(t.length-1),i(!1)},className:"".concat(ew().controlButton," ").concat(d?ew().active:""),title:"Auto-track latest",children:"Live"})]}),(0,n.jsx)("div",{className:ew().frameInfo,children:(0,n.jsxs)("span",{children:[o+1," / ",t.length]})})]})]}):null}var eb=a(3894),eC=a(20461),eN=a(77168),e_=a(15483),eM=a(81103),ek=e=>{let{name:t,avatar:a,link:s,description:o}=e;return(0,n.jsx)("div",{className:"relative group flex",children:(0,n.jsx)(eM.pn,{children:(0,n.jsxs)(eM.u,{delayDuration:0,children:[(0,n.jsx)(eM.aJ,{asChild:!0,children:(0,n.jsxs)(ei.z,{variant:"ghost",className:"flex items-center justify-center",children:[a,(0,n.jsx)("div",{children:t})]})}),(0,n.jsx)(eM._v,{children:(0,n.jsxs)("div",{className:"w-80 h-30",children:[(0,n.jsx)("a",{href:s,target:"_blank",rel:"noreferrer",className:"mt-1 ml-2 block no-underline",children:(0,n.jsxs)("div",{className:"flex items-center justify-start gap-2",children:[a,(0,n.jsxs)("div",{className:"mr-2 mt-1 flex justify-center items-center text-sm font-semibold text-gray-800",children:[t,(0,n.jsx)(v.o,{weight:"bold",className:"ml-1"})]})]})}),o&&(0,n.jsx)("p",{className:"mt-2 ml-6 text-sm text-gray-600 line-clamp-2",children:o||"A Khoj agent"})]})})]})})})};function eT(e){let[t,a]=(0,l.useState)(e.completed),[s,i]=(0,l.useState)([]);return(0,l.useEffect)(()=>{e.completed&&a(!0)},[e.completed]),(0,l.useEffect)(()=>{if(!e.trainOfThought||0===e.trainOfThought.length){i([]);return}i(function(e){if(!e)return[];let t=[],a=[],n=[];return e.forEach((e,s)=>{let o=e.data,l=!1;try{let e=o.match(/\{.*(\"action\": \"screenshot\"|\"type\": \"screenshot\"|\"image\": \"data:image\/.*\").*\}/);if(e){let r=JSON.parse(e[0]);r.image&&(l=!0,o=o.replace(":\n**Action**: ".concat(e[0]),""),r.text&&(o+="\n\n".concat(r.text)),n.length>0&&(t.push({type:"text",textEntries:[...n]}),n=[]),a.push({text:o,image:r.image,timestamp:s}))}}catch(e){console.error("Failed to parse screenshot data",e)}l||(a.length>0&&(t.push({type:"video",frames:[...a]}),a=[]),n.push(e))}),a.length>0&&t.push({type:"video",frames:a}),n.length>0&&t.push({type:"text",textEntries:n}),t}("string"==typeof e.trainOfThought[0]?e.trainOfThought.map((e,t)=>({type:"text",data:e})):e.trainOfThought))},[e.trainOfThought]),(0,n.jsxs)("div",{className:"".concat(t?"":o().trainOfThought+" border"," rounded-lg"),children:[!e.completed&&(0,n.jsx)(K.l,{className:"float-right"}),e.completed&&(t?(0,n.jsxs)(ei.z,{className:"w-fit text-left justify-start content-start text-xs",onClick:()=>a(!1),variant:"ghost",size:"sm",children:["Thought Process ",(0,n.jsx)(eb.p,{size:16,className:"ml-1"})]}):(0,n.jsxs)(ei.z,{className:"w-fit text-left justify-start content-start text-xs p-0 h-fit",onClick:()=>a(!0),variant:"ghost",size:"sm",children:["Close ",(0,n.jsx)(eC.U,{size:16,className:"ml-1"})]})),(0,n.jsx)(r.M,{initial:!1,children:!t&&(0,n.jsx)(c.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,a)=>(0,n.jsxs)("div",{children:["video"===t.type&&t.frames&&t.frames.length>0&&(0,n.jsx)(ey,{frames:t.frames,autoPlay:!1,playbackSpeed:1500}),"text"===t.type&&t.textEntries&&t.textEntries.map((o,l)=>{let r=s.length-1,c=l===t.textEntries.length-1,i=a===r&&c&&e.lastMessage&&!e.completed;return(0,n.jsx)(em,{message:o.data,primary:i,agentColor:e.agentColor},"train-text-".concat(a,"-").concat(l,"-").concat(o.data.length))})]},"train-group-".concat(a)))})})]},e.keyId)}function eO(e){var t,a,s,r,c,i,d,h,u;let[g,m]=(0,l.useState)(null),[f,p]=(0,l.useState)(0),[x,v]=(0,l.useState)(!0),[j,w]=(0,l.useState)(null),y=(0,l.useRef)(null),b=(0,l.useRef)(null),N=(0,l.useRef)(null),_=(0,l.useRef)(null),M=(0,l.useRef)(null),[k,T]=(0,l.useState)(null),[O,E]=(0,l.useState)(!1),[I,R]=(0,l.useState)(!0),S=(0,es.IC)(),F="[data-radix-scroll-area-viewport]",L=localStorage.getItem("message");(0,l.useEffect)(()=>{var e;let t=null===(e=b.current)||void 0===e?void 0:e.querySelector(F);if(!t)return;let a=()=>{let{scrollTop:e,scrollHeight:a,clientHeight:n}=t;R(a-(e+n)<=50)};return t.addEventListener("scroll",a),a(),()=>t.removeEventListener("scroll",a)},[b]),(0,l.useEffect)(()=>{e.incomingMessages&&e.incomingMessages.length>0&&I&&B(!0)},[e.incomingMessages,I]),(0,l.useEffect)(()=>{var t;let a=N.current,n=null===(t=b.current)||void 0===t?void 0:t.querySelector(F);if(!a||!n)return;let s=new ResizeObserver(()=>{let{scrollTop:t,scrollHeight:a,clientHeight:s}=n;if(a-(t+s)<=50&&e.incomingMessages&&e.incomingMessages.length>0){let t=e.incomingMessages[e.incomingMessages.length-1];(!t.completed||t.completed&&null!==k)&&B(!0)}});return s.observe(a),()=>s.disconnect()},[e.incomingMessages,k,b]),(0,l.useEffect)(()=>{g&&g.chat&&g.chat.length>0&&f<2&&requestAnimationFrame(()=>{var e;null===(e=_.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"})})},[g,f]),(0,l.useEffect)(()=>{if(!x||O)return;let t=new IntersectionObserver(t=>{t[0].isIntersecting&&x&&(E(!0),function(t){if(!x||O)return;let a=(t+1)*10,n="";if(e.conversationId)n="/api/chat/history?client=web&conversation_id=".concat(encodeURIComponent(e.conversationId),"&n=").concat(a);else{if(!e.publicConversationSlug)return;n="/api/chat/share/history?client=web&public_conversation_slug=".concat(e.publicConversationSlug,"&n=").concat(a)}fetch(n).then(e=>e.json()).then(a=>{var n;if(e.setTitle(a.response.slug),e.setIsOwner&&e.setIsOwner(null==a?void 0:null===(n=a.response)||void 0===n?void 0:n.is_owner),a&&a.response&&a.response.chat&&a.response.chat.length>0){if(p(Math.ceil(a.response.chat.length/10)),a.response.chat.length===(null==g?void 0:g.chat.length)){v(!1),E(!1);return}e.setAgent(a.response.agent),m(a.response),E(!1),0===t?B(!0):D()}else{if(a.response.agent&&a.response.conversation_id){let t={chat:[],agent:a.response.agent,conversation_id:a.response.conversation_id,slug:a.response.slug,is_owner:a.response.is_owner};e.setAgent(a.response.agent),m(t),e.setIsChatSideBarOpen&&!L&&e.setIsChatSideBarOpen(!0)}v(!1),E(!1)}}).catch(e=>{console.error(e),window.location.href="/"})}(f))},{threshold:1});return y.current&&t.observe(y.current),()=>t.disconnect()},[x,f,O]),(0,l.useEffect)(()=>{v(!0),E(!1),p(0),m(null)},[e.conversationId]),(0,l.useEffect)(()=>{if(e.incomingMessages){let t=e.incomingMessages[e.incomingMessages.length-1];t&&!t.completed&&(T(e.incomingMessages.length-1),e.setTitle(t.rawQuery),t.turnId&&w(t.turnId))}},[e.incomingMessages]);let D=()=>{var e;let t=null===(e=b.current)||void 0===e?void 0:e.querySelector(F);requestAnimationFrame(()=>{var e;null===(e=M.current)||void 0===e||e.scrollIntoView({behavior:"auto",block:"start"}),null==t||t.scrollBy({behavior:"smooth",top:-150})})},B=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=null===(e=b.current)||void 0===e?void 0:e.querySelector(F);requestAnimationFrame(()=>{null==a||a.scrollTo({top:a.scrollHeight,behavior:t?"auto":"smooth"})}),(t||a&&a.scrollHeight-(a.scrollTop+a.clientHeight)<5)&&R(!0)},P=t=>{t&&(m(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)))};return e.conversationId||e.publicConversationSlug?(0,n.jsx)(eo.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.72))]\n ",ref:b,children:(0,n.jsxs)("div",{ref:N,children:[(0,n.jsxs)("div",{className:"".concat(o().chatHistory," ").concat(e.customClassName),children:[(0,n.jsx)("div",{ref:y,style:{height:"1px"},children:O&&(0,n.jsx)(K.l,{className:"opacity-50"})}),g&&g.chat&&g.chat.map((t,a)=>{var s,o;return(0,n.jsxs)(l.Fragment,{children:[t.trainOfThought&&"khoj"===t.by&&(0,n.jsx)(eT,{trainOfThought:t.trainOfThought,lastMessage:!1,agentColor:(null==g?void 0:null===(s=g.agent)||void 0===s?void 0:s.color)||"orange",keyId:"".concat(a,"trainOfThought"),completed:!0},"".concat(a,"trainOfThought")),(0,n.jsx)(ef,{ref:a===g.chat.length-2?_:a===g.chat.length-(f-1)*10?M:null,isMobileWidth:S,chatMessage:t,customClassName:"fullHistory",borderLeftColor:"".concat(null==g?void 0:null===(o=g.agent)||void 0===o?void 0:o.color,"-500"),isLastMessage:a===g.chat.length-1,onDeleteMessage:P,conversationId:e.conversationId},"".concat(a,"fullHistory"))]},"chatMessage-".concat(a))}),e.incomingMessages&&e.incomingMessages.map((t,a)=>{var s,o,r,c,i;let d=null!==(i=null!==(c=t.turnId)&&void 0!==c?c:j)&&void 0!==i?i:void 0;return(0,n.jsxs)(l.Fragment,{children:[(0,n.jsx)(ef,{isMobileWidth:S,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==g?void 0:null===(s=g.agent)||void 0===s?void 0:s.color,"-500"),onDeleteMessage:P,conversationId:e.conversationId,turnId:d},"".concat(a,"outgoing")),t.trainOfThought&&t.trainOfThought.length>0&&(0,n.jsx)(eT,{trainOfThought:t.trainOfThought,lastMessage:a===k,agentColor:(null==g?void 0:null===(o=g.agent)||void 0===o?void 0:o.color)||"orange",keyId:"".concat(a,"trainOfThought"),completed:t.completed},"".concat(a,"trainOfThought-").concat(t.trainOfThought.length,"-").concat(t.trainOfThought.map(e=>e.length).join("-"))),(0,n.jsx)(ef,{isMobileWidth:S,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:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==g?void 0:null===(r=g.agent)||void 0===r?void 0:r.color,"-500"),isLastMessage:a===e.incomingMessages.length-1},"".concat(a,"incoming"))]},"incomingMessage".concat(a))}),e.pendingMessage&&(0,n.jsx)(ef,{isMobileWidth:S,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:P,customClassName:"fullHistory",borderLeftColor:"".concat(null==g?void 0:null===(t=g.agent)||void 0===t?void 0:t.color,"-500"),isLastMessage:!0},"pendingMessage-".concat(e.pendingMessage.length)),g&&(0,n.jsx)("div",{className:"".concat(o().agentIndicator," pb-4"),children:(0,n.jsx)("div",{className:"relative group mx-2 cursor-pointer",children:(0,n.jsx)(ek,{name:g&&g.agent&&(null===(r=g.agent)||void 0===r?void 0:r.name)?g.agent.is_hidden?"Khoj":null===(c=g.agent)||void 0===c?void 0:c.name:"Agent",link:g&&g.agent&&(null===(i=g.agent)||void 0===i?void 0:i.slug)?"/agents?agent=".concat(null===(d=g.agent)||void 0===d?void 0:d.slug):"/agents",avatar:(0,C.TI)(null===(a=g.agent)||void 0===a?void 0:a.icon,null===(s=g.agent)||void 0===s?void 0:s.color)||(0,n.jsx)(eN.v,{}),description:g&&g.agent?(null===(h=g.agent)||void 0===h?void 0:h.persona)?null===(u=g.agent)||void 0===u?void 0:u.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,n.jsx)("div",{className:"".concat(e.customClassName," fixed bottom-[20%] z-10"),children:!I&&(0,n.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:()=>{B()},children:(0,n.jsx)(e_.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",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",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 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8459,3317,7138,244],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);