From 711244c7adaeac99058df8224633f42cd97420e0 Mon Sep 17 00:00:00 2001 From: jiangchen <1703935164@qq.com> Date: Tue, 1 Sep 2026 23:55:29 +0800 Subject: [PATCH] feat: add session.list and session.history invoke handlers (real workspaces/messages) --- lib/index.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/index.js b/lib/index.js index 6b0767f..6487028 100644 --- a/lib/index.js +++ b/lib/index.js @@ -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);