sessiond

package
v0.3.0-alpha.65 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 24 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 AttachRequest

type AttachRequest struct {
	ProtocolVersion int    `json:"protocolVersion"`
	Type            string `json:"type"`
	SessionID       string `json:"sessionId"`
	StreamID        string `json:"streamId,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) 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) 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

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"`
}

type ListResponse

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

type Options

type Options struct {
	SocketPath              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"`
}

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"`
}

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"`
	DataB64   string `json:"dataB64,omitempty"`
	Len       int    `json:"len,omitempty"`
	Error     string `json:"error,omitempty"`
}

Jump to

Keyboard shortcuts

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