terminalservice

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const ProtocolVersion = 2

Variables

This section is empty.

Functions

func BinaryHash

func BinaryHash(path string) (string, error)

func DefaultRecordDir

func DefaultRecordDir() (string, error)

func DefaultSocketPath

func DefaultSocketPath() (string, error)

func DefaultTranscriptDir

func DefaultTranscriptDir() (string, error)

Types

type AttachRequest

type AttachRequest struct {
	ProtocolVersion int    `json:"protocolVersion"`
	Type            string `json:"type"`
	SessionID       string `json:"sessionId"`
	StreamID        string `json:"streamId,omitempty"`
	Token           string `json:"token,omitempty"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(socketPath string) *Client

func (*Client) Create

func (c *Client) Create(ctx context.Context, sessionID, cwd string) (CreateResponse, error)

func (*Client) Info

func (c *Client) Info(ctx context.Context) (InfoResponse, error)

func (*Client) Inspect

func (c *Client) Inspect(ctx context.Context, sessionID string) (InspectResponse, error)

func (*Client) List

func (c *Client) List(ctx context.Context) (ListResponse, error)

func (*Client) Ping

func (c *Client) Ping(ctx context.Context) error

func (*Client) Resize

func (c *Client) Resize(ctx context.Context, sessionID string, cols, rows int) error

func (*Client) Send

func (c *Client) Send(ctx context.Context, sessionID, data string) error

func (*Client) Shutdown

func (c *Client) Shutdown(ctx context.Context) error

func (*Client) ShutdownWithReason

func (c *Client) ShutdownWithReason(ctx context.Context, source, reason string) error

func (*Client) Stop

func (c *Client) Stop(ctx context.Context, sessionID string) error

type ControlRequest

type ControlRequest struct {
	ProtocolVersion int             `json:"protocolVersion"`
	Method          string          `json:"method"`
	Params          json.RawMessage `json:"params,omitempty"`
}

type ControlResponse

type ControlResponse struct {
	OK     bool   `json:"ok"`
	Result any    `json:"result,omitempty"`
	Error  string `json:"error,omitempty"`
}

type CreateRequest

type CreateRequest struct {
	SessionID string `json:"sessionId"`
	Cwd       string `json:"cwd"`
}

type CreateResponse

type CreateResponse struct {
	SessionID string `json:"sessionId"`
	Existing  bool   `json:"existing"`
}

type InfoResponse

type InfoResponse struct {
	Executable     string `json:"executable"`
	BinaryHash     string `json:"binaryHash"`
	WebSocketURL   string `json:"webSocketUrl,omitempty"`
	WebSocketToken string `json:"webSocketToken,omitempty"`
}

type InspectRequest

type InspectRequest struct {
	SessionID string `json:"sessionId"`
}

type InspectResponse

type InspectResponse struct {
	SessionID  string `json:"sessionId"`
	Cwd        string `json:"cwd"`
	StartedAt  string `json:"startedAt"`
	LastActive string `json:"lastActive"`
	Running    bool   `json:"running"`
}

type ListResponse

type ListResponse struct {
	Sessions []SessionInfo `json:"sessions"`
}

type Options

type Options struct {
	SocketPath              string
	WebSocketHost           string
	TranscriptDir           string
	RecordDir               string
	IdleTimeout             time.Duration
	IdleTimeoutSet          bool
	BufferBytes             int
	TranscriptMaxBytes      int64
	TranscriptTrimThreshold int64
	TranscriptTailBytes     int64
	RecordPty               bool
	Logger                  *log.Logger
	ProtocolLogEnabled      bool
	ProtocolLogDir          string
	ProtocolLogger          *unifiedlog.Logger
}

func DefaultOptions

func DefaultOptions() Options

type ResizeRequest

type ResizeRequest struct {
	SessionID string `json:"sessionId"`
	Cols      int    `json:"cols"`
	Rows      int    `json:"rows"`
}

type SendRequest

type SendRequest struct {
	SessionID string `json:"sessionId"`
	Data      string `json:"data"`
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(opts Options) *Server

func (*Server) Listen

func (s *Server) Listen(ctx context.Context) error

func (*Server) SetShutdown

func (s *Server) SetShutdown(fn func())

type Session

type Session struct {
	// contains filtered or unexported fields
}

type SessionInfo

type SessionInfo struct {
	SessionID  string `json:"sessionId"`
	Cwd        string `json:"cwd"`
	StartedAt  string `json:"startedAt"`
	LastActive string `json:"lastActive"`
	Running    bool   `json:"running"`
}

type ShutdownRequest

type ShutdownRequest struct {
	Source     string `json:"source,omitempty"`
	Reason     string `json:"reason,omitempty"`
	PID        int    `json:"pid,omitempty"`
	Executable string `json:"executable,omitempty"`
}

type StopRequest

type StopRequest struct {
	SessionID string `json:"sessionId"`
}

type StreamMessage

type StreamMessage struct {
	Type       string `json:"type"`
	SessionID  string `json:"sessionId,omitempty"`
	StreamID   string `json:"streamId,omitempty"`
	DataB64    string `json:"dataB64,omitempty"`
	Len        int    `json:"len,omitempty"`
	NextOffset int64  `json:"nextOffset,omitempty"`
	Error      string `json:"error,omitempty"`
}

type WebsocketControlRequest

type WebsocketControlRequest struct {
	ProtocolVersion int    `json:"protocolVersion,omitempty"`
	Type            string `json:"type"`
	Data            string `json:"data,omitempty"`
	Cols            int    `json:"cols,omitempty"`
	Rows            int    `json:"rows,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL