Add 5 pi extensions: pi-subagents, pi-crew, rpiv-pi, pi-interactive-shell, pi-intercom

This commit is contained in:
2026-05-08 15:59:25 +10:00
parent d0d1d9b045
commit 31b4110c87
457 changed files with 85157 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
export interface WorkerHeartbeatState {
workerId: string;
pid?: number;
lastSeenAt: string;
lastStdoutAt?: string;
lastEventAt?: string;
turnCount?: number;
alive?: boolean;
}
export function createWorkerHeartbeat(workerId: string, pid?: number, now = new Date()): WorkerHeartbeatState {
return { workerId, pid, lastSeenAt: now.toISOString(), alive: true };
}
export function touchWorkerHeartbeat(heartbeat: WorkerHeartbeatState, updates: Partial<Omit<WorkerHeartbeatState, "workerId">> = {}, now = new Date()): WorkerHeartbeatState {
return { ...heartbeat, ...updates, lastSeenAt: now.toISOString() };
}
export function isWorkerHeartbeatStale(heartbeat: WorkerHeartbeatState, staleMs: number, now = new Date()): boolean {
return now.getTime() - Date.parse(heartbeat.lastSeenAt) > staleMs;
}