Documentation
¶
Index ¶
- Constants
- Variables
- func ShouldRunInBackground(command string) bool
- type ControlServer
- type EventSender
- type Job
- type JobSummary
- type KillRequest
- type KillResult
- type Limits
- type ListRequest
- type ListResult
- type Manager
- func (m *Manager) Close(terminalID string, reason string)
- func (m *Manager) CloseAll(ctx context.Context, reason string)
- func (m *Manager) HasTerminal(terminalID string) bool
- func (m *Manager) Input(terminalID string, data []byte) error
- func (m *Manager) Kill(req KillRequest) (KillResult, error)
- func (m *Manager) List(sessionID string, req ListRequest) (ListResult, error)
- func (m *Manager) Output(req OutputRequest) (OutputResult, error)
- func (m *Manager) Resize(terminalID string, cols, rows int) error
- func (m *Manager) Send(req SendRequest) (SendResult, error)
- func (m *Manager) Snapshot(terminalID string) error
- func (m *Manager) Start(ctx context.Context, req StartRequest) (StartResult, error)
- func (m *Manager) Wait(ctx context.Context, req WaitRequest) (WaitResult, error)
- type OutputRequest
- type OutputResult
- type Port
- type Readiness
- type ReadinessDetector
- type SendRequest
- type SendResult
- type ShellExecRequest
- type ShellExecResult
- type StartRequest
- type StartResult
- type TaskControl
- type TaskScope
- type WaitRequest
- type WaitResult
Constants ¶
View Source
const ( StatusStarting = "starting" StatusRunning = "running" StatusReady = "ready" StatusExited = "exited" StatusFailed = "failed" StatusKilled = "killed" ReadinessUnknown = "unknown" ReadinessWaiting = "waiting" ReadinessReady = "ready" ReadinessTimedOut = "timed_out" ReadinessFailed = "failed" )
Variables ¶
Functions ¶
func ShouldRunInBackground ¶
Types ¶
type ControlServer ¶
type ControlServer struct {
// contains filtered or unexported fields
}
func NewControlServer ¶
func NewControlServer(manager *Manager, baseDir string) *ControlServer
func (*ControlServer) StartTask ¶
func (s *ControlServer) StartTask(ctx context.Context, scope TaskScope) (TaskControl, error)
func (*ControlServer) StopTask ¶
func (s *ControlServer) StopTask(taskID string)
type EventSender ¶
type EventSender interface {
SendAgentTerminalStarted(job Job) error
SendAgentTerminalUpdated(job Job) error
SendTerminalOutput(terminalID, sessionID, channelID string, seq int64, data []byte) error
SendTerminalSnapshot(terminalID, sessionID, channelID string, seq int64, data []byte) error
SendTerminalExit(terminalID, sessionID, channelID, reason string, exitCode int, signal string, endedAt time.Time) error
SendTerminalError(requestID, terminalID, sessionID, channelID, message string) error
SendLocalServerDetected(sessionID, channelID, taskID, toolCallID, host string, port int, url, command, source string) error
}
type Job ¶
type Job struct {
JobID string
TerminalID string
SessionID string
ChannelID string
TaskID string
ToolCallID string
ProjectID string
MachineID string
Command string
CommandPreview string
Title string
CWD string
Status string
Readiness Readiness
Ports []Port
URLs []string
Seq int64
StartedAt time.Time
UpdatedAt time.Time
EndedAt time.Time
ExitCode *int
Signal string
Reason string
}
type JobSummary ¶
type JobSummary struct {
JobID string `json:"jobId"`
TerminalID string `json:"terminalId"`
Title string `json:"title"`
CommandPreview string `json:"commandPreview"`
CWD string `json:"cwd"`
Status string `json:"status"`
Readiness Readiness `json:"readiness"`
Ports []Port `json:"ports"`
URLs []string `json:"urls"`
StartedAt string `json:"startedAt"`
EndedAt string `json:"endedAt,omitempty"`
}
type KillRequest ¶
type KillResult ¶
type Limits ¶
type Limits struct {
MaxSessionJobs int
MaxDaemonJobs int
ScrollbackBytes int
OutputChunkBytes int
ToolOutputBytes int
DefaultReadyTimeout time.Duration
MaxWaitTimeout time.Duration
MaxLifetime time.Duration
IdleTimeout time.Duration
TerminationGracePeriod time.Duration
}
func DefaultLimits ¶
func DefaultLimits() Limits
type ListRequest ¶
type ListRequest struct {
Status string `json:"status,omitempty"`
}
type ListResult ¶
type ListResult struct {
Jobs []JobSummary `json:"jobs"`
}
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(events EventSender, limits Limits) *Manager
func (*Manager) HasTerminal ¶
func (*Manager) Kill ¶
func (m *Manager) Kill(req KillRequest) (KillResult, error)
func (*Manager) List ¶
func (m *Manager) List(sessionID string, req ListRequest) (ListResult, error)
func (*Manager) Output ¶
func (m *Manager) Output(req OutputRequest) (OutputResult, error)
func (*Manager) Send ¶
func (m *Manager) Send(req SendRequest) (SendResult, error)
func (*Manager) Start ¶
func (m *Manager) Start(ctx context.Context, req StartRequest) (StartResult, error)
func (*Manager) Wait ¶
func (m *Manager) Wait(ctx context.Context, req WaitRequest) (WaitResult, error)
type OutputRequest ¶
type OutputResult ¶
type OutputResult struct {
JobID string `json:"jobId"`
TerminalID string `json:"terminalId"`
Status string `json:"status"`
Seq int64 `json:"seq"`
Output string `json:"output"`
Truncated bool `json:"truncated"`
Readiness Readiness `json:"readiness"`
Ports []Port `json:"ports"`
URLs []string `json:"urls"`
ExitCode *int `json:"exitCode,omitempty"`
Signal string `json:"signal,omitempty"`
EndedAt string `json:"endedAt,omitempty"`
}
type ReadinessDetector ¶
type ReadinessDetector struct {
// contains filtered or unexported fields
}
func NewReadinessDetector ¶
func NewReadinessDetector(req StartRequest, limits Limits) (*ReadinessDetector, error)
type SendRequest ¶
type SendResult ¶
type ShellExecRequest ¶
type ShellExecResult ¶
type ShellExecResult struct {
Mode string `json:"mode"`
Background bool `json:"background"`
Started *StartResult `json:"started,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
ExitCode int `json:"exitCode"`
TimedOut bool `json:"timedOut"`
Truncated bool `json:"truncated,omitempty"`
}
type StartRequest ¶
type StartRequest struct {
Command string `json:"command"`
CWD string `json:"cwd,omitempty"`
Title string `json:"title,omitempty"`
Env map[string]string `json:"env,omitempty"`
ReadyPattern string `json:"readyPattern,omitempty"`
ReadyURL string `json:"readyUrl,omitempty"`
ReadyPort int `json:"readyPort,omitempty"`
ReadyTimeoutMs int `json:"readyTimeoutMs,omitempty"`
OutputTailBytes int `json:"outputTailBytes,omitempty"`
SessionID string
ChannelID string
TaskID string
ToolCallID string
ProjectID string
MachineID string
ProjectCWD string
}
type StartResult ¶
type StartResult struct {
JobID string `json:"jobId"`
TerminalID string `json:"terminalId"`
Status string `json:"status"`
Title string `json:"title"`
CWD string `json:"cwd"`
StartedAt string `json:"startedAt"`
Readiness Readiness `json:"readiness"`
Ports []Port `json:"ports"`
URLs []string `json:"urls"`
OutputTail string `json:"outputTail"`
NextActions []string `json:"nextActions"`
}
type TaskControl ¶
type WaitRequest ¶
type WaitResult ¶
Click to show internal directories.
Click to hide internal directories.