feat: add session.list and session.history invoke handlers (real workspaces/messages)

This commit is contained in:
2026-09-01 23:55:29 +08:00
parent 863005e7b1
commit 711244c7ad
+23
View File
@@ -106,12 +106,35 @@ function apply(ctx, config) {
};
}
async function sessionList() {
const status = await computeStatus();
return {
activeSessionId: status.activeSessionId,
running: status.running,
sessions: status.sessions || []
};
}
async function sessionHistory(params) {
const sessionId = params && params.sessionId;
if (!sessionId) throw new Error('sessionId required');
if (api && api.sessions && typeof api.sessions.get === 'function') {
return api.sessions.get({ sessionId });
}
const status = await computeStatus();
const s = (status.sessions || []).find((x) => x.sessionId === sessionId);
if (!s) throw new Error('session not found: ' + sessionId);
return s;
}
async function invoke(method, params) {
params = params || {};
if (method === 'harness.status') return computeStatus();
if (method === 'harness.prompt') return harnessPrompt(params);
if (method === 'harness.cancel') return harnessCancel();
if (method === 'harness.balance') return harnessBalance();
if (method === 'session.list') return sessionList();
if (method === 'session.history') return sessionHistory(params);
const dot = method.indexOf('.');
if (dot <= 0) throw new Error('unknown method ' + method);
const domain = method.slice(0, dot);