Skip to content

Commit df7ed5c

Browse files
Asynchronous agentic behaviour (#51)
* feat (async-agents): added basic task queue structure * fix (async-agents): module import for agentic functions * fix (async-agents): removed streaming for reflection response * feat (async-agents): added basic frontend, added basic crud operations * fix (async-agents): user crud operations fix * feat (async-agents): frontend improvements * feat (async-agents): desktop notification for task status * feat (async-agents): auto time-based deletion of completed tasks * feat (async-agents): tool result bubble * fix (async-agents): async task q fixes - elaborator and removed unnecessary log Co-authored-by: Kabeer2004 <merchantkabeer68@gmail.com> --------- Co-authored-by: Kabeer2004 <merchantkabeer68@gmail.com>
1 parent f820c46 commit df7ed5c

File tree

17 files changed

+1697
-452
lines changed

17 files changed

+1697
-452
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,4 +239,5 @@ uploads
239239
token.pickle
240240
chatsDb.json
241241
userProfileDb.json
242+
tasks.json
242243
ruff_cache

src/interface/app/chat/page.js

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use client"
22
import React, { useState, useEffect, useRef } from "react"
33
import ChatBubble from "@components/ChatBubble"
4+
import ToolResultBubble from "@components/ToolResultBubble"
45
import Sidebar from "@components/Sidebar"
56
import {
67
IconSend,
@@ -10,6 +11,7 @@ import {
1011
} from "@tabler/icons-react"
1112
import toast from "react-hot-toast"
1213

14+
1315
const Chat = () => {
1416
const [messages, setMessages] = useState([])
1517
const [input, setInput] = useState("")
@@ -154,6 +156,12 @@ const Chat = () => {
154156
}
155157
}
156158

159+
useEffect(() => {
160+
const intervalId = setInterval(fetchChatHistory, 60000) // Refresh every 5 seconds
161+
162+
return () => clearInterval(intervalId) // Cleanup interval on component unmount
163+
}, [])
164+
157165
return (
158166
<div className="h-screen bg-matteblack flex relative">
159167
<Sidebar
@@ -192,13 +200,23 @@ const Chat = () => {
192200
key={msg.id}
193201
className={`flex ${msg.isUser ? "justify-end" : "justify-start"}`}
194202
>
195-
<ChatBubble
196-
message={msg.message}
197-
isUser={msg.isUser}
198-
memoryUsed={msg.memoryUsed}
199-
agentsUsed={msg.agentsUsed}
200-
internetUsed={msg.internetUsed}
201-
/>
203+
{msg.type === "tool_result" ? (
204+
<ToolResultBubble
205+
task={msg.task}
206+
result={msg.message}
207+
memoryUsed={msg.memoryUsed}
208+
agentsUsed={msg.agentsUsed}
209+
internetUsed={msg.internetUsed}
210+
/>
211+
) : (
212+
<ChatBubble
213+
message={msg.message}
214+
isUser={msg.isUser}
215+
memoryUsed={msg.memoryUsed}
216+
agentsUsed={msg.agentsUsed}
217+
internetUsed={msg.internetUsed}
218+
/>
219+
)}
202220
</div>
203221
))
204222
)}
@@ -252,4 +270,4 @@ const Chat = () => {
252270
)
253271
}
254272

255-
export default Chat
273+
export default Chat

0 commit comments

Comments
 (0)