telemetrydata

package
v0.12.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ValidEventNames = map[string]bool{
	"app:startup":            true,
	"app:shutdown":           true,
	"app:activity":           true,
	"app:display":            true,
	"app:counts":             true,
	"action:magnify":         true,
	"action:settabtheme":     true,
	"action:runaicmd":        true,
	"action:createtab":       true,
	"action:createblock":     true,
	"action:openwaveai":      true,
	"wsh:run":                true,
	"debug:panic":            true,
	"conn:connect":           true,
	"conn:connecterror":      true,
	"waveai:enabletelemetry": true,
	"waveai:post":            true,
	"onboarding:start":       true,
	"onboarding:skip":        true,
	"onboarding:fire":        true,
}

Functions

This section is empty.

Types

type TEvent

type TEvent struct {
	Uuid    string      `json:"uuid,omitempty" db:"uuid"`
	Ts      int64       `json:"ts,omitempty" db:"ts"`
	TsLocal string      `json:"tslocal,omitempty" db:"tslocal"` // iso8601 format (wall clock converted to PT)
	Event   string      `json:"event" db:"event"`
	Props   TEventProps `json:"props" db:"-"` // Don't scan directly to map

	// DB fields
	Uploaded bool `json:"-" db:"uploaded"`

	// For database scanning
	RawProps string `json:"-" db:"props"`
}

func MakeTEvent

func MakeTEvent(event string, props TEventProps) *TEvent

func MakeUntypedTEvent

func MakeUntypedTEvent(event string, propsMap map[string]any) (*TEvent, error)

func (*TEvent) ConvertRawJSON

func (t *TEvent) ConvertRawJSON() error

func (*TEvent) EnsureTimestamps

func (t *TEvent) EnsureTimestamps()

func (*TEvent) UserSetOnceProps

func (t *TEvent) UserSetOnceProps() *TEventUserProps

func (*TEvent) UserSetProps

func (t *TEvent) UserSetProps() *TEventUserProps

func (*TEvent) Validate

func (te *TEvent) Validate(current bool) error

validates a tevent that was just created (not for validating out of the DB, or an uploaded TEvent) checks that TS is pretty current (or unset)

type TEventProps

type TEventProps struct {
	TEventUserProps `tstype:"-"` // generally don't need to set these since they will be automatically copied over

	ActiveMinutes       int `json:"activity:activeminutes,omitempty"`
	FgMinutes           int `json:"activity:fgminutes,omitempty"`
	OpenMinutes         int `json:"activity:openminutes,omitempty"`
	WaveAIActiveMinutes int `json:"activity:waveaiactiveminutes,omitempty"`
	WaveAIFgMinutes     int `json:"activity:waveaifgminutes,omitempty"`

	AppFirstDay    bool `json:"app:firstday,omitempty"`
	AppFirstLaunch bool `json:"app:firstlaunch,omitempty"`

	ActionInitiator   string `json:"action:initiator,omitempty" tstype:"\"keyboard\" | \"mouse\""`
	PanicType         string `json:"debug:panictype,omitempty"`
	BlockView         string `json:"block:view,omitempty"`
	AiBackendType     string `json:"ai:backendtype,omitempty"`
	AiLocal           bool   `json:"ai:local,omitempty"`
	WshCmd            string `json:"wsh:cmd,omitempty"`
	WshHadError       bool   `json:"wsh:haderror,omitempty"`
	ConnType          string `json:"conn:conntype,omitempty"`
	OnboardingFeature string `json:"onboarding:feature,omitempty" tstype:"\"waveai\" | \"magnify\" | \"wsh\""`
	OnboardingVersion string `json:"onboarding:version,omitempty"`

	DisplayHeight int         `json:"display:height,omitempty"`
	DisplayWidth  int         `json:"display:width,omitempty"`
	DisplayDPR    float64     `json:"display:dpr,omitempty"`
	DisplayCount  int         `json:"display:count,omitempty"`
	DisplayAll    interface{} `json:"display:all,omitempty"`

	CountBlocks     int            `json:"count:blocks,omitempty"`
	CountTabs       int            `json:"count:tabs,omitempty"`
	CountWindows    int            `json:"count:windows,omitempty"`
	CountWorkspaces int            `json:"count:workspaces,omitempty"`
	CountSSHConn    int            `json:"count:sshconn,omitempty"`
	CountWSLConn    int            `json:"count:wslconn,omitempty"`
	CountViews      map[string]int `json:"count:views,omitempty"`

	WaveAIAPIType              string         `json:"waveai:apitype,omitempty"`
	WaveAIModel                string         `json:"waveai:model,omitempty"`
	WaveAIInputTokens          int            `json:"waveai:inputtokens,omitempty"`
	WaveAIOutputTokens         int            `json:"waveai:outputtokens,omitempty"`
	WaveAINativeWebSearchCount int            `json:"waveai:nativewebsearchcount,omitempty"`
	WaveAIRequestCount         int            `json:"waveai:requestcount,omitempty"`
	WaveAIToolUseCount         int            `json:"waveai:toolusecount,omitempty"`
	WaveAIToolUseErrorCount    int            `json:"waveai:tooluseerrorcount,omitempty"`
	WaveAIToolDetail           map[string]int `json:"waveai:tooldetail,omitempty"`
	WaveAIPremiumReq           int            `json:"waveai:premiumreq,omitempty"`
	WaveAIProxyReq             int            `json:"waveai:proxyreq,omitempty"`
	WaveAIHadError             bool           `json:"waveai:haderror,omitempty"`
	WaveAIImageCount           int            `json:"waveai:imagecount,omitempty"`
	WaveAIPDFCount             int            `json:"waveai:pdfcount,omitempty"`
	WaveAITextDocCount         int            `json:"waveai:textdoccount,omitempty"`
	WaveAITextLen              int            `json:"waveai:textlen,omitempty"`
	WaveAIFirstByteMs          int            `json:"waveai:firstbytems,omitempty"`  // ms
	WaveAIRequestDurMs         int            `json:"waveai:requestdurms,omitempty"` // ms
	WaveAIWidgetAccess         bool           `json:"waveai:widgetaccess,omitempty"`

	UserSet     *TEventUserProps `json:"$set,omitempty"`
	UserSetOnce *TEventUserProps `json:"$set_once,omitempty"`
}

type TEventUserProps

type TEventUserProps struct {
	ClientArch           string `json:"client:arch,omitempty"`
	ClientVersion        string `json:"client:version,omitempty"`
	ClientInitialVersion string `json:"client:initial_version,omitempty"`
	ClientBuildTime      string `json:"client:buildtime,omitempty"`
	ClientOSRelease      string `json:"client:osrelease,omitempty"`
	ClientIsDev          bool   `json:"client:isdev,omitempty"`

	AutoUpdateChannel string `json:"autoupdate:channel,omitempty"`
	AutoUpdateEnabled bool   `json:"autoupdate:enabled,omitempty"`

	LocCountryCode string `json:"loc:countrycode,omitempty"`
	LocRegionCode  string `json:"loc:regioncode,omitempty"`

	SettingsCustomWidgets   int `json:"settings:customwidgets,omitempty"`
	SettingsCustomAIPresets int `json:"settings:customaipresets,omitempty"`
	SettingsCustomSettings  int `json:"settings:customsettings,omitempty"`
}

Jump to

Keyboard shortcuts

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