sessiond

package
v0.3.0-alpha.76 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 29 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)

func FindSessiondBinary

func FindSessiondBinary() (string, error)

func WaitForShutdown

func WaitForShutdown(ctx context.Context, socketPath string) error

Types

type AttachReady

type AttachReady struct {
	RequestedOffset int64  `json:"requestedOffset"`
	ReplayStart     int64  `json:"replayStart"`
	ReplayNext      int64  `json:"replayNext"`
	CurrentOffset   int64  `json:"currentOffset"`
	ReplayRequested bool   `json:"replayRequested"`
	ReplayTruncated bool   `json:"replayTruncated"`
	ReplaySkipped   bool   `json:"replaySkipped"`
	Owner           string `json:"owner,omitempty"`
	Running         bool   `json:"running"`
}

type AttachRequest

type AttachRequest struct {
	ProtocolVersion int    `json:"protocolVersion"`
	Type            string `json:"type"`
	SessionID       string `json:"sessionId"`
	StreamID        string `json:"streamId,omitempty"`
	ClientID        string `json:"clientId,omitempty"`
	Token           string `json:"token,omitempty"`
	Since           int64  `json:"since,omitempty"`
	WithBuffer      bool   `json:"withBuffer,omitempty"`
	Cols            int    `json:"cols,omitempty"`
	Rows            int    `json:"rows,omitempty"`
}

type Client

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

func EnsureRunning

func EnsureRunning(ctx context.Context) (*Client, error)

func EnsureRunningWithOptions

func EnsureRunningWithOptions(ctx context.Context, opts StartOptions) (*Client, error)

func NewClient

func NewClient(socketPath string) *Client

func (*Client) Attach

func (c *Client) Attach(ctx context.Context, sessionID string, since int64, withBuffer bool, streamID string) (*Stream, StreamMessage, error)

func (*Client) Create

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

func (*Client) GetOwner

func (c *Client) GetOwner(ctx context.Context, sessionID string) (OwnerResponse, 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) ResizeWithOwner

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

func (*Client) Send

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

func (*Client) SendWithOwner

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

func (*Client) SetOwner

func (c *Client) SetOwner(ctx context.Context, sessionID, owner 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

func (*Client) StopWithOwner

func (c *Client) StopWithOwner(ctx context.Context, sessionID, owner 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"`
	Owner         string `json:"owner,omitempty"`
	CurrentOffset int64  `json:"currentOffset"`
}

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 OwnerRequest

type OwnerRequest struct {
	SessionID string `json:"sessionId"`
	Owner     string `json:"owner"`
}

type OwnerResponse

type OwnerResponse struct {
	SessionID string `json:"sessionId"`
	Owner     string `json:"owner"`
}

type ResizeRequest

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

type SendRequest

type SendRequest struct {
	SessionID string `json:"sessionId"`
	Data      string `json:"data"`
	Owner     string `json:"owner,omitempty"`
}

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 StartOptions

type StartOptions struct {
	ProtocolLogEnabled bool
	ProtocolLogDir     string
	IdleTimeout        string
}

type StopRequest

type StopRequest struct {
	SessionID string `json:"sessionId"`
	Owner     string `json:"owner,omitempty"`
}

type Stream

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

func (*Stream) Close

func (s *Stream) Close() error

func (*Stream) ID

func (s *Stream) ID() string

func (*Stream) Next

func (s *Stream) Next(msg *StreamMessage) error

type StreamMessage

type StreamMessage struct {
	Type       string          `json:"type"`
	SessionID  string          `json:"sessionId,omitempty"`
	StreamID   string          `json:"streamId,omitempty"`
	RequestID  string          `json:"requestId,omitempty"`
	DataB64    string          `json:"dataB64,omitempty"`
	Len        int             `json:"len,omitempty"`
	NextOffset int64           `json:"nextOffset,omitempty"`
	Ready      *AttachReady    `json:"ready,omitempty"`
	Snapshot   json.RawMessage `json:"snapshot,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"`
	Owner           string          `json:"owner,omitempty"`
	RequestID       string          `json:"requestId,omitempty"`
	Snapshot        json.RawMessage `json:"snapshot,omitempty"`
}

Jump to

Keyboard shortcuts

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