





















@@ -57,6 +57,7 @@ import {
5757validateSessionsCompactionRestoreParams,
5858validateSessionsCreateParams,
5959validateSessionsDeleteParams,
60+validateSessionsDescribeParams,
6061validateSessionsListParams,
6162validateSessionsMessagesSubscribeParams,
6263validateSessionsMessagesUnsubscribeParams,
@@ -76,6 +77,7 @@ import {
7677import { reactivateCompletedSubagentSession } from "../session-subagent-reactivation.js";
7778import {
7879archiveFileOnDisk,
80+buildGatewaySessionRow,
7981listSessionsFromStoreAsync,
8082loadCombinedSessionStoreForGateway,
8183loadGatewaySessionRow,
@@ -824,6 +826,34 @@ export const sessionsHandlers: GatewayRequestHandlers = {
824826825827respond(true, { ts: Date.now(), previews } satisfies SessionsPreviewResult, undefined);
826828},
829+"sessions.describe": ({ params, respond, context }) => {
830+if (!assertValidParams(params, validateSessionsDescribeParams, "sessions.describe", respond)) {
831+return;
832+}
833+const key = requireSessionKey(params.key, respond);
834+if (!key) {
835+return;
836+}
837+const cfg = context.getRuntimeConfig();
838+const { target, storePath } = resolveGatewaySessionTargetFromKey(key, cfg);
839+const store = loadSessionStore(storePath);
840+const entry = resolveFreshestSessionEntryFromStoreKeys(store, target.storeKeys);
841+if (!entry) {
842+respond(true, { session: null }, undefined);
843+return;
844+}
845+const row = buildGatewaySessionRow({
846+ cfg,
847+ storePath,
848+ store,
849+key: target.canonicalKey,
850+ entry,
851+includeDerivedTitles: params.includeDerivedTitles,
852+includeLastMessage: params.includeLastMessage,
853+transcriptUsageMaxBytes: 64 * 1024,
854+});
855+respond(true, { session: row }, undefined);
856+},
827857"sessions.resolve": async ({ params, respond, context }) => {
828858if (!assertValidParams(params, validateSessionsResolveParams, "sessions.resolve", respond)) {
829859return;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。