mirror of
https://github.com/stablyai/orca.git
synced 2026-09-23 00:02:29 +00:00
* docs: design SSH relay PTY backpressure * fix(ssh): bound relay frame decoding * fix(relay): bound PTY output publication * fix(ssh): bound PTY model admission * fix(ssh): settle closed model admissions * feat(ssh): negotiate bounded PTY consumer sessions * fix(ssh): fence exit on renderer settlement * feat(ssh): track PTY source credit end to end * fix(ssh): recover bounded PTY output across reconnect * feat(ssh): complete relay PTY output backpressure * fix(ssh): close final PTY source credit races * docs(ssh): record final backpressure validation * feat(ssh): complete relay PTY source-credit lifecycle * test(ssh): complete provider notification fixture * fix(ssh): preserve terminal source credit across rotation * fix(ssh): fail closed on recovery cancellation * fix(ssh): prioritize mux control writes after drain * fix(ssh): retire canceled relay restore deliveries * fix(ssh): order exit cancellation cleanup * fix(ssh): gate provisional source activation * test(ssh): register mux drain-priority coverage * fix(ssh): type stale owner recovery mismatches * fix(ssh): close projection replacement races * fix(relay): contain streaming edge failures * fix(ssh): secure relay endpoint credentials * docs(ssh): reconcile final backpressure lifecycle * fix(ssh): bound main IPC output lifecycle * fix(ssh): close recovery ownership gaps * docs(ssh): record exact artifact validation * fix(ssh): reject reclaimed snapshot replacements * fix(ssh): fence model admission across reconnect * fix(ssh): contain migration failure per PTY * docs(ssh): record final exact-head validation * test(ssh): align deploy fixtures with credential publication * feat(ssh): add per-target bounded output setting * fix(ssh): close source recovery review gaps * fix(ssh): latch source credit environment override * feat(ssh): make PTY source credit the default * docs(ssh): record always-on relay validation * docs(ssh): bind validation to current main * test(ssh): grant source credit in IPC fixture * test(ssh): grant source credit in fake relay --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
export type PtySourceReceivingActivation = Readonly<{
|
|
status: 'pending'
|
|
clientGeneration: number
|
|
ownerGeneration: number
|
|
ptyIncarnation: string
|
|
deliveryToken: string
|
|
checkpointSourceEndSu: number
|
|
recoveryEndSu: number
|
|
}>
|
|
|
|
export function parsePtySourceReceivingActivation(
|
|
value: unknown
|
|
): PtySourceReceivingActivation | undefined {
|
|
if (value === undefined) {
|
|
return undefined
|
|
}
|
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
throw new Error('Invalid SSH PTY source activation response')
|
|
}
|
|
const input = value as Record<string, unknown>
|
|
if (
|
|
input.status !== 'pending' ||
|
|
typeof input.deliveryToken !== 'string' ||
|
|
input.deliveryToken.length === 0 ||
|
|
typeof input.ptyIncarnation !== 'string' ||
|
|
input.ptyIncarnation.length === 0 ||
|
|
!positiveInteger(input.clientGeneration) ||
|
|
!positiveInteger(input.ownerGeneration) ||
|
|
!nonNegativeInteger(input.checkpointSourceEndSu) ||
|
|
!nonNegativeInteger(input.recoveryEndSu) ||
|
|
Number(input.recoveryEndSu) < Number(input.checkpointSourceEndSu)
|
|
) {
|
|
throw new Error('Invalid SSH PTY source activation response')
|
|
}
|
|
return Object.freeze({
|
|
status: 'pending',
|
|
clientGeneration: Number(input.clientGeneration),
|
|
ownerGeneration: Number(input.ownerGeneration),
|
|
ptyIncarnation: input.ptyIncarnation,
|
|
deliveryToken: input.deliveryToken,
|
|
checkpointSourceEndSu: Number(input.checkpointSourceEndSu),
|
|
recoveryEndSu: Number(input.recoveryEndSu)
|
|
})
|
|
}
|
|
|
|
function positiveInteger(value: unknown): boolean {
|
|
return Number.isSafeInteger(value) && Number(value) > 0
|
|
}
|
|
|
|
function nonNegativeInteger(value: unknown): boolean {
|
|
return Number.isSafeInteger(value) && Number(value) >= 0
|
|
}
|