904
905
/** Reads and serializes the context of an existing session/chat. */
906
>
export async function applyGetSessionContextTool(accessor: ISessionServerToolAccessor, rawArgs: unknown): Promise<string> {
sessionServerTools.ts
907
>
const sessions = await accessor.listSessions();
908
>
const { session, chatId, detail, transcriptLimit } = getSessionContextArgs(rawArgs, sessions);
909
>
const snapshot = accessor.getChatContext(session, chatId);
910
>
if (!snapshot) {
911
>
// No live conversation state (e.g. a cold/unsubscribed session): return the
912
>
// identity + an empty transcript. Metadata is available via list_sessions.
913
>
return JSON.stringify({
914
>
session: session.toString(),
915
>
openLink: buildOpenSessionLinkUri(session, chatId),
916
>
detail,
917
>
transcript: [],
918
>
hasMoreHistory: false,
919
>
truncated: false,
920
>
} satisfies ISerializedSessionContext);
921
>
}
922
>
return serializeSessionContext(session, chatId, snapshot, detail, transcriptLimit);
923
>
}
924
925