feat: add session.list and session.history invoke handlers (real workspaces/messages)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user