Tool to send cross-session opencode messages, including as request-response pattern
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add generic Session interface with optional fields

rektide da84cc17 ec3ed891

+19 -9
+3 -6
src/session/active.ts
··· 1 1 import { Instance } from "../sensor/trait.js"; 2 + import { Session } from "./session.js"; 2 3 3 - export interface ActiveSession { 4 - sessionID: string; 4 + export type ActiveSession = Session & { 5 5 port: number; 6 6 status: "busy" | "retry" | "idle"; 7 - retryAttempt?: number; 8 - retryMessage?: string; 9 - retryNext?: number; 10 - } 7 + }; 11 8 12 9 async function getSessionStatus(port: number): Promise<Record<string, any> | undefined> { 13 10 try {
+3 -3
src/session/filter.ts
··· 1 - import { ActiveSession } from "./active.js"; 1 + import { Session } from "./session.js"; 2 2 3 3 export interface SessionFilter { 4 4 busy?: boolean; ··· 10 10 } 11 11 12 12 export async function* filterSessions( 13 - sessions: AsyncGenerator<ActiveSession>, 13 + sessions: AsyncGenerator<Session>, 14 14 filter: SessionFilter, 15 - ): AsyncGenerator<ActiveSession> { 15 + ): AsyncGenerator<Session> { 16 16 for await (const session of sessions) { 17 17 if (filter.busy && session.status !== "busy") { 18 18 continue;
+1
src/session/index.ts
··· 1 + export { Session } from "./session.js"; 1 2 export { ActiveSession, getActiveSessions } from "./active.js"; 2 3 export { SessionFilter, filterSessions } from "./filter.js";
+12
src/session/session.ts
··· 1 + export interface Session { 2 + sessionID: string; 3 + port?: number; 4 + hostname?: string; 5 + pid?: number; 6 + cwd?: string; 7 + source?: "mdns" | "proc" | "port" | "lockfile"; 8 + status?: "busy" | "retry" | "idle"; 9 + retryAttempt?: number; 10 + retryMessage?: string; 11 + retryNext?: number; 12 + }