mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 22:24:31 +00:00
refactor(commands): share session entry persistence
This commit is contained in:
@@ -77,6 +77,20 @@ async function applyAbortTarget(params: {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function persistSessionEntry(params: Parameters<CommandHandler>[0]): Promise<boolean> {
|
||||||
|
if (!params.sessionEntry || !params.sessionStore || !params.sessionKey) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
params.sessionEntry.updatedAt = Date.now();
|
||||||
|
params.sessionStore[params.sessionKey] = params.sessionEntry;
|
||||||
|
if (params.storePath) {
|
||||||
|
await updateSessionStore(params.storePath, (store) => {
|
||||||
|
store[params.sessionKey] = params.sessionEntry as SessionEntry;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
export const handleActivationCommand: CommandHandler = async (params, allowTextCommands) => {
|
export const handleActivationCommand: CommandHandler = async (params, allowTextCommands) => {
|
||||||
if (!allowTextCommands) {
|
if (!allowTextCommands) {
|
||||||
return null;
|
return null;
|
||||||
@@ -106,13 +120,7 @@ export const handleActivationCommand: CommandHandler = async (params, allowTextC
|
|||||||
if (params.sessionEntry && params.sessionStore && params.sessionKey) {
|
if (params.sessionEntry && params.sessionStore && params.sessionKey) {
|
||||||
params.sessionEntry.groupActivation = activationCommand.mode;
|
params.sessionEntry.groupActivation = activationCommand.mode;
|
||||||
params.sessionEntry.groupActivationNeedsSystemIntro = true;
|
params.sessionEntry.groupActivationNeedsSystemIntro = true;
|
||||||
params.sessionEntry.updatedAt = Date.now();
|
await persistSessionEntry(params);
|
||||||
params.sessionStore[params.sessionKey] = params.sessionEntry;
|
|
||||||
if (params.storePath) {
|
|
||||||
await updateSessionStore(params.storePath, (store) => {
|
|
||||||
store[params.sessionKey] = params.sessionEntry as SessionEntry;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
shouldContinue: false,
|
shouldContinue: false,
|
||||||
@@ -148,13 +156,7 @@ export const handleSendPolicyCommand: CommandHandler = async (params, allowTextC
|
|||||||
} else {
|
} else {
|
||||||
params.sessionEntry.sendPolicy = sendPolicyCommand.mode;
|
params.sessionEntry.sendPolicy = sendPolicyCommand.mode;
|
||||||
}
|
}
|
||||||
params.sessionEntry.updatedAt = Date.now();
|
await persistSessionEntry(params);
|
||||||
params.sessionStore[params.sessionKey] = params.sessionEntry;
|
|
||||||
if (params.storePath) {
|
|
||||||
await updateSessionStore(params.storePath, (store) => {
|
|
||||||
store[params.sessionKey] = params.sessionEntry as SessionEntry;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
const label =
|
const label =
|
||||||
sendPolicyCommand.mode === "inherit"
|
sendPolicyCommand.mode === "inherit"
|
||||||
@@ -243,13 +245,7 @@ export const handleUsageCommand: CommandHandler = async (params, allowTextComman
|
|||||||
} else {
|
} else {
|
||||||
params.sessionEntry.responseUsage = next;
|
params.sessionEntry.responseUsage = next;
|
||||||
}
|
}
|
||||||
params.sessionEntry.updatedAt = Date.now();
|
await persistSessionEntry(params);
|
||||||
params.sessionStore[params.sessionKey] = params.sessionEntry;
|
|
||||||
if (params.storePath) {
|
|
||||||
await updateSessionStore(params.storePath, (store) => {
|
|
||||||
store[params.sessionKey] = params.sessionEntry as SessionEntry;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user