Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license

This commit is contained in:
2026-09-05 13:26:46 +03:00
commit 03634b1ca3
11340 changed files with 3442369 additions and 0 deletions
@@ -0,0 +1,62 @@
export interface TerminalExitPayload {
code: number | null
signal: string | null
}
interface TerminalOutputGateOptions {
onExitFlushed: () => void
sendData: (data: string) => void
sendExit: (payload: TerminalExitPayload) => void
}
const MAX_PENDING_OUTPUT = 1024 * 1024
export function createTerminalOutputGate({ onExitFlushed, sendData, sendExit }: TerminalOutputGateOptions) {
let attached = false
let pendingData = ''
let pendingExit: TerminalExitPayload | null = null
const flushExit = (payload: TerminalExitPayload) => {
sendExit(payload)
onExitFlushed()
}
return {
attach(): void {
if (attached) {
return
}
attached = true
if (pendingData) {
sendData(pendingData)
pendingData = ''
}
if (pendingExit) {
const payload = pendingExit
pendingExit = null
flushExit(payload)
}
},
data(chunk: string): void {
if (attached) {
sendData(chunk)
return
}
pendingData = `${pendingData}${chunk}`.slice(-MAX_PENDING_OUTPUT)
},
exit(payload: TerminalExitPayload): void {
if (attached) {
flushExit(payload)
return
}
pendingExit = payload
}
}
}