feat: add OpenCode session management
This commit is contained in:
@@ -155,12 +155,26 @@ function fetchAgyMessages(session) {
|
||||
return result;
|
||||
}
|
||||
|
||||
/** Fetch OpenCode messages via adapter (reuses parsed message format). */
|
||||
async function fetchOpenCodeMessages(sessionId, adapter) {
|
||||
try {
|
||||
const messages = await adapter.getMessages(sessionId);
|
||||
return messages
|
||||
.filter(m => m.type === 'user_message' || m.type === 'assistant_message')
|
||||
.map(m => ({ type: m.type, message: (m.message || '').slice(0, 2000) }));
|
||||
} catch (err) {
|
||||
console.warn(`[TitleGen] OpenCode fetch error for ${sessionId.slice(0, 16)}:`, err.message);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchMessages(engine, sessionId, adapter) {
|
||||
const session = adapter ? adapter.getSession(sessionId) : null;
|
||||
if (!session) return [];
|
||||
if (engine === 'codex') return await fetchCodexMessages(session);
|
||||
if (engine === 'claude') return await fetchClaudeMessages(sessionId);
|
||||
if (engine === 'agy') return fetchAgyMessages(session);
|
||||
if (engine === 'opencode') return await fetchOpenCodeMessages(sessionId, adapter);
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user