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) {
|
async function invoke(method, params) {
|
||||||
params = params || {};
|
params = params || {};
|
||||||
if (method === 'harness.status') return computeStatus();
|
if (method === 'harness.status') return computeStatus();
|
||||||
if (method === 'harness.prompt') return harnessPrompt(params);
|
if (method === 'harness.prompt') return harnessPrompt(params);
|
||||||
if (method === 'harness.cancel') return harnessCancel();
|
if (method === 'harness.cancel') return harnessCancel();
|
||||||
if (method === 'harness.balance') return harnessBalance();
|
if (method === 'harness.balance') return harnessBalance();
|
||||||
|
if (method === 'session.list') return sessionList();
|
||||||
|
if (method === 'session.history') return sessionHistory(params);
|
||||||
const dot = method.indexOf('.');
|
const dot = method.indexOf('.');
|
||||||
if (dot <= 0) throw new Error('unknown method ' + method);
|
if (dot <= 0) throw new Error('unknown method ' + method);
|
||||||
const domain = method.slice(0, dot);
|
const domain = method.slice(0, dot);
|
||||||
|
|||||||
Reference in New Issue
Block a user