wshrpc

package
v0.10.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

types and methods for wsh rpc calls

Index

Constants

View Source
const (
	RpcType_Call             = "call"             // single response (regular rpc)
	RpcType_ResponseStream   = "responsestream"   // stream of responses (streaming rpc)
	RpcType_StreamingRequest = "streamingrequest" // streaming request
	RpcType_Complex          = "complex"          // streaming request/response
)
View Source
const (
	Command_Authenticate         = "authenticate"    // special
	Command_Dispose              = "dispose"         // special (disposes of the route, for multiproxy only)
	Command_RouteAnnounce        = "routeannounce"   // special (for routing)
	Command_RouteUnannounce      = "routeunannounce" // special (for routing)
	Command_Message              = "message"
	Command_GetMeta              = "getmeta"
	Command_SetMeta              = "setmeta"
	Command_SetView              = "setview"
	Command_ControllerInput      = "controllerinput"
	Command_ControllerRestart    = "controllerrestart"
	Command_ControllerStop       = "controllerstop"
	Command_ControllerResync     = "controllerresync"
	Command_FileAppend           = "fileappend"
	Command_FileAppendIJson      = "fileappendijson"
	Command_ResolveIds           = "resolveids"
	Command_BlockInfo            = "blockinfo"
	Command_CreateBlock          = "createblock"
	Command_DeleteBlock          = "deleteblock"
	Command_FileWrite            = "filewrite"
	Command_FileRead             = "fileread"
	Command_EventPublish         = "eventpublish"
	Command_EventRecv            = "eventrecv"
	Command_EventSub             = "eventsub"
	Command_EventUnsub           = "eventunsub"
	Command_EventUnsubAll        = "eventunsuball"
	Command_EventReadHistory     = "eventreadhistory"
	Command_StreamTest           = "streamtest"
	Command_StreamWaveAi         = "streamwaveai"
	Command_StreamCpuData        = "streamcpudata"
	Command_Test                 = "test"
	Command_SetConfig            = "setconfig"
	Command_SetConnectionsConfig = "connectionsconfig"
	Command_RemoteStreamFile     = "remotestreamfile"
	Command_RemoteFileInfo       = "remotefileinfo"
	Command_RemoteFileTouch      = "remotefiletouch"
	Command_RemoteWriteFile      = "remotewritefile"
	Command_RemoteFileDelete     = "remotefiledelete"
	Command_RemoteFileJoin       = "remotefilejoin"
	Command_WaveInfo             = "waveinfo"
	Command_WshActivity          = "wshactivity"
	Command_Activity             = "activity"
	Command_GetVar               = "getvar"
	Command_SetVar               = "setvar"
	Command_RemoteMkdir          = "remotemkdir"

	Command_ConnStatus       = "connstatus"
	Command_WslStatus        = "wslstatus"
	Command_ConnEnsure       = "connensure"
	Command_ConnReinstallWsh = "connreinstallwsh"
	Command_ConnConnect      = "connconnect"
	Command_ConnDisconnect   = "conndisconnect"
	Command_ConnList         = "connlist"
	Command_WslList          = "wsllist"
	Command_WslDefaultDistro = "wsldefaultdistro"
	Command_DismissWshFail   = "dismisswshfail"

	Command_WorkspaceList = "workspacelist"

	Command_WebSelector      = "webselector"
	Command_Notify           = "notify"
	Command_FocusWindow      = "focuswindow"
	Command_GetUpdateChannel = "getupdatechannel"

	Command_VDomCreateContext   = "vdomcreatecontext"
	Command_VDomAsyncInitiation = "vdomasyncinitiation"
	Command_VDomRender          = "vdomrender"
	Command_VDomUrlRequest      = "vdomurlrequest"

	Command_AiSendMessage = "aisendmessage"
)
View Source
const (
	ClientType_ConnServer      = "connserver"
	ClientType_BlockController = "blockcontroller"
)
View Source
const LocalConnName = "local"
View Source
const (
	TimeSeries_Cpu = "cpu"
)

Variables

This section is empty.

Functions

func GenerateWshCommandDeclMap

func GenerateWshCommandDeclMap() map[string]*WshRpcMethodDecl

func HackRpcContextIntoData

func HackRpcContextIntoData(dataPtr any, rpcContext RpcContext)

func MakeMethodMapForImpl

func MakeMethodMapForImpl(impl any, declMap map[string]*WshRpcMethodDecl) map[string]reflect.Method

Types

type ActivityDisplayType added in v0.10.0

type ActivityDisplayType struct {
	Width    int     `json:"width"`
	Height   int     `json:"height"`
	DPR      float64 `json:"dpr"`
	Internal bool    `json:"internal,omitempty"`
}

type ActivityUpdate added in v0.10.0

type ActivityUpdate struct {
	FgMinutes     int                   `json:"fgminutes,omitempty"`
	ActiveMinutes int                   `json:"activeminutes,omitempty"`
	OpenMinutes   int                   `json:"openminutes,omitempty"`
	NumTabs       int                   `json:"numtabs,omitempty"`
	NewTab        int                   `json:"newtab,omitempty"`
	NumBlocks     int                   `json:"numblocks,omitempty"`
	NumWindows    int                   `json:"numwindows,omitempty"`
	NumWS         int                   `json:"numws,omitempty"`
	NumWSNamed    int                   `json:"numwsnamed,omitempty"`
	NumSSHConn    int                   `json:"numsshconn,omitempty"`
	NumWSLConn    int                   `json:"numwslconn,omitempty"`
	NumMagnify    int                   `json:"nummagnify,omitempty"`
	NumPanics     int                   `json:"numpanics,omitempty"`
	NumAIReqs     int                   `json:"numaireqs,omitempty"`
	Startup       int                   `json:"startup,omitempty"`
	Shutdown      int                   `json:"shutdown,omitempty"`
	SetTabTheme   int                   `json:"settabtheme,omitempty"`
	BuildTime     string                `json:"buildtime,omitempty"`
	Displays      []ActivityDisplayType `json:"displays,omitempty"`
	Renderers     map[string]int        `json:"renderers,omitempty"`
	Blocks        map[string]int        `json:"blocks,omitempty"`
	WshCmds       map[string]int        `json:"wshcmds,omitempty"`
	Conn          map[string]int        `json:"conn,omitempty"`
}

type AiMessageData added in v0.9.2

type AiMessageData struct {
	Message string `json:"message,omitempty"`
}

type BlockInfoData

type BlockInfoData struct {
	BlockId     string                `json:"blockid"`
	TabId       string                `json:"tabid"`
	WorkspaceId string                `json:"workspaceid"`
	Block       *waveobj.Block        `json:"block"`
	Files       []*filestore.WaveFile `json:"files"`
}

type CommandAppendIJsonData

type CommandAppendIJsonData struct {
	ZoneId   string        `json:"zoneid" wshcontext:"BlockId"`
	FileName string        `json:"filename"`
	Data     ijson.Command `json:"data"`
}

type CommandAuthenticateRtnData

type CommandAuthenticateRtnData struct {
	RouteId   string `json:"routeid"`
	AuthToken string `json:"authtoken,omitempty"`
}

type CommandBlockInputData

type CommandBlockInputData struct {
	BlockId     string            `json:"blockid" wshcontext:"BlockId"`
	InputData64 string            `json:"inputdata64,omitempty"`
	SigName     string            `json:"signame,omitempty"`
	TermSize    *waveobj.TermSize `json:"termsize,omitempty"`
}

type CommandBlockSetViewData

type CommandBlockSetViewData struct {
	BlockId string `json:"blockid" wshcontext:"BlockId"`
	View    string `json:"view"`
}

type CommandControllerResyncData

type CommandControllerResyncData struct {
	ForceRestart bool                 `json:"forcerestart,omitempty"`
	TabId        string               `json:"tabid" wshcontext:"TabId"`
	BlockId      string               `json:"blockid" wshcontext:"BlockId"`
	RtOpts       *waveobj.RuntimeOpts `json:"rtopts,omitempty"`
}

type CommandCreateBlockData

type CommandCreateBlockData struct {
	TabId     string               `json:"tabid" wshcontext:"TabId"`
	BlockDef  *waveobj.BlockDef    `json:"blockdef"`
	RtOpts    *waveobj.RuntimeOpts `json:"rtopts,omitempty"`
	Magnified bool                 `json:"magnified,omitempty"`
}

type CommandCreateSubBlockData added in v0.9.0

type CommandCreateSubBlockData struct {
	ParentBlockId string            `json:"parentblockid"`
	BlockDef      *waveobj.BlockDef `json:"blockdef"`
}

type CommandDeleteBlockData

type CommandDeleteBlockData struct {
	BlockId string `json:"blockid" wshcontext:"BlockId"`
}

type CommandDisposeData added in v0.9.0

type CommandDisposeData struct {
	RouteId string `json:"routeid"`
}

type CommandEventReadHistoryData

type CommandEventReadHistoryData struct {
	Event    string `json:"event"`
	Scope    string `json:"scope"`
	MaxItems int    `json:"maxitems"`
}

type CommandFileCreateData added in v0.9.3

type CommandFileCreateData struct {
	ZoneId   string                  `json:"zoneid"`
	FileName string                  `json:"filename"`
	Meta     map[string]any          `json:"meta,omitempty"`
	Opts     *filestore.FileOptsType `json:"opts,omitempty"`
}

type CommandFileData

type CommandFileData struct {
	ZoneId   string             `json:"zoneid" wshcontext:"BlockId"`
	FileName string             `json:"filename"`
	Data64   string             `json:"data64,omitempty"`
	At       *CommandFileDataAt `json:"at,omitempty"` // if set, this turns read/write ops to ReadAt/WriteAt ops (len is only used for ReadAt)
}

type CommandFileDataAt added in v0.9.3

type CommandFileDataAt struct {
	Offset int64 `json:"offset"`
	Size   int64 `json:"size,omitempty"`
}

type CommandFileListData added in v0.9.3

type CommandFileListData struct {
	ZoneId string `json:"zoneid"`
	Prefix string `json:"prefix,omitempty"`
	All    bool   `json:"all,omitempty"`
	Offset int    `json:"offset,omitempty"`
	Limit  int    `json:"limit,omitempty"`
}

type CommandGetMetaData

type CommandGetMetaData struct {
	ORef waveobj.ORef `json:"oref" wshcontext:"BlockORef"`
}

type CommandMessageData

type CommandMessageData struct {
	ORef    waveobj.ORef `json:"oref" wshcontext:"BlockORef"`
	Message string       `json:"message"`
}

type CommandRemoteStreamFileData

type CommandRemoteStreamFileData struct {
	Path      string `json:"path"`
	ByteRange string `json:"byterange,omitempty"`
}

type CommandRemoteStreamFileRtnData

type CommandRemoteStreamFileRtnData struct {
	FileInfo []*FileInfo `json:"fileinfo,omitempty"`
	Data64   string      `json:"data64,omitempty"`
}

type CommandRemoteWriteFileData

type CommandRemoteWriteFileData struct {
	Path       string      `json:"path"`
	Data64     string      `json:"data64"`
	CreateMode os.FileMode `json:"createmode,omitempty"`
}

type CommandResolveIdsData

type CommandResolveIdsData struct {
	BlockId string   `json:"blockid" wshcontext:"BlockId"`
	Ids     []string `json:"ids"`
}

type CommandResolveIdsRtnData

type CommandResolveIdsRtnData struct {
	ResolvedIds map[string]waveobj.ORef `json:"resolvedids"`
}

type CommandSetMetaData

type CommandSetMetaData struct {
	ORef waveobj.ORef        `json:"oref" wshcontext:"BlockORef"`
	Meta waveobj.MetaMapType `json:"meta"`
}

type CommandVarData added in v0.9.3

type CommandVarData struct {
	Key      string `json:"key"`
	Val      string `json:"val,omitempty"`
	Remove   bool   `json:"remove,omitempty"`
	ZoneId   string `json:"zoneid"`
	FileName string `json:"filename"`
}

type CommandVarResponseData added in v0.9.3

type CommandVarResponseData struct {
	Key    string `json:"key"`
	Val    string `json:"val"`
	Exists bool   `json:"exists"`
}

type CommandWaitForRouteData added in v0.9.0

type CommandWaitForRouteData struct {
	RouteId string `json:"routeid"`
	WaitMs  int    `json:"waitms"`
}

type CommandWebSelectorData

type CommandWebSelectorData struct {
	WorkspaceId string           `json:"workspaceid"`
	BlockId     string           `json:"blockid" wshcontext:"BlockId"`
	TabId       string           `json:"tabid" wshcontext:"TabId"`
	Selector    string           `json:"selector"`
	Opts        *WebSelectorOpts `json:"opts,omitempty"`
}

type ConnConfigRequest added in v0.10.0

type ConnConfigRequest struct {
	Host        string              `json:"host"`
	MetaMapType waveobj.MetaMapType `json:"metamaptype"`
}

type ConnKeywords added in v0.10.0

type ConnKeywords struct {
	ConnWshEnabled          *bool `json:"conn:wshenabled,omitempty"`
	ConnAskBeforeWshInstall *bool `json:"conn:askbeforewshinstall,omitempty"`

	DisplayHidden *bool   `json:"display:hidden,omitempty"`
	DisplayOrder  float32 `json:"display:order,omitempty"`

	TermClear      bool    `json:"term:*,omitempty"`
	TermFontSize   float64 `json:"term:fontsize,omitempty"`
	TermFontFamily string  `json:"term:fontfamily,omitempty"`
	TermTheme      string  `json:"term:theme,omitempty"`

	SshUser                         string   `json:"ssh:user,omitempty"`
	SshHostName                     string   `json:"ssh:hostname,omitempty"`
	SshPort                         string   `json:"ssh:port,omitempty"`
	SshIdentityFile                 []string `json:"ssh:identityfile,omitempty"`
	SshBatchMode                    bool     `json:"ssh:batchmode,omitempty"`
	SshPubkeyAuthentication         bool     `json:"ssh:pubkeyauthentication,omitempty"`
	SshPasswordAuthentication       bool     `json:"ssh:passwordauthentication,omitempty"`
	SshKbdInteractiveAuthentication bool     `json:"ssh:kbdinteractiveauthentication,omitempty"`
	SshPreferredAuthentications     []string `json:"ssh:preferredauthentications,omitempty"`
	SshAddKeysToAgent               bool     `json:"ssh:addkeystoagent,omitempty"`
	SshIdentityAgent                string   `json:"ssh:identityagent,omitempty"`
	SshProxyJump                    []string `json:"ssh:proxyjump,omitempty"`
	SshUserKnownHostsFile           []string `json:"ssh:userknownhostsfile,omitempty"`
	SshGlobalKnownHostsFile         []string `json:"ssh:globalknownhostsfile,omitempty"`
}

type ConnRequest added in v0.10.0

type ConnRequest struct {
	Host     string       `json:"host"`
	Keywords ConnKeywords `json:"keywords,omitempty"`
}

type ConnStatus

type ConnStatus struct {
	Status        string `json:"status"`
	WshEnabled    bool   `json:"wshenabled"`
	Connection    string `json:"connection"`
	Connected     bool   `json:"connected"`
	HasConnected  bool   `json:"hasconnected"` // true if it has *ever* connected successfully
	ActiveConnNum int    `json:"activeconnnum"`
	Error         string `json:"error,omitempty"`
	WshError      string `json:"wsherror,omitempty"`
}

type CpuDataRequest

type CpuDataRequest struct {
	Id    string `json:"id"`
	Count int    `json:"count"`
}

type CpuDataType

type CpuDataType struct {
	Time  int64   `json:"time"`
	Value float64 `json:"value"`
}

type FileInfo

type FileInfo struct {
	Path     string      `json:"path"` // cleaned path (may have "~")
	Dir      string      `json:"dir"`  // returns the directory part of the path (if this is a a directory, it will be equal to Path).  "~" will be expanded, and separators will be normalized to "/"
	Name     string      `json:"name"`
	NotFound bool        `json:"notfound,omitempty"`
	Size     int64       `json:"size"`
	Mode     os.FileMode `json:"mode"`
	ModeStr  string      `json:"modestr"`
	ModTime  int64       `json:"modtime"`
	IsDir    bool        `json:"isdir,omitempty"`
	MimeType string      `json:"mimetype,omitempty"`
	ReadOnly bool        `json:"readonly,omitempty"` // this is not set for fileinfo's returned from directory listings
}

type MetaSettingsType added in v0.10.0

type MetaSettingsType struct {
	waveobj.MetaMapType
}

func (MetaSettingsType) MarshalJSON added in v0.10.0

func (m MetaSettingsType) MarshalJSON() ([]byte, error)

func (*MetaSettingsType) UnmarshalJSON added in v0.10.0

func (m *MetaSettingsType) UnmarshalJSON(data []byte) error

type OpenAIOptsType

type OpenAIOptsType struct {
	Model      string `json:"model"`
	APIType    string `json:"apitype,omitempty"`
	APIToken   string `json:"apitoken"`
	OrgID      string `json:"orgid,omitempty"`
	APIVersion string `json:"apiversion,omitempty"`
	BaseURL    string `json:"baseurl,omitempty"`
	MaxTokens  int    `json:"maxtokens,omitempty"`
	MaxChoices int    `json:"maxchoices,omitempty"`
	TimeoutMs  int    `json:"timeoutms,omitempty"`
}

type OpenAIPacketType

type OpenAIPacketType struct {
	Type         string           `json:"type"`
	Model        string           `json:"model,omitempty"`
	Created      int64            `json:"created,omitempty"`
	FinishReason string           `json:"finish_reason,omitempty"`
	Usage        *OpenAIUsageType `json:"usage,omitempty"`
	Index        int              `json:"index,omitempty"`
	Text         string           `json:"text,omitempty"`
	Error        string           `json:"error,omitempty"`
}

type OpenAIPromptMessageType

type OpenAIPromptMessageType struct {
	Role    string `json:"role"`
	Content string `json:"content"`
	Name    string `json:"name,omitempty"`
}

type OpenAIUsageType

type OpenAIUsageType struct {
	PromptTokens     int `json:"prompt_tokens,omitempty"`
	CompletionTokens int `json:"completion_tokens,omitempty"`
	TotalTokens      int `json:"total_tokens,omitempty"`
}

type OpenAiStreamRequest

type OpenAiStreamRequest struct {
	ClientId string                    `json:"clientid,omitempty"`
	Opts     *OpenAIOptsType           `json:"opts"`
	Prompt   []OpenAIPromptMessageType `json:"prompt"`
}

type RespOrErrorUnion

type RespOrErrorUnion[T any] struct {
	Response T
	Error    error
}

type RpcContext

type RpcContext struct {
	ClientType string `json:"ctype,omitempty"`
	BlockId    string `json:"blockid,omitempty"`
	TabId      string `json:"tabid,omitempty"`
	Conn       string `json:"conn,omitempty"`
}

type RpcOpts

type RpcOpts struct {
	Timeout    int    `json:"timeout,omitempty"`
	NoResponse bool   `json:"noresponse,omitempty"`
	Route      string `json:"route,omitempty"`

	StreamCancelFn func() `json:"-"` // this is an *output* parameter, set by the handler
}

type TimeSeriesData

type TimeSeriesData struct {
	Ts     int64              `json:"ts"`
	Values map[string]float64 `json:"values"`
}

type VDomUrlRequestData added in v0.9.2

type VDomUrlRequestData struct {
	Method  string            `json:"method"`
	URL     string            `json:"url"`
	Headers map[string]string `json:"headers"`
	Body    []byte            `json:"body,omitempty"`
}

type VDomUrlRequestResponse added in v0.9.2

type VDomUrlRequestResponse struct {
	StatusCode int               `json:"statuscode,omitempty"`
	Headers    map[string]string `json:"headers,omitempty"`
	Body       []byte            `json:"body,omitempty"`
}

type WaveFileInfo added in v0.9.3

type WaveFileInfo struct {
	ZoneId    string                 `json:"zoneid"`
	Name      string                 `json:"name"`
	Opts      filestore.FileOptsType `json:"opts,omitempty"`
	Size      int64                  `json:"size,omitempty"`
	CreatedTs int64                  `json:"createdts,omitempty"`
	ModTs     int64                  `json:"modts,omitempty"`
	Meta      map[string]any         `json:"meta,omitempty"`
	IsDir     bool                   `json:"isdir,omitempty"`
}

type WaveInfoData added in v0.9.1

type WaveInfoData struct {
	Version   string `json:"version"`
	ClientId  string `json:"clientid"`
	BuildTime string `json:"buildtime"`
	ConfigDir string `json:"configdir"`
	DataDir   string `json:"datadir"`
}

type WaveNotificationOptions added in v0.8.9

type WaveNotificationOptions struct {
	Title  string `json:"title,omitempty"`
	Body   string `json:"body,omitempty"`
	Silent bool   `json:"silent,omitempty"`
}

type WebSelectorOpts

type WebSelectorOpts struct {
	All   bool `json:"all,omitempty"`
	Inner bool `json:"inner,omitempty"`
}

type WorkspaceInfoData added in v0.10.0

type WorkspaceInfoData struct {
	WindowId      string             `json:"windowid"`
	WorkspaceData *waveobj.Workspace `json:"workspacedata"`
}

type WshRpcInterface

type WshRpcInterface interface {
	AuthenticateCommand(ctx context.Context, data string) (CommandAuthenticateRtnData, error)
	DisposeCommand(ctx context.Context, data CommandDisposeData) error
	RouteAnnounceCommand(ctx context.Context) error   // (special) announces a new route to the main router
	RouteUnannounceCommand(ctx context.Context) error // (special) unannounces a route to the main router

	MessageCommand(ctx context.Context, data CommandMessageData) error
	GetMetaCommand(ctx context.Context, data CommandGetMetaData) (waveobj.MetaMapType, error)
	SetMetaCommand(ctx context.Context, data CommandSetMetaData) error
	SetViewCommand(ctx context.Context, data CommandBlockSetViewData) error
	ControllerInputCommand(ctx context.Context, data CommandBlockInputData) error
	ControllerStopCommand(ctx context.Context, blockId string) error
	ControllerResyncCommand(ctx context.Context, data CommandControllerResyncData) error
	ResolveIdsCommand(ctx context.Context, data CommandResolveIdsData) (CommandResolveIdsRtnData, error)
	CreateBlockCommand(ctx context.Context, data CommandCreateBlockData) (waveobj.ORef, error)
	CreateSubBlockCommand(ctx context.Context, data CommandCreateSubBlockData) (waveobj.ORef, error)
	DeleteBlockCommand(ctx context.Context, data CommandDeleteBlockData) error
	DeleteSubBlockCommand(ctx context.Context, data CommandDeleteBlockData) error
	WaitForRouteCommand(ctx context.Context, data CommandWaitForRouteData) (bool, error)
	FileCreateCommand(ctx context.Context, data CommandFileCreateData) error
	FileDeleteCommand(ctx context.Context, data CommandFileData) error
	FileAppendCommand(ctx context.Context, data CommandFileData) error
	FileAppendIJsonCommand(ctx context.Context, data CommandAppendIJsonData) error
	FileWriteCommand(ctx context.Context, data CommandFileData) error
	FileReadCommand(ctx context.Context, data CommandFileData) (string, error)
	FileInfoCommand(ctx context.Context, data CommandFileData) (*WaveFileInfo, error)
	FileListCommand(ctx context.Context, data CommandFileListData) ([]*WaveFileInfo, error)
	EventPublishCommand(ctx context.Context, data wps.WaveEvent) error
	EventSubCommand(ctx context.Context, data wps.SubscriptionRequest) error
	EventUnsubCommand(ctx context.Context, data string) error
	EventUnsubAllCommand(ctx context.Context) error
	EventReadHistoryCommand(ctx context.Context, data CommandEventReadHistoryData) ([]*wps.WaveEvent, error)
	StreamTestCommand(ctx context.Context) chan RespOrErrorUnion[int]
	StreamWaveAiCommand(ctx context.Context, request OpenAiStreamRequest) chan RespOrErrorUnion[OpenAIPacketType]
	StreamCpuDataCommand(ctx context.Context, request CpuDataRequest) chan RespOrErrorUnion[TimeSeriesData]
	TestCommand(ctx context.Context, data string) error
	SetConfigCommand(ctx context.Context, data MetaSettingsType) error
	SetConnectionsConfigCommand(ctx context.Context, data ConnConfigRequest) error
	BlockInfoCommand(ctx context.Context, blockId string) (*BlockInfoData, error)
	WaveInfoCommand(ctx context.Context) (*WaveInfoData, error)
	WshActivityCommand(ct context.Context, data map[string]int) error
	ActivityCommand(ctx context.Context, data ActivityUpdate) error
	GetVarCommand(ctx context.Context, data CommandVarData) (*CommandVarResponseData, error)
	SetVarCommand(ctx context.Context, data CommandVarData) error

	// connection functions
	ConnStatusCommand(ctx context.Context) ([]ConnStatus, error)
	WslStatusCommand(ctx context.Context) ([]ConnStatus, error)
	ConnEnsureCommand(ctx context.Context, connName string) error
	ConnReinstallWshCommand(ctx context.Context, connName string) error
	ConnConnectCommand(ctx context.Context, connRequest ConnRequest) error
	ConnDisconnectCommand(ctx context.Context, connName string) error
	ConnListCommand(ctx context.Context) ([]string, error)
	WslListCommand(ctx context.Context) ([]string, error)
	WslDefaultDistroCommand(ctx context.Context) (string, error)
	DismissWshFailCommand(ctx context.Context, connName string) error

	// eventrecv is special, it's handled internally by WshRpc with EventListener
	EventRecvCommand(ctx context.Context, data wps.WaveEvent) error

	// remotes
	RemoteStreamFileCommand(ctx context.Context, data CommandRemoteStreamFileData) chan RespOrErrorUnion[CommandRemoteStreamFileRtnData]
	RemoteFileInfoCommand(ctx context.Context, path string) (*FileInfo, error)
	RemoteFileTouchCommand(ctx context.Context, path string) error
	RemoteFileRenameCommand(ctx context.Context, pathTuple [2]string) error
	RemoteFileDeleteCommand(ctx context.Context, path string) error
	RemoteWriteFileCommand(ctx context.Context, data CommandRemoteWriteFileData) error
	RemoteFileJoinCommand(ctx context.Context, paths []string) (*FileInfo, error)
	RemoteMkdirCommand(ctx context.Context, path string) error
	RemoteStreamCpuDataCommand(ctx context.Context) chan RespOrErrorUnion[TimeSeriesData]

	// emain
	WebSelectorCommand(ctx context.Context, data CommandWebSelectorData) ([]string, error)
	NotifyCommand(ctx context.Context, notificationOptions WaveNotificationOptions) error
	FocusWindowCommand(ctx context.Context, windowId string) error

	WorkspaceListCommand(ctx context.Context) ([]WorkspaceInfoData, error)
	GetUpdateChannelCommand(ctx context.Context) (string, error)

	// terminal
	VDomCreateContextCommand(ctx context.Context, data vdom.VDomCreateContext) (*waveobj.ORef, error)
	VDomAsyncInitiationCommand(ctx context.Context, data vdom.VDomAsyncInitiationRequest) error

	// ai
	AiSendMessageCommand(ctx context.Context, data AiMessageData) error

	// proc
	VDomRenderCommand(ctx context.Context, data vdom.VDomFrontendUpdate) chan RespOrErrorUnion[*vdom.VDomBackendUpdate]
	VDomUrlRequestCommand(ctx context.Context, data VDomUrlRequestData) chan RespOrErrorUnion[VDomUrlRequestResponse]
}

type WshRpcMethodDecl

type WshRpcMethodDecl struct {
	Command                 string
	CommandType             string
	MethodName              string
	CommandDataType         reflect.Type
	DefaultResponseDataType reflect.Type
}

type WshServerCommandMeta

type WshServerCommandMeta struct {
	CommandType string `json:"commandtype"`
}

for frontend

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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