claude-code-best/src/utils/pipeStatus.ts
2026-06-01 20:17:09 +08:00

33 lines
1.1 KiB
TypeScript

import type { PipeRegistry } from './pipeRegistry.js'
import { readRegistry } from './pipeRegistry.js'
export async function formatPipeRegistryStatus(): Promise<string> {
return formatPipeRegistry(await readRegistry())
}
export function formatPipeRegistry(registry: PipeRegistry): string {
const lines = [
`Pipe registry: ${registry.main ? 1 : 0} main, ${registry.subs.length} sub(s)`,
]
if (registry.mainMachineId) {
lines.push(` main_machine=${registry.mainMachineId.slice(0, 8)}...`)
}
if (registry.main) {
lines.push(
` [main] ${registry.main.pipeName} pid=${registry.main.pid} host=${registry.main.hostname} tcp=${registry.main.tcpPort ?? 'none'}`,
)
}
for (const sub of registry.subs.slice(0, 10)) {
lines.push(
` [sub-${sub.subIndex}] ${sub.pipeName} pid=${sub.pid} host=${sub.hostname} bound=${sub.boundToMain ?? 'none'} tcp=${sub.tcpPort ?? 'none'}`,
)
}
if (!registry.main && registry.subs.length === 0) {
lines.push(' none')
}
if (registry.subs.length > 10) {
lines.push(` ... ${registry.subs.length - 10} more sub pipe(s)`)
}
return lines.join('\n')
}