MCPcopy Create free account
hub / github.com/MagicCube/agentara / useSessionHistory

Function useSessionHistory

web/src/lib/api/hooks.ts:50–86  ·  view source on GitHub ↗
(sessionId: string)

Source from the content-addressed store, hash-verified

48 * Fetches the message history for a given session.
49 */
50export function useSessionHistory(sessionId: string) {
51 return useQuery({
52 queryKey: ["sessions", sessionId, "history"],
53 queryFn: () =>
54 api.sessions[":id"].history
55 .$get({ param: { id: sessionId } })
56 .then(async (res) => {
57 const { messages } = (await res.json()) as { messages: Message[] };
58 const groupedMessages: Message[][] = [];
59 for (const message of messages) {
60 if (message.role === "user") {
61 groupedMessages.push([message]);
62 } else {
63 groupedMessages[groupedMessages.length - 1].push(message);
64 }
65 }
66 const groups: {
67 inbound: UserMessage;
68 steps: (AssistantMessage | ToolMessage)[];
69 outbound?: AssistantMessage;
70 }[] = [];
71 for (const message of groupedMessages) {
72 const lastMessage = message[message.length - 1];
73 groups.push({
74 inbound: message[0] as UserMessage,
75 steps: message.slice(1) as (AssistantMessage | ToolMessage)[],
76 outbound:
77 lastMessage.role === "assistant"
78 ? (lastMessage as AssistantMessage | undefined)
79 : undefined,
80 });
81 }
82 return { messages, groups };
83 }),
84 enabled: !!sessionId,
85 });
86}
87
88/**
89 * Fetches all current tasks.

Callers 1

SessionDetailPageFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected